Modbus
After adding Modbus devices in the UI interface, you can communicate with Modbus devices. Specifically, log in to IP/ui, go to Settings, select ModBus Settings, create a new ModBus, set the device name, select the type, set the slave address or the TCP IP and port, and confirm to finish adding the device.
Set Flange Baud Rate
- Function name: Method
set_flange_baud_rateunder [Robot] - Parameters:
- baud_rate: [int] Baud rate. Default 115200
- Return: None
Returns empty or throws a connection error
WARNING
To set the serial port baud rate, use set_serial_baud_rate
Example Program
lebai:set_flange_baud_rate(115200)
lebai.set_flange_baud_rate(115200)
Disconnect
Disconnect the connection with the specified Modbus device.
- Function name: Method
disconnect_modbusunder [Robot] - Parameters:
- device: [str] Device name
- Return: None
Example Program
lebai:disconnect_modbus("485_1")
lebai.disconnect_modbus("485_1")
Set Timeout
- Function name: Method
set_modbus_timeoutunder [Robot] - Parameters:
- device: [str] Device name
- timeout: [int] Timeout duration in milliseconds (ms). Default 800ms
- Return: None
Example Program
lebai:set_modbus_timeout("485_1", 500)
lebai.set_modbus_timeout("485_1", 500)
Set Timeout Retransmissions
- Function name: Method
set_modbus_retryunder [Robot] - Parameters:
- device: [str] Device name
- retry: [int] Number of timeout retransmissions. Default 0
- Return: None
Example Program
lebai:set_modbus_retry("485_1", 3)
lebai.set_modbus_retry("485_1", 3)
Write Single Coil
- Function name: Method
write_single_coilunder [Robot] - Parameters:
- device: [str] Device name
- pin: [str] Register address (string format: e.g.
'0x64'or'100') - value: [bool] Value to set
- Return: None
Example Program
lebai:write_single_coil("485_1", "100", false)
lebai.write_single_coil("485_1", "100", False)
Write Multiple Coils
- Function name: Method
write_multiple_coilsunder [Robot] - Parameters:
- device: [str] Device name
- pin: [str] Register address (string format: e.g.
'0x64'or'100') - values: [list[bool]] Values to set
- Return: None
Example Program
lebai:write_multiple_coils("485_1", "100", {false, true})
lebai.write_multiple_coils("485_1", "100", [False, True])
Read Coils
- Function name: Method
read_coilsunder [Robot] - Parameters:
- device: [str] Device name
- pin: [str] Register address (string format: e.g.
'0x64'or'100') - count: [int] Consecutive quantity
- Return: [list[bool]] Status of the consecutive coils
Example Program
values = lebai:read_coils("485_1", "100", 2)
print(values)
values = lebai.read_coils("485_1", "100", 2)
print(values)
Read Discrete Inputs
- Function name: Method
read_discrete_inputsunder [Robot] - Parameters:
- device: [str] Device name
- pin: [str] Register address (string format: e.g.
'0x64'or'100') - count: [int] Consecutive quantity
- Return: [list[bool]] Status of the consecutive discrete input register values
Example Program
values = lebai:read_discrete_inputs("485_1", "200", 2)
print(values)
values = lebai.read_discrete_inputs("485_1", "200", 2)
print(values)
Write Single Register
- Function name: Method
write_single_registerunder [Robot] - Parameters:
- device: [str] Device name
- pin: [str] Register address (string format: e.g.
'0x9C40'or'40000') - value: [int] Value to set
- Return: None
Example Program
lebai:write_single_register("485_1", "200", 1)
lebai.write_single_register("485_1", "200", 1)
Write Multiple Registers
- Function name: Method
write_multiple_registersunder [Robot] - Parameters:
- device: [str] Device name
- pin: [str] Register address (string format: e.g.
'0x9C40'or'40000') - values: [list[int]] Values to set
- Return: None
Example Program
lebai:write_multiple_registers("485_1", "200", {1, 2, 3})
lebai.write_multiple_registers("485_1", "200", [1, 2, 3])
Read Holding Registers
- Function name: Method
read_holding_registersunder [Robot] - Parameters:
- device: [str] Device name
- pin: [str] Register address (string format: e.g.
'0x9C40'or'40000') - count: [int] Consecutive quantity
- Return: [list[int]] Values at the corresponding consecutive holding register addresses
Example Program
values = lebai:read_holding_registers("485_1", "200", 3)
print(values)
values = lebai.read_holding_registers("485_1", "200", 3)
print(values)
Read Input Registers
- Function name: Method
read_input_registersunder [Robot] - Parameters:
- device: [str] Device name
- pin: [str] Register address (string format: e.g.
'0x9C40'or'40000') - count: [int] Consecutive quantity
- Return: [list[int]] Values at the corresponding consecutive input register addresses
Example Program
values = lebai:read_input_registers("485_1", "300", 3)
print(values)
values = lebai.read_input_registers("485_1", "300", 3)
print(values)
Example
local serial_device = "/dev/ttyS1"
lebai:set_serial_timeout(serial_device, 200)
lebai:set_serial_baud_rate(serial_device, 9600)
local modbus_device = "485_1"
lebai:set_modbus_timeout(modbus_device, 500)
lebai:write_single_coil(modbus_device, "100", false)
serial_device = "/dev/ttyS1"
lebai.set_serial_timeout(serial_device, 200)
lebai.set_serial_baud_rate(serial_device, 9600)
modbus_device = "485_1"
lebai.set_modbus_timeout(modbus_device, 500)
lebai.write_single_coil(modbus_device, "100", False)
