COM组件技术在数控磨削中的应用分析

时间:2022-09-18 06:59:56

COM组件技术在数控磨削中的应用分析

摘 要:从COM的基本原理出发,分析了其在数控磨削中的应用优势,并结合实际案例分析了利用COM实现混合编程的过程,说明其在数控领域的应用是具有较大优势的。

关键词:COM组件 接口功能 磨削加工 应用实例

中图分类号:TP311 文献标志码:A 文章编号:1672-3791(2013)02(c)-0039-02

1 COM组件概述

所谓的COM组件技术是微软公司在20个世纪90年代创建的,现在已经成为微软公司、数据设备公司等支持的软件组件结构标准。开发COM的最初目的就是让应用程序方便定制,为对象链接的嵌入提供支持。COM技术提供了创建兼容对象的技术规范,以及其在windows系统下的通信规范。COM组件从根本上看是一套为组件架构而设置的文档,提供了一种编写与语言无关组件方法,COM具有一个特定的COM库,即API,这就给用户提供了组件管理服务。这个API的大多数的代码都可以支持分布式或者网络化的组件。Windows系统上的分布式COM在实现过程中提供了网络上其他组件通信所需要的代码。COM组件是利用Win32动态链接库或者可执行文件的形式来代码执行指令,这就使得COM规范编写的组件可以满足系统程序的编辑需求。

COM接口在应用中定义了接口的功能,COM组件负责完成具体的功能。一个COM组件通过定义接口对象基类或者嵌套类等方式完成多个接口的对接,这样就可通过定义接口的类别来实现功能。COM组件作为COM接口的具体实现,设计为二进制的单元,并以动态库和可执行程序的形式表达。COM在执行时可以在主进程内也可在其外部,但是可执行程序形式存在的COM组件只能在主进程外。

在COM组件技术中,其也看做是服务器,根据组件与客户之间的关系,可以对其进行分类,即进程内、本地、远程。而后两种进程也就是外服务器形式。进程内服务器就是指服务器和客户在同一个进程空间内完成运行,进程内COM组件是以DLL形式封装的组件。当服务器与客户在同一台计算机上,但运行的空间是相对独立的,这个服务器为本地服务器,而其封装形式为EXE。当COM组件与客户不在同一台计算机上时,这个进程就是远程服务,其封装文件可以是EXE也可是DLL。如果是DLL封装,远程服务器的计算机就需要一个进程来实现互动。

2 COM组件技术在数控磨削中的应用

2.1 总体思路

计算机技术的不断发展,数控的智能化与精细化也随之提高,而其控制系统也从专用系统转变为灵活的开放式可编辑系统,即可以针对不同的加工流程进行灵活的调适。这种体系的转变是的机床的生产商可以从分的利用计算机的资源,来提高数控的灵活性,以此实现一机多用的目标。系统的开放也为用户带来了极大的便利与成本节约,如磨床用户可以开发适应自身生产需要的数控系统以及人机交互界面。此时利用二次开发的方式,突出VB和MATLAB的优势就可极大的提高编程效率。具体思路是借助COM组件来实现程序的开发,从编辑与设计输出接口—— 创建COM组件工程—— 编译生成COM组件—— DLL文件—— 用户设计VB开发,经过这个流程就可实现对数据磨削的程序开发,以适应生产需求。

2.2 COM组件建立与调用

2.2.1 组件建立过程

通常在VB与MATLAB之间实现调用有以下措施:动态数据交互、ActiveX自动化、中间文件传递、Matrix VB措施、COM组件技术。以上多种措施中前三个不能与MATLAB相配合,不能实现软件一直,而第四种已经停止,最佳的方式就是COM组件生成器,以保证MATLAB接口的需求。这个组件技术可以将MATLAB开发的算法程序与相关的支撑函数数据库进行一并打包,形成一个组件,从而构建一个独立的COM对象,并对其进行集成融入到应用程序中。这样的方式可以脱离对MATLAB环境的依赖,灵活性较大。所以数控磨削中可以采用此方式实现混合编程。在编程过程中采用的步骤如下:在MATLAB的M文件编辑器中编写函数形式的文件,并设计其输出的参数;然后在MATLAB中执行相关com tool指令,进入到COM界面;随后建立一个COM Builder的文件,完成对磨削参数的设定,如名称、类别等;完成后载入M文件,执行后生成COM组件;最后在VB环境中载入相关COM组件,并对接口调用,实现整个程序的设计。

2.2.2 设计过程分析

