APP下载

基于840D的数控磨齿机二次界面的开发

2012-07-04陈学军林海波吴钢华

制造业自动化 2012年6期
关键词:窗体参数设置数控系统

陈学军,林海波,吴钢华

CHEN Xue-jun1,3, LIN Hai-bo2, WU Gang-hua3

(1. 台州职业技术学院 电子电气系,台州 318000;2. 台州职业技术学院 机电工程学院,台州 318000;3. 上海大学 机电工程与自动化学院,上海 20072)

1 概述

在数控加工中,由于标准数控系统采用标准的G代码编程,标准操作界面,一般用户只能用直线、圆弧插补指令编制加工程序,机床厂家也只能对一些如报警类的文本等进行一些编辑。对于一些由复杂曲线或曲面所构成的非圆零件的磨削,就需要进行特殊曲线的插补、误差补偿、工艺参数的实时调整等[1],这些功能的实现都对操作人员的技术水平和操作经验提出较高的要求;另外,在加工中经常会遇到一些相似的复杂零件,若采用传统编程,将造成工作量大、易出错,生产效率低等问题。 针对这些问题,对一些专用设备如磨床等,根据用户要求开发数控系统的二次界面,实现各种参数补偿或参数化自动编程等成为提高生产效率的关键。西门子840D数控系统的二次开发功能为实现这些参数化编程和参数补偿等提供了平台。本文研究了西门子数控系统的OEM 开发软件和开发环境 ,主要针对数控磨齿机的用户界面要求,进行了二次界面的设计与嵌入,实现数控齿轮磨削的参数化编程和误差补偿。

2 西门子840D数控系统介绍

2.1 数控系统硬件结构

SINUMERIK 840D 数控系统的CNC分为五个部分,由人机界面CPU(MMC-CPU)、数字控制CPU(NCK-CPU)和可编程逻辑控制器CPU(PLCCPU)三部分再加上伺服驱动控制和中间通讯部分。在物理结构上,NC-CPU和PLC-CPU合为一体,合成在NCU(Numerical Control Unit)中,但在逻辑功能上相互独立。 人机界面负责NC数据的输入和显示,实现机床的操作、监视、编程、参数设置等功能,它由OP单元、MMC单元(人机通信)、MCP(机床操作面板)三部分组成;可编程控制器PLC具有机床逻辑控制、机床操作、PLC数据管理等功能;NCK具有NC 代码执行、代码预处理、插补计算、伺服控制、NC数据管理等功能。SINUMERIK 840D 是一个开放的数控系统,用户购买开发软件包,即可通过API调用系统内置的各种功能,定制窗口界面,且开发环境为在通用PC 的WINDOWS 平台下用 VB、VC 等图形化软件进行开发。

2.2 840D数控系统的OEM开发软件

840D数控系统的开发软件是OEM软件包,可用在MMC103以上各种机床界面的二次开发。将OEM 开发软件安装在计算机上,在HMIAdvanced 文件中,OEM 与数据管理文件DH、头文件HD、临时文件夹ALTMP、用户修改信息USER、MMC2标准用户界面和其他信息ADD ON等文件夹一起构成了SINUMERIK840D系统文件结构,OEM 软件包的主要功能有:人机界面上各种软件的定义;利用 OEM提供的 DDE 接口,可以实现NCU 中文件的管理及各种变量和参数的访问、R 参数访问、PLC 中各种变量的访问、MMC中文件的管理[2]。

3 磨齿机OEM软件开发

OEM 软件中的顺序结构控制提供了西门子程序的标准框架,也提供了很多标准的模块和窗体。按照用户需求编写的 OEM开发程序必须嵌入到西门子提供的标准顺序控制的框架中,使用完整的顺序控制,HMI软件包才支持程序,否则不能进行程序的运行[3]。为了快捷地进行OEM软件的开发设计,我们可以利用HMI-Programming-Package中的OEM Samples实例,选择其中一个实例如OEMBSP0进行操作界面设计、动态链接库的创建等。

3.1 多窗体操作界面的设计

磨齿机加工的的非圆齿轮种类不同、形状各异,但由于工件轮廓形成具有规律性,其形状可用诸如齿数、模数、压力角和螺旋角等有限个特征参数来描述[4]。根据数控磨齿机的功能要求,可将齿轮数控编程所需的参数分为五组:齿轮类型参数、齿轮参数、刀具参数、工艺过程参数和机床安装参数[5]。开发的操作界面的整体框图如图1所示:

图1 数控磨齿机参数化编程软件框图

