EasyManua.ls Logo

Embedded Systems LM5p-GSMC - Page 212

Default Icon
291 pages
To Next Page IconTo Next Page
To Next Page IconTo Next Page
To Previous Page IconTo Previous Page
To Previous Page IconTo Previous Page
Loading...
212
30.
mb:setregisters(id - 1, value)
31.
end
32.
end
33.
end
34.
35.
-- coil write callback
36.
function mbwritecoils(coil, value)
37.
local addr = coils[ coil + 1 ]
38.
if addr then
39.
grp.write(addr, value, dt.bool)
40.
end
41.
end
42.
43.
-- register write callback
44.
function mbwriteregisters(register, value)
45.
local addr = registers[ register + 1 ]
46.
if addr then
47.
grp.write(addr, value, regdt[ register + 1])
48.
end
49.
end
50.
51.
-- knx group monitor, handles group writes
52.
knxclient = eibdgm:new({ timeout = 0.1 })
53.
knxclient:sethandler('groupwrite', knxgroupwrite)
54.
55.
-- modbus slave, listen on all interfaces and default port 502
56.
mb = luamodbus.tcp()
57.
mb:open('0.0.0.0', 502)
58.
59.
-- setting slave id is optional
60.
-- mb:setslave(1)
61.
62.
mb:setreceivetimeout(0.1)
63.
mb:setmapping(#coils, 0, #registers, 0)
64.
65.
-- init coils
66.
for id, addr in ipairs(coils) do
67.
value = grp.getvalue(addr)
68.
mb:setcoils(id - 1, value)
69.
end
70.
71.
-- init registers
72.
for id, addr in ipairs(registers) do
73.
value = grp.getvalue(addr)
74.
mb:setregisters(id - 1, value)
75.
end
76.
77.
-- set callbacks for coil and register write
78.
mb:setwritecoilcb(mbwritecoils)
79.
mb:setwriteregistercb(mbwriteregisters)

Table of Contents

Related product manuals