……………………
同样用写字板来编辑,由于篇幅问题,选择了工程中的部分窗体列出,OEMFRM1是第一个窗体,后面的序号是1,表示第一个状态,在程序执行是在第一个界面出现。接下来,窗体依次在相应软键的按下时显现。本工程设计到二十几个窗体,故不能一一列出。
3.2.4 状态管理文件的设置
oembsp16.ZUS文件也是用写字板来编辑的,主要描述状态中的软键分配任务。
999 "----------------------------------------------------"
999 "Zustand Htext Vtext Childs Return Folgezustand Flag Kommentar "
999 "----------------------------------------------------"
[0] 0 0 "OEMFRM1" "" "0" 0
0 -1 -1 "" "0" 1
1 -1 -1 "" "1" 4
2 -1 -1 "" "2" 7
3 -1 -1 "" "3" 0
4 -1 -1 "" "4"0
5 -1 -1 "" "5"0
…………………………………
3.2.5 人机界面的信息与NCU/PLC中变量的传递
NCK中的各个变量存储在数据块中,数据块分配给NCK的不同区域,参见下面的图5-7示:NCK一共分了六个区域:NCK(N)、方式组(M)、通道(C)、刀具(T)、轴(A)、进给驱动/主轴驱动(V/H)。
在每个区域,变量一般以结构形式存储,或者以结构的阵列(表)存储。因此,我们在存取变量时,在地址中必须包含以下的信息:区域+区域号、模块、变量名(或者列号)、行号。一般情况下在操作系统中我们存取的变量有下列三种:单行变量(由单个值构成)、多行变量(单位尺寸字段)、多行和多列变量(双尺寸字段)。
根据变量在NCK中的地址分配,在程序设计时,读取变量和写入数据时是通过DDE建立连接,使用全局变量”g_chNCDDE-ServiceName”作为Link Topic(链接主题)。把NCDDEServerName和NcddeMachineName输入到MMC.INI文件中,此时就成为了链接主题,中间用“|”隔开。下面是读取三个轴的名称时用到的程序代码。
Sub Form_Load
achsname(0).LinkTopic= g_chNCDDEServiceName
achsname(0).LinkItem = ”/Channel/MachineAxis/name[1]”
achsname(0).LinkMode = 2
achsname(0).LinkRequest
achsname(1).LinkTopic= g_chNCDDEServiceName
achsname(1).LinkItem = ”/Channel/MachineAxis/name[2]”
achsname(1).LinkMode = 2
achsname(1).LinkRequest
achsname(2).LinkTopic= g_chNCDDEServiceName
achsname(2).LinkItem = ”/Channel/MachineAxis/name[3]”
achsname(2).LinkMode = 2
achsname(2).LinkRequest
End Sub
其中achsname(0).LinkMode = 2表示只有激活 LinkRequest时,才更新目标控件。也就是只有向服务器请求,才把改变的数据传递到目标控件上显示在界面上。”/Channel/MachineAxis/name[1]”这是变量的地址,第一个轴的地址。在name[1]中,1表示第一个轴的名称,它的具体的参数表达式这样的:变量名【c,u,StartIndex,【EndIndex】】,此处的变量名是指NCK/PLC的变量名;c是指NCK中数组变量的列索引,在PLC中是指数据模块的索引,只用于多维数组的存取;u是单元索引,只能用在存取NCK变量,例如通道索引,u代表单元;StartIndex代表被读取的数组变量的第一个值的索引;EndIndex(可选择的)代表要读取的数组变量值的个数。
本系统中还要读取坐标轴的当前进给速度、轴的当前坐标值、向PLC中写入数据等,都是通过这种方式来进行的。
3.2.6 文件传递,Domain Service(域服务)
本系统除了存取NCK/PLC中的变量,实现数控机床的监控,还要进行零件的加工,必须把某些程序和文件从HMI中复制文件存到NCK中,反之亦然。文件的存取是由数据管理器来实现的,必须使用IMC-File和IADS或者FileView-Command。
本系统利用下列的命令进行文件的传递:如下表1所示
表1 域服务的命令 命令 描述 COPY_TO_NC 从MMC中复制文件到NCK中 COPY_TO_NC_BINARY 从MMC中复制文件到NCK中 COPY_FROM_NC 从NCK中复制文件到MMC中 COPY_FROM_NC_BINARY 从NCK中复制文件到MMC中 MAP_ACC_NC 从NCK加载ACC文件以备DDE接口使用 这些函数的作用是在HMI和NC/PLC之间进行传递数据(或者数据文件),比如系统中要传递的零件程序,工具数据等。
把这些文件拷贝在相应的文件夹下面,就可以打包成可执行程序,在HMI的开发平台上运行。
4.结束语
本文作者在西门子840D数控系统提供的HMI软件和开发环境下,利用VB进行钻铣类机床的特殊操作界面设计,使用VC++建立界面文件的语言动态链接库,VB、VC++接口实现用户的特殊界面及加工方法嵌入西门子系统。操作界面在计算机上模拟成功后,在实验室的配备840D数控系统的钻铣机床实现了控制和监控。
参考文献
[1]SINUMERIK 840D/840DiSINUMERIK 810D/
FM—NCHMI Programming Package Part 1,SIEMENS, User’s Manual Edition 03.2003
[2]John Michaloski,Sushil Birla,Jerry Yen,Software Models for Standardizing the Human-MachineInterface Connection to a Machine Controller,John Wiley and Sons Ltd, Chichester, UK, 2003
[3] 范逸之, 廖锦棋编, Visual Basic与数字输入输出适配卡控制[M],清华大学出版社,2003.7,1版
[4]李东, 孙德保, 动态数据交换(DDE)及应用实例[J],电脑,1995.4