用VB进行操作界面的设计,每一框中的内容就是一个界面,每个界面包括窗体和模块,本设计一共十个窗口,每一个窗口作为单独的子功能,以子窗口的形式分别被调用,多个窗体一起组成整个界面功能。 分别为对窗体的有关属性是这样设置的:标题(Caption),名称(Name),标注(Tag)都设置成一个内容,一般按照窗体的序列(OEMFRAM0至OEMFRAM9)或窗体的名称来设置,便于程序的应用与调用。

在VB环境中,把设计的数控磨齿机软件界面控制程序的窗体和模块生成gearwheel.exe执行程序,以便嵌入到西门子提供的标准顺序控制中。

3.2 动态语言链接库的创建

西门子提供的标准控制界面的水平软键的菜单文本在VB环境下是不能编辑的,只有通过VC语言创建动态链接库来实现写入。创建顺序控制的动态语言DLL要根据相应的RC文件,利用VC++来创建。创建动态链接库之前,先建立一个RC源文件,即一个用写字板来编辑的RC文本。本工程中的RC源文件的部分内容如下

STRINGTABLE DISCARDABLE

BEGIN

0 "10 " //水平软键的起始地址

1 "100" //垂直软键的起始地址

2 "200" //对话框或文本的起始地址

10 "机床状态" // 第 一个界面的第一个水平软键的文本

11 "参数设置" // 第一个界面的第二个水平软键件的文本

12 "误差补偿" // 第一个界面的第三个水平软键的文本

13 "运行轨迹" // 第一个界面的第四个水平软键的文本

16 "退出" // 第一个界面的第七个水平软键的文本

END

文本中的内容就是软件标签和对话框、标签上要实现的文本,所以RC文件中的文本与软键等控件有一一对应的关系[6]。RC文件建立后,利用VC++,生成动态链接库G_UK.DLL,并确保所处的文件是“release”,而不是“debug”。

3.3 界面的嵌入

OEM软件顺序控制主要有以下六个文件:初始化文件REGIE.INI,执行程序文件GEARWHEEL.EXE,MMC.INI ,状 态 管 理 文件GEARWHEEL. ZUS , GEARWHEEL. INI,窗口管理文件GEARWHEEL. MDI ,语言文件LANGUAGE. DLL,其结构如图2所示。

图2 OEM顺序结构

下面通过全数控磨床控制界面的嵌入实现过程,来说明整个顺序控制的结构和各文件之间的功能和关系。

1)建立程序管理文件Regie. ini

Regie是一个控制程序,可以对辅助程序(基本模块)、区域应用程序、动态链接库和VBX文件进行柔性管理,它具有系统初始化、加载动态链接库、启动应用程序、系统配置、区域转换的功能。顺序控制的启动是是由regie预先起动辅助应用(DDL,VBX)到区域应用。当一个应用程序启动后,Regie就等待,直到提示初始化结束。Regie分三种类型的区域应用:一种是标准的OEM区域应用,由VB创建,嵌入到顺序控制中;第二种是WINDOWS下的PCs用户应用程序;第三种是WINDOWS下的标准应用程序如EXCEL或EDIT等。,Regie用 REGIE.INI、REGIE.DLL、Regielanguage.INI、OEMFRAME.INI、MMC.INI文件来实现这些区域应用程序。

Regie. Ini可用文本进行编辑,就象windows的其他初始化文件一样。各应用程序是由regie开始管理启动,其信息一起置于regie. ini中,构成程序管理文件。因此,用户开发的所有应用程序都要在Regie..ini中进行配置,程序都需要通过它来嵌入到西门子标准的 HMI 系统中。

在C:SiemensSinumerikHMI-Advancedmmc2中, regie. ini已经进行了标准化的设置,要想把设计的应用程序嵌入到标准界面中,只需在regie中修改一些设置。在[TaskConfiguration]中,task0-7对应着标准界面八个水平软键,HSK0~HSK5为数控系统标准控制界面按键,设计时一般从HSK6、HSK7进入用户自己开发的OEM软件控制。在数控磨齿机床的OEM软件设计中,可基本沿用标准界面框架控制,本设计的OEM应用程序名为gearwheel,由HSK6软键进入应用程序,响应极限时间为20s。在C:SiemensSinumerikHMIAdvancedOEM下的regie. ini中,进行如下设置:

[TaskConfiguration]

Task6=name:=gearwheel, timeout:=20000,PreLoad:=true

在系统启动时需要直接进入并显示设计的应用程序的画面,设置如下:

图2 OEM顺序结构

[Miscellaneous]

PoweronTaskIndex =6

这样,只要按下水平软键第七个键,就进入到开发的应用程序中。在此磨齿机床的OEM软件开发中,沿用标准用户界面MMC2中的mmc. in,i不再另进行设置。

