Logic Machine Forum
Link object address to modbus register - Printable Version

+- Logic Machine Forum (https://forum.logicmachine.net)
+-- Forum: LogicMachine eco-system (https://forum.logicmachine.net/forumdisplay.php?fid=1)
+--- Forum: Gateway (https://forum.logicmachine.net/forumdisplay.php?fid=10)
+--- Thread: Link object address to modbus register (/showthread.php?tid=1172)



Link object address to modbus register - Mr.D - 11.01.2018

Hi,

I am running a iEM3150 power meter and have used the Jason profile under modbus to setup the device. However, the iEM3150 has a register 3255 that is not assigned which tells me the partial energy consumption. I would like to assign this holding register to the spacelynk object (just like the rest of the holding register).
How do I go about doing this?

Aslo, from the user manual of the iEM3150, the register 2020 is possible to reset via modbus command, how is this done?
https://www.schneider-electric.co.kr/documents/Catalogue/iEM31003200_UserManual.pdf


BR
Mr.D


RE: Link object address to modbus register - Mr.D - 17.01.2018

I have now been able to link the correct register to the spacelynk object.
However, I need help to figure out how to send the command number 2020 to the IEM 3150?
According to the manual the command 2020 uint16, resets the counter...
Anyone?
BR,
Mr.D


RE: Link object address to modbus register - Daniel - 17.01.2018

(17.01.2018, 19:33)Mr. Danielsen Wrote: I have now been able to link the correct register to the spacelynk object.
However, I need help to figure out how to send the command number 2020 to the IEM 3150?
According to the manual the command 2020 uint16, resets the counter...
Anyone?
BR,
Mr.D

Hi
You are not talking in modbus language here  Wink
What value to which registry via which modbus function do you want to write?  Answer this question and then we can help  Smile
BR


RE: Link object address to modbus register - Erwin van der Zwart - 17.01.2018

Hi,

2020 is not a register, it's the number you need for the command interface that is build into the iEM devices, with this interface you can do everything on the device over the modbus connection that usually is done on the display of the device. To use the command interface you must disable the COM protection on the device by using the display once (default enabled).

After that you can use this script to reset the counters:
Code:
require('luamodbus')
mb = luamodbus.rtu()
mb:open('/dev/RS485', 19200, 'E', 8, 1, 'H')
mb:connect()
mb:setslave(1) -- Enter the correct Modbus slave address of the kWh meter

-- Reset partial counters
mb:writeregisters(5249, 2020, '')

-- Results of Reset partial counters
r1, r2 = mb:readregisters(5374, 2)
log ("Result Command: " .. r1) 
log ("Result Code: " .. r2) -- 0 = valid operation, 3000 = invalid Operation, 3001 = Invalid Parameter, 3002 = Invalid number of parameters, 3007 = Operation not perfomed

mb:close()

BR,

Erwin


RE: Link object address to modbus register - Mr.D - 17.01.2018

Thanks Erwin,

Exactly what I was looking for Smile
Thanks again!!

BR,
Mr.D


RE: Link object address to modbus register - iJAF - 31.03.2022

(17.01.2018, 21:23)Erwin van der Zwart Wrote: Hi,

2020 is not a register, it's the number you need for the command interface that is build into the iEM devices, with this interface you can do everything on the device over the modbus connection that usually is done on the display of the device. To use the command interface you must disable the COM protection on the device by using the display once (default enabled).

After that you can use this script to reset the counters:
Code:
require('luamodbus')
mb = luamodbus.rtu()
mb:open('/dev/RS485', 19200, 'E', 8, 1, 'H')
mb:connect()
mb:setslave(1) -- Enter the correct Modbus slave address of the kWh meter

-- Reset partial counters
mb:writeregisters(5249, 2020, '')

-- Results of Reset partial counters
r1, r2 = mb:readregisters(5374, 2)
log ("Result Command: " .. r1) 
log ("Result Code: " .. r2) -- 0 = valid operation, 3000 = invalid Operation, 3001 = Invalid Parameter, 3002 = Invalid number of parameters, 3007 = Operation not perfomed

mb:close()

BR,

Erwin

Hi Erwin, 

I have a building with a lot of energy meters from SE via SpaceLynk.
I have configured them via JSON profiles.
I have noticed that the profile that came doesn't have this registers to Reset the Partial Energy.

I'm planing to create a single JSON profile with the single register 5250 and then a script will run every last day of the month and write the value 2020 ?

Will it work ?

I suppose that this script you posted here will interfere with the JSON profiles communication if I use it in parallel, right ?

Thank you


RE: Link object address to modbus register - Daniel - 31.03.2022

You can create second profile for same device. This will work, you can also use proxy see this
https://forum.logicmachine.net/showthread.php?tid=839&pid=22637#pid22637