c# - 通过 TwinCAT ADS 读取值,无需声明 PLC 变量
问题描述
我是 EtherCAT/TwinCAT 的新手。我有一个连接到主设备的从设备。如果我在我的 PLC 中创建一个变量并将该变量链接到从设备上的一个值,我可以使用 ADS 客户端从从设备读取数据。有没有一种方法可以从从站获取值而无需创建 PLC 变量?我希望能够读取和修改从站上的多个对象,而不必在 PLC 中为每个对象创建一个变量。
解决方案
要启用此功能,您只需在您尝试访问的 EtherCAT 设备上启用 ADS 服务器。
使 ADS IO 符号可用
完成这项工作需要一些设置步骤,但它相当简单。
- 从 EtherCAT 链扫描 IO
- 添加一个新的“带图像的双猫任务”
- 从“系统>任务”的上下文菜单中添加
- 创建并将变量从添加的任务链接到 IO
- 强制同步单元更新并允许控制 EtherCAT 时序
- 我添加了一个使用 UINT 链接到 SlaveCount 的变量,非常基本
- 对于 EtherCAT 主站,启用“启用 ADS 服务器”和“创建符号”
- 像在控制器上访问任何其他符号一样访问符号
- 唯一奇怪的是您需要访问 CONTROLLER 网络 ID,而不是 EtherCAT 主站,但您仍然使用 EtherCAT 主站的端口
在哪里可以找到“启用 ADS 服务器”、“创建符号”和 ADS 端口
IO 设备列表中的符号路径示例
推荐阅读
- sql - 需要选择查询来查找空值
- javascript - 如何从 Slick Slider 中删除类?
- python - 以一定概率翻转标签用于ak最近邻算法的鲁棒性测试
- sql - 如何根据列使用 FOR XML PATH 将 SQL 中的多个嵌套 XML 分组
- javascript - 有没有办法使用扩展运算符合并两个对象,使得结果具有一个对象的键,但具有第二个对象的值?
- javascript - 带有地图的Javascript Switch语句添加了X个案例
- rxjs - 如何在新的 Rxjs 上重写合并?
- python - 如何使用 django 在多模型中搜索
- javascript - 如何使用 postMessage() 方法将 FormData 发送到 Service Worker
- laravel - 以自定义形式显示帖子