吴栋栋 周向东
华中科技大学国家数控系统工程技术研究中心,武汉,430074
现代的数控系统广泛采用主从模式[1],即采用上位机加下位机的结构[2-4],因而具有分布式系统的特征。这种体统结构支持用户的二次研发和自主升级,既具有PC端的开放性,又具有控制端的开放性,可以说它具有前后两端的开放性。然而要实现基于上下位机结构的CNC系统,就必须要实现上下位机间的通信。目前上下位机之间主要的通信方式有串口通信方式、以太网通信方式以及现场总线通信方式。三种通信方式各有优缺点:串口通信最大的优点是实现简单、成本低,但却存在可靠性差、效率低等缺点[5];以太网通信具有的标准性和开放性是其最大的优点,但也存在实时性不强、抗干扰能力差等缺点[5];现场总线通信具有操作方便、开放性好的特点,同时也存在结构复杂、结构层次过多等问题[6]。因此,针对具体的情况,选择相应的通信方式才能实现上下位机之间有效的通信。同时,目前上下位机所选用的操作系统往往不同,于是如何实现上下位机之间的跨平台通信也是一个亟待解决的问题[7]。本文研究的上下位机间的通信通过合理的划分通信层次结构,既能够实现跨平台通信,又能够屏蔽通信介质的差异,同时还能根据数据的类型提供不同的通信服务。
由于Windows操作系统具有开发资源丰富、操作方便等优点;Linux和Dos操作系统都具有强实时性,通常数控系统的上位机(HMI端)采用Window平台,下位机(NCU端)采用Linux和Dos平台。因此,通信层次的划分要合理,为上层应用软件提供通用的通信服务接口,屏蔽底层平台的差异、通信引擎的差异和操作系统的差异。
本文中的上下位机间通信采用客户端/服务器的模式[8]:其中上位机为客户端,负责向服务器端发起通信请求;下位机为服务器端,提供数据的上传和下载服务。服务器端分为4个层次:通信引擎层、通信抽象层、通信服务层、数控控制单元;客户端分为通信引擎层、通信抽象层、通信服务层、通信接口层、NCAPI层、人机交互界面。通信服务结构层次如图1所示。
图1 通信服务层次示意图
通信引擎层实现网络通信、串口通信、总线通信三种通信方式,同时屏蔽操作系统的差异。不同的操作系统中,网络通信、串口通信、总线通信程序的开发主要是相应功能的函数接口不同,因此通过条件编译的方式,每一种通信方式的实现程序中包含多个操作系统中该通信方式实现的代码程序。这样就实现了通信引擎的跨平台。
通信抽象层主要管理网络通信、串口通信、总线通信三种通信引擎。抽象出一系列统一的接口供上层使用,从而屏蔽通信引擎的差异,该层主要维护一个已注册的通信引擎数组,保存每个通信引擎数据结构的指针。通信抽象层利用一个指针保存当前使用的通信引擎。每一个通信引擎的数据结构定义了该通信引擎的一些信息,比如说连接是否建立的判断,以及发送数据接口、接收数据接口、初始化通信接口、退出通信接口的信息提示等。通信抽象层的实现过程如图2所示。
图2 通信抽象层的实现过程示意图
服务器端的通信服务层提供不同类型数据的通信服务,客户端的通信接口层提供使用服务器端相应通信服务的接口。这两层都是在通信抽象层之上的,因此它们不用关心操作系统和通信引擎的差异。
客户端NCAPI层通过调用通信接口层中相应的接口获取数控系统中对应的数据供人机交互界面使用。
通信服务层是一种面向服务的应用接口,通过调用通信抽象层提供的接口实现通信服务,它不必关心操作系统的差异、通信引擎的差异。通信服务的内容主要包括变量服务、命令服务、文件服务、报警服务等内容。
数控系统中有些数据是需要在上下位机之间经常动态更新的,例如加工位置值、进给速度值、加工误差值等,这一类数据对传输的可靠性没有很高的要求,但是需要周期的上传和下载。
变量服务主要功能就是在服务器端(或NCU端)和客户端(或HMI端)传递需要经常动态更新的数据。变量服务的原理如图3所示,NCU端数据服务器监控变量存储区的数据变化的情况,有变化就通过通信接口发送到HMI端;HMI端数据服务器监控服务端口,如果有数据就解析报文,并调用数据访问接口向本地的变量镜像区写数据。因此在一个时间片内,总可以保证HMI端保留有NCU端数据的一个镜像,这样就能保证HMI端变量镜像区和NCU端变量存储区数据的一致性。HMI访问数据只面对本地数据,而不用考虑数据从何而来。
图3 变量服务原理图
数控系统中有些数据由HMI端发送给NCU端后,NCU端是需要作出相应动作响应的,例如数控系统中的手动功能。这类数据就是命令,它需要NCU给HMI返回响应,从而使HMI知道NCU端对命令的处理情况。
命令服务就是上下位机之间实现数控系统的命令控制,由HMI端发起,NCU端响应。HMI端组装命令数据报文,通过网络发送到NCU端,NUC端接收到命令包后,进行相应的数据报文解析,根据数据报文解析的结果进行相应的命令操作,最后再向HMI端发送命令处理成功与否的响应消息数据报文。HMI端在设定的时间内进行超时检查,确认是否收到成功的响应报文,命令服务的通信模式如图4所示。
图4 命令服务通信模式
数控系统中的报警信息对于数控机床的维护和保证其加工的安全性至关重要,因此HMI端必须显示数控系统的报警信息。
上下位机的报警服务是将NCU端的提示、报警等信息传递给HMI端。在NCU端和HMI端,采用统一的消息管理器。在NCU端的报警服务器监控消息队列,如果有新的消息,则通过报警服务端口将新报警信息发送到HMI端。HMI端监听报警服务端口,如果有新的报警,则调用消息管理接口,并添加到HMI消息队列中。报警服务的处理过程如图5所示。
图5 报警服务处理过程
上下位机之间经常需要传输加工程序、参数文件和PLC程序等,因此文件服务必不可少。文件服务主要提供目录的上传、文件的上传和下载。
文件服务总是由HMI端提出请求,经NCU响应后进入具体的文件服务。在文件下载服务状态,由HMI发送文件头,分块发送文件体和文件结束标识,NCU端接收文件头、文件体,并将其储存在文件中。在文件上传服务状态,由HMI发送文件头,分块接收文件体和文件结束标识,NCU端接收到文件头后,发送相应的文件体,直至文件结束发送文件结束标识。在目录服务状态,将目录转换成文件进行传输。在传输过程中,如果超时或有与状态不匹配的操作码出现,则进入复位处理,文件服务重新进入空闲状态。文件服务器的状态机如图6所示。
图6 文件服务器的状态机
将通信模块的客户端和服务器端的程序分别集成到数控系统的上位机和下位机中进行网络通信、串口通信和总线通信的测试。上下位机采用的都是基于ARM S3C2440的微处理器+FPGA的嵌入式数控系统,上位机主要负责人机交互界面,下位机主要负责运动控制。实验结果表明,上下位机之间能够高效、快速和稳定地完成文件、变量、命令和报警等信息的传输。上下位机之间以太网通信的测试现场如图7所示,串口通信的测试现场如图8所示,总线通信的测试现场如图9所示。
图7 上下位机以太网通信方式测试现场
图8 上下位机串口通信方式测试现场
图9 上下位机总线通信方式测试现场
本文给出的数控系统上下位机之间的通信服务设计不仅可以实现跨平台,还可以根据具体的应用环境,选择不同的通信介质。实验验证表明,所研制的通用上下位机通信模型,大大缩短了基于上下位机模式数控系统的开发周期,设计方案满足实际要求,且简便可行。
[1]杨旭东,孙凌逸,王永军,等.基于上下位机的拉弯机数控系统研究[J].制造业自动化,2005,27(4):19-26.Yang Xudong,Sun Linyi,Wang Yongjun,et al.Research of CNC System of Stretch-wrap Former Based on Main-subordinate Unit[J].Manufacturing Automation,2005,27(4):19-26.
[2]张志燕,李斌,朱国力,等.基于PC+NC的开放式数控系统平台的研究与应用[J].机械与电子,2005(5):6-8.Zhang Zhiyan,Li Bin,Zhu Guoli,et al.Research and Applications of Open CNC System Platform Based on PC+NC[J].Machinery & Electronics,2005(5):6-8.
[3]李刚,杨继东.基于PC的开放式数控系统的开发[J].机床与液压,2006(4):82-83.Li Gang,Yang Jidong.Development of the PC-based Open Architecture Numerical Control System[J].Hydromechatronics Engineering,2006(4):82-83.
[4]朱双胜.基于GT运动控制器的开放式数控实验系统研究[D].杭州:浙江工业大学,2008.
[5]杨萍,刘飞,张旭梅,等.CAN总线型DNC系统通信技术研究[J].制造技术与机床,1998(12):7-9.Yang Ping,Liu Fei,Zhang Xumei,et al.Communication Technique for DNC System Based on CAN Fieldbus[J].Manufacturing Technology & Machine Tool,1998(12):7-9.
[6]梁志锋,解翔,唐小琦.基于工业以太网的网络数控系统设计及实现[J].现代制造工程,2006(1):38-40.Liang Zhifeng,Xie Xiang,Tang Xiaoqi.Design of the Networked Numerical Control System Based on Industrial Ethernet[J].Modern Manufacturing Engineering,2006(1):38-40.
[7]邓太林,朱文,阎春平,等.一种开放式数控系统平台的研究[J].现代制造工程,2006(6):33-36.Deng Tailin,Zhu Wen,Yan Chunping,et al.Research on a Kind of Open Numeric Control System Platform[J].Modern Manufacturing Engineering,2006(6):33-36.
[8]丁键生,蒋泽军,王丽芳.一种基于C/S结构的跨平台通信处理机制[J].微电子学与计算机,2005,22(4):23-29.Ding Jiansheng,Jiang Zejun,Wang Lifang.A Cross-Platform Communication Processing Mechanism Based on C/S Structure[J].Microelectronics &Computer,2005,22(4):23-29.