磨加工主动量仪软件开发中的混合编程技术
2015-02-24宋相征张琳娜郑鹏赵凤霞
宋相征,张琳娜,郑鹏,赵凤霞
(郑州大学机械工程学院,河南郑州 450001)
在现代磨削加工中,半自动、自动磨床应用广泛,但其自动加工中无法对零件尺寸进行实时的检测控制,只能按照既定的程序进行开环式的磨削加工。主动量仪可在磨削过程中实时测量工件尺寸,并对加工状况进行实时判断,发出控制信号对磨削加工的不同阶段进行自动控制。这种闭环控制可进一步提高磨床的自动化水平,提高加工精度和效率。
主动量仪软件系统负责测量数据的采集、处理、输出、显示、I/O控制等功能。因此,软件系统开发在整个主动量仪的开发中显得尤为重要。目前工业控制中主流开发软件主要有两种:一种是工业组态软件,例如组态王 (Kingview);另一种是高级编程语言,例如Visual Basic。工业组态软件编程可视化程度高、界面简单直观、编程效率高,利用组态王开发出来的界面美观,可视性好。但组态王的数据最高采集频率为55 ms,低于磨加工主动量仪对数据采集速度的要求,因此它不能作为数据采集处理开发工具;VB的数据处理功能强大,数据采集速度高,可以满足主动量仪的开发要求,因此适合作为底层开发平台进行数据采集与处理。基于以上因素,提出基于工业组态软件组态王6.53和VB6.0混合编程的软件开发方案。文中以磨加工主动量仪单键槽工件测量功能开发为例,主要研究Kingview人机交互界面设计编程、VB数据处理程序开发、VB与组态王之间的数据通信技术3个混合编程中的关键技术。
1 VB与组态王混合编程方案
文中依据VB与组态王各自的编程优势,确立利用组态王开发新型磨加工主动量仪的人机交互系统,利用VB开发数据采集处理系统的软件系统联合编程开发方案。软件系统的混合编程总体工作分配如图1所示。
软件系统的混合编程主要包括3个部分:第一部分为开发组态王人机交互系统。操作人员可通过人机交互系统的测量模块观察实时测量值、加工状况、实时曲线,可在手动情况下对设置和调整界面中的系统参数进行修改调整,更新后的数据保存于组态王配方文件中,通过Blockdde将配方改动信号传递给VB,VB进行相应的配方读取更新系统参数值;第二部分是开发VB数据采集处理系统。VB程序具体负责在软件系统运行后实现创建Blockdde链接,启动组态王运行程序,进行板卡初始化,以及循环往复地进行数据的采集、处理输出工作,同时接收配方文件更新变量,必要时进行组态王配方的读取;第三部分是VB和组态王软件之间的通信编程。在混合编程中,许多参数需要在VB与组态王之间互相传递,是通过Blockdde的方式进行开发的。
图1 VB与组态王软件工作分配
以测量外径为例,加工中测头落入键槽内过程中实际电压值如图2中曲线所示,单键槽主动测量的主要思想是输出周期中,将实际电压变化量补偿为理论电压变化量 (虚直线部分)。正常磨削加工情况下,进给量、工件转速等因素均为定值,一个输出周期ts(12 ms)内,采集电压变化值也可视为定值即图中的hs。
图2 单键槽工件测量原理图
由图2可知,应补偿的电压量为:
其中:hv可由VB程序对前后两次采集得到的电压值计算得到。由图可知:
其中:tc为操作人员根据加工条件设定的系统参数,可知,每次输出需要进行的电压补偿量为:
2 单键槽工件测量的组态王人机交互界面设计
组态王的界面设计编程主要分为画面功能规划、绘制画面与创建变量、编写动画链接语言等步骤。
2.1 画面功能规划
单键槽工件测量功能在显示界面中以“W功能”表示,整个功能作为一个小的文本框模块嵌入项目设置画面中,当点击功能框后,弹出“W功能选择键盘”画面,用于用户输入W功能时间参数,点击“W功能选择键盘”画面中的确定按钮,判断输入是否有效,有效则关闭“W功能选择键盘”画面,返回项目设置主界面,否则弹出相应的报警窗口,提示用户重新输入。具体组态王程序执行流程规划见图3。
图3 组态王程序执行流程设计
2.2 绘制画面与创建变量
依据以上设计,新建变量及其功能如下:\本站点W功能时间1,用于在项目设置画面的W功能框中显示用户输入的参数值 (即tc); \本站点画面置顶选择,用于判定当前画面级数,锁定其他级数画面按键均为无效;\本站点W功能选择,用于暂存用户输入中的参数值。新建画面有3个:“项目设置1”画面,用于设置项目1加工工件的各种加工参数,包括W功能;“W功能选择键盘”,用户输入W功能参数值的画面; “W功能时间超限报警”画面,当用户输入参数错误,弹出此窗口。各画面设计见图4。
图4 W功能各级画面设计
2.3 编写动画链接语言
W功能框弹出的动画链接窗口中,“弹起时”选项下输入命令语言为:
if(\本站点画面置顶选择==0)/*判断是否系统处于1级画面。
ShowPicture("W功能选择键盘");/*显示画面"W功能选择键盘"
W功能选择键盘画面中数字输入按钮的“弹起时”选项下输入命令语言类似,分别控制字符串变量“\本站点W功能选择”加相应的字符;取消按键控制关闭W功能选择键盘,回到项目设置1画面;清除按键控制清空字符串变量“\本站点W功能选择”;确认键“弹起时”选项的命令语言为:
3 单键槽工件测量的VB数据处理设计
VB程序负责单键槽工件测量原理的程序实现,主要由开发的功能函数Public Function function W实现,其函数体如下:
4 VB与组态王之间的数据通信技术
由于采用VB与组态王的混合编程技术,两款软件之间的数据传递非常重要,数据传递的效率决定了整个系统实时性的好坏。VB与组态王程序之间的数据通信方式选用Blockdde通信模式,只需建立一个热链接即可完成多个数据传递,从根本上提高了系统实时性。以测量项目1、2为例,研究Blockdde通信方式的实现方法。
Blockdde通信的建立主要分为3个步骤:初始化、建立数据库、数据互传。整个过程需要VB与组态王进行相应的编程与设置,VB所用函数及功能见表1。
表1 Blockdde中所用函数及函数功能
初始化主要完成对服务器名、话题名的声明。服务器名、话题名是服务程序的“身份证”,用于唯一标识所创建的服务程序。VB中声明的服务器名、话题名必须和组态王中建立的Blockdde动态链接设置的相同,此例中针对测量项目1、2(即测头1、2的实际测量值)进行编程,实现测量值的实时传递。
建立数据库,需要进行数据通信的所有变量的信息均需要进行数据库登记,变量信息包括变量ID、变量类型、属性、初始值等;变量信息在组态王建立变量时确定,VB进行数据库登记时需要与组态王相关变量信息保持一致。组态王中测量项目1、2测量值变量的信息见表2。
表2 组态王中测量项目1、2测量值变量信息
数据互传包括VB将变化的数据传递给组态王与组态王将设定值传给VB。对于测量项目1、2,需要VB通过Blockdde实时传递给组态王,其程序代码如下:
5 实验与分析
通过对组态王与VB的混合编程,实现利用组态王人机交互系统进行各个模块的开发、界面设计与程序编写;利用VB将数据采集、多种处理数据方法、Blockdde传输等功能设计编写为自定义函数模块,供VB主程序调用。最终构建了完整的磨加工主动量仪软件系统。结合系统硬件平台,以W功能、测量结果传递为测量对象,对组态王显示界面、VB后台处理及Blockdde通信进行了一系列的实验验证。
W功能选用了项目1、2两个测量项目,参数设置除W功能有无外,其余均相同,通过调整测量传感器电压大小,最终在组态王测量界面中得到的项目1、2的尺寸变化曲线如图5所示,分析可知有W功能的项目1与无W功能的项目2相比,尺寸曲线得到了准确有效的补偿修正,证明由VB编写的W功能函数正确有效,且将修正后的值实时传递给组态王人机交互界面。
图5 W功能试验曲线
Blockdde选用项目1、2为测量项目,以两个项目的测量值为实验对象,利用VB启动组态王运行程序,调整测头数据至适当位置,组态王测量界面中测量值与VB运行程序中Form1窗体测量值运行结果如图6所示,两者时刻保持相同,由此可知VB程序顺利通过Blockdde通信方式将测得的测量数据传递给了组态王。
图6 Blockdde通信试验曲线
6 结束语
采用VB与组态王混合编程的方式,有效地发挥了两款软件各自的优势,一方面利用组态王开发出了美观、操作简洁的显示界面,另一方面利用VB开发出了高速的数据采集、处理程序,使主动量仪的实时性、精度得到了有效保证,为我国磨削加工主动测量仪的发展做出应有贡献,具有广阔的市场应用前景。
[1]王鸿伟.磨加工过程中的主动测量仪[J].轴承,2004(4):32-34.
[2]周自波.外圆磨在线检测应用系统的硬件研究与开发[D].成都:四川大学,2005.
[3]北京亚控科技发展有限公司.组态王 Kingview version6.51命令语言函数速查手册[M].北京:亚控公司,2005.
[4]郭寒军.嵌入式智能主动测量仪的研究与开发[D].无锡:江南大学,2008.
[5]史延龄.基于VB6.0和DDE的组态王与智能仪表的通信研究[J].工业控制计算机,2011(4):80-81.
[6]李洪波.智能主动测量系统开发与应用[D].哈尔滨:黑龙江大学,2008.
[7]辛德玺,孙涛.机械加工中的主动测量仪控制[J].中国集体经济(下半月),2007(5):134.
[8]亚控公司.组态王5.1使用手册[M].北京:亚控自动化软件科技有限公司,1999.
[9]郭秀江,汪仁煌.BlockDDE在沥青拌和楼控制系统数据采集中的应用[J].广东工业大学学报,2002(1):16-20.