Jste zde

TEST - Komunikace HMI panelu přímo se zařízením přes MODBUS RTU

HMI panel obecně nutně nemusí sloužit jen jako zobrazovací a zadávací jednotka připojená k PLC, ale může i přebrat roli hlavního řídicího a ovládacího centra, na které jsou přímo připojeny "chytré" snímače či měřicí jednotky s datovou komunikací. Pojďme se prakticky podívat, jak lze u HMI panelu Crouzet MTP6/50 (a příbuzného Weintek MT6050i) zprovoznit a využít Modbus RTU ke komunikaci s měřicím převodníkem Laumas TLS485.

V nedávné sérii testů HMI panelu Crouzet MTP5/60 jsem ukazoval nejen příklady programování samotného HMI panelu, ale i jeho napojení a komunikaci s PLC Millenium3 stejného výrobce. K HMI panelu však není nutně potřeba jen připojovat PLC jako vizualizační a ovládací obrazovku, ale je možné jej použít jako hlavní řídicí a vyhodnocovací jednotku k níž se přímo připojí snímače či různé měřicí jednotky a převodníky prostřednictvím průmyslové sběrnice MODBUS RTU. Osobně jsem tuto variantu vyzkoušel s tenzometrickým vážicím převodníkem Laumas TLS485, který také obsahuje RS-485 výstup i s podporou protokolu MODBUS RTU (viz test TEST - Velmi dobře vybavený převodník tenzometrů = Laumas TLS - 2.díl).

Hardwarové napojení k HMI Crouzet

Panel, ať je to obecně jakýkoliv, musí samozřejmě ve své specifikaci MODBUS komunikační režim umožňovat, tedy z hardwarového pohledu musí mít konektor s podporou RS-485 dvoudrátové komunikace (Modbus sice lze provozovat i na RS-232, ale to není v průmyslu moc spolehlivé), a z pohledu softwarového by měl panel ve svém nastavení podporovat protokol MODBUS RTU.

Například HMI panel Crouzet Millenium Touch MTP6/50, resp. s ním prakticky totožný panel Weintek MT6050i, právě na svém jednom 9pinovém D-Sub COM konektoru podporuje jak klasický RS-232, tak i RS-485, včetně protokolu Modbus RTU a to dokonce v několika verzích. Samozřejmě funkce závisí na systémovém nastavení panelu provedeného v programovacím PC softwaru EasyBuilder8000. 

Přesněji řečeno, i když panel má fyzicky jen jeden COM konektor, prakticky se v něm skrývají celkem 4 komunikační rozhraní, přesněji řečeno COM1 a COM3, kde COM1 lze nastavit na funkci RS-232, RS-485 4drát a klasický RS-485 dvoudrát a COM 3, který se sice nachází na stejném konektoru, ale představuje jinak zcela oddělený kanál, je pouze pro RS-485 dvoudrát (viz vpravo popis zapojení 9vývodového konektoru). Tomu já říkám smysluplné využití konektoru a všech jeho vývodů! Na druhou stranu to představuje negativum v podobě nutnosti si udělat vlastní speciální kabel, jak jsem si udělal např. já, kde z jednoho konektoru jdou 2 kabely, jeden jako RS-232 (COM1) pro připojení PLC Millenium3 a druhý jako RS-485 (COM3) s režimem MODBUS RTU pro přímé připojení Modbus měřicího převodníku Laumas TLS485. Tak lze u panelu s fyzickým jedním konektorem komunikovat jako s jedním zařízením po RS-232, tak i z mnoha desítkami zařízení po sběrnici MODBUS RTU.  Ještě upozorňuji, že RS-232 vývody u HMI panelu tedy vůbec neodpovídají klasickému standardu (3-TxD, 2-RxD), takže je nutné pro napojení zařízení s klasickým RS-232 standardem si stejně vyrobit "převodní" kablík...

Zapojení vývodů 9pinového D-Sub konektoru na HMI panelu Crouzet MTP6/50 a Weintek MT6050i.

Softwarové navolení MODBUS RTU v HMI panelu

Nastavení Modbus RTU komunikace s nějakým libovolným zařízením se provádí podobně jako nastavení komunikace např. s PLC Millenium3 (viz test 2. díl testu HMI panelu MTP5/60). Prostě se v nastavovacím okně "System Parameters Settings" (Edit->System Parameters) jen přidá nová položka "New" a v následném otevřeném okně "Device Properties" místo defaultně navoleného PLC Type "Free protokol" se z nabídky vybere MODBUS RTU. Následně se zvolí komunikační rozhraní PLC I/F na RS-485 2W a vybere příslušný sériový port. Nejlépe je vždy navolit COM3, který pracuje právě jen v režimu RS-485 2W (dvoudrát), čímž si necháte volný univerzální RS-232/RS-485 COM1 port volný pro napojení PLC či jiných budoucích zařízení. Komunikační parametry COM3 portu je nutné nastavit ve shodě s nastavením zařízení připojeným na sběrnici. Nakonec je  nutné v okně nastavit v políčku "PLC default station no." Modbus identifikační adresu "ID" zařízení na sběrnici, se kterou se má komunikovat. Ale není to striktně nutné, protože je možné definovat Modbus ID zařízení i následně přímo v každém bloku při definování adresy registru Modbus zařízení, jehož hodnota se má přenést do HMI panelu tak, že před adresu registru se zadá kombinace "ID#adresaregistru" místo jen "adresaregistru". Z pohledu rozdělení úloh Master-Slave pak standardně HMI panel funguje jako Master a rozesílá požadavky všem na něm připojeným slave jednotkách, ale je případně možné i přenastavit panel, aby se on choval jako Slave (server).

 

