background image

  

int iLoopNum;//子程序循环次数

  考虑到

Windows 操作系统并不是一个严格意义上的实时操作系统,为了提高实时响应

速度,本系统首先对程序指令进行翻译,全部转换成最后加上的点的信息,既先对程序指
令扫描一边记录下信息,再进行扫描一边,把子程序调用插入到第一次扫描的结果中而得
到最后的扫描结果。图

2 所示是第 1 次扫描的流程图。

2 程序指令读入流程图

  

2.2 运动控制

  在机床手动控制运行中
分为

JOG 和 MDA 方式 。

JOG 方式中可以点动坐标
轴运行,在

 MDA 方式中可

以分别输入零件程序段加以
执行。在进行加上前要进行
对刀,一般在对刀的时候采

J (X=方式。线程是计算机

应用程序实例中的一条执行
路径,外加一组操作系统分配的资源

(堆栈、寄存器状态等)。一个应用程序实例可以同时启

动多个线程,从用户的角度看一,程序中的线程是厦时运行的。操作系统通过线程间反复地
快速切换控制来达到并行计算这一效果。数控系统中存在加上程序和控制程序,采用多线程
技术将每个任务放在不同的线程中,即可达到对该系统的控制日的。事件是一种

Window、

为线程同步提供的核心对象,本系统采用事件使线程同步。在点动运动中,用户界而作为主
线程,点动运动作为辅助线程。点动运动控制中有如下三个事件

:

  

CEvent g-JogStartC FALSE TRUE);//点动运动启动事件

CEvent g-JogPause( FALSE TRUE);//点动运动折停事件

CEvent g-JogExit} FALSE } TRUE ) ;//点动运动退出事件

  在数控加上控制中,将用户控制界而作为一个线程,叫做控制线程,作为本系统的卞
线程,数控加上程序作为另一个线程,叫做加上线程,作为辅助线程。加上过程中有如下三
个全局事件对象

:

  

CEvent g-ControlStartCFALSE,TRUE);//加上启动事件

  

CEvent g-ControlPause(FALSE,TRUE);//加上折停事件

  

CEvent g- ControlExi (FALSE,TRUE) ;//加上停止事件

  用此三个事件来同步卞线程和辅助线程。

MDA 运行方式和自动运行方式下的线程控制

相似,以下以自动运行方式下的加上过程的卞线程和辅助线程的同步和通信为例

: