
Մենք խոսեցինք այն մասին, թե ինչպես են աշխատում ավտոբուսները և արձանագրությունները արդյունաբերական ավտոմատացման մեջ։ Այս անգամ մենք կկենտրոնանանք ժամանակակից աշխատանքային լուծումների վրա. կանդրադառնանք, թե ինչ արձանագրություններ են օգտագործվում աշխարհի տարբեր համակարգերում։ Եկեք նայենք գերմանական Beckhoff և Siemens ընկերությունների, ավստրիական B&R-ի, ամերիկյան Rockwell Automation-ի և ռուսական Fastwel-ի տեխնոլոգիաներին։ Մենք նաև կուսումնասիրենք ունիվերսալ լուծումներ, որոնք կապված չեն որևէ կոնկրետ արտադրողի հետ, ինչպիսիք են EtherCAT-ը և CAN-ը։
Հոդվածի վերջում կլինի համեմատական աղյուսակ՝ EtherCAT, POWERLINK, PROFINET, EtherNet/IP և ModbusTCP արձանագրությունների բնութագրերով։
Մենք ակնարկում չենք ներառել PRP, HSR, OPC UA և այլ արձանագրություններ, քանի որ Habr-ի վերաբերյալ արդեն իսկ կան հիանալի հոդվածներ դրանց մասին մեր գործընկեր ինժեներների կողմից, ովքեր զբաղվում են արդյունաբերական ավտոմատացման համակարգերի մշակմամբ։ Օրինակ, и .
Նախ, եկեք սահմանենք տերմինաբանությունը. Արդյունաբերական Ethernet = արդյունաբերական ցանց, Fieldbus = դաշտային ավտոբուս։ Ռուսաստանի արդյունաբերական ավտոմատացման մեջ շփոթություն կա դաշտային ավտոբուսի և ցածր մակարդակի արդյունաբերական ցանցի հետ կապված տերմինների հարցում։ Հաճախ այս տերմինները համակցվում են «ստորին մակարդակի» մեկ անորոշ հասկացության մեջ, որը կոչվում է և՛ դաշտային ավտոբուս, և՛ ստորին մակարդակի ավտոբուս, չնայած այն կարող է ընդհանրապես ավտոբուս չլինել։
Ինչու:Այս շփոթությունը, ամենայն հավանականությամբ, պայմանավորված է նրանով, որ շատ ժամանակակից կառավարիչներում I/O մոդուլների միացումը հաճախ իրականացվում է հետին պլանի կամ ֆիզիկական ավտոբուսի միջոցով։ Այսինքն, որոշ ավտոբուսային կոնտակտներ և միակցիչներ օգտագործվում են մի քանի մոդուլներ մեկ միավորի մեջ միավորելու համար։ Սակայն նման հանգույցները, իրենց հերթին, կարող են միմյանց հետ միացվել կամ արդյունաբերական ցանցով, կամ դաշտային ավտոբուսով։ Արևմտյան տերմինաբանության մեջ կա հստակ բաժանում՝ ցանցը ցանց է, ավտոբուսը՝ ավտոբուս։ Առաջինը կոչվում է արդյունաբերական Ethernet, երկրորդը՝ Fieldbus։ Այս հոդվածում այս հասկացությունների համար առաջարկվում է օգտագործել համապատասխանաբար «արդյունաբերական ցանց» և «դաշտային ավտոբուս» տերմինները։
EtherCAT արդյունաբերական ցանցային ստանդարտ, մշակված Beckhoff-ի կողմից
EtherCAT արձանագրությունը և արդյունաբերական ցանցը, թերևս, այսօր ավտոմատացման համակարգերում տվյալների փոխանցման ամենաարագ մեթոդներից մեկն են։ EtherCAT ցանցը հաջողությամբ օգտագործվում է բաշխված ավտոմատացման համակարգերում, որտեղ փոխազդող հանգույցները տեղակայված են մեծ հեռավորության վրա։
EtherCAT արձանագրությունը իր հեռագրերը փոխանցելու համար օգտագործում է ստանդարտ Ethernet շրջանակներ, ուստի պահպանվում է ցանկացած ստանդարտ Ethernet սարքավորումների հետ համատեղելիությունը, և, ըստ էության, տվյալների ընդունումը և փոխանցումը կարող են կազմակերպվել ցանկացած Ethernet կարգավորիչի վրա, եթե առկա է համապատասխան ծրագրակազմ:

