ads 学习与探索
方向自动化PLC方向ADS 简介ADS 全称为 Automation Device Specification 是倍福 TwinCAT 实时核与外部环境交互的接口该协议是倍福定义和开发的倍福的软件和硬件产品均支持 ADS 协议。由于 TwinCAT 是基于微软 Windows 系统并具备实时逻辑处理的工程软件因此微软的 WinCE5 、 WinCE6 、XP 、 WES7 、 Win10 等的 X86 位和 X64 位系统中均可以运行 TwinCAT 软件。当前用户可以购买的 TwinCAT 软件分为 TwinCAT 2 简称 TC2 和 TwinCAT 3 简称 TC3 两大类。 TC 3 是基于 TC2 功能基础上推出的全新架构的工程软件在 ADS 通信方面 TC3 向下兼容 TC2 但 TC3 的 ADS 通信又有了一些新功能的扩展如 ADS overMQTT 和 ADS Serurity 等。ADS 协议ADS协议是开放的用户可以查阅倍福官方在线文档帮助系统https://infosys.beckhoff.com/content/1033/tcinfosys3/11291871243.html?id6446904803799887467来了解ADS协议原理ADS 协议原理。AdsMonitor 是倍福开发的对 ADS 报文抓取和报文分析、数据诊断的小工具功能类似于 Wireshark 。如果用户希望使用 ADS 客户端进行开发时只需要安装 TwinCAT 即具备了 ADS 客户端与 Server 端通信能力。TwinCAT 提供了标准的 ADS DLL 和完善 ADS API 接口可供各种开发语言来调用也提供了大量的帮助文档和示例程序供用户参考。如果客户需要以 Linux 、 MAC OS 、 IOS 、 Andriod 等平台作为 ADS 客户端的话也可以自行开发ADS 客户端开发客户端无需任何 SDK 倍福也不提供相关 SDK 当然为了降低客户端的开发难度倍福在https://github.com/Beckhoff/ADS 上面共享了一个基于 VS C 的 ADS 客户端代码用户可以自行下载并集成到项目中这只是一个基础的 ADS Client 协议封装的代码如果用户需要承载大批量的数据通信则需要学习并掌握该代码后自行完善相关功能。除非特殊需求客户才需要基于开源代码来开发 ADS 客户端。ADS 本质上是 TCP 通信只是对 TCP 的收发数据进行了一系列的规范以更好的适应不同的应用需求。 ADS对外通信的端口统一为 48898 客户无法修改端口。AMS Headerhttps://infosys.beckhoff.com/english.php?content../content/1033/tcadsnetref/7313155211.htmlidhttps://infosys.beckhoff.com/english.php?content../content/1033/tcadsnetref/7313155211.htmlidADS RouterADS Router 是 ADS Client 与 TwinCAT 实时核交互的接口 ADS Router 通过 48898 接收 ADS Client 发送来的请求并把请求命令交付于实时核处理实时核处理完请求并做出反馈 ADS Router 把反馈结果响应给 ADSClient 。 ADS Router 是 TwinCAT 底层不可或缺的功能如果用户使用 TwinCAT 来作为 ADS Client 的话也具备了 ADS Router 的功能。由于 ADS 通信是通过两端的 ADS Router 来完成的也就意味着两端接收数据的端口均为48898 端口不可更改这个地方与常规的 TCP 通讯是有区别的。由于一台 Windows 控制器只能安装唯一的TwinCAT 而一个 TwinCAT 只有唯一的 ADS Router 也就意味着一台控制器只能有一个 ADS Router 来承接所有外部所有通信请求。 Beckhoff China 技术文档ADS Router 可以查找本网络里面所有已安装 ADS Router 即 TwinCAT 的控制器也就是我们所说的扫描目标控制器扫描功能发送的是 UDP 报文端口为 48899 端口不可更改。 ADS Router 通过 48899 接收到扫描报文请求后会把本机的 TwinCAT 和系统相关信息反馈给扫描端的 ADS Router 48899 扫描端把扫描到的信息呈现在扫描对话框中。添加路由 Add Route 发送的是 ADS 请求报文实现双方通信前把建立通信所必要的对方信息报备到本地的 ADS Router 列表中以便后续建立流畅的 ADS 通信添加路由后进行通信也是工业设备互相通信的安全要求。ADS 诊断ADS 协议已经有 20 年的应用历史可谓非常稳定了由于 ADS 非常灵活因此在使用前对 ADS 理解不到位就必然会产生一些应用故障。这些故障一般会发生在通信建立之前即扫描添加路由时和正常通信一段时间后下面对着两种故障进行详细介绍ADS协议TwinCAT ADS 技术https://tr.beckhoff.com.cn/pluginfile.php/44857/mod_resource/content/0/ADS%E9%AB%98%E7%BA%A7%E5%9F%B9%E8%AE%AD.pdfhttps://tr.beckhoff.com.cn/mod/book/view.php?id2859chapterid15369