sapro编程手册_第1页
sapro编程手册_第2页
sapro编程手册_第3页
sapro编程手册_第4页
sapro编程手册_第5页
已阅读5页,还剩77页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

ACX84HMI设计培训,SaproACX84HMITraining,2,July2007,了解ACX84HMI硬件学习操作SaphirScope工具学习设计和创建HMI菜单亲自操作创建您自己的HMI,1Introduction/Goals介绍/目标,1.2ACX84Hardware硬件介绍,SaproACX84HMITraining,July2007,蓝色背光LCD液晶显示器4行7列中文字符或8行20列英文字符显示5个操作按键4个功能按键可以手持,也可以面板安装或直接吸到铁质电柜面板上(其背部有磁性背板)红色报警灯指示绿色状态灯指示可以根据具体的应用进行设置,有些按键和指示灯是可以自由编程的可以根据客户需求来定制前面板的面膜(打上客户自己的LOGO)防护等级达到IP65标配2M长扁平电缆,如需要时可以自加两个RS485转换器和DC12V电源将其延长至最大到1200M距离.,1.2.1人机界面手操器HumanMachineInterface(HMI)ACX84.910.,SaproACX84HMITraining,5,July2007,1.2.2ACX84的按键介绍,HomePage首页键(按住此键后再上电可以看到ACX84的OS版本)BackSpace返回键ON/OFF开机键(FreeLED,可以自定义的灯和按键,比如可以定义成按此键5s以上可以开关机组,且开机后此键上的绿色LED会闪烁)Alarm报警键(有报警后此键上的红色LED会闪烁,报警已经自动或者手动复位后可以熄灭红色LED)Up向上键Down向下键Enter回车确认键Increase更改数据键(向上增加)Decrease更改数据键(向下减少),1.3SaphirScope软件工具使用,安装系统需求简短的介绍和相关操作,SaproACX84HMITraining,7,July2007,1.3.1系统需求和安装盘,内存在512MB以上CPU在PentiumIII1.2Ghz以上Windows2000或WindowsXP操作系统.当前用户要有可以安装软件的管理员权限.,SaproACX84HMITraining,8,July2007,1.3.2SaphirScope界面介绍,SaproACX84HMITraining,9,July2007,1.3.4从Scope中看数据点(datapoint)的地址,数据点:回风湿度UIA4RtnHumi:对象类型Objecttype0 x1023;对象识别号ObjectID0 x3C5377BF;成员号MemberID0 x0009,SaproACX84HMITraining,10,July2007,2.12常见对象属性(1)模拟量测量对象0 x1023MeasureEx,HMI常用此对象的属性,SaproACX84HMITraining,11,July2007,2.13常见对象属性(2)开关量消息对象0 x1024MessageEx,HMI常用此对象的属性,SaproACX84HMITraining,12,July2007,2.14常见对象属性(3)实数设定点对象0 x1011SetpointReal,HMI常用此对象的属性,SaproACX84HMITraining,13,July2007,2.14常见对象属性(4)枚举设定点对象0 x1012SetpointEnum,HMI常用此对象的属性,SaproACX84HMITraining,14,July2007,2.17常见对象属性(7)开关量输出对象0 x1007SwitchCommand,HMI常用此对象的属性,SaproACX84HMITraining,15,July2007,2.18常见对象属性(8)位置量输出对象0 x1009PositioningCommand,HMI常用此对象的属性,SaproACX84HMITraining,16,July2007,2.19常见对象属性(9)计数器对象0 x100DCounter,HMI常用此对象的属性,SaproACX84HMITraining,17,July2007,1.4.1HMI设计的重要目录及文件简述(1),SaproACX84HMITraining,18,July2007,1.4.2HMI设计的重要目录及文件简述(2),SaproACX84HMITraining,19,July2007,1.4.6模板文件Templates.txt,MainDesignfileTemplates.txt:HMItemplatefile.Language.csv:Muti-Languagefile.,SaproACX84HMITraining,20,July2007,1.4.7语言支持文件Language.csv,Languages.csv文件结构,SaproACX84HMITraining,21,July2007,1.4.8对象名语言文件Objlang.csv,SaproACX84HMITraining,22,July2007,1.4.9对象名语言文件Objlang.csv,SaproACX84HMITraining,23,July2007,1.5HMI的处理机制,1.6HMI的bin文件编译和下载,SaproACX84HMITraining,25,July2007,1.6.1实际中编译生成HMI的bin文件Createconfigdata,SaproACX84HMITraining,26,July2007,1.6.2把编译好的bin文件下载到ACX36控制器里(1),第一步:用特制的SBT编程电缆将计算机的COM端口(RS232)与ACX36控制器的服务端口(RJ45)相连接,上电.,SaproACX84HMITraining,27,July2007,1.6.3把编译好的bin文件下载到ACX36控制器里(2),第二步:然后点击“Loadfiles”按键来下载bin文件:,第三步:单击“Stopapplication”按键来停止ACX36控制器中的应用程序的运行:,SaproACX84HMITraining,28,July2007,1.6.4下载编译好的bin文件到ACX36控制器里(3),第四步:单击“Load”按键来下载所有的bin文件到ACX36控制器中:,Bin文件下载中.,ThatsOK.,第五步:bin文件下载完成后,单击“Startapplication”按键来启动运行ACX36控制器中的应用程序.,OK,完成.,2.学习ACX84的HMI设计,SaproACX84HMITraining,30,July2007,2.1在Sapro应用程序设计之前您应该知道的事情(1),HMI能够显示所有Scope能够查看的内容,但Scope只能查看拥有“DB”输出的功能块FB即对象Object的所有成员。因此HMI也只能显示这些内容.所以推荐首先创建Sapro应用程序,直到程序完成,然后再启动Template模板进行HMI的编程。因为成员标识号MemberID即数据点Datapoint的地址可能会随着程序每次的更改而发生变化。因此,每次应用程序修改后都要检查相应的Template模板中的数据点Datapoint地址是否对应。,例如:SetpointReal这个带有DB的FB功能模块就可以在Scope中查看到它的所有成员内容,而REALtoAO这样的FB就不行.,SaproACX84HMITraining,31,July2007,2.1在Sapro应用程序设计之前您应该知道的事情(2),我们知道FM是将若干FB封装起来的模块,那么如何在Scope中查看它里头的FB呢?,_FM_这一特殊的字符串可以被Scope辨识为菜单项.菜单将按照程序结构中的位置创建.没有_FM_项的功能块将无法被Scope辨识.,给功能模块FunctionModule(FM)起的名字”String”字符串要尽量简短,保证最终到FB的名字字符串的总长度不超过14个英文字符,否则可能会造成同名冲突致使Scope不能正确辨识这些FB,而且可能会影响应用程序逻辑Logic的正确执行.必须保证已经有一个具备一些功能的Sapro应用程序下载到了SAPHIR控制器中并已经在运行状态之后,实际的HMI设计和编写工作就可以正式开始了.,SaproACX84HMITraining,32,July2007,2.2密码权限级别,权限级别,由于安全原因,HMI设计之前必须考虑和定义一些密码权限级别.相应的密码级别代表授予相应的权限,而且是向下覆盖的.较高密码级别的用户可以拥有较低密码级别的用户的所有权限,而且可以更改较低级别用户的密码.用户只有拥有某种权限才可以进入此权限的相关页面,或者修改某些数值.ACX84可以定义最多8种不同的密码级别.但一般的应用种,3-4个密级足以.关于密码功能部分的代码在默认的标准模板文件Template.txt的第97页,使用时可以之间链接到此页即可.默认的密码是:第一级1111,第二级2222,以此类推.注意,最好不要用第八级8888做密级权限使用.,SaproACX84HMITraining,33,July2007,2.3菜单结构设计方法,模板文件Template.txt里仅有页面组成。为了能够按菜单结构进行显示,您必须采用下面的策略:,SaproACX84HMITraining,34,July2007,2.4设计HMI的菜单结构(EN),一般来说,要先设计好HMI的菜单结构,而且最好是在Sapro应用程序编程之前.这次实践操作因Sapro应用程序是已经编写好的,所以只是基于如下中英双语的HMI菜单来进行HMI编程的.,SaproACX84HMITraining,35,July2007,2.5设计HMI的菜单结构(中文版),3.用HMIEditor编写HMI模板,SaproACX84HMITraining,37,July2007,3.1HMIEditorinScope,HMIEditor,生成写入Template和Language文件,SaproACX84HMITraining,38,July2007,3.2对话框中的常用选型说明,SaproACX84HMITraining,39,July2007,3.3实时时钟显示和更改DateTime,在屏上指定适合的位置和长度,右键选择Date或Time,SaproACX84HMITraining,40,July2007,3.4纯文本编辑PlainText,在屏上指定适合的位置和长度,右键选择PlainText纯文本编辑,SaproACX84HMITraining,41,July2007,3.5编写调用语言支持文件(LanguageSupport)中的文本LSText,在屏上指定适合的位置和长度,右键选择LSText,并新建或者调用已有的文本,若为新建,则在HMI_*_Lang.csv文件生成相应单元项,以后可以在对应列翻译成相应语言即可,SaproACX84HMITraining,42,July2007,3.6显示和更改数值Value,在屏上指定适合的位置和长度,右键选择Value,并设置显示和更改属性,选择需要显示和更改的数据点Datapoint,SaproACX84HMITraining,43,July2007,3.7显示对象名(ObjectName)OBJText,在屏上指定适合的位置和长度,右键选择OBJText,选择需要显示数据点Datapoint的ObjectName,SaproACX84HMITraining,44,July2007,3.8显示枚举值对象及其文本(Enumeration)EOText,在屏上指定适合的位置和长度,右键选择EOText,选择需要显示数据点Datapoint的Object其中EnumObject一般选择StatusText,SaproACX84HMITraining,45,July2007,3.9调用语言支持文件LanguageSupport显示枚举值文本ELSText,在屏上指定适合的位置和长度,右键选择ELSText,选择一个已存在的枚举文本,或者新建一个枚举文本(格式:A*B*?),SaproACX84HMITraining,46,July2007,3.10语言选择和密码功能,语言选择的代码在默认模板的第3页$O3中,中的61440,3,1这个对象的成员用于决定HMI显示语言文件Language.csv中的哪一列,换到哪一列就实现了该语言的切换,它默认的就是Language.csv中的首列A列(所以我们将首列菜单部分换成中文),和ObjLang.csv中的F列(所以我们将这列的报警部分内容换成中文)。,密码功能在默认模板的第97页,Target指该行可以跳转到第几目标页,而Level则指哪个级别用户以上可以跳转。,SaproACX84HMITraining,47,July2007,3.11生成Template和Language文件,再编译生成bin文件,在HMIEditor上选择Create,这一步生成Template模板文件和Language文件。,这一步编译生成HMI.bin和OBH.bin文件,4.用语法编写HMI模板,SaproACX84HMITraining,49,July2007,4.1模板文件Template.txt的结构,千万不要用空格!,打开第54页,关闭第54页,代码部分,注释部分,此文档是HMI菜单的主要文档模板.将来决定ACX84最终显示内容和效果主要靠此文档。用语法来写模板一般是以新工程生成的默认模板Template.txt为蓝本,当然以前已做好项目的模板文件上修改更好。,SaproACX84HMITraining,50,July2007,4.2Template文档的基本语法(1)注释,在代码与注释之间仅使用TAB键(千万不能使用空格!)。注释由双斜杠/引出。,2.8.2页面模板的页面如下定义:首先是$符号,然后是页面号。O是Open的缩写,即表示打开.$On表示打开某页,$O表示关闭此页注意:这个字符并非数字0(zero)而是英文大写字母O(letter)另外,*Syntax是代码占位符。这个表达式不属于模板代码!,SaproACX84HMITraining,51,July2007,4.3Template文档的基本语法(2)位置描述I,HMI的显示包含8行和20列英文或者4行和7列中文。然而,这不意味着一个页面只有8行能够显示。其余的行可以通过按上下按键来进行向上下卷动该页面以显示出来!但是,推荐您不要显示多于17或18行。如果HMI解释时间太长,监视程序(watchdog)将终止应用程序。位置规格由%符号开头,它后面是横纵两个坐标x.y。文本位置规格定义:,SaproACX84HMITraining,52,July2007,4.4Template文档的基本语法(3)位置描述II,%Pia(x/y/z),ba页面内直接行号。b此行内列的位置。i密级权限设定(0i8)在设备概览模板中和数据点的概览部分中,指定“x”参数,因为下一个有效的行在运行时间决定。这里不能指定绝对的行号。如果指定了“y”参数,就保持在当前行内,只使用列的位置。如果指定了“z”参数,使用前一行的对象信息来创建一个新的行(像“x”)。例如一个数据点的输出需要用两行显示。参数“Pi”是可选的,并和“a”、“x”或“z”参数联合使用,因为它产生完整行的输出,或根据授权级别转到下一个位置(也就是说,除“y”外)。如果授权级别低于“i”中定义的用户登录,就会跳到下一个位置,用户看不到这个信息。如果下一个位置是一个新的行,压缩行就以空行显示在屏幕上;而不是填充下一个授权行。注意,因0i8,不要用第八级密码做密级权限设置,即不要用P8,a,b这样的语句.而且也不能使用P0,a,b这样的语句.*Syntax是代码占位符。该表达式不属于模板代码!,SaproACX84HMITraining,53,July2007,4.5Template文档的基本语法(4)直接文本输出,例如:$01%1,5”Hi”/(显示)Hi%y,8“there”/(在同一行中显示)there%3,1”HMIprogissimple”/(显示)HMIprogissimple记住:一行只有20个英文字符的空间!若超出20英文字符则可能显示不完全或者编译出错在HMI中,显示如下:,要显示的文本要被写在两个引号中。,温度量纲符号“”可以用Template模板中的第1200行左右第$145页中的”癈”做直接文本输出来显示,例如:$O30%1,1I404,20/=*运行参数*=/RunningParametersMenu%2,1I405,4/1.室内温度/1.RoomTemperature%y,6V5.1癈“/显示/Display,SaproACX84HMITraining,54,July2007,4.6Template文档的基本语法(5)索引文本输出,索引文本输出用于显示language.csv文件中定义的文本条目。为了显示来自language.csv文件的文本,写一个“I”,后面跟着包含该文本在Excel中的行号(偏移-1行),一个逗号和另外一个数字表示所要显示字符串的长度。Ii.zi代表language.csv文件中的行(偏移-1行);z表示字符串的长度在语言文件language.csv中第一行是语言提示行,而实际的菜单内容是从第二行开始的,所以您必须总是从language.csv文件的相应行号中减去1,以保证一致。比如:$O99%1,5I5.14/显示”InputHardware”%2,1I2.12/显示”ActualValue”%y,14I9.7/显示”*Menu*”,SaproACX84HMITraining,55,July2007,HMI输入值的限制如果您想限制输入的数值在某个范围内,比如说:年(1900-2099),那么这个语法可以实现您想要的功能.可以用于各种数值包括实数输入,也可以用于枚举类型的数值输入高低限值必须为整数值(不能写小数),低限不能为负值,而且这样的应用的偏移Offset必须为0.Syntax:LowLimit,HighLimit,Offset例如:%3,120,1,0F370.4%4,140,100,0V4.1E0 x1102.1,4.7Template文档的基本语法(6)HMI输入值的限制,SaproACX84HMITraining,56,July2007,4.8Template文档的基本语法(6)跳页/链接,为了能够在菜单结构中浏览,需要点击某段字符串以转到相应的页面。链接/跳页和文本相关,或和成员相关,如下:Syntax:$Ta,b输入$T,目标页地址a和浏览授权级别b(0”I468,20$T98,0/*密码输入*/EnterPassword%4,1“-”I469,20$T99,1/修改密码/ChangePassword$O$O98%1,1I468,20/-输入密码-/EnterPWD%3,1V1.0V1.0V1.0V1.0%3,5V1.0V1.0V1.0V1.0/显示*/Display*$O$O99%1,1I470,20/=*密码设定*=/ChangePassword%2,1I471,6V1.0/密码等级:/PassWordStage%3,1I472,10V1.0/显示*/Display*V1.0V1.0V1.0%4,1-/结束行$O,SaproACX84HMITraining,67,July2007,4.19模板文件Template.txt的菜单编写(5)报警管理,报警功能实现的代码在第200页$O200和第201页$O201,我们可以直接引用页号进入这些页面来进行报警功能的管理.比如我们可以在,$O56%1,1I458,20/=*报警管理*=/AlarmManagement%2,1-I459,20$T200,0/转到当前报警菜单/JumptoActiveAlarm%3,1-I460,20$T201,0/转到报警历史菜单/JumptoAlarmHistory%4,1“-”/结束行$O,SaproACX84HMITraining,68,July2007,4.20模板文件Template.txt的菜单编写(6)语言选择,语言选择的代码在原来的第11页$O11中,中的61440,3,1这个对象的成员用于决定HMI显示语言文件Language.csv中的哪一列,换到哪一列就实现了该语言的切换,它默认的就是Language.csv中的首列A列(所以我们将首列菜单部分换成中文),和ObjLang.csv中的F列(所以我们将这列的报警部分内容换成中文)。,我们可以将其稍作修改,引用在第80页$O80中如下:$O80%1,1I518,20/=*语言选择*=/LanguageSelect%3,14F519.7/English*中文%4,1-/结束行$O,SaproACX84HMITraining,69,July2007,4.21语言支持文件Languages.csv,您能基于设计好的HMI菜单结构来创建Languages.csv文件,列表包含若干个列,对应不同的语言。每个语言栏分别显示。在文件中不能有空单元格。所有列中的单元格里都必须填充一些字符!另外,每个单元格内不能超过20个英文字符或7个中文字符!否则可能不能通过编译!如果相应语言翻译还没准备好,您可以用您的国家的语言来填充其他列。为了更好地管理,您可以将每页菜单之间用无实际意义的中间行做间隔,然后用20个惊叹号来填充这些中间行。而且,您可以多预留一些这样地单元格,以方便日后延用,修改和维护HMI菜单.例子:,SaproACX84HMITraining,70,July2007,4.22语言文件Language.csv里的菜单编写(1),现在我们打开LanguageforACX84HMI.csv,这是默认的标准语言文件Language.csv的副本.会发现它由两列组成,首列为英文,第二列为德文.我们将首列英文复制并粘贴覆盖掉第二列,再将首列语言提示改为Chinese,S,SaproACX84HMITraining,71,July2007,4.23模板文件Template.txt的菜单编写小提示与小技巧Tips1,因Scope中的HMI编译器对模板文件的语法检查很严格,所以建议您每改动少量内容就存盘编译一次,这样有错的话容易判断出自哪里.我们HMI的密码功能是这样一个流程,某用户必须到密码功能菜单里输入他这一级的授权密码,一般为4位数字,当输完密码后无论正确与否,HMI都会转到首页,若密码正确,登录后此用户可以进入和查看授权页面或可以修改授权数据,若密码错误,则无权进入或修改.而且为了安全起见,每次Logout必须回到密码功能菜单里关闭账户CloseAccount.另外高级的授权用户登录后才可以修改低级授权用户的密码.为了美观和可操作性,中文优先;并建议如下:1首页:厂商名称、常用状态参数,主菜单入口2以“”标示菜单入口3.以“=”标示主菜单,“=*”标示二级菜单,“=*”标示三级菜单,以此类推。4以20个“”标示每页结束5中英文译名最好是用同样多的字符数,尤其是可修改的Field,如“是*否”“Y*N”6V5.1的量在每行第14位置开始显示,ON/OFF和Yes/No在第18位置开始显示,其他酌情处理。7类似如此温度的显示内容编程V5.1S2时其单位“”显示应当用S2或者在如下页所示的任何一个Template.txt模板文档中第145页将第19或22行的“癈”作之间文本输出即可,而不能用E0 x1102.2,因为可能会数据造成无法更新。,5.报警调试及其他,SaproACX84HMITraining,73,July2007,5.1报警列表的语言支持文件ObjLang.csv的编写(1),SaproACX84HMITraining,74,July2007,5.2报警列表的语言支持文件ObjLang.csv的编写(2),然后复制Appl.Lang.这一列到Com1,Com2和F,G列中,其中如前所述,对象名语言文件ObjLang.csv中的F列(Language01)对应语言文件Language.csv中的首列,在此例中即我们要用于显示的中文列.所以我们就把F列中会产生报警信息的单元格的文本内容翻译成中文即可.,SaproACX84HMITraining,75,July2007,5.3报警列表的语言支持文件ObjLang.csv的编写(3),将F列中会产生报警信息的单元格的文本内容翻译成中文.,SaproACX84HMITraining,76,July2007,5.4编译出错提示,SaproACX84HMITraining,77,July2007,5.5HMI编译出错或显示诊断提示(1),若不能生成HMI.bin则检查模板文件Templates.txt中的代码部分:1有无非法的空格符(代码部分不允许有任何空格)2是否所有的十六进制地址都以0 x.开头?3每页的起始符和终止符$O是否错写成了0(零)?4所有的位置定义是否都以a%开头了?5所有的逗号都是数据点所需要的么?6有没有非法格式的字符作标识符?7是否此行内的字符串长度超过了20?8点号和逗号等符号是否正确使用或者是否全为英文半角的?9语言文件Language.csv是否真的是*.csv文件?编译报错的一个例子(错误提示):#20ErrorErrorintemplate20.,当进入HMI的某页后出现了错误提示信息(已经提示了此错误的模板号码templatenumber即该页面和字符号码characternumber):1.重新检查模板文件Template.txt中,尤其是提示的页面代码中有无上述错误.2.是否链接到了不存在的页面或者空页面?(页面内必须含有内容才能被打开).,SaproACX84HMITraining,78,July2007,5.6HMI编译出错或显示诊断提示(2),数据点(datapoint)显示错误或者根本就没有被显示出来则检查:1.是否数据点(datapoint)的地址有误?2.是否成员识别号(memberID)和对象识别号(objectID)有误?3.是否数据输出格式有误?(比如说本是F2.0格式误写成了V2.0)4.是否为要显示的字符串保留出了足够的字符长度?(过多,或过少了?)5.登陆的用户有无相关权限?6.是否数据点的枚举文本有误?7.是否数据点的写权限UserAccess没有由原来的Auto(1)改成Hand(0)?,数据点(datapoint)显示时不能及时更新或者值域中的字符会跳格重复显示则检查:1.是否所显示数据点(datapoint)前面的中文有误?建议将此中文和数据点单独分行显示.2.是否此页面太长?建议分页显示.3.是否使用了某些汉字如”送”

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论