数控通信的研究与开发

时间:2022-08-19 03:10:28

数控通信的研究与开发

1上下位机通信的层次结构

由于Windows操作系统具有开发资源丰富、操作方便等优点;Linux和Dos操作系统都具有强实时性,通常数控系统的上位机(HMI端)采用Window平台,下位机(NCU端)采用Linux和Dos平台。因此,通信层次的划分要合理,为上层应用软件提供通用的通信服务接口,屏蔽底层平台的差异、通信引擎的差异和操作系统的差异。本文中的上下位机间通信采用客户端/服务器的模式[8]:其中上位机为客户端,负责向服务器端发起通信请求;下位机为服务器端,提供数据的上传和下载服务。服务器端分为4个层次:通信引擎层、通信抽象层、通信服务层、数控控制单元;客户端分为通信引擎层、通信抽象层、通信服务层、通信接口层、NCAPI层、人机交互界面。通信服务结构层次如图1所示。通信引擎层实现网络通信、串口通信、总线通信三种通信方式,同时屏蔽操作系统的差异。不同的操作系统中,网络通信、串口通信、总线通信程序的开发主要是相应功能的函数接口不同,因此通过条件编译的方式,每一种通信方式的实现程序中包含多个操作系统中该通信方式实现的代码程序。这样就实现了通信引擎的跨平台。通信抽象层主要管理网络通信、串口通信、总线通信三种通信引擎。抽象出一系列统一的接口供上层使用,从而屏蔽通信引擎的差异,该层主要维护一个已注册的通信引擎数组,保存每个通信引擎数据结构的指针。通信抽象层利用一个指针保存当前使用的通信引擎。每一个通信引擎的数据结构定义了该通信引擎的一些信息,比如说连接是否建立的判断,以及发送数据接口、接收数据接口、初始化通信接口、退出通信接口的信息提示等。通信抽象层的实现过程如图2所示。图2通信抽象层的实现过程示意图服务器端的通信服务层提供不同类型数据的通信服务,客户端的通信接口层提供使用服务器端相应通信服务的接口。这两层都是在通信抽象层之上的,因此它们不用关心操作系统和通信引擎的差异。客户端NCAPI层通过调用通信接口层中相应的接口获取数控系统中对应的数据供人机交互界面使用。

2通信服务层各功能实现

通信服务层是一种面向服务的应用接口,通过调用通信抽象层提供的接口实现通信服务,它不必关心操作系统的差异、通信引擎的差异。通信服务的内容主要包括变量服务、命令服务、文件服务、报警服务等内容。

2.1变量服务的设计及实现

数控系统中有些数据是需要在上下位机之间经常动态更新的,例如加工位置值、进给速度值、加工误差值等,这一类数据对传输的可靠性没有很高的要求,但是需要周期的上传和下载。变量服务主要功能就是在服务器端(或NCU端)和客户端(或HMI端)传递需要经常动态更新的数据。变量服务的原理如图3所示,NCU端数据服务器监控变量存储区的数据变化的情况,有变化就通过通信接口发送到HMI端;HMI端数据服务器监控服务端口,如果有数据就解析报文,并调用数据访问接口向本地的变量镜像区写数据。因此在一个时间片内,总可以保证HMI端保留有NCU端数据的一个镜像,这样就能保证HMI端变量镜像区和NCU端变量存储区数据的一致性。HMI访问数据只面对本地数据,而不用考虑数据从何而来。

2.2命令服务的设计及实现

数控系统中有些数据由HMI端发送给NCU端后,NCU端是需要作出相应动作响应的,例如数控系统中的手动功能。这类数据就是命令,它需要NCU给HMI返回响应,从而使HMI知道NCU端对命令的处理情况。命令服务就是上下位机之间实现数控系统的命令控制,由HMI端发起,NCU端响应。HMI端组装命令数据报文,通过网络发送到NCU端,NUC端接收到命令包后,进行相应的数据报文解析,根据数据报文解析的结果进行相应的命令操作,最后再向HMI端发送命令处理成功与否的响应消息数据报文。HMI端在设定的时间内进行超时检查,确认是否收到成功的响应报文,命令服务的通信模式如图4所示。

2.3报警服务的设计及实现

数控系统中的报警信息对于数控机床的维护和保证其加工的安全性至关重要,因此HMI端必须显示数控系统的报警信息。上下位机的报警服务是将NCU端的提示、报警等信息传递给HMI端。在NCU端和HMI端,采用统一的消息管理器。在NCU端的报警服务器监控消息队列,如果有新的消息,则通过报警服务端口将新报警信息发送到HMI端。HMI端监听报警服务端口,如果有新的报警,则调用消息管理接口,并添加到HMI消息队列中。报警服务的处理过程如图5所示。

2.4文件服务的设计及实现

上下位机之间经常需要传输加工程序、参数文件和PLC程序等,因此文件服务必不可少。文件服务主要提供目录的上传、文件的上传和下载。文件服务总是由HMI端提出请求,经NCU响应后进入具体的文件服务。在文件下载服务状态,由HMI发送文件头,分块发送文件体和文件结束标识,NCU端接收文件头、文件体,并将其储存在文件中。在文件上传服务状态,由HMI发送文件头,分块接收文件体和文件结束标识,NCU端接收到文件头后,发送相应的文件体,直至文件结束发送文件结束标识。在目录服务状态,将目录转换成文件进行传输。在传输过程中,如果超时或有与状态不匹配的操作码出现,则进入复位处理,文件服务重新进入空闲状态。文件服务器的状态机如图6所示。

3实验验证

将通信模块的客户端和服务器端的程序分别集成到数控系统的上位机和下位机中进行网络通信、串口通信和总线通信的测试。上下位机采用的都是基于ARMS3C2440的微处理器+FPGA的嵌入式数控系统,上位机主要负责人机交互界面,下位机主要负责运动控制。实验结果表明,上下位机之间能够高效、快速和稳定地完成文件、变量、命令和报警等信息的传输。上下位机之间以太网通信的测试现场如图7所示,串口通信的测试现场如图8所示,总线通信的测试现场如图9所示。

4结语

本文给出的数控系统上下位机之间的通信服务设计不仅可以实现跨平台,还可以根据具体的应用环境,选择不同的通信介质。实验验证表明,所研制的通用上下位机通信模型,大大缩短了基于上下位机模式数控系统的开发周期,设计方案满足实际要求,且简便可行。

本文作者:吴栋栋周向东工作单位:华中科技大学国家数控系统工程技术研究中心