我正在尝试将我的 Linux 电脑与 Beckhoff CX9020 PLC 进行通信。当我尝试路由命令时,出现一些错误。我认为这些错误是由于我写的地址错误造成的。如何获得这个值?在 Windows 或 Linux 上就足够了?
pyads.set_local_address ('1.2.3.4.1.1')
pyads.add_route ('5.41.49.218.1.1', '192.168.0.8')
SENDER_AMS = '1.2.3.4.1.1'
PLC_IP = '192.168.0.8'
PLC_USERNAME = 'Administrator'
PLC_PASSWORD = 'x'
ROUTE_NAME = 'RouteToMyPC'
CLIENT_IP = "192.168.1.10"
TARGET_IP = "192.168.1.11"
TARGET_USERNAME = "Administrator"
TARGET_PASSWORD = "1"
HOSTNAME = '192.168.0.8' # or IP
PLC_AMS_ID = '5.41.49.218.1.1'
CLIENT_NETID = "192.168.1.10.1.1"
pyads 中使用了一些值。哪些必须相等。我怎样才能找到它们?感谢您的帮助。
您必须创建从 PLC (CX9020) 到客户端 (Ubuntu) 的路由。
如果您一直在努力防止这些路线妨碍您,我会首先删除所有已创建的路线。为此,我将 CX 插入显示器、键盘和鼠标,并通过右键单击工具栏右侧的 TwinCat 图标来使用 TwinCat 路径编辑器。另请单击“更改网络 ID”记下 CX 的 AMS 网络 ID。
然后将 CX 和 Ubuntu PC 连接到您的网络,记下 CX 和 Ubuntu PC 的 IP 地址。
然后按照此处的说明进行操作:
https://pyads.readthedocs.io/en/latest/documentation/routing.html#adding-routes-to-a-target
地点:
发送者 AMS = Ubuntu PC 的 IP 地址 + ".1.1"
PLC IP = CX 的 IP 地址
如果您没有更改 CX 的用户名和密码,则应为“Administrator”和“1”。
路线名称是您的选择(您可以省略它,它是Python代码中的可选参数)
主机名 = CX 的 IP 地址
这应该在 CX 的路由表中添加一条路由,您可以使用显示器、键盘和鼠标检查该路由。
您只需执行一次此操作,而不是每次运行 python 代码时都执行此操作。
然后,当您连接时,您应该使用以下命令:
import pyads
with pyads.Connection(remote_ads, pyads.PORT_TC3PLC1) as plc:
...
其中remote_ads是您之前记录的CX的AMS网络ID。
请尝试此操作并发布您遇到的任何错误。
注意,您应该(通常)在 CX 的路由表中看到用于对其进行编程的任何 Windows PC 的路由,因为在您可以使用 TwinCat Engineering 连接到任何 CX 之前,您还必须创建一条路由,我们只是在这里做同样的事情,但需要在 CX 和 ubuntu PC 之间创建一条路由。如果您正在努力使用 Ubuntu 创建路线,那么在 Windows PC 上使用添加路线对话框创建路线可能会很有用(就像您需要对 CX 进行编程一样)并在 Windows 上运行 pyads,这样您就可以获得对所需内容的感觉。