Modbus 操作
本文主要展示 RHILEX 的 MODBUS 读写控制能力,为了简化,直接将 Modbus 的操作设计为功能码名称函数,比如 F3 代表读寄存器。
05 写单个线圈(Write Single Coil)
Lua
function Main(arg)
local UUID = 'DEVICE9KXIGK'
while true do
-- UUId , ModbusId, StartAddr, Value:00|01
local err1 = modbus:F5(UUID, 1, 0, "00")
time:Sleep(1000)
local err2 = modbus:F5(UUID, 1, 0, "01")
time:Sleep(1000)
end
return 0
end
06 写单个寄存器(Write Single Holding Register)
Lua
function Main(arg)
local UUID = 'DEVICE9KXIGK'
while true do
local err1 = modbus:F6(UUID, 1, 0, "AABB")
time:Sleep(1000)
local err2 = modbus:F6(UUID, 1, 0, "CCDD")
time:Sleep(1000)
end
return 0
end
15 写多个线圈(Write Multiple Coils)
Lua
function Main(arg)
local UUID = 'DEVICE9KXIGK'
while true do
local err1 = modbus:F15(UUID, 1, 0, 8, "AA")
time:Sleep(1000)
local err2 = modbus:F15(UUID, 1, 0, 8, "55")
time:Sleep(1000)
end
return 0
end
16 写多个寄存器(Write Multiple Holding Registers)
Lua
function Main(arg)
local UUID = 'DEVICE9KXIGK'
while true do
local err1 = modbus:F16(UUID, 1, 0, 2, "AABBCCDD")
time:Sleep(1000)
local err2 = modbus:F16(UUID, 1, 0, 2, "11223344")
time:Sleep(1000)
end
return 0
end