六合彩走势图

新闻中心
联系我们

厂址:宁波市宁海县城关镇跃龙路25号

电话:0574-65209300 0574-65209311

E-mail:yifan@yifansk.com

首页 > 新闻中心 > 行业资讯 > 正文

新闻中心

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

来源: www.psysheep.com 作者:一帆数控 时间: 2012-04-18

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

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

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

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

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

 

366彩票psysheep.com版权所有 2014-2016宁海县一帆数控机械有限公司 地址:宁波市宁海县城关镇跃龙路25号

技术支持:和众互联
友情链接:六合彩票下载  366彩票计划软件  366彩票官网  366彩票注册  366彩票网  366彩票app下载  366彩票app  六合彩票  366彩票  六合彩票注册  

免责声明: 本站资料及图片来源互联网文章,本网不承担任何由内容信息所引起的争议和法律责任。所有作品版权归原创作者所有,与本站立场无关,如用户分享不慎侵犯了您的权益,请联系我们告知,我们将做删除处理!