不带自动化接口的 TwinCAT 3.0 广播搜索

TwinCAT 3.0 Broadcast search without Automation Interface

有没有什么方法可以使用通用 TwinCAT.Ads.* 命名空间执行广播搜索? 为此使用自动化系统似乎太过分了,更不用说初始化 EnvDTE、生成解决方案并最终能够进行搜索几乎需要整整一分钟了。

即使只是找到一种方法来获取当前配置的路由列表也可能就足够了。

系统托盘中的 TwinCat 3 服务似乎能够在没有这个额外负担的情况下完成它,所以我希望有一些 public 接口可以做到这一点。 它将具有不需要引用 Visual Studio SDK 的额外好处。

有一个文件C:\TwinCAT.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>