how can you determine which device is not read properly?

106 views
Skip to first unread message

Nasm O

unread,
Apr 14, 2015, 10:58:16 PM4/14/15
to ope...@googlegroups.com
Hello!
And how can you determine which device is not read properly?
Modbus binding does not report on any device and register it in error :(
Once I saw that some device is not interrogated, I was able to identify him only an experimental way (commenting on an items and looked lost error or not).

I have the following configuration:

modbus:poll=400
modbus:serial.seapp_version.connection=/dev/rs485bus:9600:8:none:1
modbus:serial.seapp_version.start=46152
modbus:serial.seapp_version.length=2
modbus:serial.seapp_version.type=holding
#
modbus:serial.seapp_unread.connection=/dev/rs485bus:9600:8:none:1
modbus:serial.seapp_unread.start=46162
modbus:serial.seapp_unread.length=1
modbus:serial.seapp_unread.type=holding
#
modbus:serial.seapp_event.connection=/dev/rs485bus:9600:8:none:1
modbus:serial.seapp_event.start=46264
modbus:serial.seapp_event.length=14
modbus:serial.seapp_event.type=holding
#
modbus:serial.seapp_relays.connection=/dev/rs485bus:9600:8:none:1
modbus:serial.seapp_relays.start=10000
modbus:serial.seapp_relays.length=9
modbus:serial.seapp_relays.type=coil
#
modbus:serial.seapp_zones.connection=/dev/rs485bus:9600:8:none:1
modbus:serial.seapp_zones.start=40049
modbus:serial.seapp_zones.length=4
modbus:serial.seapp_zones.type=holding
#
modbus:serial.seapp_section.connection=/dev/rs485bus:9600:8:none:1
modbus:serial.seapp_section.start=44096
modbus:serial.seapp_section.length=3
modbus:serial.seapp_section.type=holding
#
modbus:serial.seapp_states.connection=/dev/rs485bus:9600:8:none:1
modbus:serial.seapp_states.start=40000
modbus:serial.seapp_states.length=6
modbus:serial.seapp_states.type=holding
#
modbus:serial.msu34_01.connection=/dev/rs485bus:9600:8:none:2
modbus:serial.msu34_01.start=0
modbus:serial.msu34_01.length=4
modbus:serial.msu34_01.type=input
#
modbus:serial.senka_in_01.connection=/dev/rs485bus:9600:8:none:2
modbus:serial.senka_in_01.start=0
modbus:serial.senka_in_01.length=8
modbus:serial.senka_in_01.type=input
#
modbus:serial.senka_out_01.connection=/dev/rs485bus:9600:8:none:2
modbus:serial.senka_out_01.start=0
modbus:serial.senka_out_01.length=8
modbus:serial.senka_out_01.type=coil
#######################################################################
OpenHab version 1.6.2
part log file:
2015-04-15 07:29:42.070 [INFO ] [.b.modbus.internal.ModbusSlave] - ModbusSlave error getting responce from slave
2015-04-15 07:29:46.404 [DEBUG] [.b.modbus.internal.ModbusSlave] - ModbusSlave:I/O exception - failed to read
2015-04-15 07:29:46.407 [INFO ] [.b.modbus.internal.ModbusSlave] - ModbusSlave error getting responce from slave
2015-04-15 07:29:49.740 [DEBUG] [.b.modbus.internal.ModbusSlave] - ModbusSlave:I/O exception - failed to read
2015-04-15 07:29:49.743 [INFO ] [.b.modbus.internal.ModbusSlave] - ModbusSlave error getting responce from slave
2015-04-15 07:29:53.083 [DEBUG] [.b.modbus.internal.ModbusSlave] - ModbusSlave:I/O exception - failed to read
2015-04-15 07:29:53.087 [INFO ] [.b.modbus.internal.ModbusSlave] - ModbusSlave error getting responce from slave
2015-04-15 07:29:56.420 [DEBUG] [.b.modbus.internal.ModbusSlave] - ModbusSlave:I/O exception - failed to read
2015-04-15 07:29:56.423 [INFO ] [.b.modbus.internal.ModbusSlave] - ModbusSlave error getting responce from slave
2015-04-15 07:29:59.768 [DEBUG] [.b.modbus.internal.ModbusSlave] - ModbusSlave:I/O exception - failed to read
2015-04-15 07:29:59.810 [INFO ] [.b.modbus.internal.ModbusSlave] - ModbusSlave error getting responce from slave
2015-04-15 07:30:03.143 [DEBUG] [.b.modbus.internal.ModbusSlave] - ModbusSlave:I/O exception - failed to read
2015-04-15 07:30:03.150 [INFO ] [.b.modbus.internal.ModbusSlave] - ModbusSlave error getting responce from slave


Nick AtNick

unread,
Apr 17, 2015, 7:28:21 AM4/17/15
to ope...@googlegroups.com
Hi,

it seems that the ModbusSerialSlave doesn't instantiate the following parameter *but* keeps them static for all instances:
private static String port = null;
private static int baud = 9600;
private static int dataBits = 8;
private static String parity = "None"; // "none", "even" or "odd"
private static Double stopBits = 1.0;
private static String serialEncoding = Modbus.DEFAULT_SERIAL_ENCODING;
https://github.com/openhab/openhab/blob/master/bundles/binding/org.openhab.binding.modbus/src/main/java/org/openhab/binding/modbus/internal/ModbusSerialSlave.java#L32-L37

This could lead to disability to use different values for each an every parameter listed. Could someone verify that?
In your case the stopbit would be affected (maybe your first seven entries in the conf file).

IMHO There is a need to change something within the ModbusSerialSlave. Is someone willing to change the behavioral of the ModbusSerialSlave??

Ad Logging:
There has been significant improvements on modbus logging since openhab v1.7.*, however sadly nothing has changed within the "ModbusSlave error getting responce from slave" log message.
https://github.com/openhab/openhab/blob/master/bundles/binding/org.openhab.binding.modbus/src/main/java/org/openhab/binding/modbus/internal/ModbusSlave.java#L305

Best
Reply all
Reply to author
Forward
0 new messages