问题描述
我想生成一些 Modbus 流量,但找不到任何示例。换句话说,我想创建一个 Modbus 模拟器。
解决方法
一个好的开始是查看 examples folder。
启动和运行某些东西的一种简单方法是按照以下步骤操作,假设您已安装 pymodbus:
-
从命令行下载并运行 syncronous_server.py 示例
-
下载并在不同的命令窗口中运行 syncronous_client.py 示例。
大功告成,从两个命令行的输出中,您将能够看到发生的 Modbus 事务。
如果您想要连续的 Modbus 交换流,您可以修改客户端以在某处循环,例如:
while True:
rr = client.read_holding_registers(1,1,unit=UNIT)
time.sleep(1)
大约每秒读取一次保存寄存器。
无需更改服务器上的任何内容,它会一直监听直到您使用 Ctrl+C
杀死它只要服务器和客户端连接到同一网络并且您修改客户端以指向服务器地址,就不会阻止您为服务器和客户端使用不同的计算机。特别是(示例中的第 70 行):
client = ModbusClient('localhost',port=5020)
将 localhost
更改为您服务器的 IP 地址,可能类似于 192.168.x.y
。
如果您不知道 pymodbus 有很多替代方案可以生成 Modbus 流量。 Modpoll 是经典,但您也可以查看 qModMaster。