运行 仅限 TwinCAT 3 ADS(无 XAR)

Running TwinCAT 3 ADS Only (without XAR)

我有一个工作的 C 项目,它使用 ADS C API(online examples 也工作得很好)与本地或远程 TwinCAT 3 系统通信。

但是,我们现在正尝试将该程序部署到另一台只安装了 TwinCAT ADS 的机器(如 "Installation of TwinCAT 3 ADS only" 下的 here 所述)。我们在两台机器上都添加了路由。为了简化测试,我们甚至在 ADS 机器和运行时机器上完全禁用了防火墙。但是我仍然无法将数据返回给应用程序。

我从 ADS 得到的错误是 10051,基本上是 Winsock error:

Network is unreachable. A socket operation was attempted to an unreachable network. This usually means the local software knows no route to reach the remote host.

不过,我很确定路线是有效的。它们是使用广播搜索添加的,我可以在 Wireshark 中看到两个系统都在不断地交换 ADS Read/Write 请求(如果我删除任何一台 PC 上的路由,交换就会停止)。

一个细节是 ADS-only 系统未处于启动模式,即我无法将其设置为 "Start",尽管这可能是正常的,因为那里没有运行时?

我的问题是:

我可以正确回答部分问题 - 不,仅 ADS 系统不需要(也不可能)在 运行。

你确定两端都连接了吗?有时一台服务器会注册连接,另一台不会。

另一件要检查的事情是您在 ADS 路由列表中是否有其他条目具有相同的 IP 或 ADS 地址(我想您的开发 PLC 可能有多个条目)。我以前看到过这会让人感到困惑,必须删除冲突的条目才能起作用。