2)在…/OEM/下建立新的文件夹GearWheel,并在GearWheel中以文本形式建立子窗口列表文件GearWheel.MDI及控制文件GearWheel.ZUS 。

其中MDIList是开发的二次界面的子窗口的列表,所有的子窗口名称列表都在 GearWheel.MDI中。

GearWheel.MDI用写字板编辑,包含了各子窗口的名称、子窗口的类型、预处理措施和注释等信息[7]。本磨床的二次开发控制软件中,经过合理规划和设计,进行如下设置:

"OEMFRAM0" 1 //主界面

"OEMFRAM1" 1 //机床状态

"OEMFRAM2" 1 //参数设置

"OEMFRAM3" 1 //误差补偿

"OEMFRAM4" 1 //运动轨迹

"OEMFRAM5" 2 //齿轮类型

"OEMFRAM6" 2 //齿轮参数

"OEMFRAM7" 2 //刀具参数

"OEMFRAM8" 2 //工艺参数

"OEMFRAM9" 2 //安装参数

"OEMFRAM0" 、"OEMFRAM1"等表示子窗体名称,数字“1”表示第一个状态“2”表示第二个状态,//后面为注释文字。OEM0是主界面,在程序执行时以第一个界面出现,接下来的窗体依次在相应软键按下时显现。

GearWheel.ZUS也是用写字板编辑的, 记录着开发的应用程序的所有状态和行为,描述状态中的软键分配任务。由于篇幅的关系,在此仅列出一个主界面的状态矩阵。

999 "----------------------------------------------------"

999 "Zustand Htext Vtext Childs Return Folgezustand Flag Kommentar "

999 主界面

[0] 0 0 "OEMFRAM0" "0" 0

0 -1 -1 "" "0" 1

1 -1 -1 "" "1" 2

2 -1 -1 "" "2" 3

3 -1 -1 "" "3" 4

4 -1 -1 "" "4" -1

5 -1 -1 "" "5" -1

6 -1 -1 "" "6" -1

7 -1 -1 "" "7" -1

8 -1 -1 "" "8" -1

9 -1 -1 "" "9" -1

10 -1 -1 "" "10" -1

11 -1 -1 "" "11" -1

12 -1 -1 "" "12" -1

13 -1 -1 "" "13" -1

14 -1 -1 "" "14" -1

15 -1 -1 "" "15" -1

16 -1 -1 "" "16" 0

第一个状态矩阵中的第一行中的[0]表示状态的号码,表示第一个状态,页面号为0,第一个页面是设计的主界面;第二个矩阵中的[1]表示第2个状态,页面号为1,是加工显示页面。0 0分别表示水平软键和垂直软键的起始地址, "OEM0"表示显示窗口对应的主界面名称, "0"表示返回值,最后一个0表示标志符(FLAG),标志符表示各状态控制子界面的页面序号。

第二行中首位的0表示第一个水平软键,向下0~7表示水平方向的8个软键,8~15表示垂直方向的8个软键,16表示返回键,返回值下面的数字表示按下键时将要返回的状态。其他几行的参数同第一行对应。

设计的状态矩阵一中,在主界面下,当按下水平软件的第一个按键时,将切换到页面[1],也就是"机床状态" ,当按下第2个水平软键时,将切换到页面[3],也就是参数设置画面,按下第三个水平软键时,将切换到[4] ,也就是运动轨迹画面。只要设定状态矩阵中的这些参数,就可达到满意的软键分配及页面控制功能。

3)编辑本工程的初始化文件GearWheel.ini,将其移至…/OEM/下。

GearWheel.ini是OEM界面控制的向导文件,它控制着子窗口和控制文件的管理,文件名字由程序模块PRIVATE.BAS中作为一个常量来定义。可用文本进行编辑,其内容分为CONTROL与DEBUG两大部分:

[CONTROL]

MDIList=GearWheelGearWheel.MDI

ControlFile=GearWheelGearWheel.ZUS

[DEBUG]

i_Button=1

Stop_Button=1

Recall_Button=1

设置好后把GearWheel.ini系统初始化文件拷贝到OEM目录下,否则可执行程序在运行时找洷路径。

4)在OEM中嵌入前两步生成的VB多窗体执行文件gearwheel.exe及VC语言生成的g_uk. dll与ini文件。

将前面生成的gearwheel.exe执行文件移至…/OEM/下, 将多种语言的g_uk. Dll文件移至language文件夹中,language文件夹中的RE_UK.ini初始化文件中包含了软键文本,要使HSK6(第7个水平软键)的显示文本为“齿轮磨削”, 打开RE_UK.ini文件,可进行如下设置:

[HSoftkeyTexts]

[HSK6="齿轮磨削"]

3.4 NC/PLC/HMI之间的数据传递

