基于实时Linux的网络化开放式运动控制器研究
2015-10-30郑天江宋孙浩杨亚威杨桂林
郑天江,宋孙浩,杨亚威,张 驰,杨桂林
(中科院 宁波材料技术与工程研究所,宁波 315201)
0 引言
运动控制技术是现代工业化进程中必不可少的元素,不管是数控领域,还是新兴的装备制造乃至机器人领域,都离不开运动控制,运动控制器已经深入了现代化工业的每个角落。高速、高精度始终是运动控制技术追求的目标。传统的运动控制器的核心器件主要是基于单片机(MCU)或者数字信号处理器(DSP)等嵌入式芯片开发,受嵌入式芯片的运算速度和功能的限制,部分复杂的运动规划、高速实时多轴插补、误差补偿[1]和更复杂的运动学、动力学计算无法在装备了传统运动控制器的数控设备或机器人设备上实现,这就要求我们新型的运动控制器的核心处理器具有更快的处理速度、更高的运算精度和更多任务的处理能力。随着工业PC技术的发展, 功能越来越强大、可靠性越来越高、价格越来越低廉、体积越来越小巧,是现代运动控制器及运动控制系统发展的必然趋势。
开放式运动控制器的研究始于1987年,美国空军在政府的资助下发表了著名的“NGC(下一代控制器)研究计划”[2]。从1996年开始,美国几个大型研究机构对NGC计划分别发表了相应的内容,美国通用、福特和克莱斯勒等公司提出和研究了 “OMAC(开放式、模块化体系结构控制器)”,其目的是用更开放、更加模块化的控制结构使制造系统更加具有柔性、更加敏捷。目前,国外的一些公司已经有了相关的产品,例如softservo公司[3]针对数控加工领域开发了4轴的运动控制器,贝福自动化公司则主推Ethercat[4]相关的自动化运动控制产品,包括嵌入式系统的硬件、软件平台以及工控PC。近年来,一些人试图已经开始探寻将网络服务直接嵌入到运动器中[5],例如张艳琼[6]等人研究了基于Web service的工业控制系统,企图利用Internet的开放性来实现远程的工业数据交互,和多平台的接入等特点。
前面提到的运动控制器及相关产品已经开始向开放式PC和网络化的方向靠近,但还是存在一些缺点和不足,例如采用计算机标准总线的运动控制器由于存在金手指链接,单边固定等缺点,不宜长期工作;采用嵌入式系统的运动控制器其资源和配置以及运算能力有限;本文基于以上原因实现了基于工控机和网络设备的运动控制器,通过将所有运动控制算法运行在实时的工控机内核上实现快速的实时运算,并且通过实时以太网的应用实现了工控机与现场设备的实时联网。与此同时在工控机上搭载了因特网接口,可以实现多平台和多点的动态接入和控制。
1 运动控制器的系统的整体架构
如图1所示,运动控制器搭载网络服务通过网关连接到工厂的局域网或广域网络;而针对多轴的电机控制方面,控制器搭载实时的通讯网络(并口,Can或者Ethercat),I/O端子板实现将收到的数据翻译成现场的I/O控制量(如,数字量输入输入出,模拟量输入输出以及PWM等),这样通过Linux实时系统和相应的实时传输协议便可实现一个控制器控制多轴的电机同时运行;运动控制器与运动控制器之间可以通过网关进行网内的数据交换。
图1 运动控制器的整体架构图
图2是运动控制器软件结构框图,控制器以PC和实时Linux技术(RTAI或者Preempt-RT)构成的实时操作系统(RTOS)为基础开发平台,操作系统中的程序分为实时和非实时两种类型,其中实时以太网驱动等程序的运的优先级最高,此外,硬件驱动、运动学和动力学计算、轨迹规划和网络服务等内容也在实时进程中实现;而对系统实时性要求不高的内容,例如代码解释等,则是在非实时的进程中实现。人机交互方面,通过网络节点上的用户可以通过网络GUI的服务实现远程的访问和多点的接入。
图2 运动控制器软件结构图
2 运动控制器网络及远程控制功能实现
1)搭建Web服务
对于Web的工作原理简要介绍如图3所示,Web服务器作为服务端存放相应的服务网页并提供服务,将Web服务器融合到运动控制器中,所以运动控制器的数据可以与Web服务器进行实时通讯。Web客户端发出浏览网页和下载文件等命令申请,申请成功后,由服务器直接传输所需要的文本和数据到客户端。
针对服务器的搭建,我们采用Apache等方式来配置。Apache是开源的Web服务器软件,是最常用的Web服务器之一。其主要特点是:简单、速度快、性能稳定;它可以运行于所有计算机平台,包括UNIX/LINUX系统;集成代理服务器和Perl编程脚本;对用户的访问会话过程跟踪;可对服务器日志定制;还支持虚拟主机及HTTP认证等等。同时在服务器端还需要配置MySQL服务器和PHP应用程序服务器等软件,其中MySQL是关系型数据库管理系统,而PHP是网站流行的Web程序开发语言。三者的结合是用来配置Web服务器的标准组合。
图3 网页的申请与浏览过程
2)SSH远程登录控制
SSH为建立在应用层和传输层基础上的安全协议。SSH是目前较可靠,专为远程登录会话和其他网络服务提供安全性的协议。利用SSH协议可以有效防止远程管理过程中的信息泄露问题。在Linux的操作系统上建立和链接SSH服务是非常简单方便的,并且用户可以通过不同终端进行访问。首先在运动控制器上安装SSH协议,在加入实时内核补丁的ubuntu操作系统下,安装SSH协议是非常方便的,只需要在联网状态下终端输入apt-get install SSH,系统便可以自动安装SSH服务。同理,在另外一台终端安装SSH服务之后便可以采用SSH+IP地址+用户名来实现两台计算机的互访。这样便实现了采用局域网中任意一台机器来控制开放式的运动控制器。
3 运动控制器性能研究
由于运动控制器必须要保证设备的实时性,因此我们首先需要研究操作系统和通讯系统的实时性,只有解决了这两大核心问题,系统的精度和控制速度才能够提高并且适应现场的不同设备。本文主要采用以实时的Linux操作系统为基础,首先调查和研究Linux操作系统对外围设备的实时性表现,同时研究基于Linux下的现场实时总线的技术和通信标准。
1)操作系统的实时性研究
由于标准的Linux内核是采用内核层和用户层分离的接口,普通用户无法直接更改内核进程,因此需要采取一些特殊的办法来提高其实时性,比如说瘦内核方法、超微内核方法、资源内核方法和实时内核补丁等等。
图4(a)~(d)显示了普通内核和带实时内核补丁的Linux操作系统的实时性的表现,本测试在每个操作系统上分别运行了5个线程,针对每个线程的实时性进行了捕捉(图中max:表示最大延迟,Avg表示平均延迟,单位均为ns),结果发现采用普通Linux操作系统内核的最大延迟比较大(最大延迟为1000ns以上),并且在干扰情况下,内核的稳定性得不到保证(最大延迟跳动比较大)。采用实时内核则稳定性和实时性大大提高了(最大延迟在10ns左右)。
图4 Linux实时内核测试
2)通讯系统的性能研究
上位机要想控制现场设备,那么通讯过程是必不可少的,我们采用linuxcnc作为上位机的控制软件,通过编写实时进程下的hal驱动和内核模块文件来实现实时的运动控制功能。这里我们采用了三种通讯模式开发了相关的通讯系统软件和硬件来控制下位机的电机及IO设备:基于并口通讯,基于Canopen通讯和基于Ethercat通讯。
基于并口的通讯:由于并口相对于其他方式来说,其开发过程比较简单,成本低廉,因此我们首先采用并口进行测试,但其局限性在与,通讯距离比较短,通讯速率比较慢。通过重写Linux内核并口驱动程序,通讯方式采用EPP模式,并且下位机采用单片机模拟并口,下位机根据接收到的值发出相应的模拟量或者数字量来控制现场设备。
采用并口通讯实现开放式运动控制系统的设备如图5所示,主要包括了工控机,并口转接板和I/O端子板,在Linux系统实时系统下,我们选取了系统中断为1ms,通讯协议中,每发送一个16位的过程数据,需要在上位机发送四次8位数据,由于EPP通讯模式的速率大约在1Mbyte左右,因此我们每个1ms的通讯间隔可以发送和读写大约30个16位的数据。数据编码方式如表1所示。
表1 数据编码方向
其中h0h7组成8位数据头,c0~c7代表数据的代码号,用来识别设备编号和数据等,d0~d15代表实际数据。
图5 采用并口通讯实现的开放式运动控制系统
通过实验验证,在这样的方式下,我们每一路并口最多只能实时控制2两路电机。我们可以通过PCI的并口扩展卡来实现多路电机的同时控制。因此,在控制轴数不多,廉价的场合,采用并口来实现是可行的。如果需要增加更多路的控制,我们可以使用PCI或者PCIE转并口转接来实现。
基于Canopen的通讯:由于普通电脑上并没有Can通讯的硬件,因此我们需要研发基于Can的PCI通讯卡,采用Can总线通讯主要特点是,抗干扰能力强可以同时接入多个控制设备传输距离相对来说比较远,Linux系统下,我们选择了凌华公司的PCI-7841(PCI转CAN卡)进行测试,编写基于Can总线的程序比较简单,基于socketcan的方式,首先创建一个套接字,然后绑定端口,然后发送数据,其主要程序如下:
通过实验发现,采用Canopen的通讯模式,其1ms内的实时收发数据量跟并口的差不多,但是其稳定性和传输距离远远高于并口。另一方面,由于需要专门设计PCI转Can卡,成本要高一些。
基于Ethernet的通讯:传统的运动控制器通过RS232、485等方式来进行运动控制器与现场设备间的通讯,这类系统的功能和性能受到了诸多的限制,除了通讯距离短、接线方式繁琐、通讯速率低等,最显著的缺点是能够控制的轴的数目不多。通过实时以太网的技术引入,解决了运动控制此类迫在眉睫的问题。
以太网的实时通讯方式,目前有比较多的种类,例如:一些人直接使用prof i bus DP和world FIP协议取代传统的UDP协议通过较高级的协议层禁止即载波监听多路访问/冲突检测机制存取过程,并使用时间片或轮询过程来取代它;或者部分方案采用专用交换机,并采用精确的时间控制方式分配以太网数据包。上述方案不可避免地遇到总线传输的延迟问题,而Beckhoff公司推出的EtherCAT总线通过从站中的实体硬件实现了部分系统的功能从而解决了关键的实时性问题,数据可以实时地被插入到在经过该从站的报文中。因此采用EtherCAT通讯协议,不仅能够提高控制系统的通讯速率,而且也能保证系统的实时性。
图6 Ethercat开放式运动控制系统
在实验过程中我们通过直接在Linux操作系统上搭载EtherCAT总线的Master节点实现上位机与EtherCAT现场模块的通信。既保证了距离和实时性,又不需要另外在PC机上加上PCI硬件,因此是比较合理的方案。图6显示了采用Ethercat的网络化开放式运动控制系统,我们自主开发了基于倍福公司ET1100和基于MSP430单片机的从站模块,通过单片机配合ET1100芯片实现与主节点通讯并将其转化为控制驱动器所需的I/O信号。经测试,网络传输速率根据不同的电脑性能有所变化,一般1ms内可以发送接收至少300个16位数据因此通讯速率比前两者都快。因此选用Ethercat方案是实现控制器的稳定性和高速性能的保证。
4 基于网络化开放式PC运动控制器的平面Delta机器人的实现
两自由度Delta机器人是工业机器人的一种,它以简单的结构和高速的运动学性能受到了广泛的青睐,主要应用于包装行业。其结构特点是:其右端手臂采用两个平行四杆机构使末端执行器始终保持水平。
如图7所示,本Delta机器人在设计左右的往复行程为1m,抓取速度每分钟60次,采用了国产的伺服电机和行星齿轮减速机构,我们分别采用并口,canopen和Ethercat方式来实现了平面并联Delta机器人,由于此机器人只需要实现2轴联动,所需要控制和传递的参数比较少,所以我们的三种通讯方案均能够保证其控制的实时性和精度。同时通过采用SSH的方式,我们实现了局域网内部的多平台网络化监控和远程监控。
图7 两自由度Delta并联机器人
5 结论
本文提出了基于网络的开放式运动控制系统的设计,该控制器通过采用工控PC和自制的运动控制通讯卡,将控制信号实时地转化为现场电机轴的控制信号,其他的软件可以直接在PC上实现,不需要下位机的参与。由于PC机具有强大的计算能力,能够轻松实现复杂的机器人运动学算法,并且其算法的移植性强,因此是实现开网络化和开放式的必要条件。本运动控制器通过采用实时的操作系统内核和实时的通讯方式来保证整个系统的实时性。经验证,此开放式运动控制器很轻松的实现了基于远程控制的平面两自由度Delta并联机器人,并且通过算法的移植能够很容易地实现各种具有多轴运动特征的机器人。同时,它还具有多平台的兼容性和远程控制的特征。
[1] 吴孜越,胡东方,杨丙乾.运动控制器在国内的应用及发展[J].机床与液压,2007(07):234-236.
[2] 郗志刚,周宏甫.运动控制器的发展与现状[J].电气传动自动化,2005(03):10-14.
[3] System S S.http://www.softservo.com/[EB/OL].(2013-12-23)http://www.softservo.com/.
[4] 倍福自动化.http://www.beckhoff.com.cn/[EB/OL].http://www.beckhoff.com.cn/.
[5] 研华公司.基于浏览器的HMI/SCADA软件WebAccess[EB/OL].http://webaccess.advantech.com.cn/.
[6] 张艳琼,蔡瑞英.基于Web Service的工业控制系统研究[J].微计算机信息,2008(24):58-60.