![]() |
|
is modbus device online - Printable Version +- LogicMachine Forum (https://forum.logicmachine.net) +-- Forum: LogicMachine eco-system (https://forum.logicmachine.net/forumdisplay.php?fid=1) +--- Forum: Scripting (https://forum.logicmachine.net/forumdisplay.php?fid=8) +--- Thread: is modbus device online (/showthread.php?tid=2828) |
is modbus device online - benanderson_475 - 04.09.2020 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 RE: is modbus device online - Daniel - 04.09.2020 You can check it like this Code: -- 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)
endRE: is modbus device online - benanderson_475 - 08.09.2020 (04.09.2020, 07:29)Daniel. Wrote: You can check it like this Many Thanks, it works perfectly
RE: is modbus device online - balatis - 13.09.2020 (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 RE: is modbus device online - Erwin van der Zwart - 13.09.2020 grp.checkwrite('1/1/1', checkrtu(1, 1)) or grp.checkwrite('1/1/1', checktcp('192.168.0.11', 502)) RE: is modbus device online - balatis - 13.09.2020 (13.09.2020, 17:57)Erwin van der Zwart Wrote: grp.checkwrite('1/1/1', checkrtu(1, 1))thanks Erwin! |