数控系统加工过程远程监控工具的设计与实现*

2014-06-29 10:04田德伟陶耀东焦广胜
组合机床与自动化加工技术 2014年8期
关键词:数控系统命令客户端

田德伟,陶耀东,焦广胜

(1.中国科学院 沈阳计算技术研究所,沈阳 110004;2.中国科学院 研究生院,北京 100039 )

0 引言

随着计算机技术、通信技术、控制技术的迅速发展,出现了IPC 工控机以及大量的智能仪表,其应用使得工业生产过程的自动化水平得到了很大的提高。过程分析技术(Process Analytical Technology,PAT)的出现,促使装备制造业引入该技术来提高产品的精度以及生产过程自动化的水平。远程监控是指利用计算机通过网络系统实现对远程工业生产过程控制系统的监视和控制。工业生产过程的监控信息接入Internet,在一定条件下就可以通过Internet 监控生产系统和现场设备的运行状态和各种参数,控制者就不必亲临现场,这能够节省大量的人力物力[1]。

本文采用硬件抽象层、共享内存以及I/O 多路复用技术实现对数控系统加工过程的远程监控。数控系统加工过程中轴位置、轴速等信息通过共享内存技术与服务器进行交互,以C/S 模式构成远程监控系统,client 可以通过运行客户端应用程序监控数控系统加工过程的状态信息。

1 相关技术

1.1 硬件抽象层(Hardware Abstract Layer,HAL)

数控系统作为一个复杂的嵌入式系统,具有专用性强、外围设备多样的特性,这决定了其应用的硬件环境差异性较大。系统软件模块与硬件之间的接口是系统设计过程中的必需环节,也是影响数控系统应用前景的关键问题之一。HAL 的引入可有效的解决该问题,HAL 是将硬件平台与应用软件隔离开来的的软件层次,通过硬件抽象层技术实现硬件相关和硬件无关两部分程序代码的隔离,为应用程序提供一个没有硬件特性的接口。硬件抽象层的引入不仅是系统体系结构设计方法的改进,更直接关系到整个系统的开发模式以及嵌入式操作系统的可移植性。硬件抽象层的引入大大推动了嵌入式系统开发的规范化进程[2]。

EMC2 中设计硬件抽象层的目的是使EMC2 可以快速的针对不同的硬件进行配置而不需要改变上层程序,实现在I/O 接口和其他底层模块之间传输实时数据。HAL 的设计采用了传统的电路设计的模式,I/O设备以软元件的形式存在于HAL 中,HAL 软元件和传统元件类似,包括引脚(pin)、参数(parameter)等信息。可以通过HAL 中软元件的加载和相连形成复杂多样的控制系统,如图1 所示,利用HAL 组件构建并口输出PWM 信号驱动X-Y 轴的直流伺服电机的连接图[2]。

1.2 I/O 多路复用

在Linux 服务器编程中,系统资源的利用率是一个令人关注的问题。本系统通过采用单进程I/O 多路复用的方式解决了传统的创建子进程方式带来的系统资源消耗,并极大地提高了CPU 的利用率,同时也可以方便的支持多个客户端,理论上,在一个线程中可支持63 个客户端;可以采用多线程支持更大数量的clients。

I/O 多路复用,即一个进程需要在多个I/O 端口上等待读取或写入数据,可选择将自己挂起,如果一个或多个I/O 满足数据操作时,进程将被通知,继续运行,并作相应的判断处理和I/O 操作。select()方法可以对多路I/O 进行阻塞式查询。它提供同时对多个I/O 描述符进行阻塞式查询方法,可以方便地实现I/O多路复用[3]。

图1 井口输出PWM 信号驱动X-Y 轴的直流伺服电机HAL 连接图

2 系统设计

远程监控工具利用模块化的设计思想,从纵向来看总体框架自底向上包含linux 操作系统、RTAI 模块、硬件抽象层模块、数据采集程序和客户端程序。RTAI模块和硬件抽象层模块运行在内核空间,数据采集程序和客户端程序运行在用户空间,它们之间的数据通信利用rtai 提供的共享内存和I/O 多路复用技术来实现的,总体结构如2 图所示。

图2 远程监控工具总体结结构图

2.1 数据结构设计

数据采集方法的设计以RTAI 的共享内存为数据传输介质。共享内存在内核空间和用户空间之间进行数据传输,具有较高的灵活性,所以在数控系统中应用广泛,因此提高共享内存的管理效率对各种使用共享内存的应用具有很重要的意义。采用两级数据管理结构,能够有效的分配和释放共享内存,使用C 语言实现的该共享内存管理层具有很好的可移植性,能够减少共享内存分配和释放时间,同时互斥量的使用也能保证共享内存的并发访问。数控系统加工过程远程监控工具的设计是基于一个共享内存的管理工具来实现的。使用共享内存池和共享内存块这两种结构来完成对共享内存管理工具的设计[4],共享内存管理工具的结构如图3 所示。

图3 共享内存管理工具结构图

2.2 远程监控工具设计