Příklad nastavení Modbus RTU komunikace v HMI panelu pro připojení tenzometrického převodníku Laumas (obr. vlevo) a kompletní přehled nastavení HMI panelu obsahující samotný HMI panel, konfiguraci připojení PLC Millenium3 a Modbus RTU převodníku Laumas (obr. vpravo).

Pak už stačí používat odkaz / adresovat příslušný "Modbus registr" požadovaného zařízení v každém vizualizačním bloku či v programu Macra, podobně jako při komunikaci a přenosu hodnoty z PLC. Tedy ve funkčních blocích vizualizace se v nastavení v záložce "General" zvolí předtím vytvořená položka v nastavení, v mém případě "Laumas", a pak již jen číslo (adresu) registru odkud se mají data číst nebo naopak data zapisovat. To podle toho, jestli máte blok zobrazení hodnoty (např. Display number) či zadání hodnoty (např. Display Input). V macru pak například příkazy "GET..." a "SET..."

Macro aplikace úpravy a průměrování signálů, kde signál "Signal2" je načítání přes Modbus RTU ze vzdáleného převodníku Laumas.

TEST MODBUS RTU komunikace s HMI

Osobně jsem vyzkoušel jak samotné připojení jen Modbus převodníku Laumas k HMI panelu přes výše zmíněný COM3, tak i kombinaci převodník Laumas a PLC Millenium3, které bylo provozováno a připojeno standardně na COM1 přes RS-232. V obou případech fungovala komunikace bez problémů a například v příkladu průměrování a přepočítání signálů, byly hodnoty Signal 1 přenášeny z analogového vstupu PLC Millenium3 a hodnoty Signal 2 z převodníku Laumas, přičemž nijak nedocházelo k nějakému viditelnému zasekávání přenosu či něčemu podobnému a na změnu obou signálů HMI panel reagoval v reálném čase v řádu setin sekundy.

Také není problém i přes Modbus RTU přenášet současně 2 hodnoty následujících registrů, což je případ, kdy jednotlivé registry Modbus slave měřicího zařízení jsou 16bitové, což standardně obvykle bývají, ale například naměřená hodnota je 32bitová a tedy obsahuje hned 2 registry (obvykle v popisu Modbus registrů Slave zařízení najedete na jednom čísle adresy označení typu "Value Low" a na následujícím "Value H". Pokud je posloupnost ve slave zařízení taková, že nejdříve na nižším čísle adresy (např. 40010) se nachází hodnota "Low" (tedy nižších 16bitů = 2 bajty = 1 slovo) a na nejbližším vyšším čísle registru (např. tedy 40011) se nachází hodnota "High" (tedy vyšších 16bitů = 2 bajty = 1 slovo), pak je vše v pořádku.  V tomto případě na panelu například v nastavení v zobrazovacím okně "Numeric Display" pak v záložce "General" zvolíte adresu registru "4x 9" a v záložce "Numeric Format" následně 32-bit a HMI panel si automaticky vyžádá přenos adres registrů 40009 i 40010 a spojí je do jedné hodnoty.

Problém nastává, když je bohužel posloupnost horního a spodního slova 32bitového čísla v Modbus slave jednotce v pořadí High a až pak Low, tedy např. adresa 40010 = "High value" a na adrese 40011 je pak "Low value". V tomto případě je nutné udělat si v Macru malý prográmek, který zvlášť načte 16bitovou hodnotu High z 40010 a Low z 40011, hodnotu "High" v rámci 32bitového čísla posune o 16bitů nahoru a obyčejně sečte se 16bity hodnoty "Low". Ve výsledku tak máme správně jedno 32bitové číslo složené ze dvou 16bitových. Nějakou vestavěnou možnost tohoto úkonu v podobě nějaké hotové funkce HMI panel neposkytuje. Ale zároveň se zde pěkně ukazuje, jak důležité je umět používat při programování HMI panelu Macra.

Závěr

HMI panel obecně nutně nemusí sloužit jen jako zobrazovací a zadávací jednotka připojená k PLC, ale může i přebrat roli hlavního řídicího a ovládacího centra, na které jsou přímo připojeny "chytré" snímače či měřicí jednotky s datovou komunikací. Pokud zrovna nepodporují protokol Modbus, je možné využít nějaký převodník, který zajistí konverzi například z M-BUSu, CAN či Profibusu (například pomocí převodníků ADFWEB). Výkonný 32bitový procesor s desítkami MB RAM a Flash paměti, který se obvykle v HMI panelech využívá, má obvykle na běžné aplikace dostatečný výkon, aby tuto řídicí funkci zvládl.

Užitečné odkazy k PLC a HMI Crouzet Millenium:

Odkazy na předchozí články o PLC Millenium 3:

Hodnocení článku: