APL风格的功能块图标和面板设计
1基础知识1.1 APL功能库简介APL (Advanced Process Library)是自PCS7 V7.1起发布的高级过程控制库,可以替代PCS7标准库的全部功能,如模板驱动、过程控制功能集(PID算法、马达控制、阀门控制)、联锁报警等。利用 系统提供的标准功能块,工程师可以很方便的对项目进行自下而上的AS控制算法开发和OS画面组态。针对于实际过程控制应用,APL功能块相比标准库功能块 的功能有大幅扩展,同时性能上也在不断优化。当用户 在PCS7系统中定义一个功能块,例如一个功能块类型Block Type。首先,在AS控制器侧,它是一个功能块(Function Block);然而在OS侧,它却是此功能块对应的功能块图标(Block Icon)和一套操作面板(Faceplate)。
图01.APL功能库的调用关系APL 功能块及相应OS对象(块图标、面板、脚本体系等)与标准库相比有较大变化,同时也支持用户基于APL通用规范进行自定义功能块和OS对象的设计。本文将 演示如何为已有AS功能块(该功能块可以为APL已定义的系统功能块,或者用户使用SCL自行开发的控制功能块。本例中功能块名为Mymotor)进行 APL风格的OS块图标与面板设计。AS功能块编程在此不做介绍,用户可以参考:《SIMATIC 过程控制系统 PCS 7 APL 设计指南》 http://support.automation.siemens.com/CN/view/zh/65601446文档中 使用的测试项目和整个测试过程在PCS 7 V8.0 SP1 欧洲版环境下完成。1.2自定义功能库设计时用到的OS画面模板PCS7 项目中包含可供用户直接使用或者开发的OS模板文件,OS项目创建后,这些模板文件存储在“GraCS”目录下。1.2.1创建块图标时可以利用的模板:@ PCS7TypicalsAPL... .pdl“PCS7 Create/update blockicons”向导将自动为AS控制对象,如阀门或电机等创建相应块图标,这些块图标应存放于以@ PCS7TypicalsAPL为前缀名的模板文件。注:自 PCS7 V8起,系统模板文件包括两个版本:-@ PCS7TypicalsAPLV7.pdl-@ PCS7TypicalsAPLV8.pdl用户可 以创建名为@PCS7TypicalsAPLxxx.pdl的项目库文件,存放用户设计的块图标,该库文件中的对象同样可以在OS编译时被 Create/update blockicons识别和调用。 @TemplatesAPL... .pdl包含用 于手动创建对象的阀门或电机的块图标和静态画面对象。注:自 PCS7 V8起,系统模板文件包括两个版本:-@TemplatesAPLV7 .pdl-@TemplatesAPLV8 .pdl1.2.2创建面板时可以利用的模板 @PCS7ElementsAPL.pdl面板的 模板文件包含一些预组态的画面对象,可直接将它们拖放到项目特定的面板视图中以创建面板。使用这些对象可以方便的进行APL面板对象的数据、权限、格式、 脚本传递。2 块图标(Block Icon)的设计规范2.1 块图标功能实现原理每一个 AS中运行的功能块实例Block Instance,通过PCS7的Create/update block icons向导,在OS中都将一一对应块图标实例Icon Instance,而此块图标实例则通过相应的脚本来实现对相应面板实例Faceplate Instance的调用。块图标 是按照PCS7特定组态规则设计的WinCC用户自定义对象(User Difined Object,简称UDO)。这些分配了指定的对象和属性的UDO可以在OS编译时被检测到,并在正确的画面中自动将其分配给对应的功能块实例。建议使 用现有APL块图标为基础来创建新的块图标。2.2 块图标的基本结构如图显 示了一个块图标的基本结构。块图标做为操作员对AS功能块监控最直观的工具,需要最精简而全面的显示AS功能块的关键信息,如回路位号、设备当前模式与运 行状态、测量值、故障报警等。
图02.APL块图标结构2.3块图标开发步骤2.3.1 创建用户自定义库文件@ PCS7TypicalsAPLxxx.pdl在OS 画面编辑器中创建名为”@PCS7TypicalsAPLxxx”的pdl文件。其中文件名的”xxx”为用户自定义的字符,例如可以另存为” @PCS7TypicalsAPL_XYZ.pdl。
图03.创建用户图标库文件2.3.2 创建块图标从库文 件@PCS7TypicalsAPLV8拷贝功能与用户功能块最接近的块图标MotL,基于块图标MotL生成新的块图标Mymotor。
图04.创建块图标2.3.3 编辑块图标之前提 到,块图标是基于APL规则定制的UDO对象。该UDO对象是不同子对象的集合。在块图标的右键菜单Customized object中选择Edit,可以进行块图标编辑,添加、删除、修 改块图标中的子对象。
图05.编辑块图标之后块 图标被拆分成各个子对象的集合。
图06.块图标被拆分成各个子对象2.3.3.1 块图标的子对象类型用于块图标编辑的子对象元素主要 分为以下几类:元素类型功能IO Field存 放坐标、趋势、单位、版本、块系统属性等不需显示的信息Group Display显 示功能块报警状态Static Text存 放或显示静态文本Status Display(Extended)显 示功能块运行状态如Mode、过程状态、设备画面Analog Display(Extended)显 示过程值Graphic Object设 计块图标边框、高亮显示等DataSet自PCS7 V7.1SP2起新增的功能,将多个只做存储不需显示的IO域/文本域组合为一个DataSet,可以减少块图标使用的子对象数目表01. 块图标中可以使用的WINCC对象类型2.3.3.2 保留块图标的PCS7系统属性删除原 有块图标子对象时,注意不要删除存放系统属性信息的子对象。以下三 个系统属性是构成PCS7块图标的基本结构:系统属性名称存放介质数据类型语法功能typeIO域/DatasetString@type/1,@type/abc...块 类型,与关联的AS功能块名对应tagenameIO域/DatasetString由 系统自动生成,无需设置块 实例名,包含发送到面板中的OS 变量前缀servernameIO域/DatasetStringPCS7 Servername Control包 含相应的面板类型表02. ICON的系统属性注意:一个AS功能块可以对应生成多个块图标,不同的块图标彼此通过”type”属性中”/”后的字符进行区分。可以在AS功能块实例中指定其对应的块图标类 型。
图07.AS块类型和OS块类型的对应关系2.3.3.3 新增加块图标内的子对象为Mymotor 块图标增加一个模拟量显示子对象。在从WINCC的对象选项卡中拖拽出一个Analog Display(extended)对象。命名为Analog value。
图08. 添 加一个Analog Display(extended)子对象到块图标中2.3.3.4 块图标的子对象编辑1 使用Analog Display(extended)对象可以结合AS功能块报警状态调整所显示的模拟量值视图,如文本颜色、背景颜色等。
图09. 调 整Analog Display(extended)的显示特性2 使用Status Display(extended)对象进行控制设备状态显示Status Display(extended)可以显示多达16个不同状态,并通过结合AS功能块报警状态,最多可以显示多达768个带有基本画面和动画画面的状 态。16个状态由Status Display(extended)自身的4个状态字Status1-4输入组合而成。用户可 以设置和调整每个状态所使用的图片。
图10.使用一个Status位,可实现两个状态显示
图11. 使用AS 报警状态时的设置注意:无论是 Analog Display(extended)还是Status Display(extended),如果它们的显示要引用AS功能块的报警状态,那么需要把AS功能块的EventState变量关联到这些对象的属性 Group value上。对于 Status Display(extended),如果它的显示要使用Status位,那么需要把AS功能块的Status状态字关联到Status Display(extended)的Status状态字上。关联方法在2.3.4章介绍。2.3.3.5 完成块图标编辑调整完 块图标结构后,全选所有子对象,右键®Customized object®Finish Editing结束块图标编辑。
图12.结束块图标编辑2.3.4 添加块图标的属性块图标 的属性是其子对象属性与外界的数据交互接口。选中块 图标,右键菜单Configuration Dialog打开属性添加对话框,可以增减块图标的属性。
图13. 打开块图标属性添加对话框将Analog Value的Value属性添加到块图标Link属性卡中并重命名,如命名为AnaValue,步骤如下:1 在属性对话框中,在左边的块图标属性选项框中,点击Link属性栏2 在中间的对象选项框中,选中Analog Value对象3 在右边的对象属性框中,选中Value属性后双击
图14. 添加属性到Link属性栏4 将Attribute Name重命名为AnaValue。
图15. 将属性重命名注意:Attribute Name与Name of Property名称的区别:Attribute Name是OS系统如后台脚本、控件引用的实际对象名称;Name of Property为块图标的属性选项卡中工程师直观看到的对象说明。对于用 户自定义的ICON,建议这两个名称保持一致。
图16.Attribute Name和Name of Property名称可以不同此外, 还需要为Analog Display(extended)和Status Display(extended)关联相应的报警和状态位。
图17. 为Analog Display(extended)子对象关联AS功能块报警
图18. 为Status Display(extended)子对象关联AS功能块状态字2.3.5 修改块图标的属性双击块 图标打开块图标的属性选项卡,需要对以下属性进行调整:2.3.5.1 System选项卡将Type 属性设置为@Mymotor/1,指定关联的AS功能块名Mymotor;将Servername 属性设置为PCS7 Mymotor Control,指定点击块图标将打开的面板类型。保留其 它属性不变。
图19. System选项卡的设置2.3.5.2 Link选项卡Link选项卡中的属性需要关联到实例相关的OS变量。设计块图标时仅需要填写变量的后缀 名,变量前缀由Create/update block icons向导生成块实例时自动添加。将Analog Value属性的Dynamic值设置为OS变量后缀,之后可以被Create/update block icons向导自动调用。
图20. Link选项卡的设置2.3.6 修改块图标的脚本块图标 的事件(Event)选项卡中,保存了用于打开指定面板的C脚本动作,保留原有脚本即可。如果需要添加新的事件,也可以参考添加块图标属性的方式进行添加 事件。
图21. 为块图标添加Event 事件3 APL操作面板(Faceplate)的设计规范可以直 接创建新的项目特定面板,也可以使用现有APL面板的面板结构为基础来创建新面板。在原有 APL面板基础上进行修改以创建新面板是适用于初学者且较为方便快捷的方式。3.1 APL操作面板的基本结构APL 的面板系统包括一组以PG_XXX(其中XXX为功能块类型,即Block Icon中所设置的Servername属性)为前缀的模板画面,运行时的OS面板画面结构如图所示。
图22. APL面 板结构3.1.1总面板(Interface)@PG_XXX.pdl为 面板系统的入口文件,包含了面板的所有组件。其它系 统框架模板和功能模板将显示在@PG_XXX.pdl的画面窗口中,来自块图标的相应块实例信息也将通过@PG_XXXX.pdl传递给所显示的相关模 板。这些信 息包括变量前缀、格式、报警趋示、操作权限等。3.1.2系统框架模板用于显 示功能块基本信息和切换当前功能面板视图。@PG_XXX_Overview.pdl:显示报警、锁定、维护、Batch等设备基本信息。@PG_XXX_ViewToolbar.pdl:用于选择和切换将显示在窗口中的功能视图。
图23. 系统框架模板在面板中的位置和 作用3.1.3功能模板:包括通 用公共模板和用户自定义模板两类。由@PG_XXX_ViewToolbar.pdl中设置显示在画面中的具体面板。趋势、 报警、Batch、备忘(Memo)等信息的显示,所有功能块可以使用一套公共模板,项目创建时公共模板将自动创建,无需用户修改。公共视图画面名报警视图@PG_apl_message.pdl趋 势视图@PG_apl_trend.pdl批 生产视图@PG_apl_batch.pdl备 注视图@PG_apl_memo.pdl表03. APL公共面板类型用户自 定义模板则是根据实际功能块应用,用户可以自行设计的功能模板,常用的视图名如下:标准视图(Standard View):点击BlockIcon弹出面板时所显示的默认面板,包含用于操作员监控与操作的基本功能与过程信息。预览视图(Preview):用于显示 OS操作员可在整个块中操作的参数,或者功能块的当前状态。限值视图(Limit View):模拟量操作或监控功能块中,操作员可以在该视图中监控和设定限值。参数视图(Parameter View):用于操作员进行参数设置。斜坡视图(Ramp):用于带有斜坡功能 的模拟量操作功能块中,进行斜坡设定与控制。也可以 不使用这些视图名称,使用如@PG_XXX_Myview等自定义名称。3.2 APL操作面板开发步骤3.2.1创建面板打开项 目文件夹中的GraCS文件夹,将其中APL电机功能块MotL的相关面板拷贝一份并重命名。将复制 好的PG_Mymotor_Standard.pdl拷 贝一份改名为PG_Mymotor_Myview.pdl, 用于自定义面板设计。如果有 不需要的面板,可以不拷贝。
图24.创建新面板3.2.2 总面板@PG_Mymotor的设置在OS 画面编辑器中打开@PG_Mymotor.pdl,将其属性高度设置为300,展开画面。
图25. 调整画面高度修改画 面以下对象的属性:
图26. 需要调整的画面对象画面对象对象属性修改内容@Faceplate”Firstview”PG_Mymotor_Standard.pdlToolbarWindowPictureNamePG_Mymotor_ViewToolbar.pdlObjCollectionBlockTypeMymotor表04. 调整@PG_Mymotor.pdl 中的对象注意:如果自定义功能块中无Batch应用需求,可以删除@Faceplate对象中关于Batch的 内容。修改结 束后仍然将画面高度设置为1。3.2.3系统框架面板的设置3.2.3.1 @PG_Mymotor_Overview如果用 户自定义AS功能块的Status状态字结构与原型功能块一致,则此画面不需要修改。注意以 下画面对象的状态字与AS功能块参数的连接关系:
图27. 需要调整的画面对象画面对象状态字AS对应参数功能MSGLOCKStatus1Status2.bit0显示AS报警锁定QCTopObjectStatus1ST_Worst显示最差信号状态BATCHStatus1Status1.bit0Batch占 用MAINTENANCEStatus1Status1.bit4设备维护信息表05. 调整@PG_Mymotor_Overview 中的对象 可以根据需要修改甚至删除这些状态显示对象。3.2.3.2 @PG_Mymotor_ViewToolbar该画面 中包含两组按钮,在OS运行时通过名为”…”的Next按钮选择究竟显示哪一组按钮。
图28.通过Next按钮来选择实际显示的画面每一个 按钮可以选择一个功能面板。按钮的对象名称决定了所调用的视图名称,如标准、趋势、报警等。按钮的Picture属性中指定按钮显示时的图标。按钮的 Text属性中指定按钮的组别(1或者2)。
图29. 调整按钮属性为自定 义画面Myview创建相应的按钮MYVIEW,按钮的Tooltip text也修改为Myview。可以删除用不到的按钮。Next 按钮的鼠标脚本事件中进行按钮分组设置。
图30.Next按 钮中脚本实现分组显示3.2.4 公用面板的设置公用面 板使用默认设置即可。但对于趋势面板,用户也可以创建自定义的趋势模板供块图标调用,仅需要在BlockIcon的趋势属性选项卡中指定使用的趋势模板。
图31. 在块图标的Trends属性中可以指定具体的趋势面板3.2.5 自定义功能面板的设置以@PG_Mymotor_Myview 为例进行说明。3.2.5.1 首先删除面板 中不需要的对象,但以下基本对象不可删除:
图32.功能面板中的基本对象画面对象功能Level1-5保存操作员权限csoFpBtnUser1用于画面跳转功能。如果不使用该功能则此对象可删除stUser用于更新当前用户对面板中各对象的操作权限,在第4节中进行权限更新的介绍表06. 保留功能面板中的基本对象3.2.5.2 从@PCS7ElementsAPL.pdl 拷贝需要的对象至指定面板,调整对象属性,将需要连接的变量后缀改为实际变量后缀。注:@PCS7ElementsAPL.pdl是PCS7系统提供的APL面板开发时的对象库文件,所有用于操作的对象都必须拷贝自此文件,例如按钮、输入 框、选择框等。
图33. 设计APL面板必须使用@PCS7ElementsAPL.pdl中的对象4 APL面板操作对象的设计规范4.1操作权限的传递对于 PCS7项目而言,OS操作员的各级权限与PCS7系统功能已经采用预定义的对应关系,工程师只需要根据操作员的职责划分指定的权限既可。其中,5、6、 1100号权限用于过程控制。
图34. WINCC User Administrator中划分操作员权限各OS 对象默认的操作权限可以参考:如 何在SIMATIC PCS 7 V7.1使用权限? /cs/document/60575347?caller=view&lc=zh-CN操作员 能否操作一个OS对象,由AS功能块设置和OS操作员权限共同决定,必须两个条件同时满足。4.1.1 AS功能块中的权限设置:AS功 能块中的权限处理主要包括对OS_PermLog和OP_Level的处理。4.1.1.1 OS_PermLog:APL功能块的标准参数,可以对具体块实例进行权限设置。每个块实例对应现场的一个控制回路,如马达、阀门、模拟量监控等,如果需要设置仅对本控制回路有效的OS权限,则可以在AS功能 块算法中对OS_PermLog编程实现。APL功能块的OS_Perm参数可以使能或禁用块实例的OS操作权限。此外,在生产过程中,当前设备的运行状态也对操作权限有 所限制,例如一个PID控制回路,如果处于自动模式时,操作员将无法设定调节阀开度MV,即使OS_Perm中使能了此权限。
图35. AS功能块算法对操作员权限进行处理每个 AS功能块实例的OS_PermLog参数记录了本实例的相应OS权限,最终传递至OS对象中用于校验。因此工程师需要根据功能块实际应用规划 OS_PermLog的算法。注意:如果不使用OS_PermLog进行权限限制,该参数值设置为16#FFFFFFFF。4.1.1.2 Op_Level 属性:APL功能块引脚的属性,可以对具体的AS参数引脚(该参数对应OS中的相应变量)进行权限设置
图36.在参数引脚上指定权限级别自PCS7 V8.0开起,对于一个实际OS变量,可以在其所对应的AS功能块引脚上直接指定Op_Level参数0-5,其与OS用户管理器中操作权限的对应关系如 下:- 0 = 不校验- 1 = Process Controlling (5*)- 2 = Higher Process Controlling (6*)- 3 = Highest Process Controlling (1100*)- 4 = Advanced Control 1 (1101*)- 5 = Advanced Control 2 (1102*)注意:4、5两个权限是自PCS7 V8之后新增的操作权限。ssssssssssssssssssssss属性名 称设置AnalogValue用于显示的实际过程值LinkOp操 作员设定值(即手动值)LinkTag3和BitIndex4配置所需的AS过程权限,默认LinkTag3关联到变量OS_PermLog, BitIndex4设置对OS_PermLog的具体寻址位OperationLevel配置所需的OS操作员权限级别1 = Process Controlling (5*)2 = Higher Process Controlling (6*)3 = Highest Process Controlling (1100*)OpAreaPicture保存用于操作员设置模拟值的画面窗口,有以下三个模板文件可供选择:@PG_APL_OA_Analog100.pdl(无测量范围)@PG_APL_OA_Analog101.pdl(有测量范围)@PG_APL_OA_AnalogWithLimits.pdl (有测量范围、滑块、增量操作)AnaLinkHiLim和AnaLinkLoLim调节滑块的上下限值(如果OpAreaPicture调用有测量范围的面板)表07.调整APL_ANALOG_OP_DISPLAY 的属性- 调整显示的静态文本- 最后注意在stUser对象中对该对象进行权限更新,在画面脚本中进行格式更新。- 从@PCS7ElementsAPL.pdl中拷贝对象;- 配置以下属性:
图45.APL _OP_BUTTON属性调整属性名 称设置BitCount选择窗口中按钮的实际数目(2-5)BinLink1-5将各按钮关联至供选择的二进制变量BinAuthorizationLevel1-5配置各按钮所需的OS操作员权限级别1 = Process Controlling (5*)2 = Higher Process Controlling (6*) 3 = Highest Process Controlling (1100*)PermissionTag和BinPermBitIndex1配置所需的AS过程权限PermissionTag默认关联到变量OS_PermLog, BinPermBitIndex1设置对OS_PermLog的具体寻址位OpAreaPicture保存打开的选择窗口类型,有以下两个模板文件可供选择:@PG_APL_OA_Binary103.pdl(最多3选1)@PG_APL_OA_Binary105.pdl(最多5选1)表08. 调整APL _OP_BUTTON的属性 - 调整显示的静态文本;- 最后注意在stUser对象中对该对象进行权限更新。5 总结 PCS7提供了一个开放的平台用于自定义功能库开发,本文仅仅介绍了OS部分,功能块图标和面板的设计。文中并未涉及AS功能块开发、功能库帮助文件制作、功能库发布等内容。如果用户对此有兴趣,可以参考APL设计指南的相应章节。