首页 > 解决方案 > 仅运行 TwinCAT 3 ADS(无 XAR)

问题描述

我有一个可用的 C 项目,它使用 ADS C API 与本地或远程 TwinCAT 3 系统通信(在线示例也很好用)。

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

我从 ADS 得到的错误是 10051,这基本上是一个Winsock 错误

网络不可达。尝试对无法访问的网络进行套接字操作。这通常意味着本地软件不知道到达远程主机的路由。

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

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

我的问题是:

标签: twincattwincat-ads

解决方案


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

您确定已从两端建立连接吗?有时一台服务器会注册连接,而另一台则不会。

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


推荐阅读