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 bool 待设置的值 返回值:无返回值。
- 使用示例:
import lebai_sdk
lebai_sdk.init()
import nest_asyncio
nest_asyncio.apply()
robot_ip = "192.168.4.118"
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', False)
写多个线圈
方法: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.118"
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', [False,True])
读线圈
values = lebai.read_coils(device, addr, num)
参数说明:
参数 类型 说明 device string 设备名称 addr string 寄存器地址(字符串格式:例如'0x9C40'或者'40000') num int 连续数量 返回值:list类型。返回连续线圈的状态。
- 使用示例:
import lebai_sdk
lebai_sdk.init()
import nest_asyncio
nest_asyncio.apply()
robot_ip = "192.168.4.118"
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', [False,True])
do_status = lebai.read_coils(device,'100', 2)
print(do_status)
读离散输入
values = lebai.read_discrete_inputs(device, addr, num)
参数说明:
参数 类型 说明 device string 设备名称 addr string 寄存器地址(字符串格式:例如'0x9C40'或者'40000') num int 连续数量 返回值:list类型。返回连续的离散寄存器数值的状态。
- 使用示例:
import lebai_sdk
lebai_sdk.init()
import nest_asyncio
nest_asyncio.apply()
robot_ip = "192.168.4.118"
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)
di_status = lebai.read_discrete_inputs(device,'200', 2)
print(di_status)
### 写单个寄存器
lebai.write_single_register(device, addr, value)
参数说明:
参数 类型 说明 device string 设备名称 addr string 寄存器地址(字符串格式:例如'0x9C40'或者'40000') value int 待设置的值 返回值:无返回值。
- 使用示例:
import lebai_sdk
lebai_sdk.init()
import nest_asyncio
nest_asyncio.apply()
robot_ip = "192.168.4.118"
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 string 寄存器地址(字符串格式:例如'0x9C40'或者'40000') values list 待设置的值 返回值:无返回值。
- 使用示例:
import lebai_sdk
lebai_sdk.init()
import nest_asyncio
nest_asyncio.apply()
robot_ip = "192.168.4.118"
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 string 寄存器地址(字符串格式:例如'0x9C40'或者'40000') num int 连续数量 返回值:list类型。返回对应的连续保持寄存器地址位对应的数值。
- 使用示例:
import lebai_sdk
lebai_sdk.init()
import nest_asyncio
nest_asyncio.apply()
robot_ip = "192.168.4.118"
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 string 寄存器地址(字符串格式:例如'0x9C40'或者'40000') num int 连续数量 返回值:list类型。返回对应的连续输入寄存器地址位对应的数值。。
- 使用示例:
import lebai_sdk
lebai_sdk.init()
import nest_asyncio
nest_asyncio.apply()
robot_ip = "192.168.4.118"
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, '40000', [1,2,3])
status = lebai.read_input_registers(device,'300', 3)
print(status)