Hi all,
I received one of these meters today to test (Eastron SDM120CTM). It came set with baudrate at 9600, ID 1, but trying this (to change the ID) using something like the below...
... doesn't work. I get, "Illegal Function exception response!" from modpoll.
I can read everything just fine (eg. voltage):
$ modpoll -b9600 -pnone -f -t3:float -r 1 /dev/ttyUSB0
modpoll 3.10 - FieldTalk(tm) Modbus(R) Master Simulator
Copyright (c) 2002-2021 proconX Pty Ltd
Visit https://www.modbusdriver.com for Modbus libraries and tools.
Protocol configuration: Modbus RTU, FC4
Slave configuration...: address = 1, start reference = 1, count = 1
Communication.........: /dev/ttyUSB0, 9600, 8, 1, none, t/o 1.00 s, poll rate 1000 ms
Data type.............: 32-bit float, input register table
Word swapping.........: Slave configured as big-endian float machine
-- Polling slave... (Ctrl-C to stop)
[1]: 240.000000
-- Polling slave... (Ctrl-C to stop)
[1]: 240.199997
^C
... and can read the Modbus ID...
$ modpoll -b9600 -pnone -f -t4:float -r 21 -c 1 /dev/ttyUSB0
modpoll 3.10 - FieldTalk(tm) Modbus(R) Master Simulator
Copyright (c) 2002-2021 proconX Pty Ltd
Visit https://www.modbusdriver.com for Modbus libraries and tools.
Protocol configuration: Modbus RTU, FC3
Slave configuration...: address = 1, start reference = 21, count = 1
Communication.........: /dev/ttyUSB0, 9600, 8, 1, none, t/o 1.00 s, poll rate 1000 ms
Data type.............: 32-bit float, output (holding) register table
Word swapping.........: Slave configured as big-endian float machine
-- Polling slave... (Ctrl-C to stop)
[21]: 1.000000
-- Polling slave... (Ctrl-C to stop)
[21]: 1.000000
-- Polling slave... (Ctrl-C to stop)
^C
...but trying to update the address isn't working.
$ modpoll -b9600 -pnone -f -t4:float -r 21 -c 1 /dev/ttyUSB0 30
modpoll 3.10 - FieldTalk(tm) Modbus(R) Master Simulator
Copyright (c) 2002-2021 proconX Pty Ltd
Visit https://www.modbusdriver.com for Modbus libraries and tools.
Protocol configuration: Modbus RTU, FC16
Slave configuration...: address = 1, start reference = 21, count = 1
Communication.........: /dev/ttyUSB0, 9600, 8, 1, none, t/o 1.00 s, poll rate 1000 ms
Data type.............: 32-bit float, output (holding) register table Word swapping.........: Slave configured as big-endian float machine
Illegal Function exception response!
The unit reports software version (from the display on the actual device) as "6203.01".
You are supposed to be able to change the Modbus ID from the actual device using a 'setup menu' but I can't find it.
There is a single button on the device which I can long press. Display changes to " - SET -". Short press here does nothing. Long press again goes to "CT" screen to set primary current. Short press cycles through the options. Long press seems to save this but goes directly back to the regular display (ie. show KWh, V, A, W, etc). Ie. there seems to be no way to get to the place in the 'setup menu' to change Modbus ID. I tried holding the button while powering on and on different screens but can't find anything. In fact, the only thing one seems to be able to do with the 'setup menu' is change the primary CT. Not much of a menu!
Does anyone else have one of these devices that functions like this? Have you been able to change the Modbus ID from the device itself or sending Modbus commands?
Can anyone see anything silly I've done above?
Thanks in advance,
Robin