pyModbusTCP 树莓派到PC连接eth0

问题描述

到目前为止的故事。我使用非常有用的 Johannes YouTube 教程设置了服务器和客户端,最初我在 RaspBerry Pi 上使用“localhost”没有任何问题。

https://github.com/Johannes4Linux/Simple-ModbusTCP-Server/blob/master/Simple_ModbusServer.py

然后我尝试使用以太网端口在我的 Windows PC 上设置客户端并连接到服务器 (Pi)。

我使用了 Pi 中“ifconfig”命令中的“inet”IP 地址,而不是 Windows 中“ipconfig”中的地址(它们是不同的)。

client = ModbusClient(host="192.168.0.16",port=502,debug=True)
client.open()

connect error
False

我试图从 Windows ping 这个地址“cmd”,但连接超时。

ping 168.168.0.16

Pinging 168.168.0.16 with 32 bytes of data:
Request timed out.

感觉好像我遗漏了一些非常明显的东西。如果有人能够帮助我,我将不胜感激。

解决方法

好吧,事实证明我有点笨拙。我的实施中遗漏了许多关键概念。

使用 ipconfig/all 调试问题发现 ipV4 = 192.168.4.180(duplicate)

我已经在 PC 和 Pi 上设置了 IP 地址,但我忘记了我更改了 dchpcd.conf 文件。因此,设备试图在网络子网中获取相同的地址。

以下实现对我有用:

enter image description here

在 Pi 上设置

from pyModbusTCP.server import ModbusServer,DataBank

server = ModbusServer(host="192.168.4.181",port=502,no_block=True)

在电脑上设置

from pyModbusTCP.client import ModbusClient

client = ModbusClient(host="192.168.4.181",port=502)
client.open()

我发现本指南对我的网络复习法非常有用:https://www.ionos.co.uk/digitalguide/server/configuration/provide-raspberry-pi-with-a-static-ip-address/#:~:text=To%20assign%20an%20IP%20address,with%20the%20IPv4%20address%20192.168

我很高兴删除它,但我想我会把它留在这里,以防有人发表评论或发现它有用。像往常一样,我会回答我自己的问题,但有时只是将我自己的无知正式化为黑白是有用的。

相关问答

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