首页 -> 2008年第4期
可视化虚拟控制面板设计系统的架构与开发
作者:崔延亮 石连栓 卢 玲
关键词:数控教学;虚拟控制面板;仿真;可视化
当前我国数控类人才极度匮乏,这种现状严重制约了国家制造业的发展,为了解决这个问题,国家大力发展职业教育,职业院校成为培养数控技术人才的主要阵地。由于数控机床价格昂贵,职业院校教育资金有限等种种原因催生了虚拟数控机床教育软件的研发。虚拟数控机床是对数控加工过程进行电脑模拟仿真的教育软件,这种软件在职业院校数控教学与培训的过程中发挥了极其重要的作用。当前不同的数控机床系统(如FANUC、SIMENS等)的控制面板布局标准不统一,不同的机床生产厂家生产的数控机床,其控制面板的控制元件设计及布局有很大不同,这就给机床仿真带来了问题。当前职业院校所采取的解决办法是:开发与实际机床对应的多套虚拟控制面板,以选择菜单的形式提供给教师或学生,他们可以通过菜单选择需要的机床型号的控制面板,从而对虚拟数控机床进行仿真操作。程序开发人员在开发软件时,根据用户的需求,采用一种面向对象的可视化编程语言,使用现有的集成开发环境,将应用功能和界面两部分程序混合编写,一种型号的数控机床就需要开发出一套相应的、单独的虚拟控制面板。由于数控机床种类和型号繁多,软件厂商不可能针对每一种机床型号都开发一套虚拟控制面板,这需要消耗很大的人力和物力,增加了软件的生产成本,并且以当前方式开发完成的虚拟面板软件在教学过程中维护与代码更新的工作繁重。这样就导致现有数控加工仿真软件只能对有限几种常用的数控机床进行仿真,不能满足职业院校数控教学或培训多样性的要求。
这些问题在某种程度上限制了数控加工仿真软件的普及,影响了职业院校数控教学和培训。针对以上问题,笔者设计并开发了可视化虚拟控制面板设计系统,通过这个系统,学生只需点击相应的功能控件选取窗口,拖动鼠标并完成相应控件的属性(如:形状、大小、颜色、位置等)设定,就可以设计所需的虚拟控制面板。即使学生没有程序开发的基础,也完全可以胜任面板的设计与生成工作。这样,控制面板的开发工作就可以从原来的程序开发工作中独立出来。界面的开发工作可以由教师或学生来完成,可以根据需要对多种数控机床进行仿真,同时也规避了当前面板中所存在的系统更新问题。
系统需求捕获与分析
本系统运行在Windows操作平台上,具有与Windows平台相似的操作风格。系统的主要功能是用来开发、生成虚拟数控机床的控制面板,生成的控制面板是对真实数控机床控制面板的仿真,包括对控制面板上各个控制元件的外观、布局的仿真,功能的仿真,操作时状态变化的仿真。生成的仿真控制面板可以运行显示在计算机屏幕上,可以响应计算机鼠标与键盘击发的事件,可以向虚拟数控机床仿真运算核心传递控制信息,从而驱动虚拟数控机床在计算机系统中运转。该系统具有良好的易用性,系统不要求学生具有软件设计与程序开发的能力,只要进行一些简单的培训,学生就能运用该软件进行虚拟面板的开发。已经开发完成的虚拟面板,学生可将其调用到本系统内,根据实际需要对其进行改动与保存。学生可利用该软件开发、建立自己的虚拟控制面板库。
根据以上需求进行分析,系统应具备以下功能:支持鼠标拖曳式编辑,学生只需要点击相应的功能控件选取窗口,拖动鼠标并完成相应控件的属性(如:形状、大小、颜色、位置等)设定,从而可以定制所需的数控系统虚拟控制面板。支持“所见即所得”,学生可以即时在编辑器中看到界面设计的实际效果,如各种控制元件的标题字形大小、颜色、位置、形状等。支持面板文件的新建、打开、修改、保存、运行;面板文件在系统中存在两种状态,即设计时状态和运行时状态。在学生定制设计时,可以向面板文件中添加按钮、旋钮等元件,并可以设定元件的各种属性和元件的动作,随时读取某个元件的属性值与动作值并对其进行修改。对于定制完成的虚拟控制面板,学生可以运行面板,在运行时状态下测试面板运行效果,若不满足需求,可以切换回初始状态,对面板进行修改,直至达到满意的效果,最后将生成的虚拟面板文件以特定的格式存储。能够允许学生在设计时和运行时状态间随意切换,随时查看面板的效果,这是可视化虚拟控制面板设计系统的重要特征。
系统逻辑模型建构
(一)“级变”模型
在图元的容器类组件(父组件)上,优先级高的图元子组件被置前显示,在图元子组件的叠加队列中,优先级较高的子组件自动向下覆盖优先级较低的子组件。系统中的图元类子组件在创建时获得的系统默认分配的优先级可以重组。
(二)图元显示模型
图元显示模型是建立在“级变”模型的基础之上的,真实数控机床控制面板上的控制元件在操作时都呈现出了外观状态的变化。我们把控制元件呈现出的每一个外观状态都做成仿真度很好的状态位图,然后根据控制元件状态的多少来决定图元子组件的数目,每个图元子组件都可以装载一个状态仿真位图,这组图元子组件形成一个叠加队列,这样,控制面板上的每个元件都唯一对应一个叠加队列,每个图元子组件都可以发出调用信息或响应其他图元的调用信息。通过响应调用信息,图元子组件队列的优先级进行重组,被调用的图元子组件获得最高优先级从而被置前显示在图元容器类组件上,当鼠标点击该图元子组件时,组件会发出调用信息调用其他图元,这样就完成了一个控制元件的状态切换。
面板上所有元件对应的图元队列构成一个大的整体的队列,学生进行面板设计时,把数控机床上出现的所有元件都进行编号,比如“急停”按钮编号为1,“手轮”编号为2等等,同时给每个面板元件对应的图元队列里的图元子组件都设定了编号,也就是把某个数控面板元件呈现出的所有的状态都进行了编号,比如“急停”按钮有两个状态,按下时状态和松开时状态,装载有按下时状态仿真位图的图元组件编号为1,装载有松开时状态仿真位图的图元组件编号为2,这样,装载有“急停”按钮按下时状态仿真位图的图元组件编号为11,装载有“急停”按钮松开时状态仿真位图的图元组件编号为12,面板上所有元件对应的图元队列又构成一个大的整体的队列,比如11、12,21、22、23,31、32等等。根据前面所述的“级变”模型和“图元显示”模型可知,学生点击某一元件时发出调用信息,被调用的图元在队列里置前显示,通过一个程序过程可以捕捉到哪一个图元被调用,比如捕捉到编号为11的图元被置前显示,那么就可以根据编号规则解析出下面的信息:学生当前在操作“急停”按钮,“急停”按钮被按下,这些信息就是控制信息,这样面板的控制信息就产生了。
每一个状态切换过程都会产生相应的控制信息,这些控制信息被指令与坐标显示模块读取、解析后显示出相应的状态参数。这些控制信息的格式与虚拟数控机床仿真运算核心能够接受的控制信息的格式有所不同,两者之间需要创建一个信息值转换表,通过该转换表,控制信息就能被仿真运算核心读取并处理,处理效果通过加工过程三维显示模块显示,这样就完成了一个仿真过程。
[2]