Článek ve formátu PDF je možné stáhnout
zde.
Článek popisuje možnosti vývoje aplikací v prostředí TwinCAT engineering a jejich spouštění v TwinCAT runtime zvláště s ohledem na splnění požadavků práce v reálném čase.
Společnost Beckhoff dodává již od roku 1986 řídicí systémy pro průmyslovou výrobu založené na platformě PC. Tuto platformu tvoří průmyslové počítače Beckhoff, rychlá sběrnice EtherCAT a software TwinCAT (The Windows Control and Automation Technology), který běží pod operačním systémem Windows a umožňuje tvorbu programů PLC v souladu s normou IEC 61131. Řídicí systém TwinCAT tvoří dvě komponenty, TwinCAT engineering, která umožňuje vývoj aplikací, a TwinCAT runtime, která umožňuje běh řídicí aplikace. Jak ale může být TwinCAT runtime běžící pod operačním systémem Windows dostatečně rychlý a stabilní i přes množství nežádoucích vlivů od ostatních aplikací? Odpověď je: přímým využitím jádra operačního systému.
TwinCAT runtime a Windows
Jednou ze základních vlastností, kterou musí mít průmyslový řídicí systém, je dostatečně krátká doba odezvy na události (např. změna hodnoty stavové veličiny nebo vstup od uživatele). Je-li v řídicím systému kladen požadavek nejen na rychlost, ale také na přesnou dobu odezvy, jde o tzv. real-time řídicí systém neboli systém reálného času. TwinCAT runtime je softwarové rozšíření operačních systémů typu Windows NT (jako jsou např. Windows 10, Windows 7, Windows XP) schopné zajistit real-time provádění řídicího programu. V operačních systémech typu Windows NT mohou aplikace běžet buď v uživatelském prostoru (user mode), nebo v prostoru jádra (kernel mode). Aplikace běžící v uživatelském prostoru nemají přímý přístup k hardwaru a celému rozsahu operační paměti a pro zajištění stability a bezpečnosti jsou do jisté míry odděleny od nižších vrstev operačního systému. Nevýhodou je vyšší režie a nižší rychlost, daná právě bezpečnostními mechanismy. Naproti tomu aplikace běžící v prostoru jádra mají přímý přístup k hardwaru a operační paměti a tím i výrazně nižší režii a plnou kontrolu nad prováděním výpočetních operací. Jádro operačního systému s touto architekturou (oddělení user mode a kernel mode) se nazývá hybridní a jde o kombinaci vlastností monolitického jádra (všechny aplikace běží v kernel mode) a mikrojádra (téměř všechny aplikace běží v user mode). Kdyby TwinCAT runtime běžel v uživatelském prostoru operačního systému, ostatní aplikace by nežádoucím způsobem ovlivňovaly jeho běh v reálném čase (např. by mohlo dojít ke zpoždění sepnutí digitálního výstupu následkem zaneprázdnění systému požadavkem přístupu na disk nebo stahováním aktualizací operačního systému). TwinCAT runtime ale pro svůj běh využívá prostor jádra a díky tomu je schopný zajistit i v operačním systému Windows časově deterministické prostředí s minimálním jitterem (rozptylem doby odezvy), bez nežádoucího vlivu ostatních aplikací.
Real-time možnosti systému TwinCAT
Hlavní část TwinCAT runtime tvoří plánovač, který má na starosti cyklické volání jednotlivých řídicích úloh. Těmi mohou být programy PLC psané v jazycích podle IEC 61131-3, programy v C/C++ nebo i moduly systému Matlab/Simulink. Každá z těchto úloh je cyklicky spouštěna, přičemž nejkratší možná doba cyklu (jak často je úloha spouštěna) je 50 µs a systém hlídá její dodržování. Díky tomu je celý systém časově deterministický. Úlohy je také možné rozdělit na různá jádra procesoru a spouštět je paralelně, takže nenastává situace, kdy by výkonný (a nákladný) vícejádrový procesor zahálel, protože řídicí systém umí pracovat jen s jedním z jeho jader (obr. 1). Pro ulehčení paralelizace řídicího programu je navíc dostupná prioritní fronta (takže je přesně dané pořadí vykonávání úloh v jednom jádru) a mechanismy pro bezpečnou výměnu dat mezi paralelně běžícími úlohami.
Možnosti systému TwinCAT pracovat mimo prostředí reálného času
Kromě real-time možností je ale důležitá i komunikace s aplikacemi, které nepracují v reálném čase. K té je určena komunikační vrstva ADS (Automation Device Specification), jež funguje jako „most“ mezi real-time řídicími moduly TwinCAT (běžícími v prostoru jádra) a běžnými uživatelskými aplikacemi. Takto lze pomocí předem připravených funkcí snadno realizovat komunikaci softwarového PLC s cloudovými systémy či připojení k databázím nebo použít některý z jiných komunikačních protokolů (OPC UA nebo DA, TCP/IP, IEC 61850, IEC 61400--25 aj.). Další možností komunikace ADS je použití zdarma dostupného programového rozhraní pro některý z mnoha podporovaných programovacích jazyků (mimo jiné C#, C/C++, JavaScript, Visual Basic, Java nebo Delphi) a tím vytvořit vlastní aplikaci určenou pro běh v uživatelském prostředí, která bude komunikovat s TwinCAT runtime.
Vývojové prostředí TwinCAT
Jak se programuje systém TwinCAT runtime? Vývojové prostředí je integrováno do prostředí Microsoft Visual Studio. Základní instalace systému TwinCAT v sobě obsahuje tzv. shell systému Visual Studio, v němž je možné i bez licence Visual Studia programovat PLC (jazyky ST, FBD, LD, SFC, CFC). Pro uživatele, kteří již používají Visual Studio Professional, je navíc možné integrovat TwinCAT do již nainstalované plné verze Visual Studia a programovat jak PLC, tak i běžné aplikace ve vyšších programovacích jazycích v jednom vývojovém prostředí. Co se týče funkcí PLC, vývojové prostředí TwinCAT v sobě obsahuje kromě programování PLC také editory HMI, bezpečnostních funkcí, nastavení pohonů a vstupně-výstupních modulů, takže není nutné používat několik různých programovacích nástrojů – vše se realizuje v jednom vývojovém prostředí. Integrace do Visual Studia rovněž umožňuje použít nástroje pro správu verzí zdrojových kódů (jako Team Foundation Server, GIT nebo Subversion). TwinCAT též podporuje rozšíření normy IEC 61131 o možnost psát objektově orientovaný PLC kód. Strukturu jednotlivých tříd je možné navrhnout pomocí integrovaného grafického editoru diagramu tříd podle standardu UML (Unified Modelling Language), na jehož základě se automaticky generují kostry programových prvků odpovídající třídám, rozhraním a všem vazbám mezi nimi.
Simulace a testování programu
Pro instalaci systému TwinCAT jako takovou není nutná žádná zvláštní licence, součástí volně dostupné instalace je vývojové prostředí (které je zdarma) a runtime, který může běžet v režimu zkušebních licencí (jež jsou také zdarma, ale je nutné je každých sedm dní obnovit z vývojového prostředí). Simulace a testování programu v prostředí TwinCAT tedy mohou být vykonány v podstatě na jakémkoliv počítači a není třeba ani koupě žádných licencí. Licenci je tudíž nutné zakoupit až při reálném použití hotového a odladěného programu.
Závěr
Software pro řízení od společnosti Beckhoff je používán už od roku 1988. První software měl název S1000 a běžel pod operačním systémem DOS. Dalším krokem byl velmi známý a stále hojně používaný TwinCAT 2, který byl uveden na trh v roce 1996. Od roku 2010 se začala používat nejnovější verze řídicího softwaru TwinCAT 3. V průběhu času doznal TwinCAT značných změn a od doby jeho vzniku přibylo množství nových funkcí (nedávno např. počítačové vidění nebo komunikace s cloudem), ale základní funkce, a to rozšíření operačního systému Windows o možnost práce v reálném čase a PLC řízení, zůstává.
(BECKHOFF Česká republika, s. r. o.)
Obr. 1. Nová verze systému TwinCAT3 umožňuje efektivně alokovat aplikace jednotlivým jádrům procesoru