仅运行TwinCAT 3 ADS(不带XAR)

时间:2019-03-27 10:26:24

标签: twincat twincat-ads

我有一个正在运行的C项目,该项目使用ADS C API与本地或远程TwinCAT 3系统进行通信(online examples也很正常)。

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

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

  

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

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

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

我的问题是:

  • 是否也必须使用托盘图标(“启动/重新启动”)将仅ADS的系统切换到启动模式?此操作也会影响消息路由器吗?因为如果我在ADS系统上尝试此操作,则会收到错误消息,所以我不确定这是否是因为该PC上没有运行时,或者是否存在错误。事件查看器显示错误:“没有启动TCRTSOBJECTS服务器的错误。系统找不到指定的路径”。

  • 在仅ADS的系统上,除了配置路由之外,是否还需要进行其他设置?

1 个答案:

答案 0 :(得分:1)

我可以正确地回答其中的一部分-不需要仅ADS系统就可以(也不能)处于RUN模式。

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

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