Jste zde

TEST - PC software EasyModbus pro testování Modbus-RTU / TCP

Nalezl jsem zajímavý free projekt / počítačový software pro Modbus-RTU / Modbus-TCP komunikaci nabízející současně jak funkci Modbus klienta, tak i testovacího Modbus serveru. Hlavně software není nutné instalovat a jen třeba spustit z USBflash. Je velmi jednoduchý, ale  spolehlivě fungující. 

Projekt EasyModbusTCP

Celý projekt EasyModbus, který naleznete na webu www.easymodbustcp.net, přestavuje zajímavý prostředek jak pro vložení hotové Modbus komunikace v jazyce C do libovolného vytvářeného programu, tak i pro přímé použití dvou jednoduchých již hotových prográmků ve formě přímo spustitelných EXE souborů. Ty lze snadno bez instalace spustit z disku libovolného PC s OS Windows (vyzkoušel jsem bezproblémovou funkci na Win7 SP1 64bit. i WinXP SP3 32 bit.).

Celý projekt se pak dále dělí na dvě části:

  • Modbus client - program typu Master realizující komunikaci s podřízenými Modbus jednotkami typu Slave (server).
  • Modbus server - program simulující Modbus jednotku typu Slave a tím např. umožňuje simulovat funkci snímačů pro testování PLC.

Obě části se společně v podobě zdrojových kódů i v podobě hotových ukázkových plně funkčních spustitelných prográmků nacházejí v ZIP souboru EasyModbusPackage.zip. Ke stažení není potřeba žádná registrace, ani se s programy nestahuje žádný malware či jiné nežádoucí svinstvo. Vše je volně k použití bez nějakého časového či funkčnostního omezení.

Software EasyModbus Client

Prográmek EasyModbus Client tvořený jen jedním oknem je spustitelný kliknutím na soubor "EasyModbusClientExample.exe", představuje velmi jednoduchý prostředek pro čtení hodnot a stavů libovolných registrů Modbus slave (server) jednotek. Škoda je, že je podporováno pouze čtení a ne zápis do slave jednotek, i když zdrojový kód v projektu tytu funkce podporuje. Zde v prográmku jsou nicméně podporovány jen čtecí funkce:

  • FC1 - Read Coils - pro čtení stavu spínaných výstupů zařízení.
  • FC2 - Read Discrete Inputs - pro čtení stavů dvoustavových binárních vstupů zařízení.
  • FC3 - Read Holding Registers - pro čtení řídích a naměřených hodnot zařízení.
  • FC4 - Read Input Registers - pro čtení naměřených hodnot snímačů.

Na druhou stranu funkce je triviální a velmi spolehlivá. Stačí jen v levé horní části vybrat Modbus-TCP nebo Modbus-RTU a pak podle této volby buď zadat IP adresu slave jednotky (Modbus-TCP) nebo zvolit COM port a Modbus adresu cílové jednotky (Modbus-RTU). Pak to je již stejné a stačí jen v zadávacím políčku "Starting Address"  zadat číslo počátečního čteného registru a do políčka "Number of Values" pak počet za ním následujících registrů, které jejichž obsah se má vypsat v největším okně "Answer from Modbus-Server" vpravo. Volbou čtecí funkce se definuje o jaká data jde, zda binární (funkce FC1 a FC2) nebo číselné 16bitové (funkce FC3 a FC4).

Zobrazené hodnoty jsou zobrazeny aktuálně v době stisku tlačítka příslušné funkce a s časem se sami neupdatují. Tedy vždy pokud chcete nové hodnoty, musíte tlačítko požadované funkce stisknout znovu. A to je vše...

Praktický test jsem vyzkoušel s měřící centrálou HWgroup Poseidon2 4002 (bližší info viz TEST - Poseidon2 a komunikace Modbus-TCP), který se svým ethernetovým rozhraním umožňuje pracovat jako Modbus slave (server). Hodnoty v jeho "Input Registers" a "Discrete Inputs" bylo možné bez problému číst prostřednictvím EasyModbus Clientu.  

Ukázka funkce čtení Hodnoty  "Input Registers" a "Discrete Inputs" registrů měřící ústředny Poseidon2.

Software EasyModbus Server TCP

Software EasyModbus Server TCP, spustitelný přes soubor "EasyModbusServerSimulator.exe", pracuje jako slave, tedy jako zdroj informací pro nějakou Modbus Client/Master jednotku, kterou může být PLC, HMI panel či jiný počítač například s běžícím programem EasyModbus Client.

EasyModbus TCP Server je též tvořen jen jedním programovým oknem, ale obsahuje více "políček" a "záložek". Nejdříve jen nutné upozornit, že tento software je pouze pro Modbus-TCP, tedy ethernetovou verzi a nepodporuje sériovou komunikaci Modbus-RTU. Protože jednotky typu server je přístupná všem, nevyplňuje se zadání žádné IP adresy a z pohledu Modbus klientů platí adresa daného počítače, na kterém tento program běží.

Zaškrtávací položky "Activated Function codes" povolují/blokují použití funkcí ze strany klientu, tedy nezaškrtnuté Modbus funkce nebude klient použít. Tím se také definují o oblasti dat, které jsou z vnějšku přístupné.

Co budou Modbus klienti získávat / číst za data se definuje v záložkách:

  • Discrete Inputs - binární stavy určené pouze pro čtení funkcí FC02 (Read Discrete Inputs).
  • Coils - binární stavy, které lze strany Modbus klientu nejen číst funkcí FC01 (Read Coils), ale i zapisovat funkcemi FC05 a FC15.
  • Input Registers - 16bitové číselné hodnoty určené pouze pro čtení funkcí FC04 (Read Input Registers).
  • Holding Registers - 16bitové číselné hodnoty, které lze číst funkcemi FC03 a zapisovat do nich funkcemi FC06, FC16 a FC23.

Na jednotlivé pozice "Address" v rozsahu 0 až 20 lze do políček "Values" zapisovat z klávesnice hodnoty, které jsou vidět ze strany Modbus klienta.

Praktický test jsem vyzkoušel v komunikaci s dalším notebookem, který pracoval s programem EasyModbus Client, zatímco v PC s EasyModbusTCP Serverem fungovalo jako zdroj informací (slave). Komunikace probíhala spolehlivě a bez jakýkoliv komplikací.

Závěr

Oba EXE prográmky projektu EasyModbus zde uvedené jsou sice svojí funkcí a výbavou až triviální, ale na druhé straně zcela bezproblémové na užívání. Každý servisní technik je může mít snadno u sebe v PC nebo na USBFlash a kdykoliv je operativně použít i například na zapůjčeném počítači. Z tohoto pohledu je hodnotím jako užitečnou základní pracovní pomůcku k Modbus sběrnicím.

Odkazy:

Hodnocení článku: