摘要 数控技术作为未来先进制造技术的核心内容之一,正在朝着开放化,网络化,柔性化和智能化方向发展,数控装备产品的设计制造和应用开发都日益显示出基于开放接口标准的模块形态。基于模块和组件的...
数控技术作为未来先进制造技术的核心内容之一,正在朝着开放化,网络化,柔性化和智能化方向发展,数控装备产品的设计制造和应用开发都日益显示出基于开放接口标准的模块形态。基于模块和组件的系统构建策略更能体现产品设计制造过程中的人性化思想,每一个模块都是一个有针对性应用领域的技术产品形式,是该领域技术原理,应用方案和实现形式的综合体现,是其在数控加工环境下的具体应用,其设计理念和性能指标都体现数控加工技术的要求和市场应用的需求,这些充分体现设计者个性化的产品组件通过开放的标准接口形式有机的结合,组成了功能丰富性能完善的数控装备产品。 论域分析及面向对象的设计
★论域分析
论域分析是软件开发的基本组成部分,目的是使开发人员了解问题空间的组成,建立大致的系统实现环境。论域分析实际上是一种学习的过程,开发人员在这个阶段,应尽可能地理解当前系统工程与应用的有关知识,应开放思维,放宽思考领域,尽可能标识与应用有关概念,通过与领域专家和用户的充分讨论,确定问题领域,以用户需求为标准,缩减问题论域信息量,标识出系统的基本概念:对象和类、方法、关系等,从而进入面向对象的设计过程。
★面向对象的设计
面向对象的设计过程可分为4个组成部分:问题领域、用户界面、任务管理、数据管理。问题领域部分的设计实际上是对论域分析的进一步细化,它包括加入低层构件、把论域中相关的类关联起来并建立类间协议,确定继承关系。用户界面部分的设计包括设计命令层、设计人机交互类,应根据图形用户界面进行设计。任务管理部分的设计包括识别事件驱动任务、识别优先任务和识别关键任务,确定各个任务之间如何协调工作、如何通信。数据管理部分的设计包括数据存放设计(文件存放、数据库表格存放、面向对象的数据库存放)和设计相应操作(为每个需要存储的对象和类增加用于存储管理的属性和操作)。
作为软件开发人员,在论域分析阶段应和相关人员学习、分析、讨论相关知识并与用户进行界面、数据管理和报表生成方面的讨论,上述方面进行的越充分,对以后的开发越有利,对缩短软件开发周期更有好处。
★动态连接库(DLL)的建立
动态连接库是一种基于Windows 的程序模块,它可以在程序运行时被装入和连接,使应用程序不至于显得非常庞大和复杂。
Windows的程序模块,它可以在程序运行时被装入和连接,使应用程序不至于显得非常庞大和复杂。
★MFC常规动态连接库的建立
作为测控软件不仅要编写计算机接口程序,而且还有编写数据处理程序,这些程序调用的频率较高,宜作为库函数使用,这样一来内存中只有一个代码备份,而且可以同时被多个任务共享。
计算机接口程序应根据需要包含定时器、D/A和A/D转换、开关量输入输出、串口通信程序等,为保证这些程序为通用程序,一般应设计初始化程序。在初始化程序中,应能完成各个口地址的传递,以便于应用程序的调用。例如:intgetAD (int iCH),改变A/D通道号iCH的值,可得到不同传感器的转化值:voidsetDA (inti CH,int iNum),可将D/A转换值iNum送iCH通道转换。
数据处理程序包含一维离散数据处理和多维离散数据处理,为使用方便,原始数据的带入应使用指针,计算控制参数也是必不可少的。例如求解二维离散数据(*pX, *pY)X和Y的值,已知X值时用表达式:Y=getY(double*pX,double*pY,int*pPointNum,doubleX)它采用多项式拟合的方式求解;当已知Y 值时用表达式X=getY(double *pY, double*pX,int * pPoint Num,doubl eY)求解。
如在应用程序中得到多维数据,想知道任意二维数据之间关系,用它计算处理数据也非常方便,另外分段拟合数据用它也是可以的。
常用小程序也是动态连接库的基本内容,例如数据显示、数据类型转换、排序、求极值等。注意,凡涉及数据输入输出均采用指针为佳。如:void find-MaxMin(dou ble *pX,double*dMax,double*dMin)
★MFC扩展动态连接库的建立
利用MFC扩展动态连接库,可以方便地在DLL和应用程序之间随意地传递MFC对象指针。本人曾利用它建立文档处理类、系统资源测试类、被测件类(一般1个被测件建立1类)。
文档处理类主要用于中间数据及结果的存取,中间数据的保存用于重现历史测试曲线,它和应用程序之间数据的传递使用结果数据结构指针,结果数据结构的定义应具有通用性,这样文档处理类就可针对结果数据结构进行处理,并不需要被测件的具体数据,应用程序只需在初始化时赋具体意义。
被测件类根据被测件类型的多少可以有若干个,每个被测件应根据试验大纲和技术条件编写若干个属性和方法(即测试模块,如磨合,测试极值等),编写测试模块时测试过程应连续进行,中间数据应做适当地保留,以备过程复现和结果处理之用。
系统资源测试类供接口测试用
★接口测试
接口是软硬件之间信息转换的中转站,硬件信息通过它传给软件,软件指令通过它传给硬件,接口测试就是测试软硬件信息交换是否符合设计要求,利用系统资源测试类设计接口测试界面,可进行接口测试,同时也可进行硬件和软件的调试,接口测试界面应包括足够多的内容,它可以观察:AD通道传感器的转换情况;DA通道送转值的转换情况;DI通道是否有外部信号输入;DO通道是否给各控制位置位或清零(如电磁阀的通/断、电机的启动/停止、液压泵的启动/停止);定时器的运行情况(主要用于流量等频率信号的测量)。
通过上述系统资源测试,可知道硬件相关部分工作情况,与此同时,也进行了软件相关部分的测试,为应用程序成功调试奠定了良好基础。
★用户界面
用户界面的设计应解决如下问题:操作应简单,能完成所有测试项目,能对数据(含历史数据)进行文档管理(打开、保存、打印等),显示测试结果等。程序设计时应采用多线程,线程优先级以及线程间数据传递应做通盘考虑,应用程序进入测试界面后,首先建立优先级最高的两个线程:控件及时更新;对危及安全的数据跟踪监控并做出及时反应(如压力过高应停泵,力值过大应卸载)。这两项工作线程应和用户界面一起创建并终止。用户操作响应线程应配合进度条一起建立,并将测试结果送显,工作线程创建的数量不宜多,否则影响程序的响应速度。利用Windo ws定时器也可完成定时更新数据的工作。
各线程间数据传递应采用全局变量方式进行,如某处压力值用Pre ss表示,Press由数据更新线程不断更新,数据监控线程监视Press的大小,界面控件数据用Press更新,测试时该处压力值也用Press代替。
★传感器校验
按工厂规定,传感器应每年校验一次,为方便校验和修改系数,传感器校验程序是不可缺少的,应设计好方便实用的传感器校验程序界面,各传感器系数应以二进制文件形式保存,并做好备份。