如何用python读取连接到西门子PAC4200网关(TCP)的modbus从站(RTU)?

2024-06-07 03:20:50 发布

您现在位置:Python中文网/ 问答频道 /正文

请注意,我需要通过modbus网关通过网络远程读取仪表。你知道吗

西门子文件说明网关可通过端口17002(模块1)到达

我尝试了一个TCP客户端到端口502上的服务器,它可以很好地与pymodbus一起工作。你知道吗

从机地址是10-24。你知道吗

一段示例代码就好了。你知道吗


Tags: 模块文件端口代码网络服务器客户端示例
1条回答
网友
1楼 · 发布于 2024-06-07 03:20:50

如果您已经连接到PAC4200的服务器,RS485总线的网关应该非常相同。你知道吗

只需更改端口、Modbus单元ID和目标寄存器即可。你知道吗

最小值应如下所示:

from pymodbus.client.sync import ModbusTcpClient

host = 'device_IP'     # The same you used already for port 502
port = 17002           # for MOD1 slot, use 17003 for MOD2

client = ModbusTcpClient(host, port)
client.connect()

start_reg=0x1          # write starting target register here
number_of_regs=10      # write number of registers to read here
slave_unit=10          # write slave ID of target device here

rr = client.read_holding_registers(start_reg,number_of_regs,unit=slave_unit)

print rr.registers     # print registers, change to print(rr.registers) for Python 3.x

我无法推断您正在连接到RS485总线的设备。如果上述示例代码不起作用,则应仔细检查设备的Modbus映射和与PAC的连接(参见手册第6.6节连接PAC RS485扩展模块)。你知道吗

相关问题 更多 >