04.09.2020, 03:18
Is there a way in lua to return true or false if a specific modbus device is online? say modbus device at address 3?
Many thanks
Many thanks
is modbus device online
|
04.09.2020, 03:18
Is there a way in lua to return true or false if a specific modbus device is online? say modbus device at address 3?
Many thanks
04.09.2020, 07:29
You can check it like this
Code: 123456789101112131415161718 -- First parameter is slave ID, second is optional RTU port number (1, 2 or 3; default is 1)
function checkrtu(slave, portnr)
local query = 'SELECT active FROM modbus_devices WHERE proto="rtu" AND slave=? AND portnr=?'
if type(portnr) == 'number' and portnr == 2 or portnr == 3 then
portnr = portnr - 1
else
portnr = 0
end
local res = db:getone(query, slave, portnr)
return toboolean(res)
end
function checktcp(ip, port)
local settings, res
settings = tostring(ip) .. ':' .. tostring(port)
res = db:getone('SELECT active FROM modbus_devices WHERE proto="tcp" AND settings=?', settings)
return toboolean(res)
end
------------------------------
Ctrl+F5
08.09.2020, 04:46
(04.09.2020, 07:29)Daniel. Wrote: You can check it like this Many Thanks, it works perfectly ![]()
13.09.2020, 15:08
(04.09.2020, 07:29)Daniel. Wrote: You can check it like thisHi As i can get the result in a group address?? Thanks in advance
13.09.2020, 17:57
(This post was last modified: 13.09.2020, 18:17 by Erwin van der Zwart.)
grp.checkwrite('1/1/1', checkrtu(1, 1))
or grp.checkwrite('1/1/1', checktcp('192.168.0.11', 502))
13.09.2020, 19:28
|
« Next Oldest | Next Newest »
|