有没有办法使用通用的 TwinCAT.Ads.* 命名空间执行广播搜索?为此使用自动化系统似乎非常过分,更不用说初始化 EnvDTE、生成解决方案并最终能够进行搜索需要将近一分钟的时间。
即使只是找到一种方法来获取当前配置的路由列表也可能已经足够了。
系统托盘中的 TwinCat 3 服务似乎能够在没有这些额外包袱的情况下做到这一点,所以我希望有一些公共接口。它将具有不需要引用 Visual Studio SDK 的额外好处。
有没有办法使用通用的 TwinCAT.Ads.* 命名空间执行广播搜索?为此使用自动化系统似乎非常过分,更不用说初始化 EnvDTE、生成解决方案并最终能够进行搜索需要将近一分钟的时间。
即使只是找到一种方法来获取当前配置的路由列表也可能已经足够了。
系统托盘中的 TwinCat 3 服务似乎能够在没有这些额外包袱的情况下做到这一点,所以我希望有一些公共接口。它将具有不需要引用 Visual Studio SDK 的额外好处。
有一个文件C:\TwinCAT\3.1\Target\StaticRoutes.xml
包含该计算机的所有活动静态路由。至少我一直都是这样。所以我认为系统托盘服务只是读取该文件?
当然,这并不能告诉您该路线是否真的在运行。关于这一点我不知道。
您可以只解析 XML。文件内容示例:
<?xml version="1.0" encoding="UTF-8"?>
<TcConfig xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<RemoteConnections>
<Route>
<Name>PLC_1</Name>
<Address>192.168.1.2</Address>
<NetId>192.168.1.2.1.1</NetId>
<Type>TCP_IP</Type>
</Route>
<Route>
<Name>PLC_2</Name>
<Address>192.168.1.3</Address>
<NetId>192.168.1.3.1.1</NetId>
<Type>TCP_IP</Type>
</Route>
</RemoteConnections>
</TcConfig>