HMI Weintek bude fungovat jako zdroj informací, což je příklad průmyslového stroje, kterého sice řídící nějaké malé PLC, ale všechna data se vizualizují nebo zadávají do stroje do HMI panelu a tyto data by se pak měla být k dispozici k přečtení i na nějakém vzdáleném počítači, třeba někde v kanceláři managera. Ten bude v dnešní ukázce představovat právě softwarová aplikace Unified Automation UaExpert.
OPC UA server se používá na straně poskytovatele / generátoru dat, tedy například měřícího zařízení nebo na straně databáze informací, zatímco OPC UA klient se využívá na straně řídícího zařízení, které potřebuje získávat řídící data z databáze nebo naměřená data z měřících zařízení. Někdy se může stát, že jedna řídící jednotka bude současně fungovat jako OPC server ze strany sběru dat např. naměřené na výrobní lince a i jako OPC UA klient ze strany komunikace s databázovým serverem, pro natahování řídících parametrů pro výrobní linku.
Zprovoznění OPC UA serveru na HMI Weintek
OPC UA protokol podporují některé HMI jednotky či tzv. Gateway jednotky Weintek jak v režimu server, tak v režimu klient. Pro první vyzkoušení však není nutné kupovat žádný hardware, ale jen si ze stránek Weintek stáhnout bezplatný software EasyBuilder PRO, který již funkci OPC UA má vestavěnou. V programu EasyBuilder si lze vytvořit celou realizaci vizualizaci i nastavení OPC UA komunikace a pak místo nahrání do hardwaru ji jen spustit v tzv. On-line simulaci. V ní veškeré funkci hardwaru Weintek přebírá počítač, ta kterém simulace běží a na něj si lze přes LAN Ethernet připojit libovolné externí zařízení realizující tu druhou komunikační stranu a ta simulaci vidí jako HMI Weintek se všemi používanými funkcemi. Proti hardwaru je zde jen ten rozdíl, že běh "Online Simulation" je omezen na 2 hodiny a pak funkce komunikace zablokuje a je nutné simulaci znovu spustit. Nicméně na zkoušení a učení nastavení a zprovozňování různých funkcí je to vynikající nástroj.
V programu EasyBuilder PRO jsem založil nový projekt pro HMI jednotku cMT-SVR200 a na vizualizační plochu umístil čtyři zadávací políčka, tři pro zadávání numerických hodnot, každý v jiném datovém formátu (Signed 16-bit., Signed 32-bit. a Float) do 16-bitových WORD registrů HMI LW-100, LW-102 a LW-104 a jeden v ASCII pro zadávání znakového řetězce o 20 znacích do 16-bitových WORD registrů od LW-200. Tedy pole pro jednoduché generování jasně definovaných dat, na kterých se následně bude testovat jejich čtení z OPC UA klienta.
Příklad vytvoření vizualizace zadávání položek - hodnot pro testování OPC UA serveru.
Následně je možné přistoupit ke konfiguraci OPC UA serveru. To se provádí výběrem položky "OPC UA Server" ze záložky "IIoT/Energy". Tak se otevře konfigurační okno "OPC UA Server Object's Properties", kde se zaškrtnutím položky "Enable" funkce serveru povolí. Tlačítkem "Settings..." se provádí nastavení parametrů serveru a přístupová omezení, zatimco v sekce "Tag" se v terminologii OPC UA definujeme adresový prostor - tzv. Uzly (Nodes).
V okně "Settings... -> OPC UA Server Object's Properties" je důležité v záložce "General" definovat bezpečnost přístupu / komunikace v sekci "Security Policy". V základu jsou předaktivované zabezpečení přístupem vstupním heslem a šifrováním, nicméně je možné aktivovat i položku "None", tedy přístup bez zabezpečení. Protože zde při prvním zkoušení chceme primárně vyzkoušet přenos dat v uzavřené LAN síti, tak zde si můžeme dovolit pro aktuální zjednodušení i nezabezpečený přístup. Jako "Port" (tedy TCP port) ponecháme přednastavený "4820" a můžeme vyplnit i jméno serveru "Server Name". Nicméně v položce "OPC TCP" je již předdefinováno, že IP adresa OPC UA serveru bude aktuální IP adresa LAN karty či rozhraní hardwaru - viz "opc.tcp://<HMI IP>:4820".
Příklad nastavení OPC UA serveru pro HMI Weintek.
V záložce "User Authentication" se pak definují přístupy k samotným hodnotám adresního prostoru OPC UA serveru, tedy informace pro OPC UA službu "Method" pro přístup do jednotlivých paměťových míst - uzlů (Nodes). K dispozici je možnost "Browse" (prohledávání, jaké uzly Nodes jsou k dispozici), "Read" (čtení stavu jednotlivých hodnot uzlů Nodes) a "Write" (možnost hodnoty uzlů Nodes z pozice OPC UA klienta). V první části lze definovat, zda a co povolíme anonymnímu přistupujícímu "Anonymous", tedy přistupujícímu na OPC UA server, která nezná přistupující heslo. Následně lze pak v sekci "User name & Password" lze definovat přístup k uzlům Nodes pro uživatele, kteří znají přístupová hesla co mohou s uzly udělat. Pro potřeby prvního testování můžeme povolit plný přístup k uzlům Nodes i anonymnímu uživateli OPC UA klienta. V praxi je však nutné být velmi obezřetný, komu a jaký přístup (člověku či přistupujícímu zařízení - třeba PLC) se uvolňuje.
Po základní konfiguraci už je možné definovat samotný adresní prostor OPC UA serveru, tedy v našem případě HMI jednotky, jaké její paměťové registry budou vidět z pohledu OPC UA klienta. Ty se zadávají v konfiguračním okně "Tag". Zde se pomocí tlačítek "New Group..." a "New Tag..." přidávají jednotlivé paměťové registry HMI jednotky s vytváří z nich strukturovaný adresový prostor uzlů Nodes podobně jako třeba adresářová struktura v na disku PC. Aby to nebylo na začátek bylo jednoduše a jasně patrné, vložil jsem tlačítkem "New Tag..." jen výše uvedené 4 proměnné (3 číselné a 1 znakovou ASCII), kterou jsou vloženy na stránku vizualizace HMI. Ty tedy budou pak přístupné z OPC UA klienta a bude je možné číst i zapisovat. To se povoluje v každém nastavení vloženého Tagu / Uzlu Nodes v položce "Type-> Readable / Writable"
Příklad vložení nového tagu LW-104 z paměťového registru HMI panelu do adresního prostoru OPC UA serveru a možnost editace.
Zprovoznění OPC UA klienta na PC
Pro testování přístupu na OPC UA server jsem vybral počítačový program UaExpert firmy Unified Architecture - viz webové stránky https://www.unified-automation.com
Při prvním spuštění programu je uživatel nejdříve vyzván k vytvoření "application instance certificate" umožňující autorizovat aplikaci a využít digitální podpis a šifrovaný přístup pro chráněný režim OPC UA komunikace.
Následně již je možné vytvořit komunikační kanál k OPC UA serveru na HMI jednotce. To se provede přes záložku "Server -> + Add ", kdy se objeví okno "Add Server". Zde je nutné přes položku "Custom Discovery + " vložit adresu OPC serveru, tedy "opc.tcp://xxx.xxx.xxx.xxx:4820/", kde xxx je konkrétní IP adresa serveru. Pokud klient na server úspěšně "vidí" zobrazí se pak podporované zabezpečení přenosu / šifrování. Pokud se připojujeme v lokální uzavřené LAN síti, můžeme pro testování zvolit "None", tedy komunikace bez šifrování a následně přihlašovací přístup "Authentication Settings" jako Anonymous, tedy neznámý přistupující bez hesla. V okně nahoře v položce "Configuration Name" se samo vyplní zvolené nastavení. Lze tlačítkem "OK" nastavení potvrdit a případně i uložit na harddisk PC přes tradiční menu "File->Save...".
Přidání OPC UA serveru do OPC UA klienta aplikace UaExpert.
Pak se v okně "Project" již objeví stromová struktura "Project->Servers->UaServer@abcde", kde "abcd" je označení serveru (v našem případě HMI jednotky, které jsem tam definovali). Tuto položku roz klikněte pravým tlačítkem myši a klikněte na "Connect". Tím se k OPC UA serveru OPC UA klient připojí. Ještě je však nutné v zobrazeném okně "Certificate Validation" kliknout na tlačítko vpravo dole "Trust Server Certificate", čímž se potvrdí, že certifikace OPC UA serveru je v pořádku a stiskem "Continue" se již klient na server připojí.
Příklad připojení OPC UA klienta / softwaru UaExpert na OPC UA server / HMI Weintek.
V okně "Address Space" jsou pak zobrazeny pro OPC UA klient dostupné položky na OPC UA serveru, v našem případě tedy "Tags", které jsem pro OPC UA nedefinovali v HMI jednotce, plus některé další !defaultní parametry o stavu OPC UA serveru. Tedy 3x číselné hodnoty LW-100, LW-102 a LW-104 a ASCII znaková proměnná LW-200. Aby jsem mohli sledovat jejich hodnoty a i je měnit (pokud jsme na HMI povolily u každého tagu položku "Writable", je nutné je myší přetáhnout do vedlejšího velkého okna "Data Access View". Zde pak lze ve sloupci "Value" vidět aktuální hodnotu, kterou zadáme ve vizualizaci HMI jednotky do jednotlivých políček proměnných. Také lze na příslušnou položku "Value" i kliknout myší a z klávesnice zapsat jinou hodnotu a nutné je potvrdit klávesou "Enter". Pak se nově zadá hodnota aktivuje a OPC UA klient ji odešle / změní v příslušné položce na OPC UA serveru - tedy se objeví / přepíše i ve vizualizaci HMI jednotky.
Důležité je dodržet při zadávání správný formát příslušné položky, jinak se vyhlásí červená chyba "Description: Invalid Data Type" na OPC UA klientu v okně "Attributes". Na straně vizualizace HMI jednotky Vám zadávání hodnoty špatného formátu / rozsahu prostě není vůbec dovoleno, ale na straně programu UaExpert Vám to umožněno je, ale pak se zobrazí právě ona chybová hláška.
Popis funkce "Data Access View" v programu UaExpert pro zobrazení a i změnu hodnot jednotlivých tagů/uzlů připojeného OPC UA serveru.
Mimo zobrazení hodnot a možnost jejich změny v okně "Data Access View" je však možné i aktivovat funkci automatického záznamu hodnot "Data Logger View" přes menu "Document->Add->Data Logger View". Do jeho okna lze opět přetahat myší z okna "AddressSpace" požadované tagy / uzly OPC UA serveru, jejichž hodnoty (přesněji změny hodnot) se mají ukládat na harddisk počítače.
Samozřejmě se dají logovat jen čísla, takže v mém ukázkovém případě jen u tří položek LW-100, LW-102 a LW-104. Lze si různé zvolit nastavení funkce logování (časové limity i limity počtu uložených položek/změn apod.) i kam se logování v PC bude ukládat.
Popis funkce "Data Logging View" hodnot jednotlivých tagů/uzlů připojeného OPC UA serveru v programu UaExpert .
Ukázka provozu OPC UA klient - server
Zadané hodnoty a ASCII text na obrazovce vizualizace HMI jednotky Weintek (OPC UA server) se přenášejí na obrazovku softwaru UaExpert (OPC UA klient).
Data nasbíraná během logování se ukládají jako *.csv soubory, které lze otevřít v každém textovém prohlížeči nebo ale také v tabulkových programech typu Microsoft Excel.
Závěr 2. dílu
Jak je patrné z přiložených screenshotů obrazovek, tak komunikace fungovala bez problémů a vše hned proběhlo "na první dobrou". Takže to není těžké, ba dokonce jednodušší než u většiny jiné průmyslové komunikace. Zde u OPC UA je ta obrovská výhoda, že se nemusíte předem vědět nic o struktuře dat na OPC UA serveru a přitom do klienta (mastera) natahovat nějaký konfigurační soubor apod. Prostě vše si OPC UA klient pomocí dotazovacích služeb sám zjistí a zobrazí, vše k čemu má v rámci svých práv povolený přístup.
Pokračování v 3. díle
V příštím díle se podíváme, jak na HMI panelu Weintek zprovoznit i OPC UA klient a udělat tedy přes OPC UA komunikaci mezi dvěma HMI jednotkami.
Odkazy:
- Webová stránka PC softwaru UaExpert firmy Unified Architecture: https://www.unified-automation.com/products/development-tools/uaexpert.html
- Webová stránka HMI softwaru Weintek EasyBuilder PRO: https://www.weintek.com/globalw/Download/Download.aspx
- Článek "Průmyslová komunikace OPC UA - 1.díl - popis protokolu" na serveru automatizace.hw.cz