我们如何在 PyModbus 库中生成流量?
How we can generate traffic within the PyModbus library?
我想生成一些 Modbus 流量,但找不到任何示例。换句话说,我想创建一个 Modbus 模拟器。
一个好的开始是查看 examples folder。
启动和 运行ning 的一种简单方法是按照以下步骤操作,假设您安装了 pymodbus:
从命令行下载并运行 syncronous_server.py 示例
下载并运行 使用不同的命令 window syncronous_client.py 示例。
大功告成,从两个命令行的输出中您将能够看到发生的 Modbus 事务。
如果你想有一个连续的 Modbus 交换流,你可以修改客户端以在某个地方循环,例如:
while True:
rr = client.read_holding_registers(1, 1, unit=UNIT)
time.sleep(1)
大约每秒读取一次保持寄存器。
不需要在服务器上改变任何东西,它会一直监听直到你用Ctrl+C[杀死它=18=]
只要服务器和客户端都连接到同一网络并且您修改客户端以指向服务器地址,就没有什么可以阻止您使用不同的计算机作为服务器和客户端。特别是(示例中的第 70 行):
client = ModbusClient('localhost', port=5020)
将 localhost
更改为您服务器的 IP 地址,可能类似于 192.168.x.y
。
如果您不知道,有许多替代 pymodbus 的方法可以生成 Modbus 流量。 Modpoll is a classic, but you can also look at qModMaster.
我想生成一些 Modbus 流量,但找不到任何示例。换句话说,我想创建一个 Modbus 模拟器。
一个好的开始是查看 examples folder。
启动和 运行ning 的一种简单方法是按照以下步骤操作,假设您安装了 pymodbus:
从命令行下载并运行 syncronous_server.py 示例
下载并运行 使用不同的命令 window syncronous_client.py 示例。
大功告成,从两个命令行的输出中您将能够看到发生的 Modbus 事务。
如果你想有一个连续的 Modbus 交换流,你可以修改客户端以在某个地方循环,例如:
while True:
rr = client.read_holding_registers(1, 1, unit=UNIT)
time.sleep(1)
大约每秒读取一次保持寄存器。
不需要在服务器上改变任何东西,它会一直监听直到你用Ctrl+C[杀死它=18=]
只要服务器和客户端都连接到同一网络并且您修改客户端以指向服务器地址,就没有什么可以阻止您使用不同的计算机作为服务器和客户端。特别是(示例中的第 70 行):
client = ModbusClient('localhost', port=5020)
将 localhost
更改为您服务器的 IP 地址,可能类似于 192.168.x.y
。
如果您不知道,有许多替代 pymodbus 的方法可以生成 Modbus 流量。 Modpoll is a classic, but you can also look at qModMaster.