如何在Python中使用ModbusTcpClient获取并正确地打印出TCP通信时接收到的报文?
时间: 2024-12-08 11:14:49 浏览: 8
在Python中,你可以使用`pymodbus`库来连接到Modbus TCP服务器并接收数据。首先,你需要安装这个库,如果还没有安装,可以使用pip安装:
```bash
pip install pymodbus
```
然后,你可以按照以下步骤创建一个`ModbusTcpClient`实例,并读取数据:
```python
from pymodbus.client.sync import ModbusTcpClient
# 创建客户端连接
client = ModbusTcpClient('your_host', port=502) # 替换为你的主机地址和端口号,默认为502
# 确保连接成功
if client.connect():
print("Connected to Modbus server")
# 发送请求,这里假设我们查询的是线圈的状态( coils)
response = client.read_coils(0, 1) # 第一个参数是寄存器起始地址,第二个参数是读取的数量
# 打印接收到的数据,数据是一个二进制字符串列表
if response.isError():
print(f"Failed to read data: {response.error_message}")
else:
coil_values = [bool(val) for val in response.bits] # 将二进制转换成布尔值
print(f"Received coil values: {coil_values}")
# 关闭连接
client.close()
else:
print("Failed to connect")
```
阅读全文