RaspberryPi +Modbus
: 05 mar 2018, 21:12
Witam,
Mam za zadanie zczytać dane z licznik Multical 602 (w płytką Modbus RTU http://www.multical.hu/MODBUS_datasheet.pdf). Próbuję do tego wykorzystać RPi3 z dodatkowym shieldem https://botland.com.pl/raspberry-pi-hat ... i-2bb.html.
Wcześniej nie mając do dyspozycji licznika Multical, symulowałem go za pomocą drugiego komputera z konwerterem USB -> RS485 i komunikacja działała bez zarzutów. Po podłączeniu RPi kablem do licznika ciepła nie mam możliwości skomunikować się z tym urządzeniem korzystając z domyślnych parametrów. Bawiłem się też zmianą tych parametrów i nic.
Próbowałem już skrypt przygotowany w Pythonie:
from pymodbus.client.sync import ModbusSerialClient as ModbusClient
client = ModbusClient(method='rtu', port='/dev/ttyAMA0', timeout=1, stopbits = 1, bytesize = 8, baudrate=19200, parity='E')
conn = client.connect()
rr = client.read_holding_registers(0x0100, 16, unit=41)
ponadto korzystałem z programu mbpool https://github.com/epsilonrt/mbpoll , komenda:
sudo mbpoll -a 4 -b 19200 -t 4 -r 0x0100 -c 16 -s 1 -d 8 -P even -v /dev/ttyAMA0
W każdym przypadku otrzymuję błędy typu:
"Read output (holding) register failed: Connection timed out"
"No response received from remote host"
Może ktoś spotkał się wcześniej z czymś takim i byłby mi w stanie pomóc?
Mam za zadanie zczytać dane z licznik Multical 602 (w płytką Modbus RTU http://www.multical.hu/MODBUS_datasheet.pdf). Próbuję do tego wykorzystać RPi3 z dodatkowym shieldem https://botland.com.pl/raspberry-pi-hat ... i-2bb.html.
Wcześniej nie mając do dyspozycji licznika Multical, symulowałem go za pomocą drugiego komputera z konwerterem USB -> RS485 i komunikacja działała bez zarzutów. Po podłączeniu RPi kablem do licznika ciepła nie mam możliwości skomunikować się z tym urządzeniem korzystając z domyślnych parametrów. Bawiłem się też zmianą tych parametrów i nic.
Próbowałem już skrypt przygotowany w Pythonie:
from pymodbus.client.sync import ModbusSerialClient as ModbusClient
client = ModbusClient(method='rtu', port='/dev/ttyAMA0', timeout=1, stopbits = 1, bytesize = 8, baudrate=19200, parity='E')
conn = client.connect()
rr = client.read_holding_registers(0x0100, 16, unit=41)
ponadto korzystałem z programu mbpool https://github.com/epsilonrt/mbpoll , komenda:
sudo mbpoll -a 4 -b 19200 -t 4 -r 0x0100 -c 16 -s 1 -d 8 -P even -v /dev/ttyAMA0
W każdym przypadku otrzymuję błędy typu:
"Read output (holding) register failed: Connection timed out"
"No response received from remote host"
Może ktoś spotkał się wcześniej z czymś takim i byłby mi w stanie pomóc?
