要在Python中使用Modbus-TCP通信,可以使用一个名为pymodbus
的库。pymodbus
提供了一个Modbus协议的客户端和服务器实现,可以轻松地与Modbus设备进行通信。
以下是一个简单的示例,演示了如何使用pymodbus
发送Modbus-TCP请求并接收响应:
from pymodbus.client.sync import ModbusTcpClient
# 创建一个Modbus TCP客户端
client = ModbusTcpClient('127.0.0.1', port=502)
# 连接到Modbus设备
client.connect()
# 发送读取保持寄存器的请求
# 读取设备地址为1的寄存器0到9的值
result = client.read_holding_registers(address=0, count=10, unit=1)
# 读取线圈的值
# result = client.read_coils(address=0, count=10, unit=1)
# 检查请求是否成功
if result.isError():
print('读取寄存器失败')
else:
# 打印寄存器的值
print(result.registers)
# 如果是线圈读取
# print(result.bits)
# 断开与Modbus设备的连接
client.close()
在上面的示例中,首先我们创建了一个ModbusTcpClient对象,指定Modbus设备的IP地址和端口号。然后,我们使用connect()
方法连接到设备。接下来,我们使用read_holding_registers()
方法发送一个读取保持寄存器的请求,指定寄存器的起始地址和数量。最后,我们检查响应是否成功,如果成功,打印寄存器的值。最后,使用close()
方法关闭与设备的连接。
除了读取保持寄存器,pymodbus
库还提供了许多其他的Modbus-TCP功能,如读取输入寄存器、读取线圈和写入保持寄存器等。有关更多详细信息,请参阅pymodbus
库的官方文档。