首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >I/O扫描设备的TwinCAT3自动化脚本(C#)

I/O扫描设备的TwinCAT3自动化脚本(C#)
EN

Stack Overflow用户
提问于 2017-12-05 21:12:35
回答 2查看 583关注 0票数 0

我想实现用于扫描I/O设备的TwinCAT3自动化脚本(C#)。我想扫描连接到CANOpen耦合器的TwinCAT3设备,并从图形用户界面中选择合适的CANOpen设备。

我在Beckhoff文档中找不到任何有关扫描I/O设备的信息。我刚刚从Beckhoff文档中找到了一些扫描CANOpen设备的信息。但是,它并没有很好的记录。

代码语言:javascript
复制
ITcSmTreeItem5 can_master = (ITcSmTreeItem5)io.CreateChild("Device 2 (EL6751)", 87, "", null);  

String availableMaster = can_master .ResourceCount;

can_master.ClaimResources(1);

他们没有指定我们可以将扫描的设备保存在哪里。他们只是简单地用索引激活设备。

请建议我,如何通过自动化C#脚本扫描CANopen设备并保存可用设备?

EN

回答 2

Stack Overflow用户

发布于 2018-06-19 23:05:55

您观察到Beckhoff自动化接口留下了一些需要的东西,这是正确的:D

文档建议导入CAN数据库(.dbc)文件以配置CAN总线。如果总线总是具有相同的配置,这是更容易实现的方法。您可以从TwinCAT图形用户界面导出数据库。

如果您需要扫描总线,那么您可以通过<ScanBoxes>true</ScanBoxes>使用一个XML字符串。4.3.5.7扫描设备和设备的文档中显示了一个这样的示例。它可能看起来像这样:

代码语言:javascript
复制
string xml = "<TreeItem><DeviceDef><ScanBoxes>1</ScanBoxes></DeviceDef></TreeItem>"; 
can_slave.ProduceXml(xml);

然后,您可以浏览IO树以查看发现了哪些设备。

代码语言:javascript
复制
ITcSmTreeItem ioDevices = systemManager.LookupTreeItem("TIID");
string foundDevices = ioDevices.ProduceXml();
票数 0
EN

Stack Overflow用户

发布于 2020-06-28 11:56:24

我也有这个问题。我找到了解决方案。

请参阅:https://infosys.beckhoff.com/index.php?content=../content/1031/tcautomationinterface/html/TcSysMan_HowTo_Scan.htm&id=

从上面的网址中,您需要名为"systemManager“的接口的实例。您可以从url获取systemManager实例。(https://infosys.beckhoff.com/english.php?content=../content/1033/tc3_automationinterface/45035996516426763.html&id=)

从上面的URL中,你可以通过DTE创建或打开Visual-Studio,并从EnvDTE.DTE获取systemManager实例。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/47654519

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档