Modbus

在 UI 界面添加 Modbus 设备后,可以与 Modbus 设备进行通信

设置超时时间

lebai:set_modbus_timeout(device, timeout)
  • 参数
    • device 设备名称
    • timeout 超时时间,单位毫秒(ms)。默认800ms

设置超时重传次数

lebai:set_modbus_retry(device, retry)
  • 参数
    • device 设备名称
    • retry 超时重传次数。默认0次

写单个线圈

lebai:write_single_coil(device, addr, value)
  • 参数
    • device 设备名称
    • addr 寄存器地址
    • value 待设置的值

写多个线圈

lebai:write_multiple_coils(device, addr, values)
  • 参数
    • device 设备名称
    • addr 寄存器地址
    • values 待设置的值

读线圈

values = lebai:read_coils(device, addr, num)
  • 参数
    • device 设备名称
    • addr 寄存器地址
    • num 连续数量

读离散输入

values = lebai:read_discrete_inputs(device, addr, num)
  • 参数
    • device 设备名称
    • addr 寄存器地址
    • num 连续数量

写单个寄存器

lebai:write_single_register(device, addr, value)
  • 参数
    • device 设备名称
    • addr 寄存器地址
    • value 待设置的值

写多个寄存器

lebai:write_multiple_registers(device, addr, values)
  • 参数
    • device 设备名称
    • addr 寄存器地址
    • values 待设置的值

读取保持寄存器

values = lebai:read_holding_registers(device, addr, num)
  • 参数
    • device 设备名称
    • addr 寄存器地址
    • num 连续数量

读取输入寄存器

values = lebai:read_input_registers(device, addr, num)
  • 参数
    • device 设备名称
    • addr 寄存器地址
    • num 连续数量

示例

local device = "/dev/ttyS1"
lebai:set_serial_timeout(device, 200)
lebai:set_serial_baud_rate(device, 9600)

lebai:set_modbus_timeout("485_1", 500)
lebai:write_single_coil("485_1", "100", false)