轴控制系统通信技术的研究与实现*
2015-11-03赵鸿博王志成何鹏飞孙树杰
赵鸿博,王志成,何鹏飞,孙树杰
(1.中国科学院大学,北京 100049;2.中国科学院沈阳计算技术研究所 高档数控国家工程研究中心,沈阳 110168;3.沈阳高精数控技术有限公司,沈阳 110168)
轴控制系统通信技术的研究与实现*
赵鸿博1,2,王志成2,3,何鹏飞1,2,孙树杰1,2
(1.中国科学院大学,北京 100049;2.中国科学院沈阳计算技术研究所 高档数控国家工程研究中心,沈阳 110168;3.沈阳高精数控技术有限公司,沈阳 110168)
为解决工业智能化过程中可编程轴控制器与外设之间的通信技术问题,在分析轴控制器实时可靠通信需求的基础上,对基于Modbus协议的轴控制系统通信技术进行研究。实现了可编程轴控制器与上位PC机之间的可靠通信;轴控制器与被控设备之间的实时可靠通信。最后通过应用验证了该技术方法的有效性。该技术对工业轴控制通信系统的设计具有重要参考价值。
轴控制器;通信协议;主从关系;定时机制;帧格式
0 引言
轴控制系统是通过对机械运动部件的位置、速度等实时控制管理,使其按照预期的运动轨迹和规定的运动参数进行运动的现代化工控系统。实现轴控制系统离不开其核心部件轴控制器与外部设备之间的通信技术,即轴控制器与上位PC机或被控设备之间的通信实现。随着工业智能化的进展,传统的采用PCI、ISA、RS232等通信接口的轴控制器,无论是连接方便性还是对电机运动控制的速度、精度都已经不能满足现代自动控制场合的进一步要求,这促使我们选用一些新的方法对传统的轴控制器通信技术进行改进[1]。同时,各大生产厂商采用的轴控制系统通信协议各不相同,有的甚至不公开内部细节,这样便造成设备之间存在兼容性问题,扩展性不佳。结合以上信息,我们可以看出目前急需一种基于通信的开发式轴控制系统。
在美国,开放式轴控制系统被誉为新一代工业控制系统,其产品遍布多个领域。国内外专家预测开放式轴控制系统其应用的普遍性将与目前应用广泛的PLC类似[2]。轴控制系统目前研究的热点是融合工业4.0的理念,将网络技术应用到制造业。简单的讲,就是改进通信技术,采用现场总线的方式,实现高速、高精的控制要求,制造出基于标准化数字接口协议的轴控制系统。
在此背景下,本文对满足工业智能化发展要求的数字化通信技术进行研究,实现了上位PC机与轴控制器之间,轴控制器与被控设备之间的实时可靠通信。
1 轴控制系统对通信的需求
上位PC机、可编程轴控制器和伺服驱动器构成了一个基本的轴控制系统。如图1,可以清楚的看出,系统通信由两部分组成。第一部分,在上位PC机的调试软件上编写程序,通过USB端口将程序指令代码序列下载到单轴控制器中。单轴控制器的响应也通过USB端口返还给上位机;第二部分,单轴控制器对指令代码序列进行解释处理,依据得出的运动参数规划电机的运动轨迹,接着通过RS485通信接口将位置指令、启动/停止等命令传递给伺服驱动器。同样伺服驱动器也通过RS485接口向单轴控制器传输位置反馈。根据实际工程中的不同需求,这两部分通信采用了不同的通信接口。
图1 轴控制系统模型
分析轴控制系统的通信技术列出以下四点需求,这些均是设计实时可靠通信必须考虑的因素。
(1)轴控制器与上位PC机的通信周期应小于上位机软件设定的10ms限制。也就说,从上位机传输数据开始,到上位机接收完轴控制器的返回数据,时间应小于10ms。
(2)轴控制器向伺服驱动器发送位置指令和伺服驱动器位置反馈的时间之和,需要小于一个插补周期(1ms)。只有满足此要求才能保证轴控制器的同步实时性[3-5]。
(3)除此之外,轴控制系统中通信报文需采用短帧结构,这样能够降低传输时间和数据出错率。
(4)轴控制器与伺服驱动器之间存在不同厂商间的兼容性问题,一个成功的通信技术一定要解决兼容性问题,方能实现分布广泛的应用。
2 轴控制系统实时通信技术研究
2.1 实时调度
为了保证轴控制系统的实时性,采用嵌入式实时操作系统对任务进行实时调度。实时操作系统专为嵌入式系统而设计,提供三种不同的内核调度选项,分别是抢先、循环(时间片轮转)、协作,并且提供完全确定性行为,可以在定义的时间内处理事件和中断,满足轴控制系统任务间的实时调度需求。
2.2 系统结构
轴控制器软件系统建立在keil RTX实时操作系统上,keil RTX系统为运动控制和通信需求提供相关的服务与支持。分析轴控制器的功能,利用操作系统服务建立四个线程,如图2所示。
图2 keil RTX实时系统线程的分配
为了解决复杂的时序控制问题,首先要对线程进行合理的分配。解释器线程Task_Interpreter(void)和运动控制器线程Task_Motioncontrol(void)均分配为高优先级,设置为时间片轮转的同优先级,并且每1ms执行一次。与上位PC机通信的USB虚拟串口线程Task _Common(void)分配为中优先级。与伺服驱动器通信的RS485线程Task_RS485(void)分配到低优先级。这四个线程被分别处于高、中、低三个不同优先级,周期性地被触发执行。利用keil RTX实时系统实时性、灵活性的特点,为轴控制系统通信解决了软件实时性的问题。
3 轴控制系统可靠通信技术研究
3.1 通信报文帧的设定
通过分析比较目前常用的通信协议,选用符合轴控制系统需求的Modbus通信协议。一个通用Modbus帧如图2所示,Modbus协议定义了一个与基础通信层无关的简单协议数据单元(PDU),即PDU=功能码+数据域。Modbus协议能够应用在不同类型的总线或网络。对应不同的总线或网络,Modbus协议引入附加域映射成应用数据单元(ADU),即ADU=附加域+ PDU[6-7]。采用这种帧格式不仅有助于通信的可靠性,而且解决了不同厂商设备间的兼容性问题。
图3 通用Modbus帧
Modbus通信协议提供ASCII和RTU两种传输模式。轴控制系统的通信均采用短帧结构,所以选择报文帧最长256字节的RTU模式,在同样的波特率下,可比ASCII模式传输更多的数据。
3.2 校验机制、重发机制
Modbus协议规定了完善的校验机制,用时长至少为发送3.5个字符时间的空闲间隔来区分报文帧。这个时间间隔常被称作T3.5。当发送完最后一个字符后,有发送3.5个字符时间以上的停顿间隔则说明了消息传输的结束。同时,整个信息必须连续发送,如果两个字符之间的空闲间隔超过1.5个字符时间,则报文帧被认为不完整,应该被接收节点丢弃。Modbus协议利用时间间隔确保了帧信息的完整性。在接收到一帧数据后,通过校验帧格式里附带的CRC校验值,进一步保证报文帧的正确性。轴控制系统通信帧格式如表1。
表1 Modbus RTU模式报文帧
在通信中,上位机发送报文帧后,定时器开始计数,若超出等待时间仍未收到应答帧或者检测到应答帧错误,则重发此请求帧。这种重发机制确保了轴控制系统中通信的可靠性。
4 轴控制系统通信技术实现
4.1 上位PC机与轴控制器的通信实现
以前文分析得出的轴控制系统通信需求作为设计指标,首先介绍上位机与轴控制器的通信实现方式。借助于上位PC机Windows平台下的图形化调试软件,实现界面友好的轴控制编程环境。上位PC机与轴控制器之间采用最常用、高速的USB接口进行通信。在USB标准子类中,有一类称之为CDC(Communication Device Class)类,可以实现虚拟串口通信,而且由于大部分的操作系统(Windows和Linux)都带有支持CDC类的设备驱动程序,可以自动识别CDC类的设备,这样不仅免去了写上位PC机专用设备驱动的负担,同时简化了设备驱动的安装[8]。因此确定以USBCDC虚拟串口的方式实现上位PC机与轴控制器之间的通信。在上位PC机与轴控制器的通信中,轴控制器作为从设备,实现了如图4的状态转换。
图4 轴控制器作为从设备状态转换图
轴控制器上电后处于通信空闲状态。当接收到来自上位PC机的请求帧,轴控制器随即进入检查请求状态,对请求帧地址码、CRC校验码以及接收到的数据进行检查。若检查出现错误,轴控制器向上位PC机返回格式化错误应答。如果请求帧检查正确,轴控制器则对请求帧进行处理,若在处理中出现错误,则向上位PC机返回格式化错误应答。如果正确处理了请求帧,轴控制器则返回上位PC机查询的功能,即格式化正常应答。
上位PC机与轴控制器的通信数据中,最主要的是调试软件编译好的指令代码序列。所以专门定义了传输代码序列的功能码0x26。下面是实现的用于传输指令代码序列功能的PDU帧格式。
表2 上位PC机请求帧
表3 轴控制器格式化正常应答帧
表4 轴控制器格式化错误应答帧
4.2 轴控制器与伺服驱动器的通信实现
将现场总线的数字化接口引入轴控制系统通信中,为可靠性通信提供硬件支持,并且要符合轴控制系统对接口简单灵活的要求。RS485总线是很好的选择方案。因此,轴控制器采用RS485串口与伺服驱动器通信,设定波特率为19200b/s,8位数据位,1位校验位,1位停止位。
如图5,轴控制器作为主设备,在上电后处于通信空闲状态。当程序运行到轴控制器向伺服驱动器发送请求帧指令的同时,启动定时器响应超时机制。随后,轴控制器进入等待应答状态,利用T1.5定时机制保证应答帧的完整性。若当定时器时间到,仍未收到对应的应答帧,轴控制器进行出错处理。这里出错处理设计为向伺服驱动器重发请求帧。通过T3.5定时机制确认正确接收完一帧。接下来处理接收到的应答帧,若检测到错误,则进行出错处理,重发请求帧。若检测应答帧正确,则按编写好的程序处理应答帧,从而实现相应的功能。
图5 轴控制作主设备状态转换图
轴控制器选用基于cortex-m3内核、ARMv7架构、72MHz主频的STM32F103处理器。利用处理器中的定时器来实现T3.5、T1.5以及超时重发Trepeat[9-11]。本方案中设计超时重发Trepeat的时间为10ms。
程序中的具体实现,首先设置通用定时器向上计数,输出比较触发模式。将处理器主频七十二分频后赋给定时器,即定时器的时钟为1MHz。然后计算T3.5、T1.5和Trepeat的定时器计数值,公式如下:
其中NT3.5表示定时T3.5时间需要的计数值,n表示一个字符的长度,B代表数据传输的波特率,t1代表定时器计一次数的时间。以轴控制器与伺服驱动器的RS485通信为例,字符是由1位起始位,8位数据位,1位校验位,1位停止位组成,所以字符长度n为11。波特率B为19200b/s,t1为即10-6s。
同理NT1.5表示定时T1.5时间需要的计数值,利用公式(2)计算得
设定重发定时时间为10ms,即0.01s,t1为10-6s,相除得NTrepeat=10000。
将上面得到的定时器计数值,应用到程序的编写中,实现T3.5、T1.5和超时重发的功能。
5 验证与分析
5.1 环境搭建
为验证上述关于轴控制系统通信的研究结论,设计并实现了按照此方案通信的单轴控制器,以沈阳高精数控有限公司的可重构伺服驱动器为被控对象,搭建了实际的实验测试平台,如图6。伺服电机本身对通信具有强干扰性,所以在此平台上可以测试设计的通信系统的抗干扰能力。
图6 实验测试平台
5.2 通信指标验证
通过一系列测试,验证设计的方案是否达到了前面所分析的轴控制系统通信需求。通过上位PC机调试软件统计从上位机发送请求帧开始至上位机接收应答帧结束这一个周期的时间。将计算的10000个周期时间值导入MATLAB,分析绘图,得到图7。可以清晰的看出,一个周期的通信时间最小为0.024ms,最大为0.744ms。绝大部分通信时间均在0.1ms之下,远远小于需求分析中上位机软件要求的10ms限制。由此表明上位PC机与单轴控制器之间的通信正常,且满足实际工程中的要求。
图7 通信周期统计图
在单轴控制器软件系统中加入通信测试子模块,设计三个变量分别记录实验通信的总次数、重发次数和通信出错次数,并将记录的变量值在LCD上实时显示[12-13]。如图8,此时LCD显示单轴控制器与伺服驱动器之间共进行了12016次通信,其中重发了2次,无通信错误。此数据表明在具有强电磁干扰的工业环境下,前面讨论分析的基于modbus协议的通信技术完全可以应用在轴控制系统中,确保通信可靠实时,必要时只要采用一两次重发即可使无故障通信时间加长,大大降低通信出错的概率。
图8 LCD显示通信测试子模块参数
6 结束语
本文通过对轴控制系统的通信需求进行分析研究,完善了Modbus协议应用在轴控制系统的数字化通信技术。设计并实现了相应的硬件设备和通信程序。实验验证了基于Modbus协议的轴控制通信技术使用简单、方便,读取的数据准确无误,实时可靠。采用USB接口和总线式通信的设计满足了高速、高精电机控制的要求。采用开发标准的通信协议解决了设备间兼容性问题。可以说,本文的设计方案适应于实际工业生产环境,可为相关项目开发带来便利,缩短开发周期,对设计实时可靠的开放式轴控制通信系统具有重要参考价值。
[1]张健.基于Modbus通信的四轴运动控制器设计与研究[D].西安:长安大学,2012.
[2]Xuechao Chen.Design and experiment of an open control system for a humanoid robot[J].Automation and Logistics(ICAL),2010 IEEE International Conference on.2010:367-372.
[3]王志成,于东,张跷辉,等.数控系统现场总线可靠通信机制的研究[J].机械工程学报,2011,47(3):152-158,165.[4]董海涛.嵌入式可重构CNC系统研究与实现[D].武汉:华中科技大学,2012.
[5]柴宇,栾勇,王志成.可重构伺服驱动调试工具的设计与实现[J].组合机床与自动化加工技术,2013(7):75-77.
[6]Modbus_IDA.Modbus application protocol specification V1. 1b3[EB/OL].[2012-04-26].http://www.modbus.org.
[7]Modbus_IDA.Modbus over serial line specification and implementation guide V1.02[EB/OL].[2006-12-20]. http://www.modbus.org.
[8]唐志雄,李向阳.基于RTX操作系统的USB主机设备驱动设计[J].计算机测量与控制,2012(3):810-812,829.
[9]STMicroelectronics.RM0008 Reference manual(STM32F10 xxx advanced ARM-based 32-bitMCUs)Rev 14[EB/OL].[2011-10-20].www.st.com.
[10]STMicroelectronics.AN2586 Application note(Getting started with STM32F10xxx hardware development)Rev 7[EB/OL].[2011-11-18].www.st.com.
[11]Xuyue T.Design of air compressor monitoring system based on modbus protocol[C]//Electrical and Control Engineering(ICECE),2010 International Conference on.IEEE,2010:710-713.
[12]易映萍,段丙勇,黄松,等.基于STM32的可视化控制系统的设计[J].信息技术,2014(2):1-4,9.
[13]李芳芳.基于MODBUS协议的人机接口通信研究[D].西安:长安大学,2009.
Research and Implementation on Communication Technology of Axis Control System
ZHAO Hong-bo1,2,WANG Zhi-cheng2,3,HE Peng-fei1,2,SUN Shu-jie1,2
(1.University of Chinese Academy of Sciences,Beijing 100049,China;2.National Engineering Research Center For High-End CNC,Shenyang Institute of Computing Technology of Chinese Academy of Sciences,Shenyang 110168,China)
After analyzing the requirements of real-time and reliable communication,research on Modbusbased communication technology in axis control system is conducted to solve the problems of communication between a programmable axis controller and its peripherals which emerge with the intelligentized development of industry.Real-time and reliable communication methods which axis control system uses to communicate with the controlled device and PC are designed.The methods are applied in a real axis control system.Its validation is verified experimentally.Proposed technology is worth referencing in the design of axis control communication system.
axis controller;communication protocol;master-slave relationship;timing mechanism;frame format
TH166;TG659
A
1001-2265(2015)04-0055-04 DOI:10.13462/j.cnki.mmtamt.2015.04.014
2014-08-05;
2014-08-28
"高档数控机床与基础制造装备"国家科技重大专项、高档数控系统在航空领域的示范应用(2013ZX04012-021)
赵鸿博(1989—),男,沈阳人,中国科学院大学、中科院沈阳计算技术研究所硕士研究生,研究方向为嵌入式与数控技术,(E-mail)zhaohb@sict.ac.cn。