Beckhoff ADS (Automation DeviceSpecification)提供一个应用程序之间互相通信的接口,在TW3系统中,TwinCAT PLC,TwinCAT NC等被设计成虚拟的自动化设备,类似于实际的物理设备与设备之间通过基于TCP协议的路由来交换信息,参考下面的图示
ADS设备最重要的两个属性就是端口号和AdsAmsNetId
• AdsPortNr 指定通信的虚拟设备(ADS server),比如PLC,NC
• AdsAmsNetId 指定ADS路由器,是TCP IP地址的扩展
既然是基于TCP协议,那对照TCP/IP七层协议如下
接着看下ADS协议/报文的数据结构
在AMS Header中存放着上面提到的AMS NET ID和PORT
还有从PLC Read和Write变量时存放的变量地址和偏移量
ADS 设备之间的通讯有多种方式,不同方式有不同的特点。
- 异步方式(Asynchronous)
ADS 客户端向ADS 服务器发送ADS 请求,同时客户端继续自己的工作。ADS 服务器处理请求后,把响应以Call-back 函数方式发给客户端。
- 通知方式(Notification)
ADS 客户端向ADS 服务器发送ADS 请求,ADS 服务器以Call-back 函数的方式不断向客户端发送响应,直到客户端取消该请求。PLC变量不更新,就不会向客户端相应,类似于OPC通信的订阅。
这两种通讯方式的效率高,但需求复杂的客户端程序。
优点:不会造成系统堵塞
缺点:不能确保每次请求都有返回