V prvním dílu (Test - I/O jednotky TBEN-S - 1.díl - ovládací web) jsem popsal základní možnosti a parametry I/O modulů Turck TBEN-S a možnosti jeho nastavovacího webového rozhraní. Také jsem se lehce zmínil o možnostech průmyslové komunikace, kde TBEN moduly s ethernetovým rozhraním představují zajímavé řešení s automatických rozpoznáním komunikačního protokolu, kterým se s ním snaží navázat nadřazená Master jednotka.
Konkrétně jde o protokol Profinet, EtherNet/IP a Modbus-TCP. A právě praktickou ukázkou použití komunikace Modbus-TCP se budeme zabývat v tomto 2. díle.
Modbus komunikace jednotek TBEN-S
Nastavení Modbus komunikace přestavuje správné nastavených parametrů ethernetové komunikace, tedy IP adresy, masky a případně brány. TCP kanál je strandardně přednastaven na 502. Dále již z pohledu Modbus komunikace možné nastavit čas udržení komunikace "Connection Timeout" a případně aktivovat časové hlídání správné komunikace v položce "Watchdog Timer".
Pro zjištění konfigurace Modbus registrů pro četní nebo zápis dat není nutné někde složitě listovat v nějakém manuálu. Celkový podrobný popis celé komunikace, tedy vše, co prakticky k realizaci komunikace potřebujete, se nachází přímo na webových stránkách / webové serveru každé jednotky. Navíc lze celý popis i případně vyexportovat si jako tisk na tiskárnu nebo do PDF souboru.
Základem je nutné si uvědomit, že všechny registry, i ty pro bitové ovládání vstupů a výstupů jsou realizované jako 16-bitové "Holding registers" a je tedy pro jejich čtení použít funkci kódu 03 "Read Holding Registers" a pro zápis funkci kódu 16 "Write Multiple Holding Registers". Podle počtu vstupů a výstupů, např. případě konkrétního testovaného provedení TBEN-S1-8DXP tedy 8 vstupů i 8 výstupů (označené jako C0 až C7), tedy ze 16 bitů čísla je vždy využije jen horních 8 bitů. Tedy bity 0 až 7, což představují dekadické hodnoty 0 až 255.
Web stránky nastavení MODBUS komunikace a struktury Modbus registrů na interním webovém rozhraní/serveru každého modulu TBEN-S.
Test Modbus-TCP komunikace s PC softwarem QModMaster
Pro vyzkoušení Modbus-TCP komunikace je možné zkusit TBEN-S jednotku napoji na PC podobně jako v případě přístupu na webové stránky jednotky a například použít bezplatný prográmek QModMaster sloužící jako Modbus-TCP Master (Client) terminál (více viz článek QModMaster - testovací prográmek pro Modbus-RTU/TCP). Jednotka TBEN-S se totiž vždy chová jako Slave (Server).
Nastavením IP adresy konkrétního TBEN modulu a zadáním jako výchozího registru pro čtení "0" (v klasickém značení 400001) počet následujících 5 registrů lze při spuštění opakovaného periodického čtení funkcí 03 "Read Holding Registers" průběžně v reálném čase sledovat změnu stavy vstupů.
Čtení stavu vstupů a Latch registru modulu TBEN-S1-8DXP pomocí PC terminálu QModMaster v dekadickém a binárním zobrazení hodnot Modbus registrů 0 až 2 (v klasickém formát 400001 až 400003).
V Modbus Holding registru č. 0 (v klasickém značení 400001) se nachází aktuální stav všech vstupů TBEN jednotky. V mém případě jednotky TBEN-S1-8DXP, u které každý signálový pin může chovat jako vstup i jako výstup, se tedy hodnota může pohybovat v rozmezí 0 až 255. Nicméně lze si zapnout i binární zobrazení hodnoty registru a tím tak pohodlně sledovat stav každého bitu = vstupu.
Pro čtení stavu vstupů slouží jeden společný 16-bitový Holding Register číslo 0 (v klasickém zápisu 400001).
Další zajímavý registr je č. 2 (v klasickém značení 400003) pak zobrazuje tzv. Latch stav vstupů, tedy záchytu vstupů, který indikuje, zda vstup byl alespoň jednou nahozen do stavu 1 od posledního resetu Latch stavu. Lze tak sledovat, zda konkrétní vstup byl někdy v historii použit či ne. Reset Latch registru lze provádět konkrétně po jednotlivých bitech nebo celkově zapsáním hodnoty 255 do Modbus registru 2049 (v klasickém značení 402050). Ten v Modbus popisu na webu TBEN jednotky je uváděn v sekci jaky výstupní, protože se do něj zapisuje.
Modbus Holding registry 3 a 4 (v klasickém značení 400004 a 400005) slouží dohromady jako 32-bitová hodnota počítadla pulsů vstupu 1 (C0), tedy pokud je tato funkce na webových stránkách TBEN moduly aktivována (položka "Input 1 / Parameters"). S tím souvisí i Modbus registr 5 (v klasickém značení 400006), který ukazuje frekvenci pulsů na stejném vstupu 1 (C0).
Pro čtení stavu Latch režimu stavu vstupů a čítače či měření frekvence pulsů na vstupu 1 slouží Holding Registers číslo 2 až 5 (v klasickém zápisu 400003 až 400006).
Stav výstupů TBEN jednotky pak lze řídit zápisem hodnoty do Modbus Holding registru 2048 (v klasickém značení 402049) opět v podobě dekadické hodnoty 0 až 255 nebo v binárním snadněji ovládat každý bit zvlášť.
Některé jednotky, jako zde popisovaný TBEN-S1-8DXP poskytují i aktivaci funkce PWM výstupu, tedy pulsně-šířkové modulace, jímž lze nahradit klasický analogový výstup. Při aktivaci této funkce pevně přiřazená výstupu 8 (C7), lze v Modbus registru 2051 a 2052 (v klasickém značení 402052 a 402053) zapisovat hodnotu úrovně modulace v %, tedy tzv. duty cycle.
Pro zápis stavu výstupů nebo reset Latch režimu stavu vstupů slouží Holding Registers číslo 2048 a 2049 (v klasickém zápisu 402049 až 402050).
Modbus komunikace TBEN-S s HMI Weintek
V případě napojení TBEN jednotky na HMI panel, kde chceme vytvořit vizualizaci nebo ovládání jednotlivých stavů vstupů a výstupů, je nutné využít dnes již obvyklé funkce bitového čtení / zápisu Holding registru.
Například v mém případě při realizaci komunikace s HMI panely Weintek je možné si zvolit příslušný registr řady 4x a jako přívažek se uvede pozice konkrétního bitu 00 až 15, tedy v našem případě konkrétně 00 až 08. Tedy pro čtení stavu 1. vstupu C0 se definuje adresa "4x_bit" režimu jako 000 a pro čtení stavu 2. vstupu C1 pak 002, až stav posledního 8. vstupu jako 007. Tak lze každému vstupu snadno přiřadit ve vizualizaci ikonu indikátoru. Podobně pro zobrazení "Latch" záchytného stavu vstupů je nutné v nastavení ikony indikátoru definovat adresu 02xx, kde xx je opět pozice příslušného bitu - vstupu.
Vizualizace stavu vstupů a Latch režimu vstupů modulu TBEN-S1-8DXP v programu pro HMI panel Weintek MT8071iP.
Modbus Holding registry 2 a 3 (v klasickém značení 400003 a 400004) pro čtení čítače pulsů, resp. 4 (v klasickém značení 400005) pro aktuální frekvenci pulsů, se již vizualizují klasicky jako dekadické číslo. Reset počítadla se pak provádí aktivací / zápis stavu 1 prvního bitu registru 2050 (v klasickém zápisu 402051)
Vizualizace stavu čítače a frekvence vstupu C0 modulu TBEN-S1-8DXP v programu pro HMI panel Weintek MT8071iP.
Obdobně je to s možností ovládání výstupů prostřednictví změnu stavu jednotlivých bitů Modbus registru 2048 (v klasickém značení 402049), v režimu "4x_bit" opět jako přívažek dvojčíslí pozice bitu. Tedy pro například pro sepnutí výstupu č. 4 je nutné v ikoně přepínače definovat adresu 204805.
Z výstupních registrů je pak zajímavý Modbus registr 2049 (v klasickém značení 402050), který, jak bylo uvedeno výše, provádí reset Latch registru uchovávající poslední změnu stavu bitů vstupu/výstupu. Zde lze buď hýbáním jednotlivých bitů vyresetovat jednotlivé konkrétní stavy.
Vizualizace ovládání výstupů a hromadného resetu Latch režimu modulu TBEN-S1-8DXP v programu pro HMI panel Weintek MT8071iP.
Shodné zobrazení stavu vstupů Modbus-TCP komunikací s modulem TBEN-S1-8DXP pomocí PC terminálu QModMaster a HMI panelu Weintek.
Závěr
Použití a zprovoznění Modbus-TCP komunikace I/O jednotky TBEN s nadřazeným PLC či HMI panelem je prakticky poměrně jednoduchá a funguje zcela bezproblémově. Pokud správně definujete adresy registrů, pak již nic není problém.
V příštím 3. díle se podíváme na vestavěnou možnost programování ARGEE, tedy ukážeme si základní možnosti a strukturu tohoto zajímavého režimu.
Odkazy:
- Článek "Test - I/O jednotky TBEN-S - 1.díl - ovládací web" na serveru automatizace.hw.cz
- Článek "QModMaster - testovací prográmek pro Modbus-RTU/TCP" na serveru automatizace.hw.cz