Python Modbus_tk库读取线圈状态代码示例
下面是一个使用modbus_tk库读取线圈的Python代码示例:
import modbus_tk
import modbus_tk.defines as cst
import modbus_tk.modbus_tcp as modbus_tcp
# 连接Modbus TCP从机
master = modbus_tcp.TcpMaster(host='192.168.1.1', port=502)
master.set_timeout(5.0)
# 读取线圈状态
coil_address = 0x0000 # 线圈地址
coil_count = 10 # 线圈数量
coil_status = master.execute(1, cst.READ_COILS, coil_address, coil_count)
# 输出线圈状态
print('Coil status:', coil_status)
# 关闭Modbus TCP从机连接
master.close()
在这个示例中,我们首先使用modbus_tcp.TcpMaster()创建了一个Modbus TCP主机对象,指定了从机的IP地址和端口号。然后使用master.execute()方法向从机发送了一个读取线圈状态的命令,并传入了线圈地址和数量参数。最后,我们将读取到的线圈状态打印出来,并使用master.close()关闭了Modbus TCP连接。
需要注意的是,这个示例中的从机地址为1,如果你的从机地址不同,需要修改这个值。另外,如果你的Modbus从机使用的是其他类型的协议(如RTU),你需要使用相应的modbus_tk子模块和方法来进行通信。
原文地址: https://www.cveoy.top/t/topic/nc9m 著作权归作者所有。请勿转载和采集!