Aktuální vydání

celé číslo

08

2022

MSV 2022

Projektování, konstruování a programování automatizačních a řídicích systémů

celé číslo

Novinky v TwinCAT – build 4024

TwinCAT je real-time riadiací systém od spoločnosti Beckhoff, ktorý bol uvedený na trh v roku 1996. Odvtedy prešiel značným vývojom. Poslednú veľkú zmenu predstavuje jeho aktualizácia build 4024, ktorá priniesla do systému TwinCAT verzie 3.1 mnoho nových funkcií. Tento článok predstavuje niektoré z nich.

 Multiužívateľské prostredie (Multiuser)

V súčasnej dobe je bežnou praxou, že na vývoji a ladení softvéru pre jedno zariadenie súčasne pracujú tímy programátorov. To ale prináša nové výzvy hlavne počas fázy oživovania stroja, akými sú prístup k zdrojovému kódu pre viacerých užívateľov, rozdiel medzi aktuálnou (aktívnou) verziou softvéru na zariadení a lokálnou verziou uloženou u vývojárov a rovnako možnosť vrátenia zmien, ktoré zapríčinili chybnú funkciu alebo nefunk­čnosť zariadenia.

Všetky popísané body rieši nová funkcia Multiuser, ktorá bola plne integrovaná do systému TwinCAT (obr. 1). Tá zavádza lokálnu správu verzií zdrojového kódu (Source Control System) v cieľovom zariadení.

Táto funkcia predovšetkým uľahčuje spoluprácu viacerých programátorov pracujúcich spolu na rovnakom projekte PLC. Ak je niekoľko projektov PLC integrovaných v jednom projekte TwinCAT, môže byť funkcia Multiuser nastavená separátne pre každý projekt PLC. V takomto prípade sú automaticky vytvorené separátne repozitáre pre každý projekt PLC na lokálnom (vývojovom) aj na cieľovom zariadení. 

Správa variant (Variant Management)

Funkcia Variant Management podporuje uvedenie do prevádzky a obsluhu zariadení, ktoré majú rozličné varianty. Rozdelenie variant stroja do samostatných projektov TwinCAT by viedlo k zbytočnej spotrebe úložiska vzhľadom na veľké prekrývanie konfigurácie, navyše práca s viacerými projektmi by bola nekomfortná.

Nastavenia, u ktorých sa líšia hodnoty pre rozličné varianty, môžu byť spravované pomocou tzv. projektových variant v rámci jedného projektu TwinCAT. K prepínaniu medzi rôznymi variantmi je určený nový nástroj TwinCAT XAE Project Variants (obr. 2). 

Prostredie PLC

Najpočetnejšie zmeny nastali v samotnom prostredí pre písanie aplikácie logického riadenia – kódu PLC. Prvou takou zmenou je možnosť prístupu z I/O zariadenia na premennú v programe PLC, ktorá je na dané I/O zariadenie namapovaná (obr. 3). Doposiaľ bolo možné sa cez príkaz Go To Link Varia­ble dostať z I/O zariadenia na prevádzkové dáta PLC. Teraz je možné pomocou príkazu Go To Definition prejsť až na samotnú premennú v programe PLC.

Zatiaľ bolo možné pre odchytávanie výnimiek používať funkcie pre implicitnú kontrolu, tzv. POUs for implicit checks. Mimo túto možnosť sa zaviedol nový mechanizmus pomocou kľúčových slov __TRY, __CATCH(__SYSTEM.ExceptionCode), __FINALLY, __ENDTRY.

Použitie týchto kľúčových slov je nasledovné:

  • __TRY <try_statements>
  • __CATCH(SYSTEM.ExceptionCode)<catch_statements>
  • __FINALLY <finally_statements>
  • __ENDTRY <further_statements>

Za kľúčové slovo __TRY sa vloží kontrolovaný kód. Keď v ňom nastane výnimka, prestane sa v mieste vzniku výnimky vykonávať a začne sa vykonávať kód, ktorý je vložený za kľúčovým slovom __CATCH. Tento kód by mal ošetriť vzniknutú situáciu. Typ výnimky je pritom daný v premennej SYSTEM.Excep­tionCode. Kód, ktorý sa nachádza za kľúčovým slovom __FINALLY, sa vykoná vždy, bez ohľadu na to, či nastala alebo nenastala výnimka.

