Modbus
在 UI (3.0)界面,可以定义某个设备名称,对应哪个串口地址和Modbus从机地址(如可以命名 “咖啡modbus” 对应机箱的485端口/dev/ttyS1和从机地址号1),
然后通过接口,去设置 “咖啡modbus” 的通讯参数,然后可以与 “咖啡modbus” 设备进行通信。
设置超时时间
lebai.set_modbus_timeout(device, timeout)
参数说明:
参数 类型 说明 device string 设备名称 timeout int 超时时间,单位毫秒(ms)。默认800ms 返回值:无返回值。
- 使用示例:
import lebai_sdk
lebai_sdk.init()
import nest_asyncio
nest_asyncio.apply()
robot_ip = "192.168.4.145"
lebai = lebai_sdk.connect(robot_ip, False)
device = '咖啡modbus'
timeout = 100
lebai.set_modbus_timeout(device, timeout)
设置超时重传次数
lebai.set_modbus_retry(device, retry)
参数说明:
参数 类型 说明 device string 设备名称 retry int 超时重传次数。默认0次 返回值:无返回值。
- 使用示例:
import lebai_sdk
lebai_sdk.init()
import nest_asyncio
nest_asyncio.apply()
robot_ip = "192.168.4.145"
lebai = lebai_sdk.connect(robot_ip, False)
device = '咖啡modbus'
timeout = 100
retry = 3
lebai.set_modbus_timeout(device, timeout)
lebai.set_modbus_retry(device, retry)
写单个线圈
lebai.write_single_coil(device, addr, value)
参数说明:
参数 类型 说明 device string 设备名称 addr int 寄存器地址 value int 待设置的值 返回值:无返回值。
- 使用示例:
import lebai_sdk
lebai_sdk.init()
import nest_asyncio
nest_asyncio.apply()
robot_ip = "192.168.4.145"
lebai = lebai_sdk.connect(robot_ip, False)
device = '咖啡modbus'
timeout = 100
retry = 3
lebai.set_modbus_timeout(device, timeout)
lebai.set_modbus_retry(device, retry)
lebai.write_single_coil(device, 100, 0)
写多个线圈
方法:lebai.write_multiple_coils(device, addr, values)
参数 类型 说明 device string 设备名称 addr int 寄存器地址 values list 待设置的值 返回值:无返回值。
- 使用示例:
import lebai_sdk
lebai_sdk.init()
import nest_asyncio
nest_asyncio.apply()
robot_ip = "192.168.4.145"
lebai = lebai_sdk.connect(robot_ip, False)
device = '咖啡modbus'
timeout = 100
retry = 3
lebai.set_modbus_timeout(device, timeout)
lebai.set_modbus_retry(device, retry)
lebai.write_multiple_coils(device,100, [0,1])
读线圈
values = lebai.read_coils(device, addr, num)
参数说明:
参数 类型 说明 device string 设备名称 addr int 寄存器地址 num int 连续数量 返回值:list类型。返回连续线圈的状态。
- 使用示例:
import lebai_sdk
lebai_sdk.init()
import nest_asyncio
nest_asyncio.apply()
robot_ip = "192.168.4.145"
lebai = lebai_sdk.connect(robot_ip, False)
device = '咖啡modbus'
timeout = 100
retry = 3
lebai.set_modbus_timeout(device, timeout)
lebai.set_modbus_retry(device, retry)
lebai.write_multiple_coils(device,100, [0,1])
do_status = lebai.read_coils(device,100, 2)
print(do_status)
读离散输入
values = lebai.read_discrete_inputs(device, addr, num)
参数说明:
参数 类型 说明 device string 设备名称 addr int 寄存器地址 num int 连续数量 返回值:list类型。返回连续的离散寄存器数值的状态。
- 使用示例:
import lebai_sdk
lebai_sdk.init()
import nest_asyncio
nest_asyncio.apply()
robot_ip = "192.168.4.145"
lebai = lebai_sdk.connect(robot_ip, False)
device = '咖啡modbus'
timeout = 100
retry = 3
lebai.set_modbus_timeout(device, timeout)
lebai.set_modbus_retry(device, retry)
lebai.write_multiple_coils(device,100, [0,1])
di_status = lebai.read_discrete_inputs(device,500, 2)
print(di_status)
### 写单个寄存器
lebai.write_single_register(device, addr, value)
参数说明:
参数 类型 说明 device string 设备名称 addr int 寄存器地址 value int 待设置的值 返回值:无返回值。
- 使用示例:
import lebai_sdk
lebai_sdk.init()
import nest_asyncio
nest_asyncio.apply()
robot_ip = "192.168.4.145"
lebai = lebai_sdk.connect(robot_ip, False)
device = '咖啡modbus'
timeout = 100
retry = 3
lebai.set_modbus_timeout(device, timeout)
lebai.set_modbus_retry(device, retry)
lebai.write_single_register(device, 200, 1)
写多个寄存器
lebai.write_multiple_registers(device, addr, values)
参数说明:
参数 类型 说明 device string 设备名称 addr int 寄存器地址 values list 待设置的值 返回值:无返回值。
- 使用示例:
import lebai_sdk
lebai_sdk.init()
import nest_asyncio
nest_asyncio.apply()
robot_ip = "192.168.4.145"
lebai = lebai_sdk.connect(robot_ip, False)
device = '咖啡modbus'
timeout = 100
retry = 3
lebai.set_modbus_timeout(device, timeout)
lebai.set_modbus_retry(device, retry)
lebai.write_single_register(device, 200, 1)
lebai.write_multiple_registers(device, 200, [1,2,3])
读取保持寄存器
values = lebai.read_holding_registers(device, addr, num)
参数说明:
参数 类型 说明 device string 设备名称 addr int 寄存器地址 num int 连续数量 返回值:list类型。返回对应的连续保持寄存器地址位对应的数值。
- 使用示例:
import lebai_sdk
lebai_sdk.init()
import nest_asyncio
nest_asyncio.apply()
robot_ip = "192.168.4.145"
lebai = lebai_sdk.connect(robot_ip, False)
device = '咖啡modbus'
timeout = 100
retry = 3
lebai.set_modbus_timeout(device, timeout)
lebai.set_modbus_retry(device, retry)
lebai.write_multiple_registers(device, 200, [1,2,3])
status = lebai.read_holding_registers(device,200, 3)
print(status)
读取输入寄存器
values = lebai.read_input_registers(device, addr, num)
参数说明:
参数 类型 说明 device string 设备名称 addr int 寄存器地址 num int 连续数量 返回值:list类型。返回对应的连续输入寄存器地址位对应的数值。。
- 使用示例:
import lebai_sdk
lebai_sdk.init()
import nest_asyncio
nest_asyncio.apply()
robot_ip = "192.168.4.145"
lebai = lebai_sdk.connect(robot_ip, False)
device = '咖啡modbus'
timeout = 100
retry = 3
lebai.set_modbus_timeout(device, timeout)
lebai.set_modbus_retry(device, retry)
lebai.write_multiple_registers(device, 300, [1,2,3])
status = lebai.read_input_registers(device,300, 3)
print(status)