Beckhoff կառավարիչ՝ մուտքային/ելքային մոդուլների հավաքածուով։ Աղբյուր՝
Արձանագրության սպեցիֆիկացիան բաց է և հասանելի, բայց միայն մշակողների ասոցիացիայի՝ EtherCAT Technology Group-ի շրջանակներում։
Ահա, թե ինչպես է աշխատում EtherCAT-ը (այն նույնքան հմայիչ է, որքան Zuma Inca-ն):

Այս արձանագրության մեջ փոխանակման բարձր արագությունը, և մենք խոսում ենք միկրովայրկյանների միավորների մասին, ձեռք է բերվում այն փաստի շնորհիվ, որ մշակողները հրաժարվել են որոշակի սարքին ուղղակիորեն ուղարկվող հեռագրերի օգտագործումից։ Փոխարենը, EtherCAT ցանցին ուղարկվում է մեկ հեռագիր, որը միաժամանակ ուղղված է բոլոր սարքերին, տեղեկատվության հավաքման և փոխանցման ենթակա հանգույցներից յուրաքանչյուրը (դրանք հաճախ անվանում են CCU՝ օբյեկտի հետ հաղորդակցման սարք) դրանից «արագ» վերցնում է իր համար նախատեսված տվյալները և հեռագրի մեջ ներմուծում այն տվյալները, որոնք պատրաստ է տրամադրել փոխանակման համար։ Դրանից հետո հեռագիրը ուղարկվում է հաջորդ ենթակա հանգույցին, որտեղ տեղի է ունենում նույն գործողությունը։ Բոլոր կառավարման բլոկներով անցնելուց հետո հեռագիրը վերադարձվում է գլխավոր կառավարչին, որը, հիմնվելով ստրուկ սարքերից ստացված տվյալների վրա, իրականացնում է կառավարման տրամաբանությունը՝ կրկին հեռագրի միջոցով փոխազդելով ստրուկ հանգույցների հետ, որոնք կառավարման ազդանշան են տալիս սարքավորումներին։
EtherCAT ցանցը կարող է ունենալ ցանկացած տոպոլոգիա, բայց այն միշտ կլինի օղակաձև՝ լիարժեք դուպլեքս ռեժիմի և երկու Ethernet միակցիչների օգտագործման շնորհիվ։ Այսպիսով, հեռագիրը միշտ հաջորդաբար կփոխանցվի ավտոբուսի յուրաքանչյուր սարքին։

Բազմակի հանգույցներով Ethercat ցանցի սխեմատիկ ներկայացումը։ Աղբյուր՝
Ի դեպ, EtherCAT սպեցիֆիկացիան չի պարունակում 100Base-TX ֆիզիկական շերտի որևէ սահմանափակում, ուստի արձանագրությունը կարող է իրականացվել գիգաբիթային և օպտիկական գծերի հիման վրա։
Siemens-ի բաց արդյունաբերական ցանցերը և PROFIBUS/NET ստանդարտները
Գերմանական Siemens կոնցեռնը վաղուց հայտնի է իր ծրագրավորվող տրամաբանական կարգավորիչներով (PLC), որոնք օգտագործվում են ամբողջ աշխարհում։
Siemens սարքավորումների կողմից կառավարվող ավտոմատացված համակարգի հանգույցների միջև տվյալների փոխանակումն իրականացվում է ինչպես PROFIBUS կոչվող դաշտային ավտոբուսի, այնպես էլ PROFINET արդյունաբերական ցանցում։
PROFIBUS ավտոբուսը օգտագործում է DB-9 միակցիչներով հատուկ երկլար մալուխ։ Siemens-ը ունի մանուշակագույն, բայց գործնականում մենք հանդիպել ենք նաև այլ գույների :): Մի քանի հանգույցներ միացնելու համար միակցիչը կարող է միացնել երկու մալուխ։ Այն նաև ունի անջատիչ՝ անջատիչ դիմադրության համար։ Տերմինալի դիմադրությունը պետք է միացված լինի ցանցի վերջնային սարքերում, այդպիսով ցույց տալով, որ սա առաջին կամ վերջին սարքն է, և դրանից հետո ոչինչ չկա, միայն խավար և դատարկություն (բոլոր rs485-ները աշխատում են այսպես): Եթե միջանկյալ միակցիչի վրա միացնեք դիմադրություն, դրան հաջորդող հատվածը կանջատվի։

