基于EtherCAT 上位机软件ADS 通信实验研究
2020-12-10姬宁博李高益
姬宁博 李高益 王 冠
(西安工业大学,陕西 西安710021)
1 EtherCAT 协议
EtherCAT(Ethernet for Control Automation Technology)是一种基于以太网的实时工业现场总线通信协议和国际标准。它具有高速和高数据有效率(data ratio)的特点,支持多种物理拓扑结构。[1]符合该总线的主站采用标准的以太网控制器,通过5 类非屏蔽双绞线进行传输交互,物理层上使用网络接口卡集成功能。EtherCAT 主站通过纯软件实现,一种是倍福公司自行研发的TwinCAT 自动化编程开发软件,另一种是基于NDIS 的主站以及基于实施扩展的主站[2]。
2 ADS 通讯协议
2.1 ADS 概述
TwinCAT 是一款由BECKHOFF 自主设计开发的软件,有控制编程以及可视化操作的功能。不单单适用于Windows 操作系统而且还不需要其他的硬件来支持,将非实时系统改变为实时性系统,适用于高性能、高精度的控制任务。TwinCAT 可通过对象类别扩充组件或者动态链接库等方式访问自主设计的人机界面,而且可通过传输控制协议/网际协议等实现远程访问。ADS 通讯是通过调用动态链接库文件的方式实现TwinCAT 控制器与上位用户界面通信的协议[3]。
TwinCAT 系 统 中,包 括TwinCAT PLC、TwinCAT NC、Windows 应用程序等的工作模式类似于硬件设备,相互之间可以独立工作。模块之间的信息交换通过ADS 完成。ADS(Automation Device Specification)自动化设备规范,为设备之间通讯提供路由[3]。
2.2 ADS 通讯方式
图1 人机界面设计
ADS 以传输控制协议/网际协议为基础,相当于网络通讯协议的应用层。属于ADS 设备通讯使用多种方式,每一种方式都有它独特的亮点。异步方式(Asynchronous)——Client 一边持续自己的输出工作,一边向Server 发送传输请求。Server 把请求处理后,使用Call-back 函数的方式重新发给Client。通知方式(Notification)——Client 向Server 发 送 传 输 请 求,Server 使 用Call-back 函数的方式不断向Client 发送响应,直到Server 中止这个请求。
2.3 上位机和PLC 接口
TwinCAT 提供多种接口组件用于ADS 通讯,ADS .NET Component、ADS-OCX、ADS-DLL。
TwinCAT ADS 访问的其中一种方式是地址方式——一个PLC 变量的地址由两部分组成:分组索引和偏移量索引:分组索引是用来区别寄存器的类型,是一个常量,。偏移量索引是变量的偏移地址,可以确定在PLC 中为变量的地址。另一种方式是变量名方式——在TwinCAT PLC 程序里边中任意变量都有一个专属句柄,使用变量名访问变量首先捕获它的句柄,然后读写操作,最后释放句柄。
图2 I/O 变量链接
图3 onlion 界面实时监控
图4 实验板现象
3 通讯模块设计
总体设计:
设计使用VS2017 的MFC 模块,实现实验板通过记数方式点亮LED 流水灯以及按键显示的设计面板。设计面板中用到的PLC 程序中任意变量以文件方式存放在上位机中,根据变量名称获取变量地址信息。
为了得到相应PLC 变量的句柄,使用接口函数“AdsSyncReadWriteReq”,上位机软件对PLC 进行数据读写,人机界面设计如图1 所示。
在运行时需要将PLC 程序与开关量模块的物理地址完成关联,在TwinCAT 的System Manager 下将I/O 变量实现链接,如图2 所示。
实验运行界面,如图3 和图4 所示。
结束语
为了实现上位机软件与实验板通信端口的数据传输,通讯程序以Visual Studio 作为开发平台,设计了基于C++程序与TwinCAT PLC 程序之间的传输模块,采用ADS 通讯协议通信。通过实验证明,通讯模块设计合理,数据传输正常、效率高,能够实现人机界面以及控制系统的数据交互,为后续的上位机软件设计奠定了基础。