第10章操作员扩展界面的编程与二次开发10.1功能概述操作员扩展界面功能是基于MMC或PCU的一种系统自带的编程文件编译器,它是一种文本结构的语言,通过ASCII文件配置来实现,比如记事本或者HMI编辑器。新编写扩展出来的操作界面存储在设计文件中,这些文件经过数控系统的HMI软件自动编译并显示在屏幕上结果,在供货时并不提供设计文件,必须由机床制造厂家或者使用户来实现这种界面的扩展和二次开发。使用“操作员扩展界面”可以实现以下功能:(1)显示对话框并提供操作软键、变量和表格、文本和帮助文本、图形和帮助画面;(2)通过操作软键或者选择PLC实现调用对话框;(3)动态重组对话框,包括修改或删除操作软键、定义并设计变量栏、显示文本或图形、更换文本或图形、删除文本或图形;(4)用户通过不同的动作启动不同的响应;(5)实现对话框间的数据交换;(6)读写NC变量、PLC变量、用户变量并运算;(7)执行子程序、文件功能、PI服务以及外部功能;(8)根据用户组设计不同的保护等级。在HMI操作界面中,多个相连的对话框构成了一个操作树,如果能从一个对话框切换入另一个对话框,则表示这两个对话框间存在联系。通过对话框内重新定义的水平或者垂直软键可以返回上级对话框或者进入任意一个对话框。在每个登入软键下都可以生成一个操作树,如图10-1所示。图10-1窗体操作树原理在一个规定的设计文件中定义作为操作过程出发点的一个或者多个登入软键。操作软键的定义决定执行下一步动作的自定义对话框或者其他软键栏,按下登入软键则载入所属的对话框,同时属于对话框的相应软键激活。10.2编程语法10.2.1登入软键与组态文件在数控系统的缺省HMI界面上有空白软键,机床制造厂家或者用户可以给这些空白软键自行定义其功能,如表10-1所示。在相应的COM文件中,可以定义操作软键的显示文本或图形标签,当这些软键按下时,系统会自动搜寻固定文件名的组态文件,通过组态文件内部的编程,形成用户个性化的界面,并显示在HMI界面上。表10-1空白软件及所对应的组态文件基本画面水平软键设计文件加工JOG1MA_JOG.COM加工MDA1MA_MDA.COM加工自动方式2MA_AUTO.COMParameter7PARAM.COMProgram8PROG.COMService7SERVICE.COMDiagnose7DIAG.COMStartup7,扩展软键栏6,7STARTUP.COM编辑器(已占用)2,3,4,5AEDITOR.COM编辑器6,扩展软键栏6,7AEDITOR.COM在HMIAdvanced软件中,系统按照CUS.DIR-CST.DIR-CMA.DIR的顺序搜索上述组态文件。10.2.2窗体设计组态文件的组成部分包括:登入软键说明、对话框定义、变量定义、块说明以及软键栏定义,如下所示例。//S(START);登入软键定义....//END//M(.....);对话框定义DEF.....;变量定义LOAD;块说明...END_LOADUNLOAD...END_UNLOADACTIVATE...END_ACTIVATE...//END//S(...);软键栏定义//END对话框是操作界面上的一个组成部分,操作界面包含标题行、对话框单元和/或图形、显示消息的输出行以及8个水平软键和8个垂直软键,如图10-2所示。对话框窗体包括变量、帮助画面、文本、属性、系统或者用户变量、短文本的位置、输入/输出栏的位置、颜以及帮助等组成。对话框说明的结构如下表10-2所示。图10-2对话框窗体的构成表10-2对话框结构定义说明块功能注释//M...;对话框的开始标识DEFVar1=......;变量HS1=(...)...;软键PRESS(HS1)LM...END_PRESS;方法的开始标识;动作;方法的结束标识//END;对话框的结束标识对话框编程的句法为://M(名称/[标题]/[图形]/[尺寸]/[系统或用户变量]/[图形位置]/[属性]),参数说明如表10-3所示。表10-3定义对话框的参数说明参数功能说明名称对话框的名称标题对话框的文本标题或者从和语言相关的文本文件中调用文本(例如$85060是个文本号,在自定义的ALUC_XX中,XX代表语言,CH,GR,UK,FR,SP,IT等,这里也可以直接写上要显示标签的文字,要用双引号,比如:DATA。)图形图形文件,路径在双引号内尺寸对话框的位置和大小,单位像素(和左/右边缘的间距、宽度、高度),以屏幕的左上角为基准,数据值用逗号相隔。系统或者用户变量指定当前光标位置的系统和用户变量,可以通过系统或者用户变量将光标位置传送给NC或PLC。第一个变量索引为1,变量的顺序和变量设计顺序一致。图形的位置图形的位置,单位像素(和左/上边缘的间距),以对话框的左上角为基准。和上边缘的最低间距为18像素,数据值用逗号相隔。属性给定的属性用逗号相隔,CM0为预设置,每行单独分列;CM1为以包含最多列的行为标准分列。CB0为预设置,在打开对话框时处理所有CHANGE部分;CB1为只有在附属的值改变后才处理CHANGE部分。在PCU50的F:\dh\cst.dir目录下创建一个文件“MA_AUTO.COM”,可以用记事本文件编辑好,然后传到PCU50的这个指定目录下,编辑内容如下://S(Start)HS2=(Sample,ac7,se1)PRESS(HS2)LM(MASK1)END_PRESS//END//M(MASK1/myscreen)DEFVAR_A=(R3///PleaseinputRparameter,Diameter(R3),,mm/wr2,ac7//$R[3]/10,70,150/120,70)DEFabcde=(R3///PleasechangeX1G0Speed,X1_G0_Speed,,mm/min/wr2,ac7//$ma_max_ax_velo[x1]/10,100,150/120,100)HS1=()HS2=()HS3=()HS4=()HS5=()HS6=()HS7=()HS8=(EXIT,ac7,se1)vs1=()vs2=()vs3=()vs4=()vs5=()vs6=()vs7=()vs8=()PRESS(HS8)EXITEND_PRESS//END定义HS2为”Sample”,访问等级7,显示状态为“可见”。LM功能用于调用另外一个画面,定义为“MASK1”定义画面属性10.2.3软件菜单软键菜单指的是在窗体内显示的所有的水平和垂直软键,除了已经存在的软键菜单外,用户可以重新定义新的软键菜单,它可以部分或完全覆盖已存在的软键菜单。所有水平软键和所有垂直软键分别布置在一起称作软键栏,HSx(x1-8):水平软键1至8;VSy(y1–8):垂直软键1至8。操作软键栏的描述如表10-4所构建。表10-4软键栏的构成说明块功能注释//S...;软键栏开始标记HSx=...;定义软键HS1=(...)...;软键PRESS(HS1)LM...END_PRESS;方法的开始标识;动作;方法的结束标识//END;软键栏结束标记操作软键定义句法:SK=(文本[,存取等级][,状态]),参数说明如表10-5所示。表10-5操作软键定义句法说明功能注释SK软键,例如:HS1到HS8,VS1到VS8文本定义文本图文件名称\\my_pic.bmp或者通过单独的文本文件$85199,例如:和语言相关的文本文件的下列文本:8510000\\c:\pic\my_pic.bmp,显示在软键上的图形大小:最大80x34像素。存取等级ac0到ac7(ac7:预设置)状态se1:可见(预设置)se2:不可操作(灰色标签)se3:高亮显示(最后操作的软键)操作员只能访问符合其保护等级和各个低于其保护等级的信息,不同的保护等级有下列不同的含义:ac0是最高的保护等级,ac7是最低的保护等级,如表10-6所示。表10-6系统访问权限定义保护等级禁用密码区域ac0密码西门子ac1密码机床制造商ac2密码维修ac3密码用户ac4钥匙开关位置3编程员,调试员ac5钥匙开关位置2合格的操作员ac6钥匙开关位置1受过培训的操作员ac7钥匙开关位置0学过相关内容的操作员下面以一个例子来说明操作软键的定义,在记事本中编写如下文本://S(软键栏1);软键栏开始标记HS1=(新建,ac6,se2);定义软键HS1,分配标签OK,保护等级6和状态“不可操作”HS3=(\\图1.bmp);分配图形给软键HS5=(Exit)VS2=(子屏幕窗口)VS3=($85011,ac7,se2)VS7=(取消,ac1,se3);定义软键VS7,分配标签“取消”,保护等级1和状态“高亮”VS8=(OK,ac6,se1);定义软键VS8,分配标签OK,保护等级6和状态“可见”。PRESS(HS1);方法开始标记HS1.st=“计算”;分配标签文本给软键...END_PRESS;方法结束标记PRESS(RECALL);方法开始标记LM(“屏幕窗口21”);载入对话框END_PRESS;方法结束标记//END;软键栏结束标记登入软键是和对话框无关的软键,它不由对话框调用,而是在第一个新对话框之前设计,为了可以到达登入对话框或者一个登入软键栏,必须对登入软键进行定义。通过登入软键只可以触发特定的功能:(1)通过功能LM可以装载另一个对话框。LM(名称[,文件])(2)通过功能LS可以显示另一个软键栏。LS(名称[,文件][,合并])(3)通过功能EXIT可以离开新配置的操作界面并返回标准应用程序。(4)通过功能EXITLS可以离开当前的操作界面并装载一个定义的软键栏。(5)通过功能EXE可以在HMI高级上调用一个程序,该程序通过HMI高级的OEM包建立作为应用程序,或者调用自由轮廓编程。另外还有回调RECALL按键可用于操作,该按键不必定义,在运行期间内,可以向按键分配属性“状态”和“存取等级”。如果该按键没有指定动作,即功能、变量计算、属性改变等,则可以通过回调RECALL按键退出新配置的操作界面并返回标准应用程序。在程序运行中,通过方法(如PRESS)中可以读取和更改软键属性中的Text、Accesslevel以及Status,其中SK.st=文本、SK.ac=存取等级、SK.se=状态。10.2.4窗体中的方法在对话框和与对话框相关的软键栏中(软键栏由新设计的对话框调用),可以通过不同的事件(退出输入栏,按下软键)触发某些特定的动作,这些动作设计在方法中。(1)CHANGE当变量值已改变时运行CHANGE(改变)方法,即在CHANGE(改变)方法中设计变量改变时立即运行的变量计算。单元特定的CHANGE方法和全局的CHANGE方法有所不同,如果系统或者用户变量已分配一个变量,则可以在CHANGE方法中循环更新变量值,通过如下例子来说明:DEFVAR1=(S//////DB20.DBB1);Var1分配一个系统变量CHANGE(VAR1);编程单元特定的CHANGE方法IFVAR1.Val1VAR1.st=“工具正确!”;如果系统变量的值≠1,则变量的短文本为:工具正确!otto=1ELSEVAR1.st=“注意错误!”;如果系统变量的值=1,则变量的短文本为:注意错误!otto=2ENDIFVAR2.Var=2END_CHANGE当改变任意一个变量值且没有设计单元特定的CHANGE方法时,运行全局CHANGE方法,其定义实例如下。CHANGE();编程全局特定的CHANGE方法EXIT;如果任何一个变量值改变,则退出对话框。END_CHANGE(2)FOCUS当对话框中聚焦(光标)定位在另一个栏上时,运行FOCUS方法,方法FOCUS不允许通过一个导航事件触发。光标位置只允许在软键PRESS块、CHANGE块,等各种块中改变,光标移动的反应预先固定定义。FOCUS定义句法如下:FOCUSDLGL(聚焦已设定在变量FOC上。)END_FOCUS(3)LOADGRID(LG)