文件的编写。在程序设计中,本文以凸轮的磨削为例,按照凸轮加工需要的数据来实现程序的编制,在凸轮的加工中通常都会有一个进程表,生程表数据数据可以直接导出凸轮磨削的数学模型。凸轮磨削的数学模型所描述的是在凸轮零件的几何数据,计算获得的相关与零件各个轴向之间的关系,数控系统利用这个数据来控制零件的相对运动模式,在凸轮转动的同时加工设备产生进给,从而完成对毛坯的加工,最终获得凸轮。通常加工工艺的指令给出凸轮的基本数据是一系列的具有离散性的数据点,直接利用这些离散数据是不能实现对凸轮磨削的数学建模的,尤其是在数据模型中存在导出问题时无法满足计算的需求,所以应将离散数据拟合起来,才能体现数据的整体性,并保证加工的精度。MATLAB中可以对三次样条曲线进行拟合的命令,可以非常方便的对离散数据进行计算,用户不需要利用额外的软件来完成对其算法的开发。将凸轮数学模型的算法编写成M文件也就相对容易。只要在MATLAB下运行相关代码即可实现。在代码运行中,需要定义的函数包括:rl、R、ang、h、Epuxiron等输入参数,rl表示的是凸轮滚子半径,R则代表砂轮的半径,ang、h则表示升程表中转角和升程的基本数值,而Epixiron则代表加工余量。X和angelphy则是代表输出值,分别表示砂轮机床的位移值和转轴的转角值,获得上述数据后,就可在MATLAB内生成一个M文件。

2.2.3 COM组件的建立

编写完M函数文件后,设计中可以利用MATLAB所提供的打包工具来生成一个COM组件,在MATLAB中的指令行上输入一个指令“com tool”就可看到一个工程编辑器,即“MATLAB LAB Builder”窗口。在此窗口上进行操作,点击“file”—— New Project“,就可生成一个新的工程文件,并在此实现参数的设置,审核后将前面的M文件添加到工程中,点击“Build”—— “COM Object”就可完成对相应组件文件的建立。生成组件会自动的在计算机中完成注册,如果这个组件在设计中要移动到其他计算机中,如从计算机中移植到PC数控平台上的时候,可以在对应的数控系统上运行相关的命令,即DLL文件进行注册,就可完成移植。到这里用户所编写的M函数就已经成为一个COM组件对象了。

2.2.4 COM组件的调试

完成COM组件对象的生成后,还需要在VB中对其进行调用,才能实现二次开发的目的。在VB开发工程中点击“工程”——“引用”菜单,选择相关的MATLAB所生成的dll文件,将其添加到一个对应的创建工程中,以此完成对其的调用。VB程序中对需要调用的dll进行计算时,可调用相应的接口函数,而在使用接口函数前必须创建相关的类别,其方法如下:

Dim mydll As New mytestcom2. Mytestcom2//mydll为类别的实例名称

接口函数通常是将M文件作为名称,其中第一个参数表示输出参数的个数,在接口函数参数中,其输入参数必须是double类型,而输出则为variant类型。

Dim X As Variant//定义X轴砂轮架位置

Dim angelphy As Variant//定义C 轴转角

Dim r1val As Double//定义滚子半径

Dim Rval As Double//定义砂轮半径

……

Call mydll.mytestcom2(2,X,angelphy, rlval,Penal,vb_ang,vb_h,vb_ Epuxiron)//括号内为函数参数,2代表函数有两个输出值,分别为X和angelphy,剩下的r1val,Rval等5个输入参数值,分别和所编写的M文件中的函数相对应,实现了函数的传递。而X值和angelphy值则是最终写入到数控程序内的x轴轨迹和c轴转角值,这样就可生成最终的数控文件。

值得注意的是,MATLAB软件在计算中会将所有的数据都看做是一个矩阵,所以在处理接口函数的变量时应将其看做是二维数据组,否则就会造成数据的混乱。设计完成的软件通过程序可以载入凸轮升程表的数据,经过调用dll计算相关的凸轮转角和砂轮架之间的位置关系,进而实现对其加工的数控,加工程序在实际的应用中也获得了较好的效果。

3 结语

在数控磨削中需要编写程序为数控计算机提供连贯的指令,在程序编写中利用COM组件技术可以实现MATLAB与VB的结合,从而实现混合编程,并将其应用在数控磨削的二次开发中,从而实现了高校灵活的编程过程,也可更换的适应客户需求。

参考文献

[1] 赵海春.COM组件的设计与使用[J].邵阳学院学报:自然科学版,2009(1):69.

[2] 张盛,卢建华,卢欣华.COM组件技术研究[J].科技信息,2008(26).

[3] 刘玉利,左勇,唐翠荣.基于Matlab与VB混合编程的压痕直径测量软件设计[J].计测技术,2009(2):21.

[4] 曾浩然,张琳娜,赵凤霞.VB和Matlab混合编程在圆度误差评定中的应用研究[J].制造技术与机床,2011(8):34.

[5] 张龙斌,袁瑶.基于EXE的VB与Matlab混合编程在电力系统计算中的应用[J].黑龙江电力,2010(5):29.

上一篇:Excel在特种作业人员统计管理中的应用 下一篇:基于VirtuoZo的数字正射影像制作及质量检查