hero2103

基于Windows CE的激光切割机开放式数控系统的研究 二

0
阅读(2457)
2.开放式激光切割机数控系统的总体设计和实现
    
    2.1数控激光切割机的组成


    图2 激光加工系统示意图

数 控激光切割机由激光切割机主机、CO2激光器、水冷机、外光路系统、数控系统及自动编程软件等组成[ 4 ] (见图2) 。其中激光器及外光路系统是数控激光切割机的关键配套部件,其性能指标将直接影响激光切割板材的切割质量,而激光切割机主机则是实现激光进行优质切割的载 体。所以,对数控激光切割机主机的开发设计显得尤为重要。
    
    2.2基于工业PC机的开放式数控系统的分析与构造
    
    随 着近年来计算机技术的发展,工业PC机和模块化的集成电路逐渐进入数控领域, PC机以其特有的开放性成为开放式数控系统的基础,它丰富了数控系统的硬、软件资源,有利于实现总线式、模块化、开放化的数控系统,该系统利用流行的操作 系统平台作支撑,采用标准的应用开发环境,具有较好的互操作性、移植性、互换性和伸缩性,展现了良好的开放性能,同时又具有方便、灵活的特点。同时充分利 用Windows CE强大的图形界面功能、多线程机制和多媒体定时器来解决数控软件的实时多任务处理能力,其良好的软硬件兼容能力能够实现建立在标准总线基础上的模块化开 放式数控系统。开放式数控系统可采用分层的体系结构,如图3所示。各层之间实现隔离,层与层之间通过标准的接口进行通讯,实现了开放式控制系统应有的分层 体系结构,使数控软件易于组装、扩充和维护。第一层为管理层。它是系统的界面部分,可完成系统的管理、显示、诊断和监控。通过响应状态选择控件产生的不同 消息来进行不同界面之间的切换,其调用操作由操作系统管理完成。

第二层为功能单元层。它是系统的控制部分,包括代码生成、编译解释、插补运算和运动控制, I/O 处理和数据采集等,是相对独立的功能单元。它们之间通过在软件中建立的多个数据缓冲器来进行大量的数据交换。 译码可将数控指令解释成为系统内部的数据格式,插补运算完成数据插补产生加工数据、速度处理和辅助功能设备控制。运动控制程序完成位置伺服的控制。I/O 信号处理模块接收各种按键的输入,转化为程序变量或系统消息以供操作。数据采集模块负责采集各运动轴的信息和A /D信号,用于实现数据实时显示、实时控制等功能。
    
    第三层为支撑层,包括运动控制卡、运动控制器的设备驱动程序、I/O卡和工业PC机。
    
    2.3 开放式数控系统的硬件结构
    
    图4示出了采用PMAC运动控制器构造的激光切割机开放式数控系统结构。


    图4激光切割机控制系统图

     3.数控系统软件的设计与实现
    
    3.1 基于Windows CE的数控系统软件的总体结构
    
    在已有的同类数控系统中,大多数系统是基于DOS环境的,其综合性能相对于Windows环境就弱一些,尤其是人机交互界面、多任务以及开放性方面比较差。主从计算机间的实时信息交换通 讯是实现上下位机间协调工作的关键。本数控系统在实时性要求方面与机器人控制相似,如果使用Windows中专用的定时器控件Timer,虽然使用很方 便,可以实现一定的定时功能,但最小计时精度仅为55ms,且定时器消息在多任务操作系统中的优先级很低,不能得到及时响应,无法满足实时控制环境下的应 用。所以考虑使用精度更高的多媒体定时器,它可以实现精度为1ms的高精度定时,可以满足本系统的实时性要求。多媒体定时器不依赖于消息机制,而是由函数 TimerSetEvent ( )产生一个独立的线程,在一定的中断次数到达后,直接调用预先设置好的回调函数进行处理,而不必等到应用程序的消息队列为空。因而设置该回调函数来完成周 期扫描I/O卡的输入端口,以及向系统定时发送消息,使其及时更新界面和界面中的数据。为提高系统的可靠性,多媒体定时器在整个控制程序初始化时开启,并 在系统退出时删除定时器以释放系统资源。每一个Windows应用程序都是一个进程,并由线程来负责执行包含在进程地址空间中的代码。实际上,每个进程可 以拥有多个线程,它们在进程的地址空间中“同时地”执行代码。本数控系统软件中,采用了前后台型的多线程结构形式。前台程序由系统主线程和定时器控制,主 要完成界面管理、功能控制、系统管理等,并负责响应按键与界面输入的数据,即实现管理层的功能。后台程序放在辅助线程中,负责进行数控代码的编译处理,向 PMAC发送命令以及实时数据采集,实现了控制层的功能。
    
    3.2 G代码转换模块的实现
    
    为 了使PMAC控制卡兼容G代码指令,专门开发了G代码编译转换模块,大大提高该控制系统的开放性和兼容性,为熟悉G代码编程的用户提供了方便。本编译模块 使用了多线程的方法。多线程的应用使程序的并行处理得以实现,多线程使得不同的代码可以“同时”执行。本模块采用了工作者线程,其适用于处理后台任务,而 不影响用户对应用程序的使用。工作者线程仅仅由一个函数体实现,其实现简单,便于编程者控制,与事件同步方法相配合能对中止消息做出较快反应。事件同步是 通过将事件自身设置为有信号或无信号来通知其它线程的某一操作已完成或尚未完成,其设置可由编程人员手工完成,适合于工控程序应用。
    
    与 之相对应,本模块具有一个主线程和两个子线程,其中一个子线程为通信线程,另一个为计算线程。主线程是Windows下每个应用程序都具备的,负责线程间 的同步、向计算线程和通信线程传递参数、管理人机界面、接收用户输入等功能。通信线程通过通信端口(本程序涉及的是PCI接口)负责与下端的设备进行通信 并交换数据。计算线程负责核心算法的实现,根据系统的不同完成不同的数据处理任务。程序结构如图5。

 

=====
    图5多线程结构示意图

     4.结论
    
    Windows CE以其良好的实时性和对多线程的支持,为实现总线式、模块化、开放式的数控系统提供了便利。随着Windows CE. NET系统的不断完善, PC机速度的不断升级,其可以应用的软硬件资源不断发展,开放式数控系统必将受到国内外的普遍关注。(end)