开源 Ig H Ether CAT 主站在 Linux CNC 开放式数控系统中的应用研究
2020-9-16 来源: 浙江师范大学工学院 作者:张克华 马佳航 田林晓 朱苗苗
摘要: 为了实现成本低廉,设计便捷、灵活、易扩展的数控系统,搭建基于 Ether CAT 通信总线与 PC 机的纯软件数控系统,并对该系统的实时性能进行了试验测试。以低成本工控机作为上位机,并集成好开源数控系统 Linux CNC 软件的 Linux RTAI(Real-Time Application Interface)实时操作系统,下载搭建 Ether CAT 主从站通讯框架,实现了PC 上位机即 Ether CAT 主 站 与 伺 服 驱 动 器 即Ether CAT 从站之间的通信,完成多轴数控系统测试平台的搭建。运用 Wire Shark 软件进行数控系统的实时性测试。实验结果表明,该数控系统的平均传输时间为 47. 7 μs,最大值为 779 μs,最小值为 0. 2 μs。很好地满足了数控系统要求响应时间在 1 ms 及以下的实时性要求,因此该方案集成Ether CAT 的 Linux CNC 可以用于工业机器人与通用数控机床等自动运动控制系统。
关键词: Ether CAT;工控机;Linux CNC;开放式数控系统
计算机数字控制技术( computer numerical control,CNC) 是一种能够将具有控制编码或其他符号指令规定的程序有逻辑地处理,并在对其译码后控制自动运行的控制技术。传统的数控系统大多采用专用独立控制器[1]。
随着工业自动化的发展,以工业 PC 机为基础的低成本开放式数控系统发展迅猛。相比有独立控制器的传统 CNC 系统,采用带有实时操作系统的 PC机作为上位机的开放式 CNC 系统架构由于不需要专用硬件,可以有效地降低成本并且具备较好的灵活性[2]。开放式数控系统中可应用多种通信总线架构,其中 Ether CAT[3-5]( ethernet control automation technolo-gy) 以实时以太网标准,适用性广,具备高性能、低成本、应用简易等优点,可以有效的降低成本和应用难度,在现代控制领域中得到了广泛的应用。
目前主要应用的 Ether CAT 框架有: 德国倍福的 Twin CAT 主站,德国 Ig H 公司的在 Linux 下的 Ether CAT 主站协议栈Ig H Ether CAT Master for Linux 以及德国 Acontis 公司的基于
ARM9 架构的 Linux 嵌入式主站 EC - Master等,其中 Ig H Ether CAT Master for Linux 是一个开源的框架,已经被集成在 Linux 内核上。
开源数控系统 Linux CNC,是一款构建于实时Linux 操作系统之上的开源的纯软件数控系统,用于数控系统和机器人系统控制,可以控制多达 9 轴系统,设计便捷、灵活、易扩展[3]。用户可以根据特定的数控系统应用要求,通过定制相应的配置文件、HAL 模块连接以及操作界面来完成控制系统的开发。其主要由两大部分组成: 用户空间和 RTAI( realtime applicationinterface) 内核空间[6]。用户空间模块是普通的 Linux程序且不具备实时性,含有为应用程序提供人机界面( human machine interface,HMI) 的模块,RTAI 内核空间模块是实时运行的,其内核架构不允许低优先级的进程抢占[7]。RTAI 内核空间中还包括含有轨迹生成和插值算法的运动控制实时模块 MOTMOD[8]和用来连接 RTAI 的硬件抽象层( HAL) 模块。
使用该软件CNC 系统,可以与市售的伺服驱动器搭配使用且广泛支持的标准化工业以太网,从而实现用工业标准的以太网现场总线进行通信来提高灵活性并降低成本[9]。即通过采用开源 Ig H Ether CAT master 集成在 PC 机中搭建 Ether CAT 主站,采用伺服驱动器搭建 Ether CAT从站的方式,来实现 PC 机与伺服驱动器的通讯[10-11]。数控系统的实时性是衡量控制系统优劣的一项关键的指标,主要体现在数控系统对数据进行快速而准确的处理并及时作出响应。
在实际工况中,根据控制任务的不同,将实时性划分为对应响应时间为 100 ms及以上,5~10 ms,小于 1 ms,以及 100 节点下的伺服运动控制小于 1 ms 的 4 个级别。其中 CNC 的实时性要求在第三级和第四级,也就是响应时间在 1 ms 及以下[12-13]。CNC 需要解决实时性问题是如何同步地向伺服驱动器发送位置指令。理想情况下,所有伺服驱动器都应在同一时间接收并执行各自的位置指令。此外,连续位置命令之间的周期应该始终是常量。本文所构建的 CNC 系统采用 PC 机实时操作系统( real time operating system,RTOS) 安装开源的 Ig H Eth-er CAT 主站,Ether CAT 伺服驱动器作为从站。
该数控系统为纯软件解决方案无需任何扩展卡或外部控制器,灵活性高,可以通过扩展 PC 实现的数控内核和HMI 来增加新功能,并且易于实施的特点。本文采用Linux RTAI 作为 CNC 控制器的实时操作系统,通过测试其抖动和延迟,测试满足了数控机床对控制系统的1 ms 及以下的实时性要求。拟提供开源、低成本和扩展性好的满足工业上实时要求的数控系统。
1、多轴数控实时性测试系统的构成
本文整合 Ether CAT 主站于 Linux CNC 中的多轴纯软件数控系统。系统是基于 Ether CAT 搭建的,以作为主站的工控机为第一节点,通过网线将作为从站的伺服驱动器依次相连,形成一个完整的 Ether CAT 主从站现场总线系统。该数控系统的基本构成,如图 1 所示,整个系统的硬件主要包括作为主站的工控电脑( gk1037u /i5- 3317u) ,作为从站的交流伺服驱动器( 英威腾 SV-DA200) ,与伺服驱动器配套的电动机等。系统的软件部分主要是 Linux CNC 软件和 Ig HEther CAT Master for Linux 框架。
通过修改 Linux RTAI中的 HAL 模块实现 Linux CNC 和 Ether CAT 的通信。作为从站的伺服驱动器,在接收到主站发来的Ether CAT 帧报文后,可以控制电动机和其他辅助设备运转。
2 、Linux CNC 环境中 Ether CAT 主站搭建
Ether CAT 只定义了标准以太网结构的七层 OSI模型中的物理层、数据链路层 和应用层这三层协议[9]。Ether CAT 工作采用主从模式,一个主站可以控制多个从站。根据伺服驱动器技术指南手册,将所提出的系统中应用的伺服驱动器的时间同步周期设置为4 ms[14]。开始通信时,主站将 Ether CAT 帧发送信号给第一个从站,当第一个从站收到主站发送的Ether CAT 帧后,第一个从站下载需要的数据并插入需要传送的数据后传送给下一个从站,一直循环至最后一个从站完成上述操作后将数据包返回主站,如图 2所示。
Ether CAT 主站系统是模块化构成的,主要分为三大模块: 设备驱动模块、主站模块和应用层模块。其中设备驱动模块能够进行以太网卡驱动的配置,并通过以太网口使得主站模块可以收发到 Ether CAT 帧。本文中站模块是指集成 在 Linux 内核中的 Ig HEther CAT Master 主站内核模块,通常包含了一个或者是多个的 Ether CAT 主站对象。设备以及应用层接口一般也集成在主站模块中。应用层模块是开发者编写的能够控制主站模块的关键模块。程序在调用应用层接口后,才能去控制主站模块。
Ether CAT 从站系统是安装在从站轴伺服驱动器中的。本文使用英威腾 Ether CAT 伺服驱动器( 型号DA200) ,其内部的 Ether CAT 网络模型如图 3 所示。Ether CAT( Co E) 网络参考模型包括两部分: 数据链路层和应用层。数据链路层主要负责 Ether CAT 通信协议,应用层嵌入了 CANopen drive Profile( DS402) 通信规约。Co E 中的对象字典包括了参数、应用数据以及PDO 映射配置信息。过程数据对象( PDO) 由对象字典中能够进行 PDO 映射的对象构成,PDO 映射定义了 PDO 数据中的内容。
由于 PDO 数据是周期性进行读写的,所以不需要查找对象字典; 而邮箱通信( SDO)的 通信是非周期性的,在读写时需要查找对象字典[4]。Ether CAT 是主从式的结构,由于采用工业 PC 机
作为控制主站,伺服驱动器作为控制从站,首先需要完成 Ether CAT 主从站的搭建。下载安装开源 的 Ig HEther CAT Master for Linux 作为 CNC 系统的 Ether CAT框架; 在工控机中安装 Ether CAT 主站代码; 测试 Eth-er CAT 的运行情况。
如图 4 所示,Ether CAT 成功安装并运行良好。
通过 Ether CAT 现场总线系统,实现了 Linux CNC和伺服驱动器之间的通讯,具体通讯方式,如图 5 所示。在用户将G代码输入到 Linux CNC 中后,Linux CNC 中的 RS-274 / NGC 解释器会将 G 代码解释成数控系统能够识别的数据块; 这些数据块会通过Linux CNC 中的硬件抽象层( HAL) 传递到 Ether CAT 主站系统; 之后 Ether CAT 主站将数据块以 Ether CAT 帧的形式发送至 Ether CAT 从站并最终驱动执行元件。
3、 Ether CAT 通信的试验平台搭建与测试
为测试集成 Ether CAT 现场总线的开源数控系统的实时性能,搭建了试验平台,如图 6 所示。测试工具是采用网络截包软件 Wireshark 进行实时性抓包测试,作为 Ether CAT 现场总线系统主站的工控机与作为Ether CAT 从站系统的轴伺服驱动器以及安装有 Wire-Shark 软件的 PC 机通过工业交互机连接在一起。
利用 Wire Shark 截取 Ether CAT 主从站系统通讯过程中交换的实时 Ether CAT 帧报文的方式,统计通过Ether CAT 现场总线系统进行通讯的数据信息,然后据此计算该 Ether CAT 通讯过程的抖动和延时时间,最后与数控系统的实时性要求进行比较,判断 Ether CAT 通讯系统的实时性是否符合要求。
Ether CAT 运行测试的 G 代码所需总的运行时间为 200. 260 9 s,如图 7 所示,主站发送报文的时间间隔( 主站地址 00: b4: 0d: 1e: 00: 66 发送的相邻报文的统计时间之差,如主站地址发送的 No. 2 的报文统计时间为 0.003 261 s,No. 4 则为 0.007 260 s,两者时间之差为 0.003 999 s,也就是这两个报文的发送时间间隔为 3 999 μs。平均为 4 ms,最大时间为 4 041 μs,最小为 3 957 μs,波动在±1. 5%以内,如图 8 所示。
在相对时间增量一栏中可以看出从站接收报文所需的时间,也就是报文的传输时间。每一个从站报文( 地址为 02: b4: 0d: 1e: 00: 66) 相对主站发出的时间增量即为报文的传输时间,为了消除误差,取每 5 个报文的平均传输时间计算,最大 779 μs,最小 0. 2 μs。整体平均传输时间为 47. 7 μs。
根据所截得的 Ether CAT 帧在 Wire Shark 中显示的IO 图中也可以看出,如图 9 所示,在 X 轴表示的截包时间刻度间隔为 0. 001 s,Y 轴表示截包个数时,报文主站运行平稳,具有较高的可靠性。通过计算发现报文从站接收报文的整体平均传输时间约为 47. 7 μs,其中 99. 7%的 Ether CAT 帧传输时间在 0 ~ 3 μs,0. 3%以下的传输时间在 700~800 μs。通过统计计算,所得的
通讯时间测试结果符合 Ether CAT 的微秒( μs) 级刷新时间。
表明 Ether CAT 通讯总线系统已经很好的整合进了 Linux CNC 中。与数控系统的实时性要求( 小于 1ms) 相比,测试结果为微秒级别符合数控系统要求,这表明本文提出的基于 Linux RTAI
和 Ig H Ether CAT 主站的开放式数控系统具备良好的实时性以及控制性能。
4、 结语
本文基于 PC 的集成 Ether CAT 于 Linux CNC 的开放式数控系统。该 CNC 系统拥有如下特点: ( 1) 开源的 Linux RTAI 系统和 Linux CNC 实现了纯软件 CNC系统,用户可以自行修改、复制以及再分发该数控系统。( 2) 使用 PC 机为上位机,无需专用硬件,降低了硬件成本。同时,Ether CAT 现场总线具有微秒( μs) 级刷新时间,而且可以搭载不同厂家生产的 Ether CAT 伺服驱动器配合使用提高通用性和降低设备成本。( 3)系统功能灵活。纯软件性质使得该数控系统能够充分地利用 PC 机具备的大量计算资源实现数控系统各功能,并且可以按需求编写软件模块,轻松地添加系统新功能。
同时,用户可通过修改配置文件参数实现驱动不同数目的轴伺服驱动器和电动机,使得该数控系统的灵活性极大地增强。通过该数控系统集成并进行了实时性测试,试验结果表明: 应用 Ether CAT 现场总线,系统数据平均传输时间约为 47. 7 μs,说明 Ether CAT主从站系统较好的整合在了该数控系统中,该数控系统的实时响应时间在微秒级别,也就满足数控系统实时性要求的响应时间在 1 ms 级及以下,所以集成 Ig HEther CAT 主站与 Linux CNC 纯软件数控系统可以很好地满足工业机器人与通用数控机床等的要求。
投稿箱:
如果您有机床行业、企业相关新闻稿件发表,或进行资讯合作,欢迎联系本网编辑部, 邮箱:skjcsc@vip.sina.com
如果您有机床行业、企业相关新闻稿件发表,或进行资讯合作,欢迎联系本网编辑部, 邮箱:skjcsc@vip.sina.com
更多相关信息