ModShell - Parancsvezérelt szkriptelhető Modbus segédprogram

Címkék

Elkészült a ModShell második fejlesztői teszt kiadása (v0.1-alpha2).

A ModShell egy többféle operációs rendszerre elkészített kommunikációs segédprogram, amely Modbus/ASCII, Modbus/RTU és Modbus/TCP protokollt ismerő berendezésekhez használható. A program Modbus szerverként és Modbus átjáróként is tud működni.

A ModShell egy - karácsonyi projektnek szánt - névtelen és kicsi tesztprogramnak indult, amivel megkönnyíthetem az általam épített készülékek beállítását és tesztelését. Időközben annyi újdonság került bele, hogy nevet kellett adni a gyereknek. Nekem hasznos lett és annak reményében adom közre, hogy másnak is hasznosnak bizonyul annak ellenére, hogy ez még nem alkalmas teljes mértékben a feladata ellátására.

A program hagyományos vagy teljes képernyős parancssoros felületen fut és a saját szkriptjeinek önálló, akár időzített futtatására (parancsértelmezőként) is alkalmas.

Működése és jellemzői

A legfeljebb nyolc I/O eszközt (dev0-7) és nyolc protokollt (pro0-7) tetszőlegesen kombinálva beállítható legfeljebb nyolc kapcsolat (con0-7), amelyre a kommunikációs parancsok kiadásakor hivatkozhat. Az adatforgalom mindig az előre beállított kapcsolatok között zajlik. Az adatforgalomban résztvevő adatok minden esetben a belső pufferbe érkeznek, vagy onnan kerülnek kiolvasásra. A pufferben 2 * 9999 logikai és ugyanannyi szó érték tárolására van lehetőség. A regisztertartalom táblázatos formában is megjeleníthető.

A programban százhuszonnyolc változó és állandó hozható létre, amelyekhez tetszőleges típusú értéket rendelhet. A regisztertartalmak, a változók és az állandók segítségével logikai ill. matematikai műveleteket végezhet és értéket adhat át a parancsoknak. A változók értéke futás közben is megfigyelhető.

A program 94 parancsot képes kezelni amely következő kilenc kategóriába van sorolva: matematikai műveletek, kommunikáció, beállítás, fájlkezelés, általános parancsok, logikai műveletek, regiszterkezelés, szkriptkezelés és sztringkezelés.

A programban projektet lehet lérehozni, amely megkönnyíti az összetartozó fájlok kezelését.

A parancssori előzmény szöveges fájlba exportálható. Az összes eszköz, protokoll és kapcsolatbeállítás egyben elmenthető és betölthető a program saját fájlformátumában. Az összes regiszterérték egyben elmenthető és betölthető a program saját fájlformátumában. Egy vagy több azonos típusú regiszter exportálható fájlba (CSV, INI vagy XML) kiterjesztéssel, de a program csak INI és XML formátumú fájlokból tud importálni. Kilépéskor a parancssori előzmények, visszhang mód és a színek mentésre kerülnek.

A lemezen lévő szkript elindítható önmagában, de betölthető a már futó ModShell programba is, amely ezután parancssorból is elindítható. A betöltött program a beépített sorszerkesztővel módosítható és lemezre menthető.

A program lehetőséget biztosít nyers adatok küldésére és fogadására is soros porton keresztül, és tartalmaz egy nagyon egyszerű soros konzolt is. Az elküldött és fogadott adatok megjelenítése kikapcsolható vagy nyers szöveg illetve hexadecimális nézet választható. Az adatforgalom naplózásra kerül.

A honlapról letölthető a forráscsomag és a 25 féle telepítőcsomag is DOS, FreeBSD, Linux, Raspberry Pi OS és Windows operációs rendszerekhez (armhf, i386 és amd64 processzorokhoz).

Github: https://github.com/pozsarzs/modshell
Online leírás: https://github.com/pozsarzs/modshell/wiki
Licenc: EUPL v1.2

PS.: Építő jellegű észrevételt, hibajelentést, javaslatot és megjegyzést szívesen fogadok. Kérlek vegyétek figyelembe, hogy a program még a v0.1 verziót sem érte el és a második nagyobb tesztje előtt áll.

A fejlesztést és a folyamatos próbát soros porton összekötött FreeDOS-os és Linuxos/FreeBSD-s géppárral végeztem. A port beállítása 9600 8N1 volt. A külső eszközök olvasását/írását soros porton (9600 7E1, ASCII) és és USB/RS-485- konverteren keresztül (19200 8N1, RTU) teszteltem.

Hozzászólások

Szerkesztve: 2024. 02. 17., szo – 16:46

Látok benne fantáziát. Melóban mostanában foglalkoztam vele. MODBUS/TCP-vel ki fogom próbálni!

Nem építő jellegű, de bevallom, hogy nem hallottam még erről a Modbus-ról, most így utánaolvasva meghökkent, hogy 1979-ben megjelent protokoll. Ez nekem teljesen kimaradt. Ami azért is érdekes, mert a hasonszőrű Kermit, X/Y/Zmodem, stb.-vel azért lehet legalább említés szintjén találkozni, ha más nem retrós témában.

A computer is like air conditioning – it becomes useless when you open Windows.” (Linus Torvalds)

Még a 2000-es évek elején dolgoztunk MODBUS protokollal, nem gondoltam, hogy ez még létezik, de az ipari megoldások eléggé sokáig életben maradnak. Szép munka!

Modbus-t nem lehet megölni. Minden gyártó támogatja és egyszerü mint a faék. Cserébe nincs mögötte semmiféle szemantika ("Unified Name Space" kifejezés most divatos) mint pl. az OPC-UA-ban, hanem a regiszterekbe azt írsz és úgy be ahogy az neked tetszik. Megannyi lib van pl. Arduino-ra is.