具体实现VC实现数控雕铣机加工过程

程序采用VisualC++的多线程编程来实现对数控雕铣机操作时实性和动态性要求。所谓线程是指一个独立的过程,是系统分配处理器时间资源的基本单位。线程机制使得系统具有多任务功能。

PCNC软件系统一般执行过程为:读取处理后的NC文件→译码→轨迹插补计算→伺服控制,这样一个基本的加工循环,在未运行完最后一条NC语句前,该循环将一直进行。如果应用程序仅有一个线程即用户界面线程,一旦程序执行仿真,它将独占CPU一直运行下去直到结束,无法接受和处理用户消息和事件。也就无法实现实时性的要求,而多线程就可以解决这个问题。

VisualC++中线程可分为用户界面线程(UserInterfaceThread)和工作线程(WorkerThread)。用户界面线程的特点是拥有单独的消息队列,具有自己的窗口界面能够对用户输入事件和消息作出响应。工作线程一般用于处理后台任务,仅由函数体实现,不处理窗口消息。采用多线程后,用户界面线程主要用来显示当前指令、更新状态参数(X,Y,Z轴坐标值,主轴进给速度、加工时间等),以及接受用户输入指令。将实现仿真的程序放在一个工作线程中。这样尽管工作线程忙个不停,但用户线程却“空闲”可以随时响应用户输入事件和消息。用户线程和工作线程之间通过事件对象Cevent来负责线程之间的通信。

设置“暂停仿真”和“开始仿真”两个按钮,当按下在“暂停仿真”后程序暂停用户可以观察指令和相应状态;按下“开始仿真”后又断点处重新开始执行。其实现的具体方法如下:在“暂停仿真”按钮的单击事件响应函数中设置停止事件有信号,“开始仿真”按钮的单击事件响应函数中设置启动事件有信号,工作进程在循环体中检测相应事件是否有信号,从而执行相应的程序。需要做的工作是定义两个事件停止事件和启动事件,创建一个工作者线程,并建立工作线程的控制函数体。其程序流程如图2所示。用户界面线程和工作线程的状态参数和图象缓冲区首地址通过全局变量来传递。用户界面线程首先建立图象缓冲区,将缓冲区初始化后,通过全局变量将缓冲区首地址和绘制图象的窗口句柄传递给工作进程。工作进程将译码后的数据转化成图像数据,不断刷新缓冲区,调用MFC类库中的CDC类BitBlt()来重绘屏幕,这样就形成加工动画过程。在重绘屏幕时加入延时,这个延时由每条指令所走的步距总和和对应插补的速度决定。通过比例延时可以较为精确地获得实际加工时间。

状态参数的刷新则由WINDOW下计时器Timer实现,在达到设定时间后由计时器Timer发出WM-TIMER系统消息到用户界面线程消息队列中,由其对应的消息处理函数OnTimer来刷新状态参数。

 

推荐产品

CNC龙门高速铣
CNC龙门高速铣YF-D2016 本款型号CNC高速铣床是我司专为大尺寸工件的生产加工而精心研发设计的一款全新产品,具有精度高,传动稳定性好,加工尺寸大、刚性好及机身重等特点,采用了大型肋骨强化和龙门式床体设计,且经过多次的实效处理消除了应力,能够长时间的保持很好的精度与刚
数控龙门高速铣
数控龙门高速铣YF-D1615 该款型号高速铣床是本公司对原有机型改造创新升级后推出的第一款主打产品,它结合了原有的老款数控铣床的性能特点,更改了有效行程,并不断的进行创新和改良,才有了这款具有结构合理、稳定性强、精度高、刚性强、效率高等众多优势的产品。该款机型是一帆数控
数控高速龙门铣
数控高速龙门铣YF-D1512 该款型号数控龙门铣床具有精度高、刚性强、结构合理、稳定性好、工作效率高等众多优点,是我公司对老款产品改造升级后推出的一款全新的机型,它结合了原YF-D1615款机型的功能特点,改换了有效行程,并不断的进行改进和创新,该款机型是我们一帆数控技
高速数控龙门铣
高速数控龙门铣YF-D2516 该型号龙门雕铣机床采用了大型肋骨强化和龙门式大床体设计,并经过多次实效处理消除应力,能长久的保持良好的刚性和精度。该机型是专为加工大工件所设计,其填补了目前市场上普通雕铣机无法加工大尺寸工件的空白。其具有的传动平稳、刚性高、机型重、精度高、
QQ咨询
微信咨询
拨打电话
返回顶部