Objavil som pekný CLI nástroj s názvom mbpoll, ktorý možno použiť na rýchlu validáciu Modbus zapojenia cez CLI. Je veľmi šikovný pre všetko, čo má Ethernet port pre ModbusTCP, vrátane zariadení ako priemyselné kontroléry založené na Raspberry Pi.

Navyše, ak je k dispozícii akýkoľvek druh RS485 rozhrania, možno ho použiť aj pre ModbusRTU. Úspešne sa mi podarilo ho použiť s lacným USB-to-RS485 dongle na báze čipu CH340 a s RevPi Connect s jeho integrovanými RS485 svorkami.

Kompilovanie mbpoll na Raspberry Pi 4 #

Hoci mbpoll nie je dostupný zo štandardných repozitárov, README dostatočne dobre vysvetľuje, čo treba urobiť, s niekoľkými odlišnosťami. V skratke:

sudo apt-get install cmake pkg-config libmodbus-dev
git clone https://github.com/epsilonrt/mbpoll.git
cd mbpoll
mkdir build
cd build
cmake ..
make package
sudo dpkg -i mbpoll_1.4.25_armhf.deb

Podmienkou je, aby libmodbus-dev bola verzia >= v3.1.4. V čase písania bola na mojom zariadení presne táto verzia, takže žiadne problémy. Je možné to vopred skontrolovať:

apt-cache show libmodbus-dev

V opačnom prípade je potrebné skompilovať libmodbus zo zdrojového kódu.

Príklady príkazov #

Na nastavenie cievky 4 (3 na zariadeniach, ktoré počítajú od 0) na zariadení s Modbus adresou 7 do stavu HIGH pomocou USB donglu možno použiť tento príkaz:

mbpoll -t 4 -a 7 -b 9600 -P none /dev/ttyUSB0 1

Pre úplnosť, nastavenie tej istej cievky do stavu LOW:

mbpoll -t 4 -a 7 -b 9600 -P none /dev/ttyUSB0 0

Oba príkazy predpokladajú, že slave je zariadenie ModbusRTU komunikujúce s prenosovou rýchlosťou 9600 baud s nastaveniami 8N1. Pre zaznamenanie, použitý ModbusRTU slave bol Qiudo RS 8/8.

Toto je 90. príspevok #100daystooffload.