摘要:西门子数控系统提供了开放式的数控平台,如何应用系统平台,调用数控系统的内核,开发出适合我国数控设备使用的数控系统引起学术界的兴趣和关注。本文基于西门子840D数控系统提供的HMI软件和开发环境,利用面向对象的编程语言VB进行人机界面的设计和利用VC建立语言动态链接库,VB、VC++接口实现用户的特殊界面及加工方法嵌入西门子系统。开发的钻铣类机床的专用操作界面在计算机上进行了模拟并在实验室的数控机床上进行了验证。
关键词:HMI;SINUMERIK840D;VB;VC
1.引言
目前,我国大多数机床行业使用的是西门子的数控系统,但是仅限于简单的使用西门子的标准数控系统和浅层次的应用,不能满足高档设备特殊需求。
尽管西门子数控系统提供了开放式的数控平台,但是如何应用系统平台,调用数控系统的内核,解决使用数控系统遇到的问题,开发出适合我国数控设备使用的数控系统,还需要做大量的研发工作。充分利用西门子提供的开发工具,开发自己的用户界面和实现特殊的加工工艺,开发系统的前端研究(如图形化参数编程,开发智能图形软件,CAD/CAM等方面的研究),后端系统研发(包括使用具有自主知识产权的电机和驱动,检测元件,反馈元件等其他设备),总之就是对系统进行二次开发。本文就是基于西门子数控系统提供的HMI软件和开发环境,研究利用面向对象的编程语言VB和VC进行钻铣类机床的专用操作界面的设计。为一些车铣加工中心使用的特殊加工(例如:滚齿等)也需专用的显示界面和控制方式提供一些经验。
2.硬件和软件要求
HMI(人机界面,即上位机数控系统应用程序(Application))必须基于的组件包括数控通讯服务器(NCDDEserver)、数控内核(SINUMERIK840DNCK)、可编程序控制器(SIMATCS7-300PLC)。人机界面的开发借助于西门子840DOEM二次开放式的开发包工具、程序高级界面编程工具VB、动态库编程工具VC来开发并实现;NCDDE服务器借助于多点接口MPI完成840D与上位机数控应用程序通讯的功能,借助于高级编程语言的通讯控件和通讯语言来实现;SINUMERIK840D
NCK完成插补运算、处理解释数控代码,执行数控程序。SIMATCS7PLC部分是具体执行逻辑控制单元。二次开发之前,PC机必须安装西门子的OEM开发包主要包括HMI Server/controls,HMI-Advanced,HMI Environmentfor PC/PG三个安装程序,在这个平台上利用VB和VC开发的程序才能在OEM环境中运行。
3.人机界面的设计方法
3.1人机界面的功能模块
根据钻铣类机床实现的功能和工作要求,HMI的安排如下图所示:
图1 人机界面的框图
机床操作分自动、手动、点动三种方式,不同的操作方式又有不同的功能,主要的功能是控制程序,显示机床坐标值和工件坐标值等;参数主要是进行参数的设置,如R参数的设置,刀具的补偿、零点偏移等;程序主要是控制零件程序的运行、显示和编辑等;通讯主要是完成启动功能,设置RS232口的参数;诊断主要是实现报警信息显示,机床进给轴的运行情况等。
这些界面都是用VB来实现的。每一个功能就是一个菜单,一个菜单就是一个界面,每一个界面都是由一个窗体构成的,所以工程中有数十个窗体。其中主窗体的结构如下图所示:
图2 系统操作主界面
3.2使用VB和VC进行程序开发
所有界面的制作都在VB中完成。单纯的界面没有任何意义,只有把界面建立在HMI的开发平台上,通过相应的连接(主要是与NCU,PLC的连接),才能实现界面与840D的通讯。操作界面主要实现的功能是①人机界面上各种软键的定义;②NCU中各种变量的访问,如刀偏、零偏、轴坐标值等;③R参数的访问;④PLC中各种变量的访问,如I/O口、标志区M、数据块DB等;⑤NCU中文件读取。VB程序能够在OEM环境中运行,界面上的控件实现以上所述功能,工程中应该包含下列文件:初始化文件OTTO.INI,程序文件OTTO.EXE,语言动态链接库OTTO_GR
.DLL,图表管理文件OTTO.MDI ,状态管理文件OTTO.ZUS。
3.2.1语言动态连接库的建立
在图2中,可以看到水平软键上有菜单文本,这些文本在VB环境下是不能编辑的,水平软键是界面的标准控制部分,起着触发的作用。软键上的文本是通过VC语言创建动态链接库来实现写入的。同时还有对话框、消息、标签等文本也可以从语言动态链接库中读取。
在创建动态连接库之前,必须先建立一个源文件,即一个RC文本,用写字板编辑器来编辑的。原文件中的内容是软键标签和对话框、标签上要实现的文本,所以在RC文件中的文本与软键等控件都有一一对应的关系。本工程取名为oembsp16,RC源文件的部分内容如下:
STRINGTABLE DISCARDABLE
BEGIN
0 "10 "//水平软键的起始地址
1"100"//垂直软键的起始地址
2 "200"//对话框,消息,或出错等
10 "机床"//第一个界面的第一个水平软键的文本
11 "参数"//第一个界面的第二个水平软键的文本
12 "程序"
13 "通讯"
14 "诊断"
15 " "
END
RC文件建立之后,开始新建本工程(取名oembsp16)的动态连接库。使用Visual C++ 6.0新建一个工程,把编辑好的o16_.rc文件拷贝到目录res下,把o16_.rc包含到o16_UK.rc2的源代码中。运行此程序,生成动态连接库o16_UK.DLL,并且确保所处的文件夹是‘release’ 而不是‘debug’。
此时,工程所需要的语言动态链接库就创建好了。必须把此动态链接库拷贝到OEM指定的目录下,当程序运行时,会到指定的地址进行文本的读取。
在程序代码的编辑中,必须有下列的语句,指明文件的地址。ret = LoadString(g_hLanguageLibHandle, 210, chtmpString, MAXSTRINGLEN)
Label1.Caption = chtmpString
g_hLanguageLibHandle 是语言动态链接库的全局变量,标签Label1上的文本是语言文本中210后面的内容:轴。
3.2.2 初始化文件的建立
1.用记事本编辑系统的初始化文件:oembsp16.INI,具体操作:
[CONTROL]
MDIList=OEMBSP16\oembsp16.MDI
ControlFile=OEMBSP16\oembsp16.ZUS,其中MDIList是子窗口的列表,所有的子窗口列表都在位于目录OEMBSP16下的文件oembsp16.MDI中;ControlFile表示控制的文件,如状态和动作都位于同一目录的下的文件oembsp16.ZUS中。
3.2.3 图表管理文件的设置
oembsp16.MDI子窗口列表文件的主要内容如下:
"OEMFRM1" 1
"OEMFRM2" 2
"OEMFRM3" 3
"OEMFRM4" 4
"OEMFRM5" 5