设计的界面嵌入后,要在界面上显示轴的坐标值、进给速度,同时把相应的参数设置等读入系统程序中实现数控机床的监控与运行。就必须要建立DDE链接来实现这些数据交换的功能,需要OEM为我们提供的DDE接口以访问NC、PLC、MMC103的变量和文件。本工程所设计的程序 NC/PLC之间的通讯是通过OEM软件所提供的OPC(OLE for process control,过程控制)和Sinumerik-COM接口来实现的[8]。使用NC-DDE服务程序所提供三种服务:变量访问(访问NC,PLC,Drives中的数据变量),区域服务(在HMI和NCU之间的文件复制),PI指令服务(调用NCU中的指令)。NC-DDE服务程序是访问底层数控部分的唯一接口,任何向数控系统传递或从数控系统接收的数据都要经过NC-DDE服务程序。用户程序通过动态数据交换协议(DDE)来调用NCDDE服务程序中的服务。所设计的磨床的NC当前坐标位置动态获取与显示:其实现方法如下:

数据自动更新

Label1.LinkTopic = "ncdde|ncu840d"

Label1.LinkItem="/Channel/MachineAxis/actToolBasePos[u2,3]"

Label1.LinkMode = 1 'Hotlink

NC 变量参数的写入:

Label1.LinkTopic = "ncdde|ncu840d"

Label1.LinkItem = "/Channel/Parameter/R[1]"

Label1.LinkMode = 2 'Manual

Label1.Caption = "4" ;写入值

Label1.LinkPoke

NC 指令的执行:

Label1.LinkTopic = "ncdde|ncu840d"

Label1.LinkMode = 2

Label1.LinkExecute "COPY_TO_NC(""C:NC est.mpf"",_/NC/_N_MPF_DIR/N_TEST_MPF,

trans)" ;送文件到 NC

数据自动更新里面,第二通道中第三根轴实际位置发生改变时系统数据自动进行更新,数据自动更新时LinkMode必须设置为1。

NC 变量参数的写入就是用户把数据4写到第一通道中的R[1]中,Label1.LinkMode = 2,即手动,动态数据交换方法必须为LinkPoke。

NC 指令的执行就是把TEST_MPF文件从MMC传送到NC。Label1.LinkMode = 2,即手动。

4 OEM软件的运行

至此,完成了整个OEM的设计过程,启动HMI-startup,进入HMI标准界面,点击“齿轮磨削“软键即进入OEM软件用户主界面,如图3所示。点击“参数设置“ 软键, 进入OEM软件用户参数设置画面,进行满足加工要求的相关参数设置。

图3 用户主界面

图4 参数设置界面

5 结束语

针对二次界面用户开发问题,本文主要研究了西门子840D数控系统OEM软件的开发方法,以数控齿轮磨削参数化自动加工为对象,提出了设计和解决方法,完成了二次界面的设计并运行。设计的二次控制界面的应用大大简化了复杂相似零件的编程,节省加工时间,提高生产率和产品精度。

[1] 徐华兵, 周军辉. 数控磨齿机加工准双曲面齿轮[J]. 现代制造工程. 2003(8): 22-24.

[2] SINUMERIC 840D/840Di HMI Environment User’s Manual[M]. SIEMENS, 2001.2.

[3] 李南, 王刚, 赵学. 开发软件OEM下界面的编制[J]. 机床与液压, 2006(8): 207-209.

[4] 胡赤兵, 余亮. 非圆齿轮数控滚齿加工的参数化自动编程系统[J]. 机械设计与制造. 2010. 2(16): 168-169.

[5] 朱秀琳, 文怀兴, 孙波. 数控磨齿机人机界面的开发[J].制造技术与机床. 2004(5): 98-100.

[6] 吴艳花. 基于VB下西门子840D数控系统界面的二次开发[J]. 兰州理工大学, 2005.

[7] 陈顺红, 张桂香. 基于840D的凸轮轴磨床数控软件的开发[J]. 制造技术与机床. 2008(3): 147-149.

[8] 魏春雪. SINUMERIK840D在轧辊磨床曲线加工中的应用[D]. 兰州理工大学, 2006.

猜你喜欢

窗体参数设置数控系统
试谈Access 2007数据库在林业档案管理中的应用
基于Qt的多窗体快速并行图形绘制方法研究
基于FANUC 32i A数控系统的外部测量设计
西门子840D sl数控系统在SC125大型车铣镗床技术改造中的应用
基于FANUC Oi mate TD数控系统的手动功能开发
数控系统中GUI软件平台设计和实现
逃生疏散模拟软件应用
蚁群算法求解TSP中的参数设置
RTK技术在放线测量中的应用
基于STM32处理器的大棚温湿度监控系统设计