介绍:
PCS 7 的块图标通常使用组显示和扩展状态显示的功能来实现在一个画面上显示1个过程对象的消息状态,这个过程对象可能是由多个AS 块组成的.n
应用范例:
将块"MOT_IMEAS" (类型 "MEAS_MON") 和块 "MOT" (类型 "MOTOR")的状态在一个块图标上一起显示,ID号为28737155的FAQ文档详细介绍了如何实现这个功能。n
这个"MOT"块的图标将在过程画面上显示,而"MOT_IMEAS"块的图标不会在过程画面上显示,这是由于"MOT_IMEAS"块的数据将要附加在"MOT"块的面板上显示。可是,在默认情况下"MOT"块的图标只显示"MOT"块的下列消息:n
- "过程控制错误"("AS Process Control Error")
- "过程控制故障"("AS Process Control Fault")
- "测量值失效"("Measuring point Disabled")
在画面上"MOT_IMEAS"块的下列状态也要显示在"MOT"块的图标及面板上:n
- "Alarm High"
- "Warning High"
- "AS Process Control Fault"
- "Measuring point Disabled"
这个条目介绍了两种只在"MOT"块的图标上同时显示"MOT"和"MOT_IMEAS"块报警和消息的方法。在本文的结尾,我们会认识到很有必要注意"使用组层级"的有关事项n
方案1: 为每一个消息兼容的AS功能块分别配置一个组显示
在OS编译过程中会为每一个消息兼容的块创建一个单独的"*.EventSate"消息变量,它们在OS的变量管理器中.在OS运行中每个这样的变量会接收对应的消息兼容块的组值,你可以采用为每一个需要显示的消息兼容块分配一个组显示的办法,来扩展这个块图标,每个块的“组值(Group Value)”或“收集值(CollectValue)”分别连到各自的消息变量,它的名字是"*.EventSate"。如下图所示".n
Fig. 02n
优点:n
- 通过直接变量连接方式,操作方便.n
- 简单并且不易出错(没有附加的触发设置,不需要脚本).
缺点:n
- 消息的状态不是在一个对象上显示,而是在多个图开对象上显示。.n
- 每个图标只能有一个组值进到了组层级,为了让"MOT_IMEAS"块的消息进入到组层级,你必须在块图标上组态另一个附加的组显示,并且将它连到"MOT_IMEAS"这个块 的组值上。这个附加的组显示也可以被隐藏。重要的一点在于这个“组状态值Group value”或者“收集值CollectValue”的属性是直接连到了"MOT_IMEAS"块的消息变量“*.EventState”上.n
- 在“创建块图标”时,不是完全支持这种功能。.
下面我们详细介绍一下如何在"MOT"块的块图标上附加显示"MOT_IMEAS"块的组显示.
No. | Procedure | ||||||||||||||||||||||||
1 | 拷贝"MOTOR"块类型的块图标 n
|
||||||||||||||||||||||||
2 | 编辑这个"MOTOR" 块的块图标 右键单击这个图标,从快捷菜单里选择命令“Customized object> Edit….” |
||||||||||||||||||||||||
3 | 拷贝,重命名并且加入对象 "Sammelanzeige_mitASD" n | ||||||||||||||||||||||||
4 | 分析这个 "SammelanzeigeCurrent" 对象 n
现在你可以检查是否这个“状态字1”放到了用户自定义对象的接口里,并且哪个信号与它连接了(动态地).n 如果这个"Status"的值是1,那么图片"@MessageLock.emf", 和"Measuring point Disabled"会显示出来,从这里你可以断定这个扩展状态显示的“状态字1”连到了变量标签"*.EventState" (组值). 如果"Status"的值是0,会根据已经使用的消息类型的消息状态显示相关的图片。这个使用的消息状态会在“Alarm”列里显示, 信息是“到达”、“走了”,“已确认”。这些图片的名字会显示在“基本图片”列和“闪烁图片”列里,如下表所示.
在这里你选择命令"Select all",然后右键单击它,打开用户自定义对象的快捷菜单,选择菜单命令“Customized object > Finish editing”.n 在上边这个扩展状态显示的“测量值失效”信息是由"Status word 1"显示的,前边的假定得到了证实. 注意: | ||||||||||||||||||||||||
5 | 规划扩展这个"SammelanzeigeCurrent" 对象 下面的这两个组状态值将要被用到组显示里边: n
组值n
没有必要再加上,因为它们已经被使用了. | ||||||||||||||||||||||||
6 | 扩展"SammelanzeigeCurrent"对象的属性 n
| ||||||||||||||||||||||||
7 | 将"SammelanzeigeCurrent"的属性放到这个块图标的接口上去 打开这个用户自定义对象的设置对话框,将"CollectValueCurrent"的属性 定义到这个用户自定义对象的属性里. n 点击"OK"来关闭配置对话框. | ||||||||||||||||||||||||
8 | 连接"SammelanzeigeCurrent"的属性 连接"SammelanzeigeCurrent"的属性到消息变量. n | ||||||||||||||||||||||||
9 | 测试 有运行环境下测试这个块图标。在这里你可以拷贝这个已经改变的图标到一个过程画面上并且测试它的功能. | ||||||||||||||||||||||||
10 | 测试"Create/Update Block Icons"功能 检查创建/更新块图标("Create/Update Block Icons")功能。模板文件"@PCS7Typicals_user.pdl"可以被用于从Plant View的层级在画面上自动创建对应的块图标,ID号为26697820的FAQ文档详细介绍了这个主题. n 当使用"Create/Update Block Icons"功能创建块图标时,你会注意到这个"CollectValueCurrent"的属性被连接到了与“组值(Group value)”相同的变量上,虽然在模板画面里是连接到了不同的变量,这是由"Create/Update Block Icons..."的系统功能实现的.n 你可以手动修正这个变量连接。为了防止这些变化在下一次编译时被覆盖,你应该改变这个块图标的"类型(type)"属性.n |
解决方案2:用一个组显示配置所有的兼容消息的AS块
在OS编译过程中,会为每一个兼容消息的块生成一个单独的"*.EventSate"32位消息变量,在运行时每一个这样的变量会收到兼容消息的块发送的组值(Group value)。你可以采用这种方式扩展这个块图标的组显示,方法是在运行时将所有的兼容消息的AS 块的消息在一个组显示上显示,按照下面的步骤来做:n
- 保证这个组显示可以显示所有的消息类型
检查是否所有的消息类型都可以被这个块图标的组显示来显示。没有用于显示的组显示的特定消息类型需要手动配置上.
例子:
从消息类型清单上,你可以看到消息类型 "Alarm High" 和 "Warning High" 已经被先后设置了。 - 对所有的消息变量的各个位进行“Bit-by-bit OR(逐位或)”操作
既然这个“组值(Group value)”或者“收集值(Collect value)”可以直接连到同一个"*.EventSate"消息变量上,所有的消息变量也可以用逻辑组合到一起。在WINCC的帮助“WinCC Information System”里,从"Working with WinCC > Creating Process Screens > Working with Objects > Working with Objects from the Object Palette > Working with Smart Objects > Group Display这一章里可以查到相关的帮助作息,介绍了如何对消息变量进行位编码。在ID号为17778440的FAQ 文档的图1说明了消息变量的位是如何分配的。你可以使用“Bit-by-bit OR(逐位或)”操作来对所有消息变量成组.
No. | 步骤 |
1 | 拷贝这个用户自定义对象"MOTOR"类型 (参见 方案 1 步骤 1) |
2 | 编辑"MOTOR"类型的块图标 (参见 方案 1 步骤 2) |
3 | 分析这个 "Sammelanzeige_mitASD" (带ASD的组显示)对象. (见 方案 1 步骤 4) 步骤同方案 1, 步骤4 确定对象 "Sammelanzeige_mitASD"的功能. |
4 | 规划扩展对象"Sammelanzeige_mitASD" 方案 1, 步骤 5 规划扩展组显示对象"Sammelanzeige_mitASD". 与方案1的不同在于这个组显示对象是被扩展了. |
5 | 扩展对象 "Sammelanzeige_mitASD"的对象 参见方案 1, 步骤 6 扩展组显示. |
6 | 一位接一位地链接消息 你必须使用 "bit-by-bit OR" 操作来链接这些消息兼容块的消息变量.接着把这个结果信号连接到"Group value(组值)"上,下图展示了对两个消息变量执行 "bit-by-bit OR" 操作的动态对话框. n 注意:
|
7 | 测试 |
8 | 测试 "Create/Update Block Icons" 功能 |
关于组显示的限制:
如果块图标的“组值(Group Value)”或者“收集值(CollectValue)”属性直接连到组变量("*.EventState" 变量),那么块图标的消息只能传到上级的组显示上。其它的动态化(如:动态对话框或者脚本)并不支持这种功能。既然一个块图标可以只有一个属性名“组值(Group Value)”或者“收集值(CollectValue)”,只有一个组变量的值传到组层级上。其它块的这些组值可以按下面方法进行配置:n
- 在画面里配置附加的组显示并且连接它们到其它的组显示变量,如果你不想要它显示的话,可以设置“显示(Visible)”属性为“false”。n
- 将一个功能块里的兼容消息AS块们在一起组合。n
- 在WinCC里使用脚本和动作执行“bit-by-bit OR”操作。
下表给出了一个可供参考的链接概要.
n
条目 | 描述 |
14278452 | 主题: 在WINCC 对象上可重复使用的脚本 主题: "你如何不用改变变量名,使用标准的C功能动态化一个用户对象?" |
28733797 | 主题: 组合多个AS块的图片数据 题目: "你如何在一个PCS7面板里显示另一个块的数据?" 这个条目里详细介绍了一个应用例子。 |
28757820 | 主题:组合多个AS块的图片数据 题目: "你如何在一个PCS7面板里显示另一个块的数据?" |
28737155 | 主题: Grouping picture data of multiple AS blocks 题目: "如何将多个AS块成组,用于在一个PCS7面板里显示这些块的数据?" 这个条目提供了关于如何组态和在面板里显示的指导. |
WinCC 在线帮助系统 | 主题: 分配组显示的位 在WINCC的作息系统里,对于消息变量的译码有详细的介绍,参见 WinCC 作息系统下边的 ""Working with WinCC > Creating Process Screens > Working with Objects > Working with Objects from the Object Palette > Working with Smart Objects > Group Display"这一节。 |
17778440 | 主题: 组显示中的位分配 题目: "当位报警发生或者模拟量报警正在使用时,你如何在一个过程画面里用超级对象显示消息?" 这个条目包括一个图表(图1)描述了为组显示指定消息变量的位。 |
26697820 | 主题:用于 "Create/Update Block Icons..."功能的模板图片 题目: "你如何使用 模板文件"@PCS7Typicals*.pdl" 来创建块图标?" |
23056481 | 主题: 将扩展状态显示用于组显示 题目: "在一个过程画面的用户对象上,你如何直接使用扩展状态显示来显示一个测量点报警的状态?" |
原创文章,作者:ximenziask,如若转载,请注明出处:https://www.zhaoplc.com/plc335897.html