我们如何在 PyModbus 库中生成流量?

问题描述

我想生成一些 Modbus 流量,但找不到任何示例。换句话说,我想创建一个 Modbus 模拟器。

解决方法

一个好的开始是查看 examples folder

启动和运行某些东西的一种简单方法是按照以下步骤操作,假设您已安装 pymodbus:

  1. 从命令行下载并运行 syncronous_server.py 示例

  2. 下载并在不同的命令窗口中运行 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

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...