我想实现用于扫描I/O设备的TwinCAT3自动化脚本(C#)。我想扫描连接到CANOpen耦合器的TwinCAT3设备,并从图形用户界面中选择合适的CANOpen设备。
我在Beckhoff文档中找不到任何有关扫描I/O设备的信息。我刚刚从Beckhoff文档中找到了一些扫描CANOpen设备的信息。但是,它并没有很好的记录。
ITcSmTreeItem5 can_master = (ITcSmTreeItem5)io.CreateChild("Device 2 (EL6751)", 87, "", null);
String availableMaster = can_master .ResourceCount;
can_master.ClaimResources(1);他们没有指定我们可以将扫描的设备保存在哪里。他们只是简单地用索引激活设备。
请建议我,如何通过自动化C#脚本扫描CANopen设备并保存可用设备?
发布于 2018-06-19 23:05:55
您观察到Beckhoff自动化接口留下了一些需要的东西,这是正确的:D
文档建议导入CAN数据库(.dbc)文件以配置CAN总线。如果总线总是具有相同的配置,这是更容易实现的方法。您可以从TwinCAT图形用户界面导出数据库。
如果您需要扫描总线,那么您可以通过<ScanBoxes>true</ScanBoxes>使用一个XML字符串。4.3.5.7扫描设备和设备的文档中显示了一个这样的示例。它可能看起来像这样:
string xml = "<TreeItem><DeviceDef><ScanBoxes>1</ScanBoxes></DeviceDef></TreeItem>";
can_slave.ProduceXml(xml);然后,您可以浏览IO树以查看发现了哪些设备。
ITcSmTreeItem ioDevices = systemManager.LookupTreeItem("TIID");
string foundDevices = ioDevices.ProduceXml();发布于 2020-06-28 11:56:24
我也有这个问题。我找到了解决方案。
从上面的网址中,您需要名为"systemManager“的接口的实例。您可以从url获取systemManager实例。(https://infosys.beckhoff.com/english.php?content=../content/1033/tc3_automationinterface/45035996516426763.html&id=)
从上面的URL中,你可以通过DTE创建或打开Visual-Studio,并从EnvDTE.DTE获取systemManager实例。
https://stackoverflow.com/questions/47654519
复制相似问题