Program Omni
Přesný celým název programu "OMNIMBT- Omni Flow Computer - Modbus Tester" ukazuje, že tento Modbus softwarový PC terminál byl primárně vyvinut pro firemní hardware a snímače OMNI. Protože však v sobě jinak neobsahuje žádné pro ně specializované funkce či odkazy, je prostě využitelný pro jakékoliv jiné zařízení s rozhraním MODBUS slave.
Narozdíl od v 1. díle testovaném programu "Simply Modbus" se však tento software plně instaluje prostřednictvím tradiční Windows instalační "klikací procedury", standardně do adresáře "Program files" a vytvoří se odkaz v nabídce Windows START. Jinak z pohledu provozu je program plně bez problémů funkční na Windows XP i Windows 7, na kterých jsem jeho běh vyzkoušel. Windows 8 zatím nemám, takže pod ním jsem funkci nezkoušel, ale předpokládám, že v něm bude fungovat také. Bohužel stejně jako u programu "Simply Modbus" není nabízena podobná verze pro OS Linux.
Program Omni - Modbus Tester se musí plně nainstalovat do Windows. Vytvoří se pak klasická spouštěcí položka v nabídce "Start" a navíc i odkaz na slušně provedený návod (help). Program "hovoří" anglicky.
Vytvoření nastavení komunikačního rozhraní
Po nainstalování a po prvním i každém dalším spuštěním se trošku nezáživně nejdříve objeví jakoby prázdné okno programu. Ale to obsahuje v horní liště klasickou nabídku i rychlé ovládací ikony. Aby se něco dělo, je nejdříve nutné provést navázání komunikace se sériovým rozhraním pro Modbus RTU či případně ethernetovou LAN sítí pro Modbus TCP sběrnici. Pro to je však nutné mít již předem vytvořenou, nastavenou a uloženou konfiguraci rozhraní. Tedy při prvním spuštění žádná neexistuje a je ji nejdříve nutné vytvořit.
To se provede v položce "Setup->Locations..." či kliknutím na malou ikonu počítače, po jejímž spuštění se objeví okno přehledu dosavadních uložených konfigurací. Při prvním spuštění je samozřejmě prázdné a musíme tlačítkem "Add" vložit nové / první nastavení. Tím se konečně otevře docela rozsáhlé nastavovací okno "Setup Communications". Zde se nejdříve nastaví "typ média (Media Type)", který definuje zda bude počítač přímo napojen na Modbus síť obsahující danou slave jednotku nebo je na ní napojen vzdáleně pro modem, bezdrátově či přes TCP/IP (internet). V položce "Modbus Type" se určuje, zda provozujeme Modbus RTU či odvozený méně užívaný režim Modbus ASCII nebo Modbus TCP, pokud byl zvolen "Media Type" TCP/IP. Pak se již nastavuje adresa připojované slave jednotky (Modbus ID), kterou však lze později měnit, název v položce "Location Name", pod kterým se bude nastavení objevovat v seznamu.
V položce "Setup->Locations..." se spravuje nastavení fyzického připojovacího rozhraní programu / PC k Modbus síti, ať již v podobě sériové RS-485 (Modbus RTU) či ethernetové (Modbus TCP). Zde je možno současně uložit několik konfigurací a později při připojování si z nich jen vybírat.
Pak již další položky závisí na zvoleném typu komunikačního média. V mém případě pro Modbus RTU se sériovou linkou RS-485 napojenou do notebooku přes USB převodník se nastavuje číslo COM portu (u mě tedy číslo vytvořeného virtuálního COM portu COM15), a dále k tomu běžná nastavení jako přenosová rychlost, počet datových bitů, počet stop bitů, paritu a v celku nenápadné zatrhávací okénko 485 2-Wire, definující, že jde o RS-485 a ne RS-232. Mimo to se však ještě nastavují položky "Initial Character Delay", "Character Delay" a "Retries", které definují čas po který program čeká na odpověď od vyslání zprávy, čas mezi jednotlivými vysílanými znaky zprávy odpovědi a počet pokusů opakování vysílání zprávy, pokud nebyla odezva. Tlačítkem "OK" se vytvoří v okně seznamu nastavení nový záznam, který lze případně kdykoliv editovat. Takto lze vytvořit libovolně mnoho různých nastavení, ze kterých následně při pozdějších zapnutí programu lze vybírat bez potřeby dalšího nastavování. V mém případě jsem si vytvořil nastavení s názvem "Laumas TLS".
Následně kliknutím na ikonu "zeměkoule" v základním okně nebo přes položku "Online->Connect..." se objeví okno "Connect to unit" se seznamem dříve vytvořených nastavení a po kliknutí na některou položku se zahájí navazování komunikace. Pokud je nastavení i fyzické napojení správné, komunikace se naváže a objeví se komunikační okno, jinak vyskočí chybová zpráva.
Fyzické připojení programu / PC k Modbus sběrnici, resp. Modbus slave jednotkám, se provede přes položku "Online->Connect...", kde se vybere jedna z dříve uložených konfigurací (viz obr. vlevo). Následně se již automaticky otevře komunikační okno "Test Modbus Communications" a je možné začít s přenosem dat (viz obr. vpravo).
Komunikace po sběrnici Modbus
Okno "Test Modbus Communications" pak jako jediné slouží pro celou komunikaci s Modbus slave jednotkou, tedy narozdíl od programu "Simply Modbus" realizuje jak funkce čtení, tak zápisu dat registrů. Zde je opět možné volit mezi Modbus RTU či Modbus TCP režimem a nastavit adresu konkrétní slave jednotky pro komunikaci. Následující položky "Addressing Mode", "Data Register" a "No. of Values" určují adresy registrů slave jednotky, na které se budou následně vztahovat vybrané operace v menu "Function Code" a volba typu dat z menu "Data Type". "Data Register" určuje první adresovaný registr a "No. of Values" pak počet následujících využitých registrů pro funkci. Nastavení "Addressing Mode" v souvislosti s nastavením "Data Type" pak určuje, zda se budou dva po sobě jdoucí registry interpretovat do jedné dekadické hodnoty, nebo zda se budou jejich hodnoty zobrazovat samostatně. Jinak narozdíl od softwaru "Simply Modbus" se zde adresa vždy zadává jako relativní vůči číslu první adresy jednotky. V mém případě u převodníku Laumas TLS, kde má první registr číslo 40001, pak například pro přečtení registrů obsahujících naměřenou hmotnost 40008 a 40009 je nutné v programu zadat počáteční adresu 8 a počet "No. of Values" na 2.
Položka "Function Code" na rozdíl od programu Simply Modbus přímo obsahuje rolovací nabídku "příkazů" pro slave jednotky, které jsou k dispozici. Jak je patrné z obrázků níže, nabídka zahrnuje všechny běžné potřebné funkce pro zápis, čtení i sledování stavu slave jednotky a to jak pro číselné hodnoty, tak i binární signály, pokud je komunikované zařízení podporuje.
Ukázka nabídek menu "Function Code" (obr. vlevo) a "Data Type" (obr. vpravo).
Příklad čtení a zápisu dat po sběrnici Modbus
Při nastavené funkci č. "03 - Read Holding Registers" a po stisku tlačítka "Transmit" se příkaz vyšle a v položce "Data values" následně objeví hodnoty z požadovaných registrů. V mém případě tedy například 2 hodnoty z registrů 40008 až 40011 (1 celková hodnota = 2 registry). Stiskem tlačítka "Repeat" lze aktivovat periodické opakované automatické vysílání nastavené zprávy (funkce a registrů) s periodou zadanou v položce "Repeat Delay". V políčkách "Transmit Message" a "Receive Message" se pak obrazuje kompletní konfigurace vysílaných a přijímaných paketů (rámců), takže lze i v případě problémů si zde najít možnou chybu.
Při zápisu dat do registrů, v mém případě pomocí slave jednotkou Laumas podporované funkce č. "16 - Preset Multiple Registers", se tato funkce vybere v menu "Function Code" a vysílaná data se zadají do okna "Data Values" jednotlivě odděleny středníkem, tedy ve stejném formátu, jako jsme obdrželi data při jejich čtení. V mém případě jsem například zapisoval 4 hodnoty do registrů 40017 až 40019, které v převodníku Laumas obsahují horní a spodní spínací limit porovnávaný s naměřenou hodnotou.
Ukázka čtení 2 naměřených hodnot převodníku Laumas v registrech 40008 až 40011 (obr. vlevo) a zápis 2 hodnot porovnávacích limitů do registrů 40017 až 40020 (obr. vpravo).
Další funkce programu Omni
Mimo možnosti čtení a zasílání / zápis dat do naadresované slave jednotky a nabízí program Omni Flow Computer - Modbus Tester ještě následující funkce:
- "Comms Log" - záznam celé komunikace do log souboru.
- "Comms Stats" - zobrazení celkové statistiky, úspěšnosti / chyb přenosu, počtu přenesených dat atd.
- "Convertor" - zajímavá pomocná utilitka pro převod různých reprezentací dekadického čísla (Integer, Float, Double) na hexa formát "Big Endian", "Little Endian" či Modicon.
Ukázky obrazovek přídavných funkcí programu - zleva: záznam komunikace, statistika komunikace a převodník dekadických čísel na hexa formát.
Závěr
Software "OMNIMBT- Omni Flow Computer - Modbus Tester" představuje dobrý bezplatný testovací nástroj pro slave zařízení s rozhraním Modbus. Ze začátku může možná někoho zaskočit trošku netypická konfigurace připojení terminálu / počítače ke sběrnici, ale na druhou stranu řešení se seznamem více vytvořených konfigurací umožňuje snazší připojování k různým sítím, aniž byste museli pokaždé vždy vše znovu nastavovat. Jinak sice se stav registrů dotazovaného slave zařízení nezobrazuje tak elegantně jako v případě programu Simply Modbus, ale zase se prostředky pro čtení i zápis dat provádí společně v jednom okně, což urychluje práci a rolovací připravená nabídka "Modbus příkazů" (Funkčních kódů) usnadňuje orientaci méně zkušeným uživatelům Modbusu.
Příště v 3. díle se podíváme na další software pro Modbus...
Odkazy:
- Odkaz na stránky softwaru OMNI: http://www.omniflow.com/software-utilities.php
- 1. díl testů Modbus terminálů - Simply Modbus: http://automatizace.hw.cz/test-modbus-master-terminaly-pro-pc-1-simply-modbus