PROFIBUS մալուխ միացնող միակցիչներով։ Աղբյուր՝
PROFINET ցանցը օգտագործում է ոլորված զույգի անալոգ, սովորաբար RJ-45 միակցիչներով, մալուխը գունավորված է կանաչ: Եթե PROFIBUS տոպոլոգիան ավտոբուս է, ապա PROFINET ցանցի տոպոլոգիան կարող է լինել ցանկացած բան՝ օղակ, աստղ, ծառ կամ վերը նշված բոլորը։

Siemens կառավարիչ՝ միացված PROFINET մալուխով։ Աղբյուր՝ w3.siemens.com
PROFIBUS ավտոբուսում և PROFINET ցանցում կապի համար կան մի քանի արձանագրություններ։
PROFIBUS-ի համար՝
- PROFIBUS DP - այս արձանագրության իրականացումը ենթադրում է հեռակա ստրուկ սարքերի հետ կապ; PROFINET-ի դեպքում այս արձանագրությունը համապատասխանում է PROFINET IO արձանագրությանը։
- PROFIBUS PA-ն էապես նույնն է, ինչ PROFIBUS DP-ն, բայց օգտագործվում է տվյալների և հզորության փոխանցման պայթյունավտանգ նախագծերի համար (նման է PROFIBUS DP-ին՝ տարբեր ֆիզիկական հատկություններով): PROFINET-ի համար դեռևս չկա PROFIBUS-ի նման պայթյունապաշտպան արձանագրություն։
- PROFIBUS FMS-ը նախատեսված է այլ արտադրողների համակարգերի հետ տվյալների փոխանակման համար, որոնք չեն կարող օգտագործել PROFIBUS DP: PROFINET CBA արձանագրությունը PROFIBUS FMS-ի անալոգն է PROFINET ցանցում։
PROFINET-ի համար՝
- ՊՐՈՖԻՆԵՏ IO;
- PROFINET CBA:
PROFINET IO արձանագրությունը բաժանված է մի քանի դասերի՝
- PROFINET NRT-ը (ոչ իրական ժամանակի) օգտագործվում է այն դեպքերում, երբ ժամանակը կարևոր չէ: Այն օգտագործում է Ethernet տվյալների փոխանցման արձանագրությունը: TCP/IP, ինչպես նաև UDP/IP:
- PROFINET RT (իրական ժամանակ) - այստեղ մուտքային/ելքային տվյալների փոխանակումն իրականացվում է Ethernet շրջանակների միջոցով, սակայն ախտորոշիչ և կապի տվյալները դեռևս փոխանցվում են UDP/IP-ի միջոցով։
- PROFINET IRT (Իզոքրոն իրական ժամանակ) - Այս արձանագրությունը մշակվել է հատուկ շարժման կառավարման կիրառությունների համար և ներառում է իզոքրոն տվյալների փոխանցման փուլ։
Ինչ վերաբերում է PROFINET IRT կոշտ իրական ժամանակի արձանագրության իրականացմանը, հեռակառավարվող սարքերի հետ հաղորդակցության համար հատկացվում են երկու փոխանակման ալիքներ՝ իզոքրոն և ասինխրոն։ Ֆիքսված ժամանակի փոխանակման ցիկլի տևողությամբ իզոքրոն ալիքը օգտագործում է ժամացույցի համաժամեցում և փոխանցում է ժամանակի համար կարևոր տվյալներ՝ օգտագործելով երկրորդ մակարդակի հեռագրեր։ Իզոքրոն ալիքում փոխանցման տևողությունը չի գերազանցում 1 միլիվայրկյանը։
Ասինխրոն ալիքը փոխանցում է այսպես կոչված իրական ժամանակի տվյալներ, որոնք նույնպես հասցեագրվում են MAC հասցեի միջոցով: Բացի այդ, վերևից փոխանցվում է տարբեր ախտորոշիչ և օժանդակ տեղեկատվություն: TCP/IPԻհարկե, ո՛չ իրական ժամանակի տվյալները, ո՛չ էլ, առավել ևս, որևէ այլ տեղեկատվություն չեն կարող ընդհատել իզոքրոն ցիկլը։
PROFINET IO ֆունկցիաների ընդլայնված հավաքածուն անհրաժեշտ չէ յուրաքանչյուր արդյունաբերական ավտոմատացման համակարգի համար, ուստի այս արձանագրությունը մասշտաբավորվում է որոշակի նախագծի համար՝ հաշվի առնելով համապատասխանության դասերը՝ CC-A, CC-B, CC-CC: Համապատասխանության դասերը թույլ են տալիս ընտրել դաշտային սարքեր և մայրուղային բաղադրիչներ՝ նվազագույն պահանջվող ֆունկցիոնալությամբ։

