【问题标题】:Read values through TwinCAT ADS without PLC variable declaration通过 TwinCAT ADS 读取值,无需声明 PLC 变量
【发布时间】:2021-05-14 23:59:48
【问题描述】:

我是 EtherCAT/TwinCAT 的新手。我有一个连接到主设备的从设备。如果我在我的 PLC 中创建一个变量并将该变量链接到从设备上的一个值,我可以使用 ADS 客户端从从设备读取数据。有没有办法从从站获取值而无需创建 PLC 变量?我希望能够读取和修改从站上的多个对象,而不必在 PLC 中为每个对象创建一个变量。

【问题讨论】:

  • 原则上 ADS 不限于读/写 plc 变量。使用 ADS,函数/数据通过 AMSNetId、AMSPort、Group 和 Offset 进行标识,这不仅仅允许读/写 plc 变量。例如,除了读/写 plc 变量之外,我还检索有关 plc 变量的信息、设置/获取各种状态、检索版本信息以及使用轴做各种事情。但是我不认为 ADS 允许你想要什么,请看一下; infosys.beckhoff.com/content/1033/tc3_ads_intro/index.html你能告诉更多关于你想要达到的目标吗?
  • 将通过 TwinCAT 主站控制的硬件将在独立的子系统中开发,然后集成在一起。这些子系统和整个系统的大部分控制将通过单独的程序完成,而不是通过 PLC 逻辑。因此,在大多数情况下,我们使用 EtherCAT 现场总线作为从我们的程序控制硬件的一种手段。子系统的硬件配置将来可能会在子系统之间更改/共享。

标签: c# twincat twincat-ads


【解决方案1】:

要启用此功能,您只需在您尝试访问的 EtherCAT 设备上启用 ADS 服务器。

使 ADS IO 符号可用

完成这项工作需要几个设置步骤,但它相当简单。

  1. 从 EtherCAT 链扫描 IO
  2. 添加新的“带图像的 Twincat 任务”
    • 从“系统>任务”的上下文菜单中添加
  3. 从添加的任务创建和链接变量到 IO
    • 强制同步单元更新并允许控制 EtherCAT 时序
    • 我添加了一个使用 UINT 链接到 SlaveCount 的变量,非常基本
  4. 对于 EtherCAT 主站,启用“启用 ADS 服务器”和“创建符号”
  5. 像访问控制器上的任何其他符号一样访问符号
    • 唯一奇怪的是您需要访问 CONTROLLER 网络 ID,而不是 EtherCAT 主站,但您仍然使用 EtherCAT 主站的端口

在哪里可以找到“启用 ADS 服务器”、“创建符号”和 ADS 端口


IO 设备列表中的示例符号路径

【讨论】:

  • 我已启用 ADS 服务器并在设备上创建符号。我现在可以读取/写入设备,但我能够做到这一点的唯一方法是使用符号加载器来查找设备及其索引组和索引偏移量;它们与变量选项卡上显示的设备的 ADS 信息不匹配。索引偏移量与设备的地址匹配,但我找不到索引组的来源。
  • @Vic 我不完全确定您的访问有什么问题。我已经能够毫无顾虑地访问符号数据。使用图像创建任务 -> 链接到通用 IO -> 激活系统 -> ADS 连接到控制器和端口。我已经更新了我的答案,试图让流程更清晰,但需要审查。
  • 我按照您的描述设置了我的项目,它可以工作!我可以使用 ADS 信息或符号信息读取和写入信息。奇怪的是我回到了我的旧项目,然后能够在不改变任何东西的情况下读写。无法弄清楚发生了什么,但它现在正在工作。谢谢!我接受了你的回答,但无法给你投票。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2021-12-14
  • 2016-06-13
  • 2022-07-05
  • 1970-01-01
  • 2015-03-14
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多