当前位置:资讯 > 电动机与运动控制 > 正文

数控系统软件芯片的研制和开发

发布时间:2006-11-27     作者:左 静 魏仁选 吕新平 陈幼平 周祖德      

摘要:

  数控技术无疑是现代先进制造技术中最重要的技术基础,从某种意义上说,数控技术的水平已成为衡量一个国家制造业水平的重要标志之一。出于技术垄断及独占市场等原因,各个厂家生产的数控系统在体系结构上大多是封闭的,不能进行高可*性的软件扩展。近年来,国内外众多的数控软件开发者都在重复研究、开发相同或相似的数控系统,反复设计若干基本模块,造成了人力、物力和财力的巨大浪费,而且由于缺乏统一的标准,不同的数控软件开发者开发的软件不能互相替换,缺乏兼容性,阻碍了数控软件的升级换代,同时也阻碍了数控机床生产者对市场和用户的快速响应能力。 通过对数控系统软件体系结构的分析,我们设想如果把数控系统软件中相同或类似的部分做成类似于硬件电子芯片的软件芯片(Software IC,SIC),每一个软件芯片具有高度的功能独立性、易移植性、易组装性及易扩充性。这样,当我们建立新的数控系统时,只需从芯片库中取出所需的芯片进行组合即可,必要时加以扩充,使数控系统能够重用,而不必从头开发整个软件系统。这样就能改变目前数控系统的封闭型设计,为适应未来车间面向任务和订单的生产组织模式奠定良好的基础,使底层生产控制系统的集成更为简便和有效,从而大大提高数控软件的生产力和可*性,减少生产成本及开发周期。这是增强数控系统对市场的快速响应能力,促进数控产业快速、高效发展的必然之路。  

像声明一个全局变量一样简单。如CEvent InterCodedStart;事件对象创建以后,是处于非信号态的,要是事件对象处于信号态,只需调用事件对象的成员函数 SetEvent(),即InterCodeStart.SetEvent(); 

  在执行了上面的语句后,事件对象InterCodeStart便处于信号态。线程监视事件是否处于信号态可利用下面的Windows API 函数实现。 

  :WaitForSingleObject(InterCodeStart.mhObject, 0);在此情况下,如果函数返回的是值为WAITOBJECT0,则事件已被置于信号态,否则,事件仍处于非信号态。通过这些消息和方法,我们就可以实现系统各线程之间的通信,也可以通过这些事件对象间的通信控制将若干芯片“粘连”成一个有机的实用系统。 

4 结束语 

       本系统全部是在 Windows NT下的VC环境中开发的,所以利用了很多MFC中的基本类,这些

都大大提高了整个系统的灵活性,增强了整个系统的功能。如,数控代码的编辑器是基于CEditView类创建的,因此在使用时,它可以利用CEditView类本身所带的一些编辑功能控制工程网版权所有,如New、Open、Save、Copy、Cut、Paste等,这使数控程序的编辑及管理变得和Windows下的文件管理一样方便容易。同时,VC中各种控件的使用www.cechina.cn,不但增加了系统控制的易操作性CONTROL ENGINEERING China版权所有,还使控制界面变得美观、友好。这些都是值得进一步深入探讨的地方。利用可重用构件技术来开发软件芯片,并利用其构建新的数控系统的思想已用于国家自然科学基金项目“高可*性数控系统软件芯片库及其运行环境”的研究,取得了良好的效果,不但很好地实现了数控系统的开放性设计和资源重用,而且由于是基于Windows NT和IPC等通用环境下开发的,对数控系统的升级换代和对市场的及时响应,都具有良好的开发前景。 

 
参考文献 
1 王芙清.面向对象程序设计.北京:北京大学出版社www.cechina.cn,1992:56~57,88~107,142~159 
2 Lenz ManFred.IEEE SOFTWARE控制工程网版权所有,1987,4(4):34~42 
3 毕承恩.现代数控机床.北京:机械工业出版社,1991:1~50 
4 Kate Gregory著,康博工作室译.Visual C++ 5开发使用手册.北京:机械工业出版社,1998:543~563 







标签:代码,进行,软件,数据,数控系统,芯片,研制,开发,
版权声明:版权归中国控制工程网所有,转载请注明出处!