首页 > 解决方案 > pyModbusTCP Raspberry Pi 到 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.

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

标签: pythonraspberry-piraspbianpymodbustcp

解决方案


好吧,事实证明我有点笨拙。我的实现中缺少许多关键概念。

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

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

以下实现对我有用:

在此处输入图像描述

在 Pi 上设置

from pyModbusTCP.server import ModbusServer, DataBank

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

在 PC 上设置

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

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


推荐阅读