Windows CE是一个抢占式多任务的操作系统,调度程序使用基于优先级的时间片算法对线程进行调度。本系统实现掉点及时保存功能主要采用两个线程:驱动的外部中断0线程和应用程序的掉电中断监控线程。应用程序的掉电中断监控线程是为了更好利用应用程序资源(如一些运动控制接口函数),并设置为高优先级,以便掉电中断时操作系统会立刻切换至监控掉电中断线程执行。两个线程是通过事件IntterruptEvent同步。
如图4所示,系统上电后,外部中断0线程和掉电中断监控线程都是挂起状态。当掉电监控电路检测到电压下降(即突然掉电),则通过外部中断引脚EIN0产生中断,唤醒外部中断0的处理线程EINT0_In-trThread,设置同步事件为通知状态。掉电中断监控线程等到同步事件后,机床马上急停,获取当前机床位置、进给速度、加工行数及主轴参数,并及时将参数写入掉电保存文件DropInt.txt中。
掉电中断监控线程部分源码如下:
2.3 掉电信息恢复及文件处理
机床恢复电源后,系统自动检测NandFlash里面是否存在掉电保存文件DropInt.txt。如果存在的话,进入加工界面时,系统打开掉电保存文件,读取各种参数重新赋值,并会提醒“存在掉电保存文件,是否恢复断点”。若需要从掉电瞬间的断点位置以相同的参数继续加工,则点击恢复断点,加工头将匀速移动到断点位置。
由于中断响应及线程切换存在时延,机床高速加工急停存在惯性。我们需要对掉电保存文件信息进行处理:机床坐标为工件原点的绝对坐标,作为重新定位点;根据不同的机械特性,经过实际测试回退10—20行加工代码;获取文件中进给速度和主轴速度,重新加工时,设置为进给速度和主轴速度20%左右,并在3 s内均匀提升到掉电保存文件中的进给速度值和主轴速度值。
3 结语
本课题的掉电保护设计方法是基于ARM和Windows CE构建的系统平台,在32位嵌入式数控系统开发中具有典型代表意义。基于该方案设计的嵌入式数控雕刻机、数控切割机在实际加工过程中,掉电保护功能完备,实现恢复电源后无痕加工。因此在嵌入式数控系统设计中具有很大推广价值及应用空间。