主要是描述利用I/O 多路复用技术实现多个客户端的登录服务器的流程,登陆处理流程图如图4 所示。

图4 客户端登陆流程图

客户端登陆服务器端,首先需要打开远程调试模式,并利用I/O 多路复用技术创建TCP 并发服务器;客户端登陆成功后,可以通过终端输入halcmd 命令,实现远程查看数控系统运行状态。当输入exit 或quit命令时,客户端终止这一次的连接。

利用I/O 多路复用技术设计的服务器端架构大致如下:

与多进程并发方式相比,采用I/O 复用技术的最大优势是服务器只需要一个进程来处理所有的客户机请求,所有程序没有创建和管理进程的开销,减少了系统运行中的系统开销,提高了服务质量;同时服务器运行在单一进程上下文中,因此每个逻辑流都能访问该进程的全部地址空间使得在流之间共享变量很容易[1]。

3 系统实现

3.1 关键数据结构

在内核空间和用户空间之间的通信主要是嵌入硬件抽象层来实现的,硬件抽象层的设计又采用了共享内存技术。共享内存结构体hal_data_t 的主要组成为:

该结构作为全局变量,halcmd 的命令是通过获取互斥信号量来对该内存区域进行访问的。以loadrt siggen 为例,流程图5 如所示。

用户输入loadrt siggen 命令时,该命令的功能是实现加载软元件siggen,通过halcmd_commands 查找loadrt 对应的操作函数do_loadrt_cmd(),如果siggen模块尚未插入,则利用insmod siggen. ko 将该模块插入。并将siggen 加入到hal_data - >pin_list_ptr 的链表中。命令执行完毕,返回halcmd 命令行。

图5 处理loadrt siggen 命令流程图

3.2 远程监控工具的实现

远程监控工具是halcmd 应用程序的一部分,它的主要任务是完成对输入命令的读入,解析命令,执行命令,返回命令执行结果。

其中halcmd_parse_cmd(tokens)主要是根据tokens,按照命令索引跳转到相应的命令函数中执行。可以实现加载模块,模块互联,模块信息读取等命令功能;print_info()根据tokens 执行的结果将命令反馈信息发送给相应的客户端程序,从而实现对数控系统的加工状态的远程监测过程。

4 实验

在pc1 上运行数控系统仿真软件EMC2,打开终端,使用halcmd -kfr 启用加工过程远程监测模式。分别在pc2 和pc3 上运行. /monitor 192.168.2.14,连接到pc1 服务器端。查看pc2 和pc3 的输出情况,同时也可以执行halcmd 命令。实验结果如图6 所示。

图6

上图是在pc2 和pc3 上显示的对引脚变化的图形化显示的结果,显示了三种不同的引脚曲线:正弦,余弦和方形曲线。用户可以方便使用该工具远程查看各个引脚的变化情况。

5 总结与展望

本文使用硬件抽象层技术和I/O 多路复用技术,提出了一个数控系统加工过程远程监测工具的设计方案,并利用EMC2 开源数控软件对数控数控加工过程进行仿真,运用该远程监测工具进行对其进行远程监测,能够获得数控加工过程中的轴的速度、轴的当前位置、轴的位置反馈等信息,表明了该设计方案在对加工过程远程监控方面是可行的。

[1]于海晨,仲崇权. 基于Ineternet 的控制系统远程监控方案与实例[J]. 计算机自动测量与控制,2001,9(5):14-16.

[2]许军,李华. EMC2 中的HAL 实现机理和应用研究[J].自动化与控制,2009(5):62 -64.

[3]胡书,卫陆培伦. 一种基于Linux 的嵌入式视频监控系统实现[J]. 安防科技,2009(1):7 -9.

[4]王煜,林浒,陶耀东,等. 一种高效RTAI 共享内存管理层的研究与实现[J]. 组合机床与自动化加工技术,2013(1):27 -30.

[5]侯凤媛. 数控技术的研究现状与发展方向[J]. 机电技术,2012(6):167 -169.

[6]吴文江,王兴举,秦承刚,等.基于RTAI 的数控系统跟踪调试模型的设计与实现[J]. 小型微型计算机,2011,32(5):850 -853.

[7]陶耀东,林浒. 高性能开放式数控系统框架设计[J].小型微型计算机系统,2009,30(9):1911 -1916.

[8]Torrisi NM,de Oliveira J F G. Remote monitoring for high -speed CNC processes over public IP networks using CyberOPC[J]. The International Journal of Advanced Manufacturing Technology,2012,60:191-200.

猜你喜欢
数控系统命令客户端
只听主人的命令
安装和启动Docker
如何看待传统媒体新闻客户端的“断舍离”?
县级台在突发事件报道中如何应用手机客户端
孵化垂直频道:新闻客户端新策略
大枢纽 云平台 客户端——中央人民广播电台的探索之路
移防命令下达后
基于FANUC 32i A数控系统的外部测量设计
西门子840D sl数控系统在SC125大型车铣镗床技术改造中的应用
基于FANUC Oi mate TD数控系统的手动功能开发