Source:
PROFINET ցանցում փոխանակման երկրորդ արձանագրությունը՝ PROFINET CBA-ն, օգտագործվում է տարբեր արտադրողների սարքավորումների միջև արդյունաբերական հաղորդակցությունը կազմակերպելու համար։ SVA համակարգերի հիմնական արտադրական միավորը որոշակի միավոր է, որը կոչվում է բաղադրիչ: Այս բաղադրիչը սովորաբար սարքի կամ տեղադրման մեխանիկական, էլեկտրական և էլեկտրոնային մասերի, ինչպես նաև դրանց հետ կապված ծրագրային ապահովման համադրություն է։ Յուրաքանչյուր բաղադրիչի համար ընտրվում է ծրագրային մոդուլ, որը պարունակում է այս բաղադրիչի ինտերֆեյսի ամբողջական նկարագրությունը՝ համաձայն PROFINET ստանդարտի պահանջների։ Այս ծրագրային մոդուլները այնուհետև օգտագործվում են սարքերի միջև տվյալներ փոխանակելու համար։
B&R-ի Ethernet POWERLINK արձանագրությունը
Powerlink արձանագրությունը մշակվել է ավստրիական B&R ընկերության կողմից 2000-ականների սկզբին։ Սա Ethernet ստանդարտի վրա հիմնված իրական ժամանակի արձանագրության ևս մեկ իրականացում է։ Արձանագրության սպեցիֆիկացիան հասանելի է և անվճար տարածվում է։
Powerlink տեխնոլոգիան օգտագործում է այսպես կոչված խառը հարցման մեխանիզմ, որտեղ սարքերի միջև ողջ փոխազդեցությունը բաժանված է մի քանի փուլերի: Հատկապես կարևոր տվյալները փոխանցվում են փոխանակման իզոքրոն փուլում, որի համար կազմաձևվում է անհրաժեշտ արձագանքման ժամանակը։ մնացած տվյալները, որքան հնարավոր է, կփոխանցվեն ասինխրոն փուլում։

B&R կառավարիչ մուտքային/ելքային մոդուլների հավաքածուով։ Աղբյուր՝ br-automation.com
Սկզբում արձանագրությունը ներդրվել է 100Base-TX ֆիզիկական շերտի վրա, սակայն ավելի ուշ մշակվել է գիգաբիթային իրականացում։
Powerlink արձանագրությունը օգտագործում է ժամանակացույցի մեխանիզմ։ Ցանց է ուղարկվում որոշակի նշիչ կամ կառավարման հաղորդագրություն, որն օգտագործվում է որոշելու համար, թե որ սարքն ունի տվյալներ փոխանակելու թույլտվություն։ Միայն մեկ սարք կարող է մուտք ունենալ փոխանակմանը ցանկացած պահի։

