Ինչպես անցկացնել OPC UA փորձարկում երեք հաստոցի վրա
OPC UA գործնական փորձարկում երեք հաստոցի վրա. ստուգում ենք անվանատարածքը, ժամանակը, որակը, վկայագրերը, մուտքի իրավունքներն ու կապի վերականգնումը։

Երեք հաստոցը բավական տարբերություն է տալիս թույլ տեղերը բացահայտելու համար, բայց դեռ հնարավոր է յուրաքանչյուր ազդանշանը ձեռքով ստուգել։ Սովորաբար ընտրում եմ մեկ սովորական հաստոց, մեկ հին կամ ոչ տիպային հաստոց և ամենաբարդ գործողությունն իրականացնող հաստոցը։ Այդպես փորձարկումը ստուգում է ապագա համակարգի սահմանները, ոչ թե մեկ հարմար մասնավոր դեպք։
Արդյունքը պետք է լինի ընդունման փաթեթ՝ գրանցված տարբերակներ, հանգույցների քարտեզ, փորձարկման մատյաններ, մուտքի մատրիցա, վկայագրերի ֆայլեր և կապի փորձարկման արձանագրություն։ Ընդունման ակտում «տվյալները գալիս են» արտահայտությունը ոչինչ չի նշանակում։ Ստորև նկարագրված կարգը մեկ այլ հերթափոխի ինժեներին թույլ կտա կրկնել փորձը և ստանալ նույն եզրակացությունը։
Ինչպես ընտրել երեք հաստոցը և փորձարկման սահմանները
Հաստոցներն ընտրեք այն տարբերություններով, որոնք կարող են խանգարել մասշտաբավորմանը, ոչ թե կառավարման պահարաններին մոտենալու հարմարությամբ։ Փորձարկման մեջ ներառեք ամենատարածված կազմաձևը, աջակցվող ամենահին կազմաձևը և տվյալներով ամենահարուստ հաստոցը։ Եթե արտադրամասում կան CNC-ի տարբեր սերունդներ, OPC UA սերվերի տարբերակներ կամ ցանցային դարպասներ, երեք նույնական նոր հաստոցը գրեթե ոչինչ չի ստուգի։
Նախ նպատակը գրեք արտադրության լեզվով։ Օրինակ՝ որոշել սարքավորման վիճակը, ավտոմատ ցիկլի տևողությունը, պարապուրդի պատճառները և պիտանի դետալների քանակը՝ առավելագույնը հինգ վայրկյան ուշացումով։ Յուրաքանչյուր նպատակ պետք է ունենա ֆիզիկական գործընթացը հասկացող և ազդանշանի իմաստը հաստատող պատասխանատու։ Ինտեգրատորը չպետք է միայնակ որոշի, թե Running-ը նշանակում է իլի պտույտ, ծրագրի կատարում, թե ավտոմատ ռեժիմ։
Միացումից առաջ գրանցեք փորձարկման կազմը.
- հաստոցի նույնացուցիչը, CNC մոդելը և ծրագրային ապահովման տարբերակը,
- OPC UA հրապարակման եղանակը՝ ներկառուցված սերվեր, դարպաս կամ արդյունաբերական համակարգիչ,
- ընտրված ցուցանիշները և սկզբնական ազդանշանների ցանկը,
- փոփոխության սպասվող հաճախականությունը և թույլատրելի ուշացումը,
- ընդունման պայմանները և արդյունքը ստորագրող անձը։
Առաջին հավաքածուն սահմանափակեք յուրաքանչյուր հաստոցի համար մոտ 20-40 հանգույցով, բայց մի ընտրեք միայն դանդաղ հաշվիչներ։ Պետք են արագ փոփոխվող ազդանշան, հազվադեպ անցումներով վիճակ, կուտակային հաշվիչ, տեքստային պատճառ, վթար և առնվազն մեկ արժեք, որը երբեմն անհասանելի է դառնում։ Այս հավաքածուն ցույց է տալիս բաժանորդագրությունների, հերթերի, որակի և ժամանակի աշխատանքը։ Մեխանիզմն ընդունելուց հետո կարելի է ընդլայնել մոդելը՝ չփոխելով ստուգման եղանակը։
Առանձին գրեք, թե փորձարկումն ինչ չի ներառում։ Կառավարման պարամետրերի գրանցումը, հեռակա գործարկումը և մեթոդների կանչերը պետք է տեղափոխել ռիսկերի առանձին գնահատմամբ նախագիծ։ Արտադրական տվյալներ հավաքելու համար կարդալը բավական է։ Տվյալների հավաքումն ու կառավարումը խառնելը բարդացնում է համաձայնեցումը և ինտեգրման հաճախորդին ավելորդ իրավունքներ տալու վտանգավոր սովորություն է ստեղծում։
Ամեն վերագործարկումից հետո ստուգեք անվանատարածքը
Ինտեգրումը կապեք անվանատարածքի URI-ի և կայուն հանգույցի նույնացուցիչի հետ, ոչ թե միայն ns=2-ի։ OPC UA Part 3-ը NodeId-ն սահմանում է որպես NamespaceIndex-ի, նույնացուցիչի տեսակի և նույնացուցիչի համադրություն։ Թվային ինդեքսը ցույց է տալիս URI-ի դիրքը NamespaceArray-ում, ուստի կազմաձևի թարմացումից հետո սերվերը նույն URI-ին կարող է այլ ինդեքս տալ։
Սա տեսական մանրուք չէ։ Հաճախորդը պահպանում է ns=3;s=Machine/State, նոր տեղեկատվական մոդել տեղադրելուց հետո սերվերը նույն URI-ն դնում է 4-րդ դիրքում, իսկ 3-րդ ինդեքսն արդեն պատկանում է այլ մատակարարի։ Վատ հաճախորդը կարդում է ուրիշ հանգույց կամ սխալ է ստանում։ Լավ հաճախորդը միանալիս կարդում է NamespaceArray-ը, գտնում պահանջվող URI-ն և վերակառուցում NodeId-ն։
Փորձարկման արձանագրությունում յուրաքանչյուր ազդանշանի համար մի պահեք միայն ցուցադրվող անունը։ Քարտեզի նվազագույն տողը այսպիսին է.
asset_id,namespace_uri,identifier_type,identifier,browse_path,data_type,engineering_unit
LATHE-01,urn:plant:cnc,String,Machine/State,Objects/Machine/State,Int32,1
LATHE-01,urn:plant:cnc,String,Production/PartCount,Objects/Machine/Production/PartCount,UInt32,pcs
DisplayName-ը նախատեսված է մարդու համար և կարող է տեղայնացվել։ BrowseName-ը օգնում է ճանապարհ կառուցել, բայց OPC UA Part 3-ը հստակ ասում է, որ այն պարտադիր չէ ամբողջ սերվերում միարժեք նույնացնի հանգույցը։ Ուստի սկզբնական NodeId-ն պահեք URI-ի հետ, իսկ browse path-ն օգտագործեք որոնման և ախտորոշման համար, ոչ թե որպես անվիճելի հիմնական բանալի։
Ստուգումն անցկացրեք չորս փուլով։ Պահպանեք ամբողջ NamespaceArray-ը և ընտրված հանգույցների քարտեզը։ Վերագործարկեք միայն OPC UA սերվերը, ապա ամբողջ հաստոցը կամ դարպասը։ Կրկին դիտեք և համեմատեք URI-ները, տվյալների տեսակները, զանգվածների աստիճաններն ու չափման միավորները։ Եթե սերվերի կազմաձևը թույլ է տալիս, ժամանակավորապես ավելացրեք կամ հեռացրեք երրորդ կողմի անվանատարածք և համոզվեք, որ հաճախորդը կախված չէ ինդեքսի համարից։
Ընդունման չափանիշը խիստ է. յուրաքանչյուր վերագործարկումից հետո բոլոր ընտրված ազդանշանները լուծվում են նույն տրամաբանական թեգերին, իսկ ինդեքսի փոփոխությունը ձեռքով խմբագրում չի պահանջում։ Ցանկացած բացառություն գրանցեք որպես տվյալ հաստոցի մոդելի երկարաժամկետ սահմանափակում, ոչ թե թաքցրեք special_case_2 անունով կոդում։
Աղբյուրի ժամանակը կարևոր է ընդունման ժամանակից
Ցիկլի վերլուծության համար օգտագործեք sourceTimestamp, եթե սերվերն այն ստեղծում է աղբյուրի մոտ, իսկ serverTimestamp-ը պահեք որպես ախտորոշիչ նշում։ OPC UA Part 4-ը դրանք միտումնավոր տարանջատում է. առաջինը ցույց է տալիս արժեքի աղբյուրին վերաբերող պահը, երկրորդը՝ երբ սերվերն արժեքը ստացել է կամ իմացել, որ այն արդիական է։ Մեկը մյուսով փոխարինելը ցանցի ուշացումը դարձնում է արտադրական ցիկլի մաս։
Յուրաքանչյուր հաստոցի վրա կատարեք վերահսկվող անցում։ Փոխեք ռեժիմը կամ գործարկեք կարճ փորձնական ծրագիր, նշեք իրական պահը CNC մատյանում և համեմատեք այն OPC UA-ի երկու ժամանակային նշումների ու կոլեկտորի ընդունման ժամանակի հետ։ Հանգիստ ցանցում կրկնեք առնվազն տասը անցում, ապա ստեղծեք թույլատրելի ցանցային բեռնվածություն։ Միլիվայրկյանի ճշտություն մի պահանջեք, եթե կարգավորիչը փոփոխականը թարմացնում է վայրկյանը մեկ։ Փնտրեք բացատրելի և սահմանափակ տարբերություն։
Փորձից առաջ սերվերը, դարպասը և կոլեկտորը համաժամեցրեք հաստատված ժամանակի աղբյուրի հետ։ Համաժամացման վիճակն ու ժամացույցի շեղումը պահեք արձանագրությունում։ Նշումների կտրուկ տարբերությունը սովորաբար մատնանշում է չհամաժամեցված ժամացույցներ, հավելվածի մակարդակում ժամային գոտու սխալ կամ այն, որ դարպասը ժամանակը հետագայում է ավելացնում։ OPC UA-ն օգտագործում է UTC, տեղական ժամանակի փոխարկումը պետք է կատարվի միայն ցուցադրման պահին։
Դատարկ sourceTimestamp-ը լուռ մի ընդունեք։ Ստանդարտը դատարկ արժեք է թույլ տալիս, երբ աղբյուրը չի կարող ժամանակային նշում տալ։ Այդ դեպքում որոշումը պետք է հստակ լինի. ցուցանիշն օգտագործում է ընդունման ժամանակը, ստանում ավելի լայն շեղման սահման և նշվում որպես ավելի ցածր ճշտություն ունեցող։ Վթարների հաջորդականությունը որոշող դեպքերի համար աղբյուրի նշման բացակայությունը կարող է թեգը մերժելու պատճառ դառնալ։
Ստուգեք ևս երեք իրավիճակ՝ սերվերի ժամացույցի վերագործարկում, արժեքի անցում առանց որակի փոփոխության և նույն արժեքի կրկնություն նոր ժամանակային նշումով։ Եթե հաճախորդը բաժանորդագրվել է միայն արժեքի փոփոխությանը, նոր ժամանակային նշումը կարող է ծանուցում չստեղծել։ OPC UA-ի STATUS_VALUE_TIMESTAMP գործարկիչը հաշվի է առնում որակը, արժեքը և sourceTimestamp-ը, բայց ֆիլտրի աջակցությունն ու աղբյուրի իրական վարքը պետք է փորձարկել։
Յուրաքանչյուր ազդանշանի դասի համար թվային ընդունման պայման գրեք։ Օրինակ՝ վիճակի անցումը պահոց է հասնում աղբյուրի նշումից ոչ ուշ, քան հինգ վայրկյան հետո, իսկ ժամացույցների տարբերությունը չի գերազանցում համաձայնեցված սահմանը։ Իլի արագության, վթարների և օրական հաշվիչի համար մեկ ընդհանուր շեմը սովորաբար թաքցնում է խնդիրը՝ այն սահմանափակելու փոխարեն։
Առանց StatusCode-ի արժեքը տվյալ չէ
Կոլեկտորը պետք է արժեքը, StatusCode-ը և երկու ժամանակային նշումները պահի մեկ գրառման մեջ։ OPC UA Part 4-ը պահանջում է, որ հաճախորդը արդյունքն օգտագործելուց առաջ ստուգի կարգավիճակը. Good-ը նշանակում է օգտագործելի արժեք, Uncertain-ը զգուշություն է պահանջում, իսկ Bad-ը արժեքը դարձնում է անօգտագործելի։ Միայն թիվը պահող բազան ջնջում է սերվերի ամենակարևոր նախազգուշացումը։
Կազմեք որակի փորձարկման աղյուսակ։ Յուրաքանչյուր ընտրված հանգույցի համար անվտանգ կերպով անջատեք կամ նմանակեք իրական աղբյուրի անհասանելիությունը. խզեք դարպասի կապը կարգավորիչի հետ, հանեք փորձնական հանգույցի ընթերցման թույլտվությունը կամ կանգնեցրեք փորձնական դրայվերը։ Գրանցեք ստացված կոդը, վերջին արժեքի առկայությունը և այն, թե վերլուծական համակարգը ինչպես է այն մշակել։ Գեղեցիկ հաշվետվության համար մի անջատեք աշխատող սենսորը։
Ճիշտ քաղաքականությունը կախված է ցուցանիշից։ Հաստոցի վիճակի համար Bad_NoCommunication-ը չի նշանակում «հաստոցը կանգնած է»։ Դա գիտելիքի բացակայություն է, ուստի ժամանակային միջակայքը պետք է անհայտ դառնա։ Uncertain_LastUsableValue-ը կարելի է ցույց տալ օպերատորին իր տարիքով, բայց առանց նշման այն չի կարելի ներառել ցիկլի տևողության հաշվարկում։ Overflow բիթով լավ արժեքը հայտնում է, որ հերթը փոփոխություններ է կորցրել, նույնիսկ եթե վերջին թիվը վստահելի է թվում։
Ընդունման համար օգտակար է այսպիսի պարզ գրառում.
{
"assetId": "LATHE-01",
"tag": "Machine/State",
"value": 3,
"statusCode": "Good",
"sourceTimestamp": "2026-07-26T08:14:31.420Z",
"serverTimestamp": "2026-07-26T08:14:31.428Z",
"receivedAt": "2026-07-26T08:14:31.451Z"
}
Հաշվետվությունը պետք է հստակ ցույց տա անհայտ միջակայքը։ Եթե գրաֆիկը խզումից առաջ լավ արժեքը ուղիղ գծով միացնում է խզումից հետո լավ արժեքին, օգտատերը տեսնում է հորինված անընդհատություն։ Եթե համակարգն ինքնաբերաբար զրո է դնում, կապի խափանումը դարձնում է սարքավորման պարապուրդ։ Այս իմաստային թերությունը թանկ է, քանի որ սովորական վահանակում այն հազվադեպ են նկատում։
Փուլն ընդունվում է, երբ յուրաքանչյուր վատ ու անորոշ կարգավիճակի համար սահմանված է պահպանման, հաշվարկման և ցուցադրման վարքը։ Չմշակված կոդը առաջին փուլում ընդունելի է, եթե այն պահպանվում է անփոփոխ և լռելյայն լավ արժեքի չի վերածվում։
Բաժանորդագրության հաճախականությունը հաստոցի թարմացման հաճախականությունը չէ
Պահանջված sampling interval-ը չի ստիպում կարգավորիչին տվյալներն ավելի արագ թարմացնել։ OPC UA Part 4-ը sampling interval-ը նկարագրում է որպես սերվերի հնարավոր լավագույն ցիկլ և առանձին նշում, որ հիմքում ընկած աղբյուրը կարող է ավելի դանդաղ թարմացվել։ Հաճախորդը պետք է կարդա սերվերի վերադարձած revisedSamplingInterval, revisedPublishingInterval և revisedQueueSize արժեքները, ոչ թե հարցումը խոստում համարի։
Յուրաքանչյուր թեգի համար գրեք չորս մեծություն՝ ֆիզիկական փոփոխության սպասվող հաճախականությունը, պահանջված sampling interval-ը, սերվերի համաձայնեցրած միջակայքը և բաժանորդագրության publishing interval-ը։ Ապա փորձնական ազդանշանը փոխեք այդ սահմաններից արագ և դանդաղ։ Հաշվեք ծանուցումները, հաջորդականության համարները և դրանց միջև ժամանակը։ Այդպես պարզ կդառնա՝ սերվերը հավաքում է ամեն փոփոխություն, միայն վերջին վիճակը, թե պարբերական նմուշներ։
1 չափով հերթը հարմար է ընթացիկ ջերմաստիճանի կամ ռեժիմի համար, երբ պետք է միայն ամենաթարմ պատկերը։ Այն հարմար չէ հաշվիչի կարճ իմպուլսների կամ անցումների շարքի համար, որտեղ մեկ կորած փոփոխությունը փոխում է իմաստը։ OPC UA Part 4-ը նշում է, որ 1-ից մեծ հերթի լցվելու դեպքում սերվերը դնում է Overflow բիթը։ Հաճախորդը պետք է պահի այն և ախտորոշիչ դեպք ստեղծի։
Deadband կիրառեք միայն այն անալոգային արժեքների համար, որոնց փոքր փոփոխությունը արտադրական իմաստ չունի։ Տոկոսային deadband մի դրեք հաշվիչների, վիճակների և վթարային կոդերի վրա։ Տոկոս սահմանելուց առաջ ստուգեք չափման միավորն ու միջակայքը. սխալ միջակայքը ողջամիտ շեմը դարձնում է իրական փոփոխությունները թաքցնող ֆիլտր։
Փորձարկման բեռնվածության ստուգումը պետք է սահմանափակ, բայց ազնիվ լինի։ Բաժանորդագրվեք երեք հաստոցների ընտրված ամբողջ հավաքածուին, սահմանեք սովորական հրապարակման հաճախականությունը և կապը պահեք ոչ թե մի քանի րոպե, այլ արտադրական ամբողջ ցիկլի ու ռեժիմի փոփոխության ընթացքում։ Հետևեք CNC-ի, դարպասի և կոլեկտորի բեռնվածությանը, ուշ հրապարակումներին, լցված հերթերին ու անջատումներին։ Փորձարկումը չպետք է վատացնի հաստոցի աշխատանքը։
Ընդունումը պահանջում է ոչ թե առավելագույն հաճախականություն, այլ ապացուցված բավարար հաճախականություն։ Յուրաքանչյուր ցուցանիշի համար գրեք, թե ընտրված կարգավորումներով որ անցումները կարող են բաց թողնվել և ինչու է դա ընդունելի։ Եթե չի կարելի կորցնել ոչ մի իմպուլս, ընթացիկ արժեքի սովորական բաժանորդագրությունը կարող է սխալ աղբյուր լինել. պետք է կուտակային հաշվիչ, հերթով դեպք կամ կարգավորիչի այլ մեխանիզմ։
Վկայագրերը ստուգեք երկու ուղղությամբ
Պաշտպանված կապը սկսվում է հավելվածների փոխադարձ վստահությունից, ոչ թե նշված SignAndEncrypt վանդակից։ OPC UA Part 4-ը նկարագրում է վստահելի վկայագրերի և թողարկողների վկայագրերի առանձին ցուցակներ։ Հաճախորդը ստուգում է սերվերը, սերվերը՝ հաճախորդին, իսկ վավեր շղթան ինքնին վստահություն չի տալիս, մինչև ադմինիստրատորը պահանջվող վկայագիրը կամ հավաստագրման կենտրոնը չավելացնի TrustList-ում։
Փորձարկման ընթացքում կոլեկտորին տվեք առանձին հավելվածային վկայագիր։ Մի պատճենեք նույն փակ բանալին ինժեների նոթբուքում, սերվերում և ապագա արդյունաբերական կոլեկտորում։ Գրանցեք ApplicationUri-ն, DNS անունները կամ IP հասցեները, վավերության ժամկետը, մատնահետքը, թողարկողին, փակ բանալու տեղը և թարմացման պատասխանատուին։ Փակ բանալին չպետք է հայտնվի հաշվետվությունում կամ ընդհանուր ցանցային պանակում։
Ստուգեք հաջող և ձախողվող ուղիները։ Երկու կողմում վստահություն հաստատեք և միացեք ընտրված անվտանգության քաղաքականությամբ։ Ապա մեկ փորձնական սերվերի վստահելի ցուցակից հեռացրեք հաճախորդի վկայագիրը. կապը պետք է ավարտվի վերահսկվող սխալով, ոչ թե աննկատ անցնի None ռեժիմի։ Վերականգնեք վստահությունը, փոխեք հանգույցի անունը միացման հասցեում և հաստատեք, որ սերվերի անունը ստուգվում է։
Սպեցիֆիկացիան պահանջում է ստուգել վավերության ժամկետը, հոսթի անունը, հավելվածի URI-ն, բանալու նշանակությունը, ստորագրությունը և վստահության շղթան։ Յուրաքանչյուր ստուգման արդյունքը պահեք փորձարկման արձանագրությունում։ Հաճախ են հանդիպում մինչև DNS-ի կարգավորումը ստեղծված վկայագրեր և այնքան հետ մնացած հաստոցային ժամացույցներ, որ նոր վկայագիրը դեռ անվավեր է թվում։
Գործարկումից հետո մի թողեք ցանկացած վկայագրի ավտոմատ ընդունումը։ Այս ռեժիմը տարածված է, քանի որ լաբորատորիայում հարմար է, բայց այն վերացնում է հավելվածի ինքնության ստուգումը։ Ճիշտ ավտոմատացումը տարածում է նախապես հաստատված վստահությունը կամ օգտագործում կառավարվող հավաստագրման կենտրոն. այն rejected պանակի յուրաքանչյուր ֆայլ ավտոմատ չի ընդունում։
Մասշտաբավորումից առաջ մեկ հաստոցի վրա փորձեք վկայագրի թարմացումը։ Հին ու նոր վկայագրերին կարող է անհրաժեշտ լինել կարճ համընկնող ժամանակահատված։ Չափեք պարապուրդը, ստուգեք հետադարձումը և ժամկետի ավարտից առաջ նախազգուշացում սահմանեք։ Այսօր աշխատող վկայագիրը դեռ չի ապացուցում, որ նրա կյանքի ցիկլը կառավարվում է։
Մուտքի դերերը պետք է արգելեն ավելորդ իրավունքները
Ինտեգրման հաճախորդին տվեք առանձին հաշիվ կամ ինքնություն՝ միայն համաձայնեցված հանգույցները կարդալու իրավունքով։ Անանուն մուտքը անհատական պատասխանատվություն չի տալիս, իսկ ընդհանուր ինժեներական հաշիվը թույլ չի տալիս մեկ հաճախորդի մուտքը չեղարկել առանց մյուսներին կանգնեցնելու։ Ավելորդ իրավունքները ավելորդ են մնում նաև պաշտպանված ալիքում։
OPC UA Part 18-ը տարանջատում է նույնականացումն ու թույլտվությունը. սերվերը նախ որոշում է հաճախորդին ու օգտատիրոջը, ապա դերի իրավունքները սահմանում են հասանելի հանգույցներն ու գործողությունները։ Սակայն սերվերը կարող է իրականացնել դերային մոդելի միայն մի մասը։ Հաճելի անունով դերը չի ապացուցում, որ սահմանափակումները գործում են։
Կազմեք փորձարկման մատրիցա առնվազն երեք ինքնության համար՝ ինտեգրման ընթերցող, կարգաբերման ինժեներ և անհայտ կամ անանուն օգտատեր։ Յուրաքանչյուրի համար ստուգեք Browse, Read, Write, Call և ախտորոշիչ հանգույցների հասանելիությունը։ Ինտեգրման ընթերցողը պետք է տեսնի ու կարդա անհրաժեշտ հավաքածուն, բայց գրելիս և մեթոդ կանչելիս ստանա Bad_UserAccessDenied։ Անհայտ հաճախորդը չպետք է արտադրական տվյալներ ստանա միայն endpoint-ը իմանալու պատճառով։
Կա մի անհարմար դեպք. սերվերը թույլ է տալիս Browse ամբողջ ծառի համար, բայց արգելում է Read արժեքների համար։ Սա կարող է բացահայտել ծրագրերի, բաղադրատոմսերի, գործիքների անունները և սարքավորման կառուցվածքը։ Արտադրության պատասխանատուի հետ որոշեք՝ նման տեսանելիությունն ընդունելի է, թե ոչ։ Կառուցվածքը տեսնելու և արժեքը կարդալու իրավունքներն առանձին ստուգեք։
Մուտքի տվյալները մի պահեք բաց կազմաձևման ֆայլում կամ նոթբուքի նախագծի պատճենում։ Փորձարկումը պետք է ապացուցի, որ կոլեկտորը գաղտնիքը վերցնում է պաշտպանված պահոցից, աջակցում է փոխարինմանը առանց վերակազմման և այն չի գրում մատյանում։ Ապա փոխեք գաղտնաբառը կամ օգտատիրոջ վկայագիրը և համոզվեք, որ հին տվյալն այլևս չի աշխատում։
Փուլն ընդունվում է, երբ մատրիցան կրկնելի է և յուրաքանչյուր արգելք հաստատվում է փաստացի կարգավիճակի կոդով։ Միայն հաջող ընթերցումը ստուգելը քիչ է։ Պաշտպանությունը տեսանելի է դառնում, երբ արգելված գործողությունը վստահորեն չի կատարվում։
Կապը միտումնավոր խզեք
Վերականգնումը ստուգեք տարբեր տևողությամբ կառավարվող խզումներով, քանի որ մալուխի կարճ ընդհատումը և սերվերի վերագործարկումը ազդում են OPC UA-ի տարբեր շերտերի վրա։ Հաճախորդը նախ պետք է բացի նոր SecureChannel և ակտիվացնի նախկին Session-ը։ Եթե նստաշրջանը կորել է, այն ստեղծում է նորը և փորձում տեղափոխել բաժանորդագրությունները, իսկ անհնար լինելու դեպքում դրանք նորից է ստեղծում։
OPC UA Part 4-ը խորհուրդ է տալիս կապը վերահսկել բաժանորդագրության keep-alive հաղորդագրություններով։ Վերականգնումից հետո հաճախորդը հաջորդականության համարների և Republish-ի միջոցով պահանջում է բաց թողնված հաղորդագրությունները։ Եթե հաղորդագրությունները հերթում այլևս չկան, հաճախորդը պետք է հստակ գրանցի բացը, կարդա ընթացիկ արժեքները և ամբողջական պատմություն չխոստանա։
Կատարեք հետևյալ փորձերը.
- Ցանցը արգելափակեք 5-10 վայրկյան՝ առանց սերվերը կանգնեցնելու, ապա վերականգնեք մուտքը։
- Եթե սերվերն աջակցում է, խզումը կրկնեք նստաշրջանի կյանքից երկար, բայց բաժանորդագրության կյանքի սահմաններում։
- Վերագործարկեք OPC UA սերվերը, մինչ հաստոցը շարունակում է աշխատել։
- Համաձայնեցված կարգով վերագործարկեք դարպասը կամ հաստոցը։
- Կանգնեցրեք կոլեկտորը, փոխեք մի քանի փորձնական արժեք և կրկին գործարկեք։
Յուրաքանչյուր փորձի համար պահեք խզումից առաջ վերջին հաղորդագրության ժամանակը, դրանից հետո առաջին հաղորդագրությունը, հաջորդականության համարները, Republish-ի արդյունքը, վերաստեղծված բաժանորդագրությունների քանակը և անհայտ միջակայքի տևողությունը։ Եթե հերթը լցվել է, փնտրեք Overflow բիթը։ Եթե հաճախորդը բաց է թողել համարը և դեպք չի ստեղծել, փորձը ձախողված է, նույնիսկ եթե ընթացիկ արժեքները վերադարձել են։
Մի պահանջեք անհնարինը։ Սովորական բաժանորդագրությունը մեկ օր կապի բացակայության դեպքում պատմության անսահման պահպանում չի երաշխավորում։ Part 4-ը հստակ նշում է, որ հուսալի առաքումը կախված է բաժանորդագրության կյանքից և հերթերի չափից։ Բիզնեսը պետք է ընտրի սահմանը. կարճ խզումները վերականգնվում են առանց կորստի, երկարերը գրանցված բաց են ստեղծում և սկսում կուտակային հաշվիչների համադրումը։
Ստուգեք վերականգնման ալիքը։ Երեք հաստոցի միաժամանակ վերադարձը չպետք է հաճախորդին ստիպի անվերջ վերաստեղծել բաժանորդագրությունները կամ արագ փորձերով ծանրաբեռնել սերվերը։ Կրկնափորձի միջակայքը պետք է աճի մինչև սահմանված շեմ, փոքր-ինչ տատանվի և հաջող միացումից հետո վերադառնա սկզբնական արժեքին։ Ճշգրիտ արժեքները կախված են ցանցից ու սերվերից, ուստի դրանք որոշեք փորձարկման ժամանակ։
Թեգի իմաստը ստուգեք հաստոցի մոտ
Ճիշտ NodeId-ն դեռ չի ապացուցում արտադրական ճիշտ իմաստը։ CycleActive անունով ազդանշանը կարող է միանալ ձեռքի ռեժիմում, ակտիվ մնալ դադարի ժամանակ կամ անհետանալ դուռը բացելիս։ Այս իմաստը հնարավոր չէ ստանալ արձանագրությունից. այն ստուգվում է դիտարկմամբ և CNC մատյանով։
Յուրաքանչյուր հաշվարկվող ցուցանիշի համար տեխնոլոգի կամ կարգաբերման ինժեների հետ կարճ սցենար անցկացրեք։ Գործարկեք ավտոմատ ցիկլը, դադար տվեք, ստեղծեք թույլատրելի փորձնական վթար, զրոյացրեք այն, պատրաստեք դետալ և փոխեք ծրագիրը։ Համեմատեք ֆիզիկական դեպքերը, CNC էկրանը, OPC UA հում արժեքները և համակարգի վերջնական վիճակը։ Ժամանակն ու պատասխանատու անձին գրանցեք արձանագրությունում։
Սահմանումները պետք է հստակ լինեն։ «Աշխատում է» կարող է նշանակել կառավարման ծրագրի կատարում, առանցքների շարժում, իլի պտույտ կամ դետալի արտադրություն։ Որոշակի ցուցանիշի համար ընտրեք մեկ սահմանում և թվարկեք դրա սկզբնական պայմանները։ Եթե CNC մոդելը միայն մոտավոր տվյալ է տալիս, այն մոտավոր անվանեք և չեղած ճշտություն մի խոստացեք։
Հատուկ ուշադրություն դարձրեք հաշվիչներին։ Պարզեք, թե երբ են դրանք ավելանում, ով կարող է զրոյացնել, պահպանվում են արդյոք վերագործարկումից հետո, կարող է արդյոք տվյալների տեսակը լցվել և հաշվում են արդյոք խոտանը։ Վերահսկվող խմբաքանակի աճը համեմատեք փաստացի քանակի հետ։ Եթե ծրագիրը փոխելիս հաշվիչը զրոյանում է, պահոցը պետք է ճանաչի զրոյացումը և դա չներկայացնի որպես բացասական արտադրություն։
Վթարային և տեքստային դաշտերը ստուգեք կոդավորման, լեզվի և կոդերի կայունության համար։ Հաղորդագրության տեքստը հարմար է օպերատորին, բայց մատակարարը կարող է թարմացումից հետո ձևակերպումը փոխել։ Վերլուծության համար նախընտրելի է կայուն կոդն ու տեղայնացված տեքստը, եթե սերվերը հրապարակում է երկուսն էլ։ Տեքստի հեշից սեփական կոդ մի ստեղծեք. թարգմանության փոքր խմբագրումը նույն վթարը նոր տեսակ կդարձնի։
Փորձարկումը պետք է միասին ընդունեն արտադրության, ավտոմատացման և տվյալների պատասխանատուները։ Մեկը հաստատում է ֆիզիկական իմաստը, մյուսը՝ ստացման կայունությունը, երրորդը՝ պահպանման ու հաշվարկի կանոնները։ Նրանց համատեղ հաստատումը կանխում է մեկ ամիս անց վեճը, երբ գեղեցիկ հաշվետվությունը չի համընկնում հերթափոխի մատյանի հետ։
Մասշտաբավորման որոշումը կայացրեք թերությունների հիման վրա
Մասշտաբավորեք միայն այն ժամանակ, երբ յուրաքանչյուր չափանիշ ունի ապացույց, իսկ բաց թերությունների ազդեցությունը հայտնի է և պատասխանատուն նշանակված է։ Հաջող կարդացված թեգերի տոկոսը միայնակ անօգուտ է. մեկ բացակայող որակի ազդանշանը կարող է բոլոր հաշվարկները ավելի շատ փչացնել, քան տասը բացակայող դեկորատիվ պարամետր։
Արդյունքները հավաքեք մեկ ընդունման աղյուսակում։ Յուրաքանչյուր պահանջի համար նշեք հաստոցը, տարբերակը, փորձը, սպասվող ու փաստացի արդյունքը, տեղական ապացույցի ֆայլը, կարգավիճակը և թերության պատասխանատուին։ Որոշման դասերը պարզ են՝ ընդունված է, ընդունված է սահմանափակմամբ, կրկնակի փորձ է պետք, արգելափակում է մասշտաբավորումը։ Անորոշությունը մի թաքցրեք «գրեթե պատրաստ է» կարգավիճակի տակ։
Անկայուն նույնացուցիչները, չտարբերակվող վատ տվյալները, կարճ խզումից վերականգնման չապացուցված լինելը, վկայագրերի ավտոմատ վստահությունը և կոլեկտորի հաշվի գրելու իրավունքը պետք է արգելափակեն մասշտաբավորումը։ Ոչ պարտադիր ախտորոշիչ թեգի ոչ ճշգրիտ նկարագրությունը կարելի է հետո ուղղել։ Առանձնացրեք ճարտարապետական թերությունները կատալոգային թերություններից։
Արտադրամասի միացումը կազմակերպեք ալիքներով՝ ըստ նույն CNC և սերվերի կազմաձևի։ Նախ միացրեք փոքր խումբ, կրկնեք ընդունման կրճատված փորձերը և համեմատեք փորձարկման հետ։ Ապա ընդլայնեք ալիքը։ Նույնիսկ նույնական հաստոցի մոդելները կարող են ունենալ ծրագրային տարբեր տարբերակ, արտոնագիր կամ տեղական կազմաձև, ուստի միացումից առաջ գույքագրումը պարտադիր է։
Փորձարկման փաթեթը պետք է թույլ տա վերականգնել վստահությունը, հաշիվը, բաժանորդագրություններն ու հանգույցների քարտեզը՝ առանց մեկ ինտեգրատորի հիշողությանը ապավինելու։ EAST CNC-ն մատակարարում է հաստոցներ և ուղեկցում ընտրությունը, գործարկումն ու սպասարկումը. նոր նախագծում նպատակահարմար է հեռաչափության պահանջները գրանցել սարքավորման կազմավորման և ընդունման փուլում։
Տարածումից առաջ սահմանեք ընդունված կազմաձևի փոփոխման կանոնները։ CNC-ի, դարպասի կամ հաճախորդի ծրագրի թարմացումը, վկայագրի փոխարինումը, տեղեկատվական մոդելի խմբագրումը և ցանցային անվան փոփոխությունը պետք է գործարկեն համապատասխան կրկնափորձը։ Ամեն անգամ ամբողջ փորձարկումը կրկնելու կարիք չկա, բայց անվանատարածքի փոփոխությունը պահանջում է հանգույցների քարտեզի ստուգում, սերվերի նոր տարբերակը՝ բաժանորդագրության ու վերականգնման փորձ, իսկ անվտանգության քաղաքականության փոփոխությունը՝ վստահության ու դերերի ստուգում։ Այս կապերը գրեք ընդունման աղյուսակում, այլապես փաթեթը առաջին սպասարկումից հետո կհնանա։
Ապացույցներն էլ կարգապահություն են պահանջում։ Էկրանի պատկերը ցույց է տալիս մեկ հաջող պահ, բայց վատ է ապացուցում դեպքերի հաջորդականությունը։ Ժամանակի և վերականգնման համար պահեք մեքենայով ընթերցվող մատյան՝ UTC նշումներով, հաջորդականության համարներով ու կարգավիճակներով, մուտքի համար՝ հարցումը, ինքնությունը և մերժման կոդը, վկայագրերի համար՝ բաց տվյալներն ու ստուգման արդյունքը առանց փակ բանալու։ Ֆայլերն անվանեք ըստ հաստոցի, փորձի և ժամանակի։
Առաջին ալիքից առաջ համաձայնեցրեք, թե ով է շեղման դեպքում կանգնեցնում միացումը։ Ավտոմատացման ինժեները պետք է իրավունք ունենա կանգնեցնել փորձը, եթե կարգավորիչի բեռնվածությունն աճում է, տեխնոլոգը ընտրում է անվտանգ միջամտության պահը, ցանցային ինժեները վերահսկում է հատվածի փոփոխությունները, իսկ տվյալների պատասխանատուն որոշում է՝ բացն ընդունելի է, թե ոչ։ Այս կարգը թույլ չի տալիս, որ տեխնիկապես հաջող հավաքումը խանգարի արտադրությանը կամ հարմար հաշվետվությունն ընդունվի աղբյուրի վատ որակի պայմաններում։
Վերջին ստուգումը OPC UA հաճախորդի էկրանին չի կատարվում։ Կանգնեցրեք փորձնական հաշվետվությունը, մաքուր միջավայրում վերականգնեք այն պահպանված կազմաձևից և կրկնեք երեք հաստոցից ընթերցումը։ Եթե պետք են չգրանցված մարդկային քայլեր, փորձարկումն ավարտված չէ։ Մասշտաբավորեք միայն այն գործընթացը, որը թիմը կարող է կրկնել և որի խափանումը կարող է ճանաչել։
FAQ
Ինչու է երեք հաստոցը բավարար OPC UA փորձարկման համար։
Երեքը բավարար է, եթե ներկայացնում են սովորական, ամենահին և ամենաբարդ կազմաձևերը։ Երեք նույնական հաստոցը ստուգում է միայն մեկ բարենպաստ դեպք և մասշտաբավորումից առաջ կեղծ վստահություն է տալիս։
Որ թեգերը ներառել առաջին OPC UA փորձարկման մեջ։
Ընտրեք վիճակը, դետալների քանակը, ռեժիմը, վթարը, տեքստային պատճառը և արագ փոփոխվող ազդանշանը։ Ավելացրեք արժեք, որը կարելի է անվտանգ անհասանելի դարձնել՝ `StatusCode`-ն ու տվյալների կորստի ժամանակ հաշվետվության վարքը ստուգելու համար։
Կարելի՞ է թեգի արժեքը պահել առանց StatusCode-ի։
Ոչ, քանի որ վատ արժեքը կարող է սովորական զրո կամ հին թիվ թվալ։ Արժեքը, `StatusCode`, `sourceTimestamp`, `serverTimestamp` և ընդունման ժամանակը պահեք մեկ գրառման մեջ։
Կարգավորման մեջ օգտագործե՞լ NodeId, թե browse path։
NodeId-ն պահեք անվանատարածքի URI-ի հետ, իսկ browse path-ն օգտագործեք որոնման ու ախտորոշման համար։ Թվային namespace index-ը կայուն չէ, իսկ մեկ BrowseName-ը չի երաշխավորում հանգույցի եզակիությունը։
Որ ժամանակային նշումն է պետք ցիկլի հաշվարկի համար։
Նախընտրեք `sourceTimestamp`, եթե այն ստեղծում է աղբյուրը և ժամացույցները համաժամեցված են։ Սերվերի ու ընդունման ժամանակն օգնում են ուշացումը վերլուծել, բայց դրանցով աղբյուրի նշումը փոխարինելը խեղաթյուրում է գործընթացի տևողությունը։
Ինչ sampling interval սահմանել հաստոցի համար։
Ընտրեք ամենակարճ իմաստալից ազդանշանի տևողությունից և ստուգեք սերվերի վերադարձրած արժեքը։ Ավելի հաճախ հարցումը չի արագացնում կարգավորիչը և կարող է ավելորդ բեռ ստեղծել։
Պե՞տք է SignAndEncrypt արտադրամասի ցանցում։
Այո, եթե չկա փաստաթղթավորված բացառություն և փոխհատուցող պաշտպանություն։ Արտադրամասի ցանցը չի վերացնում հաճախորդի կեղծումը, բաժանման սխալը կամ կապալառուի մուտքը, իսկ առանց վկայագրերի ստուգման ռեժիմը չի հաստատում հավելվածի ինքնությունը։
Ինչպես ստուգել OPC UA հաշվի իրավունքները։
Թույլատրված հանգույցներում ստուգեք հաջող Browse և Read գործողությունները, ապա միտումնավոր կատարեք Write և Call։ Սերվերը պետք է մերժի դրանք, իսկ անհայտ ինքնությունը չպետք է արտադրական արժեքներ կարդա։
Կվերականգնի՞ OPC UA-ն բոլոր տվյալները խզումից հետո։
Միայն եթե նստաշրջանը կամ բաժանորդագրությունը դեռ ապրում է, իսկ հերթերը պահել են հաղորդագրությունները։ Ավելի երկար խզման դեպքում գրանցեք բացը, կարդացեք ընթացիկ արժեքները և համադրեք կուտակային հաշվիչները։
Երբ է փորձարկումը պատրաստ ամբողջ արտադրամասի համար։
Երբ անցել են անվանատարածքի, ժամանակի, որակի, բեռնվածության, վկայագրերի, դերերի և վերականգնման չափանիշները։ Մնացած յուրաքանչյուր թերություն պետք է ունենա սահմանափակ ազդեցություն, պատասխանատու և ժամկետ, իսկ տեղադրումը պետք է կրկնվի պահպանված նյութերից։