Do kľúčových slov pribudol aj výraz ABSTRACT, ktorý povoľuje implementáciu projektu PLC s úrovňami abstrakcie. Abstrakcia patrí koncepčne do objektovo orientovaného programovania a je dostupná pre funkčné bloky, metódy a vlastnosti.

Medzi pragmy (pragma je špeciálna inštrukcia vo zdrojovom kóde aplikácie, ktorá ovplyvňuje vlastnosti jednej nebo niekoľkých premenných s ohľadom na prekompiláciu alebo kompiláciu) bola zaradená nová pragma {attribute ‚to_string‘}, ktorá má vplyv na konverziu enumu (enumeration; premenná, číselná hodnota, ktorú vyjadruje slovný popis) do textového reťazca (string). Pri jej použití sa pri tejto konverzii nevráti celočíselná hodnota, ktorá predstavuje aktuálnu hodnotu enumu, ale vráti sa textový reťazec, ktorým je daná hodnota enumu pomenovaná.

Obnovou prešlo aj samotné vývojové prostredie, ktoré sa nazýva TcXaeShell, a ide o izolovanú verziu prostredia Microsoft Visual Studio Shell 2017. Jednou z mnohých noviniek je kanál RSS, ktorý ponúka správy oaktualizáciách samotného TwinCAT runtime, ako aj o jeho doplnkových funkciách.

Ďalšou novou funkciou je možnosť rezervácie pamäte pre funkčný blok. Takto rezervovaná pamäť bude slúžiť pre alokáciu nových premenných funkčného bloku počas online zmeny (online change), pričom sa jednak zrýchli vykonanie samotnej zmeny, jednak sa zamedzí posunu pamäte funkčného bloku na nové miesto (obr. 4). 

Synchronizácia časov

Zber dát z výrobných zariadení je v súčasnosti aktuálna téma. Pri použití viacerých zariadení v rozsiahlych systémoch sa často požaduje, aby získané údaje mali vzájomne synchronizované časové pečiatky.

Popri už existujúcich spôsoboch synchronizácie času v TwinCAT pribudla ďalšia možnosť. Tá sa koncepčne skladá z dvoch častí:

Time Provider je zdroj referenčných hodín, ktorý môže byť založený napr. na NTP (Network Time Protocol), PTP (Precision Time Protocol, viď IEEE 1588) a ďalších protokoloch pre synchronizáciu času. Tento provider v TwinCAT runtime porovná hodnotu referenčných hodín a lokálnych systémových hodín a na základe ich hodnôt spočíta časový posun, s ktorým bude pracovať Time Consumer.

Time Consumer predstavuje komponent TwinCAT schopný upraviť lokálny systémový čas pomocou vygenerovaného časového posunu, ktorý mu poskytuje Time Provider (obr. 5).

Pri tomto spôsobe synchronizácie nedochádza k samotnej korekcii lokálnych systémových hodín, generuje sa len časový posun, s ktorým pracuje Time Consumer.

Ďalšími funkciami, ktoré ponúka nový build 4024, sú možnosť šifrovanej komunikácie prostredníctvom rozhrania ADS (Automation Device Specification), pričom takýto kanál sa šifruje pomocou protokolu TLS v 1.2, ďalej podpora TE1010 Realtime Monitor, ktorá slúži na monitorovanie vykonávania kódu v runtime systéme, podpora nových analytických nástrojov TwinCAT Analytics, podpora softvéru pre spracovanie obrazu TwinCAT Vi­sion a mnohé ďalšie.

Viac informácií môžu čitatelia nájsť na https://www.beckhoff.com/, popr. sa môžu obrátiť na pracovníkov pobočky spoločnosti Beckhoff pre Českú republiku a Slovenskú republiku v Brne (info@beckhoff.cz). 

(Beckhoff Automation s. r. o.)

Obr. 1. Koncept funkcie Multiuser – prístup viacerých programátorov k cieľovému zariadeniu

Obr. 2. Panel nástrojov TwinCAT XAE Project Variants je určený pre jednoduchú zmenu varianty zariadenia

Obr. 3. Prepojenie I/O zariadenia s editorom kódu PLC

Obr. 4. Ukážka funkcie Online Change Memory Reserve – rezervácia pamäte pre nové premenné počas online zmeny

Obr. 5. Synchronizácia časových pečiatok zozbieraných dát