Բազմակի հանգույցներով Ethernet POWERLINK ցանցի սխեմատիկ ներկայացումը։
Իզոքրոն փուլում հարցման կարգավորիչը հաջորդաբար հարցում է ուղարկում յուրաքանչյուր հանգույցին, որտեղից անհրաժեշտ է ստանալ կարևոր տվյալներ։
Իզոքրոն փուլը, ինչպես արդեն նշվեց, իրականացվում է կարգավորելի ցիկլի ժամանակով։ Փոխանակման ասինխրոն փուլում օգտագործվում է IP արձանագրության կույտը, կառավարիչը բոլոր հանգույցներից խնդրում է ոչ կրիտիկական տվյալներ, որոնք ուղարկում են պատասխան՝ ցանցին փոխանցելու մուտք ստանալիս։ Իզոքրոն և ասինխրոն փուլերի միջև ժամանակային հարաբերակցությունը կարող է կարգավորվել ձեռքով։
Rockwell Automation Ethernet/IP արձանագրություն
EtherNet/IP արձանագրությունը մշակվել է ամերիկյան Rockwell Automation ընկերության ակտիվ մասնակցությամբ 2000 թվականին։ Այն օգտագործում է TCP և UDP IP փաթեթը և ընդլայնում է այն արդյունաբերական ավտոմատացման մեջ օգտագործելու համար։ Անվան երկրորդ մասը, հակառակ տարածված կարծիքի, չի նշանակում Internet Protocol, այլ Industrial Protocol։ UDP IP-ն օգտագործում է CIP (Common Interface Protocol) հաղորդակցման փաթեթը, որը նաև օգտագործվում է ControlNet / DeviceNet ցանցերում և իրականացվում է վերևում։ TCP/IP.
EtherNet/IP սպեցիֆիկացիան հանրությանը հասանելի է և անվճար տարածվում է։ Ethernet/IP ցանցի տոպոլոգիան կարող է լինել կամայական և ներառել օղակաձև, աստղաձև, ծառաձև կամ ավտոբուսային տոպոլոգիա։
HTTP, FTP, SMTP արձանագրությունների ստանդարտ գործառույթներից բացի, EtherNet/IP-ն իրականացնում է ժամանակային առումով կարևոր տվյալների փոխանցում հարցման կառավարիչի և մուտքի/ելքի սարքերի միջև։ Ժամանակի առումով ոչ կարևոր տվյալների փոխանցումն ապահովվում է TCP փաթեթների միջոցով, իսկ ցիկլիկ կառավարման տվյալների ժամանակի առումով կարևոր մատակարարումը՝ UDP-ի միջոցով։
Բաշխված համակարգերում ժամանակը համաժամեցնելու համար EtherNet/IP-ն օգտագործում է CIPsync արձանագրությունը, որը CIP հաղորդակցման արձանագրության ընդլայնումն է։

Մի քանի հանգույցներով և Modbus սարքերով միացված Ethernet/IP ցանցի սխեմատիկ ներկայացումը։ Աղբյուր՝
EtherNet/IP ցանցի կարգավորումը պարզեցնելու համար, ստանդարտ ավտոմատացման սարքերի մեծ մասը գալիս է նախապես սահմանված կարգավորման ֆայլերով։
FBUS արձանագրության ներդրումը Fastwel ընկերությունում
Մենք երկար մտածեցինք, թե արդյոք այս ցանկում ներառենք ռուսական Fastwel ընկերությունը՝ արդյունաբերական FBUS արձանագրության ներքին ներդրմամբ, բայց հետո որոշեցինք գրել մի քանի պարբերություն՝ ներմուծման փոխարինման իրողությունները ավելի լավ հասկանալու համար։
FBUS-ի երկու ֆիզիկական իրականացում կա։ Դրանցից մեկը ավտոբուս է, որում FBUS արձանագրությունը գործում է RS485 ստանդարտի վերևում։ Բացի այդ, կա FBUS-ի իրականացում արդյունաբերական Ethernet ցանցում։
FBUS-ը դժվար թե կարելի է անվանել բարձր արագության արձանագրություն. արձագանքման ժամանակը մեծապես կախված է ավտոբուսի վրա I/O մոդուլների քանակից և փոխանակման պարամետրերից, սովորաբար տատանվում է 0,5-ից մինչև 10 միլիվայրկյան: Մեկ FBUS ստրուկ հանգույցը կարող է պարունակել միայն 64 I/O մոդուլ: Դաշտային ավտոբուսի համար մալուխի երկարությունը չի կարող գերազանցել 1 մետրը, ուստի բաշխված համակարգերը բացառված են: Այո, այդպես է, բայց միայն արդյունաբերական FBUS ցանց օգտագործելիս: TCP/IP, ինչը նշանակում է հարցման ժամանակի մի քանի անգամ ավելացում: Մոդուլները միացնելու համար կարող են օգտագործվել ավտոբուսային երկարացնող սարքեր, որոնք թույլ են տալիս հարմար տեղադրել դրանք ավտոմատացման պահարանում:

