Článek ve formátu PDF je možné stáhnout
zde.
Článek popisuje programovací prostředí TwinCAT HMI od firmy Beckhoff, určené pro návrh responzivních, na platformě nezávislých aplikací HMI.
Jak bude vypadat tvorba operátorských rozhraní (HMI – Human Machine Interface) v budoucnosti? Jakým způsobem lze vytvořit HMI pro různá průmyslová odvětví, aby bylo zároveň efektivní, uživatelsky přívětivé a využitelné i v budoucnu? Vývojové prostředí TwinCAT HMI od společnosti Beckhoff umožňuje vytvářet webová HMI založená na jazycích HTML5 a JavaScript. Díky využití těchto jazyků je výsledná aplikace nezávislá na platformě, protože jedinou podmínkou kladenou na klientské zařízení je přítomnost prohlížeče internetu s podporou HTML5. Další důležitou vlastností vycházející z použitých uvedených jazyků je responzivita aplikace, tedy optimalizovaný vzhled na zařízeních s různými velikostmi displeje a různým rozlišením.
Samotné programovací prostředí TwinCAT HMI je stejně jako automatizační software TwinCAT 3 integrováno do vývojového prostředí Microsoft Visual Studio (obr. 1). Díky tomu je možné z jednoho prostředí tvořit jak řídicí program, tak aplikaci uživatelského rozhraní. Pro vývoj v TwinCAT HMI je také možné používat nástroje pro správu verzí zdrojových kódů typu Team Foundation Server nebo Subversion a tím výrazně ulehčit práci několika vývojářů na jednom projektu.
Balíček TwinCAT HMI obsahuje čtyři základní komponenty, popsané v následujících odstavcích.
TwinCAT HMI Creator
TwinCAT HMI Creator je uživatelsky přívětivý grafický editor typu WYSIWYG („What You See Is What You Get“ – „co vidíte, to dostanete“), ve kterém je možné kompletně vytvořit grafické uživatelské rozhraní i bez znalosti programování. Pro uživatele je dostupná také alternativa tvorby nebo úprav kódu uživatelského rozhraní v HTML nebo JavaScript přímo z prostředí TwinCAT HMI, popř. je možné využít některé z předem připravených šablon uživatelských rozhraní pro ovládání stroje.
TwinCAT HMI Framework
TwinCAT HMI Framework je komponenta zajišťující funkce na straně klientské aplikace, jako jsou např. zpracování událostí nebo přepínání jazyků. Také obsahuje knihovnu základních grafických prvků použitelných při tvorbě uživatelského rozhraní. Mimo běžné ovládací prvky, jako jsou tlačítka či různé druhy ukazatelů, jsou dostupné i složitější grafické prvky, např. pro zobrazování grafů, přehrávání videa či správu receptur. Kombinací základních grafických prvků je dále možné tvořit aplikačně specifické komplexní ovládací prvky, které lze navíc konvertovat do formy znovupoužitelných modulů dostupných přímo z panelu nástrojů a tím výrazně zjednodušit vývoj dalších vizualizačních aplikací použitím již dříve vytvořených komponent.
TwinCAT HMI Server
TwinCAT HMI Server je aplikační server, který získává data ze systémů reálného času a zprostředkovává je klientským zařízením pomocí zabezpečených komunikačních protokolů (HTTPS a WS).
TwinCAT HMI Extensions
TwinCAT HMI Extensions jsou dodatečné uživatelské moduly vyvinuté v C++ nebo .NET, pomocí kterých lze rozšířit funkce serveru HMI např. o další komunikační protokoly nebo napojení na MES či systémy ERP.
Flexibilní architektura
Prostředí TwinCAT HMI je použitelné pro tvorbu aplikací s různou architekturou řídicích systémů (obr. 2). Je možné použít běžnou architekturu typu local client, kdy klient, server i řídicí aplikace běží na jednom PC. Také lze využít architekturu typu multi client, kdy v topologii řídicího systému figuruje jeden server a větší počet klientských (např. mobilních) zařízení. Server TwinCAT HMI může být vázán na jednu či několik cílových runtime (řídicích) aplikací, jejichž data vizualizuje (architektura multi runtime). Stejně tak je možné, aby jedno klientské zařízení zobrazovalo vizualizaci z několika serverů TwinCAT HMI.
Událostmi řízené programy
Každý grafický prvek má svoji sadu vlastností, kterými je možné měnit jeho vzhled nebo chování. Pro každou z těchto vlastností lze vytvořit vazbu na některý z datových objektů (symbolů) dostupných pro TwinCAT HMI. Jde o tyto čtyři základní typy dat:
- interní data (informace pro interní použití ve vizualizaci) jsou data, která je nutné uchovávat, ale není vhodné, aby byla uložena a zpracovávána v PLC, protože nemají nic společného s aplikací logického řízení jako takovou,
- externí data jsou data, která byla získána z nějakého řídicího systému (např. pomocí protokolu ADS – Automation Device Specification nebo OPC UA),
- data grafických prvků charakterizují vlastnosti všech existujících grafických prvků, určují jejich vzhled a chování,
- lokalizační data jsou interní informace pro zajištění vícejazyčné vizualizace.
Kromě vlastností mají grafické prvky i svoji množinu událostí. Na každou z nich je možné navázat určitou sekvenci příkazů a akcí. Tyto události jsou jak obecné (práce s myší nebo dotykovým panelem), tak specifické (např. změna hlasitosti přehrávače videa), popř. je možné nadefinovat vlastní události spouštěné třeba změnou hodnoty proměnné v PLC. Pro samotnou definici akcí prováděných po výskytu události se využívá grafický editor založený na skládání sekvence programových bloků s určitou funkcí (obr. 3). Pomocí těchto programových bloků je možné přistupovat k libovolným interním nebo externím symbolům, měnit vlastnosti a vzhled grafických prvků, spravovat uživatele, měnit lokalizaci a mnoho dalších akcí. Kromě toho jsou dostupné bloky na realizaci větvení toku programu (podmínky typu if a switch) a podpůrné funkce na práci s řetězci či alarmy. Všechny tyto akce lze nadefinovat graficky, bez znalosti jakéhokoliv programovacího jazyka, nicméně v případě potřeby lze použít i programování přímo v JavaScriptu. Díky uvedeným možnostem lze oddělit program PLC od aplikace vizualizace, přičemž k tvorbě vizualizace není díky intuitivnímu grafickému rozhraní nutná znalost vyšších programovacích jazyků.
(BECKHOFF Česká republika s. r. o.)
Obr. 1. TwinCAT HMI integruje HMI do prostředí Visual Studio
Obr. 2. Topologie systému: vlevo lokální klient, vpravo multi-runtime
Obr. 3. Pro definování akcí prováděných po výskytu události se využívá grafický editor založený na skládání sekvence programových bloků