0 引言
凸轮轴是发动机的重要零件之一,它的加丁精度对发动机的性能有着十分重要的影响。由于凸轮轴是一种非圆类异形零件,利用传统加工技术难以满足需要的加工精度,随动磨削技术是近年来发展起来的一种新型非圆类零件加工方法,指磨床砂轮架x轴根据指令跟随工件旋转轴C轴运动,进行磨削,这种方法既能加工圆形类工件,又能加工凸轮、曲轴、凸轮轴等非圆类工件,较传统加工方法更易保证加工精度,因此,本文将开发利用随动磨削技术,对凸轮轴进行加工的专用控制软件,西门子标准数控系统显然不能满足加工的要求,采用对西门子840D数控系统进行二次开发的方法,既发挥了西门子数控系统的优良性能,也实现了凸轮轴的加工,具有重要的现实意义。
1 SINUMERIK 840D数控系统的OEM软件开发包
SINUMERIK 840D主要由三部分构成:数控及驱动单元(CCU或NCU),人机通信(MMC),可编程逻辑控制器(PLC)。三部分以独立的CPU单元出现,通过总线连接通讯,在功能上既相互分工,又互为支持。OEM软件是西门子公司专门为机床制造商或第三方开发者提供的进行二次开发的软件包,采用标准编程语言和标准接口进行数据传递,由840D数控系统实现控制。将OEM软件开发包安装于MMC上,在WINDOWS操作系统下,使用VB、VC++等编程语言,利用OEM提供的DDE接口,即可访问NC、PLC、MMC变量及文件。因此,必须通过OEM软件开发包将开发的软件嵌入到840D数控系统中,才能实现软件特殊的功能。
2 凸轮轴磨削软件的设计
2.1 凸轮轴磨削软件的框架设计
由于OEM软件开发包支持VB、VC等语言编程,而VB编写界面又十分方便且功能强大,所以采用VB编写一个多窗傩程序来形成磨削软件的框架。根据凸轮轴磨削加工的特殊要求及使用方便。设计了登录、参数文件选择等窗体来完成需要的功能。如图1所示。
图1凸轮轴磨削软件框架凸轮轴磨削软件框架凸轮轴磨削软件框架凸轮轴磨削软件框架 凸轮轴磨削软件框架
2.2 数据库的设计
为了使凸轮轴磨削软件具有更好的通片1性,能够方便地加工带有多种类型凸轮片的凸轮轴,能够采用切人磨、摆动磨等多种磨削方式进行磨削加工,研究采用数据库来管理种类繁多的数据,使所有的数据层次分明,使用方便。提高软件的稳定性和实用性。
对于该软件的数据库而言,软件规模不大,数据总量较少,需要较短的开发周期。并且VB能够访问方便,所以选择Access作为软件的数据库。结合凸轮轴的结构特点和随动磨削的加T需要。考虑到用户使用方便。笔者建立filename,camaxis。axis,csmpiece,llft—。table。compensate—tablet processdata,seqfile,sequence等9个表构建Access数据库。为了使结构化查询语言能够迅速地从数据库中查找到用户需要的记录集,另外在数据库的9个表中都增加了filename字段,并在各表之间建立丁一对多的关系。
VB中具有丰富的数据库访问控件,支持多种数据库访问技术,其中ADO技术响应建度快。属性、方法和事件多。支持多种数据源连接,所以选择利用ADO技术访问Access数据库。井通过结构化查询语言对数据库进行查找、修改、保存等处理。具体流程如图3所示。
3 凸轮轴磨削软件的嵌入
利用OEM软件开发包,将凸轮轴磨削软件嵌人西门子840D数控系统,与其标准界面有机结合。井运行于MMC上,凸轮轴磨削软件便可访问NC、PLC、MMC的变量及文件,实现控制机床随动磨削。加工凸轮轴的功能。
嵌人数控系统的凸轮轴磨削软件称为标准OEM区域应用程序。也可叫作顺序控制模式的应用程序,只有符合顺序控制模式,设计的软件爿能被转化为两门子标准应用程序,也才能完全嵌入到西门子数控系统。
根据OEM软件使用手册的说明,顺序控制的中心元素是状态,每个状态有自身唯一的状态号,在每个状态下可以显示一系列窗体,而每个窗体所要显示的软键文本则位于相应的语言动态链接库中。通过按下软键的行为可以进行状态的切换,从而达到软件设计中窗体切换的效果。凸轮轴磨削软件嵌人后,如图4所示,软件设计中的文件选择窗体转化成西门子标准界面。
如图4所示,西门子标准界面分为五个部分:信息区域用来显示机床状态等参数。对话行用来显示操作文本等信息,这两部分大多可默认为西门子标准界面,不需殴计,区域应用为软件要显示的界面,水平软键和垂直软键则与软件中的按钮对应。因此,嵌入凸轮轴磨削软件分为两部分:一是将软件中设计的窗休嵌人到区域应用部分,并完成窗体切换;二是将软件中的按钮对应到水平软键和垂直软键上。
从顺序控制的定义可以看出,通过将设计的软件转化为顺序控制模式的应用程序。能够实现上述嵌入功能。实现顺序控制模式的转化需要使用六个文件:regie ini,mmc.ini,programname.ini。programham-e.mdi,programname.zus,languauge.dll。其中regie.ini和mmc ini是西门子数控系统本身存在的文件,regie-ini用来控制应用程序的初始化和启动。以及动态链接库的下载,多个应用程序的有序运行。它是一个控制、引导文件,可以用记事本编辑,嵌入设计的软件只需在该文件的任务配置(TaskConfiguration)中添加自身的应用程序。mmc ini也可用记事本编辑,进行颜色、语言以及硬件配置等设定。此处大都沿用西门子的标准设定。不做修改。
Programname zus为状态切换文件,programe.mdi为窗体列表文件,不难看出,这两个文件用来实现嵌人的第一部分,languaage.dll为语言动态链接库,用来实现嵌入的第二部分。而programname.ini为嵌人应用程序的引导文件。下面根据设计软件(camshaft)的嵌入过程叙述以E四个文件的生成。在、oem下建立camshaft mdi和camshaft zus文件,camshaft mdi可用记事本编辑,包含子窗体名称的列袭、子窗体的类型、预处理措施、注释等。如:
由于窗体众多且意义相近,这里仅列出部分示例。“logo”等为子窗体名称,I指类型,子窗体共有6种类型,其他参数泼置为缺省值。
Camshaft zus也可用记事本编辑,它包含所有的状态矩阵,处理所有的状态切换,从而实现软件中的窗体切换。根据OEM软件包的规定,状态矩阵一般是一个17×8的矩阵。每行由状态/动作、人口等级、水平键文本、垂直键文本、子窗体名称、返回值、标识符、注释组成。由于每个矩阵意义相似,并且矩阵的3到17行意义跟第二行近似。在此仅列出置录窗体logo所在状态的状态矩阵的前两行加以说明。
第一行的[0]指状态号,036分别表示水平软键和垂直软锤文本的起始地址。与软件的语言动态链接库对应,“logo”为此状态下要显示的子窗体名称,接下来的“”是用来显示多个窗体的,此处为空表示此状态下仅显示logo,“埃啊北表示返回值,最后一个0表示标识符。这里人口等级和注释省略。
第二行中的0表示第一个水平软键,标识符下面的1表示按下此键要到达的状态。标识符有两种含义。用作状态描述时指是否要保存当前状态下的设置(如软键文本),用作行动描述时表示要到达的状态。这里表示在状态0下,当按下第一个水平软键时。将跳转到状态1下的界面。
整个矩阵的第一列为0到16.0到7表示水平方向的8个软键,8到15表示垂直方向的8个软键。16表示返回键。这一列不需修改。
在众多于窗体列表文件和状态矩阵文件中。需要一个向导文件使开发的应用程序能找到对应的子窗体列表文件和状态矩阵文件。这就是camshaft ini的作用,同样在一、oem下建立camshaft ini,内容分为CONTROL和DEBUG两部分,作如下设置即可:
[CONTROL] MDILIst=camshaft mdi ControlFile=eamshaft.zus [DEBUG]部分不用设置,系统默认即可。
而对于嵌入的第二部分,为了保证嵌^软件界面语言的独立性,同时也应该便于修改和转换,研究采用VC++建立语言动态链接库的方法。在VC十+中将每个状态下各个软键所对应的文本编辑成一个RC文件,再根据RC文件,即可建立语言动态链接库。为了使regie ini能够识别嵌^的应用程序,需要在VB程序的PRIVATE模块中定义一个全局变量保存应用程序名camshaft,并将VB程序的执行文件camshaft exe也复制到..../oem下,这样。整个凸轮轴磨削软件的开发便完成了。
4 凸轮轴磨削软件的实现
通过凸轮轴磨削软件的设计和顺序控制模式应用程序的转化,实现了凸轮轴磨削软件的嵌入。具备轮轴的功能,软件运行情况如图5所示。
5 结束语
本文采用VB编程语言和Micwsoft Access数据库技术编写了凸轮轴磨削软件.运用VC++建立了软件的语言动态链接库,并通过OEM软件开发包将其嵌人到西门子840D数控系统,达到了对数控系统进行二次开发的目的.实现了凸轮轴的磨削,满足了用户的需要,可应用到大型数控切点跟踪曲轴磨床的研究中.具有非常积极的意义。
(审核编辑: 智汇胡妮)