在YF-D160160数控雕铣机的数控系统软件中,采用了前后台型的多线程结构形式。前台程序是一个实时中断服务程序承担了几乎全部的实时功能,实现与机床动作直接相关的功能。前台程序由系统主线程和定时器控制,主要完成界面管理、功能控制、系统管理等,并负责响应按键与界面输入的数据,即实现管理层的功能。后台程序是一个循环执行程序,承担一些实时性能不高的功能如输入,译码,数据处理等插补准备工作。后台程序放在辅助线程中,负责进行数控代码的编译处理,向PMAC发送命令以及实时数据采集,实现了控制层的功能。在后台程序循环运行的过程中,前台的实时中断程序不断地定时插入,二者密切配合,共同完成零件的加工任务。
Windows CE是微软公司开发的一个开放、可升级的32位嵌入式操作系统。Windows CE具有模块化、结构化和基于Win32应用程序接口以及与处理器无关等特点。相对于DOS,Windows CE .NET是运行于保护模式的多线程32位操作系统,特别适合数控系统的多任务并行机制,而它的内存保护功能对于数控系统的稳定性具有重要意义。相对Windows桌面操作系统,WindowsCE.NET是嵌入式实时操作系统,其独特体系结构和运行机制使其能够快速响应外部中断触发,并调度相关应用程序进行处理,因此它可以满足数控系统的实时性要求。
在已有的同类数控系统中,大多数系统是基于DOS环境的,其综合性能相对于Windows环境就弱一些,尤其是人机交互界面、多任务以及开放性方面比较差。主从计算机间的实时信息交换通讯是实现上下位机间协调工作的关键。YF-D160160数控雕铣机的数控系统在实时性要求方面与机器人控制相似,如果使用Windows中专用的定时器控件Timer,虽然使用很方便,可以实现一定的定时功能,但最小计时精度仅为55ms,且定时器消息在多任务操作系统中的优先级很低,不能得到及时响应,无法满足实时控制环境下的应用。所以考虑使用精度更高的多媒体定时器,它可以实现精度为1ms的高精度定时,可以满足YF-D160160数控雕铣机的数控系统的实时性要求。多媒体定时器不依赖于消息机制,而是由函数TimerSetEvent()产生一个独立的线程,在一定的中断次数到达后,直接调用预先设置好的回调函数进行处理,而不必等到应用程序的消息队列为空。因而设置该回调函数来完成周期扫描I/O卡的输入端口,以及向系统定时发送消息,使其及时更新界面和界面中的数据。为提高系统的可靠性,多媒体定时器在整个控制程序初始化时开启,并在系统退出时删除定时器以释放系统资源。每一个Windows应用程序都是一个进程,并由线程来负责执行包含在进程地址空间中的代码。实际上,每个进程可以拥有多个线程,它们在进程的地址空间中“同时地”执行代码。