Fastwel կառավարիչ՝ միացված մուտքի/ելքի մոդուլներով։ Աղբյուր՝
Ամփոփում. Ինչպես է այս ամենը գործնականում կիրառվում APCS-ում
Բնականաբար, ժամանակակից արդյունաբերական տվյալների փոխանցման արձանագրությունների բազմազանությունը շատ ավելի մեծ է, քան մենք նկարագրել ենք այս հոդվածում։ Ոմանք կապված են որոշակի արտադրողի հետ, իսկ մյուսները՝ ունիվերսալ։ Ավտոմատացված գործընթացների կառավարման համակարգեր (APCS) մշակելիս ինժեները ընտրում է օպտիմալ արձանագրություններ՝ հաշվի առնելով կոնկրետ առաջադրանքներն ու սահմանափակումները (տեխնիկական և բյուջետային):
Եթե խոսենք որևէ փոխանակման արձանագրության տարածվածության մասին, կարող ենք ներկայացնել ընկերության դիագրամ։ HMS Networks AB, որը պատկերում է տարբեր արդյունաբերական ցանցային տեխնոլոգիաների շուկայական մասնաբաժինները։

Source:
Ինչպես երևում է դիագրամից, Siemens-ի PRONET-ը և PROFIBUS-ը զբաղեցնում են առաջատար դիրքերը։
Հետաքրքիր է, որ 6 տարի առաջ .
Ստորև բերված աղյուսակը պարունակում է նկարագրված փոխանակման արձանագրությունների վերաբերյալ ամփոփ տվյալներ։ Որոշ պարամետրեր, ինչպիսիք են կատարողականը, արտահայտվում են վերացական տերմիններով՝ բարձր/ցածր։ Թվային համարժեքները կարելի է գտնել կատարողականի վերլուծության հոդվածներում։
| EtherCAT | POWERLINK | ՊՐՈՖԻՆԵՏ | Ethernet/IP | ModbusTCP |
Ֆիզիկական շերտ | 100/1000 BASE-TX | 100/1000 BASE-TX | 100/1000 BASE-TX | 100/1000 BASE-TX | 100/1000 BASE-TX |
Տվյալների փոխանցման շերտ | Ալիք (Ethernet կադրեր) | Ալիք (Ethernet կադրեր) | Ալիք (Ethernet կադրեր), ցանց/փոխադրում (TCP/IP) | Ցանց/տրանսպորտ (TCP/IP) | Ցանց/տրանսպորտ (TCP/IP) |
Իրական ժամանակի աջակցություն | Այո | Այո | Այո | Այո | Ոչ |
Արտադրողականություն | Բարձր | Բարձր | IRT – բարձր, RT – միջին | Միջին | Ցածր |
Հանգույցների միջև մալուխի երկարությունը | 100 | 100 մ/2 կմ | 100 | 100 | 100 |
Փոխանցման փուլեր | Ոչ | Իզոքրոն + ասինխրոն | IRT – իզոքրոն + ասինխրոն, RT – ասինխրոն | Ոչ | Ոչ |
Հանգույցների քանակը | 65535 | 240 | Ցանցի սահմանափակում TCP/IP | Ցանցի սահմանափակում TCP/IP | Ցանցի սահմանափակում TCP/IP |
Բախման լուծաչափ | Օղակաձև տոպոլոգիա | Ժամացույցի համաժամեցում, փոխանցման փուլեր | Օղակաձև տոպոլոգիա, փոխանցման փուլեր | Կոմուտատորներ, աստղային տոպոլոգիա | Կոմուտատորներ, աստղային տոպոլոգիա |
Թեժ փոխարինում | Ոչ | Այո | Այո | Այո | Կախված իրականացումից |
Սարքավորման արժեքը | Ցածր | Ցածր | Բարձր | Միջին | Ցածր |
Նկարագրված փոխանակման արձանագրությունների, դաշտային ավտոբուսների և արդյունաբերական ցանցերի կիրառման ոլորտները շատ բազմազան են։ Քիմիական և ավտոմոբիլային արդյունաբերություններից մինչև ավիատիեզերական տեխնոլոգիաներ և էլեկտրոնիկայի արտադրություն։ Բարձր արագությամբ փոխանակման արձանագրությունները պահանջարկ ունեն տարբեր սարքերի իրական ժամանակի դիրքորոշման համակարգերում և ռոբոտաշինության մեջ։
Ի՞նչ արձանագրություններով եք աշխատել և որտե՞ղ եք դրանք կիրառել։ Կիսվեք ձեր փորձով մեկնաբանություններում։ 🙂
Source: www.habr.com
