如何解决使用带有 libmodbus 或 pymodbus 的 USB 连接在两台 PC 之间进行 Modbus 模拟
我正在尝试连接到将使用 modbus 协议相互通信的 PC(一主一从),我想使用 pymodbus (Python) 或 libmodbus (C++) 来实现这一点,但我对 Modbus 比较陌生,因此我不知道从哪里开始。 我已经(我认为)使用 pymodbusTCP 构建了一个 Modbus 服务器,但我不确定如何使用 pymodbusTCP 与另一台 PC 通信。
我写了下面给定的代码:
#!/bin/python
import sys
sys.path.append("..")
from pyModbusTCP.server import ModbusServer,DataBank
from time import sleep
from random import uniform
# Create an instance of ModbusServer
server = ModbusServer("127.0.0.1",12345,no_block=True)
try:
print("Start server ...")
server.start()
print("Server is online")
while True:
continue
except:
print("Shutdown server ...")
server.stop()
print("Server is offline")
当我从我的本地主机(作为从设备)连接时,我能够连接。
>>> from pyModbusTCP.client import ModbusClient
>>>
>>> client = ModbusClient(host="127.0.0.1",port=12345)
>>> client.open()
True
>>>
如何连接两台 PC,一台作为主机,另一台作为从机?
如何向线圈发送写入以实现此目的?
如有任何帮助,我们将不胜感激。
注意:环境为 Ubuntu 20.04
解决方法
您走在正确的轨道上,但您错过了一些事情:
-对于服务器,需要定义和初始化Modbus寄存器和线圈。
-在客户端,您需要定义查询以读取这些寄存器和/或线圈。
Foy pymodbus,最好的入门方法是查看示例。下载、编辑端口(默认为 5020)并从 GitHub 存储库运行 server example 并从您的客户端运行一些查询:
rr = client.read_coils(1,1,unit=0x01)
print(rr.registers)
您可以在任何 async client examples 上找到其他类型的查询。
一旦您建立并运行了客户端-服务器连接,您就可以查看服务器的详细信息,并且可能定义更多具有不同 ID 的从属设备或设置具有更有意义值的寄存器。
在您熟练使用 pymodbus 之后,libmodbus 应该非常简单。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。