如何扩展一个块的块图标,使它能够显示与它附加在一起的消息兼容块的消息?

介绍:
PCS 7 的块图标通常使用组显示和扩展状态显示的功能来实现在一个画面上显示1个过程对象的消息状态,这个过程对象可能是由多个AS 块组成的.n

应用范例:
将块"MOT_IMEAS" (类型 "MEAS_MON") 和块 "MOT" (类型 "MOTOR")的状态在一个块图标上一起显示,ID号为28737155的FAQ文档详细介绍了如何实现这个功能。n

如何扩展一个块的块图标,使它能够显示与它附加在一起的消息兼容块的消息?
Fig. 01n

这个"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

  • 在画面编辑器里边打开文件"@@PCS7Typicals.pdl".n
  • 右键点击"MOTOR"块图标,从弹出的菜单里选择拷贝.

    如何扩展一个块的块图标,使它能够显示与它附加在一起的消息兼容块的消息?
    Fig. 03
    n

  • 在画面编辑器里,新建另外一个新画面,将上一步拷贝的"MOTOR"块图标粘贴进来.n
  • 保存这个画面为模板文件,例如文件名可以是"@PCS7Typicals_user.pdl",文件名中@PCS7Typicals是固定的,后边 再加上我们自己的特征字符,如user。在使用“生成块图标”功能时会用到这个模板文件,关于模板文件的详细介绍,可以参考ID号为26697820的FAQ文档. n

    注意:
    这个块图标要拷贝到一个新的、空的画面文件里,在编辑过程中一直要保持这样,这可防止在编辑用户自定义目标时出现错误:

    • 如果在使用“编辑用户自定义目标”功能时,在这个画面上还有其它的图形目标,那么当我们向这个画面上拷贝用户自定义目标时,如果存在物体重名的话,这个画面上原来的物体会被会被自动改名,没有任何提示.n
    • 为了结束编辑用户自定义对象,你可以从菜单里选择“全部选择”,然后用鼠标点中已经选择好的组合,选择“结束编辑”,如果画面上有其它的不相干的 对象的话,在结束命令执行过程中会出现“falling out”的错误。例如,当我们没有选择好这个用户自定义物体所包含的物体时,也会出现这个错误.
2 编辑这个"MOTOR" 块的块图标
右键单击这个图标,从快捷菜单里选择命令Customized object> Edit….
3 拷贝,重命名并且加入对象 "Sammelanzeige_mitASD" n

  • 右键点击这个组显示。在这个例子里,这个组显示是名字为"Sammelanzeige_mitASD"的画面对象。你可以选择这个对象,从对象属性里看到.n
  • 从菜单里选择命令 "Edit> Copy".

    如何扩展一个块的块图标,使它能够显示与它附加在一起的消息兼容块的消息?
    Fig. 04
    n

  • 再从菜单里选择 "Edit > Paste".
    这会复制这个组显示对象。系统指定另外一个不同的名字给这个新增加的组显示对象,在这里会是 "Sammelanzeige_mitASD1".n
  • 指定一个有意义的名字给刚才增加的组显示,例如 "SammelanzeigeCurrent".n
  • 移动这个组显示对象 "SammelanzeigeCurrent"到一个合适的位置.

    如何扩展一个块的块图标,使它能够显示与它附加在一起的消息兼容块的消息?
    Fig. 05

4分析这个 "SammelanzeigeCurrent" 对象 n

  • 右键点击这个拷贝的组显示 (对象 "SammelanzeigeCurrent").n
  • 选择菜单命令"Configuration dialog".n
  • 记住在这一步我们不要做任何的修改,只是理解如何配置扩展状态显示: n
    • 这个组显示是用于补充扩展状态显示的.
      在ID号为23056481的FAQ文档里,你可以查到如何在扩展状态显示里使用组显示的.n
    • 你可以点击扩展状态显示对象的"General"标签页,在对话框里你可以看到已经使用的组显示的信号. n

      如何扩展一个块的块图标,使它能够显示与它附加在一起的消息兼容块的消息?
      Fig. 06
      n

      • 组值的第24位 ("AS Process Control Error"如何扩展一个块的块图标,使它能够显示与它附加在一起的消息兼容块的消息?)
        这个过程状态显示会评估组状态字的第24位,消息类型“AS 过程控制错误”会在状态显示里用到.n
      • 组状态字的第25位 ("AS Process Control Fault"如何扩展一个块的块图标,使它能够显示与它附加在一起的消息兼容块的消息?)
        这个过程状态显示会评估组状态字的第25位,消息类型“AS 过程控制系统故障”会在状态显示里用到.n
      • 组状态字的第16位("Measuring point Disabled" 如何扩展一个块的块图标,使它能够显示与它附加在一起的消息兼容块的消息?)
        在这里你会发现组状态字的第16位没有在“已使用位”的列表里,然而,“测量值失效”会以另外一种方式用于状态显示.

        如何扩展一个块的块图标,使它能够显示与它附加在一起的消息兼容块的消息?
        Fig. 07
        n

      • 状态字 1 第 16 比特 (Status word 1 Bit 16)
        在这里你不可能清楚地看到这个信号的意思。首先,你可以做如下假设:
        假定这个扩展状态显示的“状态字1的第16位”的属性放在了用户自定义对象的接口里,并且这个信号连接到了组值(标签名"*.EventState"),这用于显示“测量值失效”的状态 如何扩展一个块的块图标,使它能够显示与它附加在一起的消息兼容块的消息? (Bit 16).
    • 接下来,你可以看一下这个扩展状态显示的"Assign pictures" 标签面,在对话框里可以看到哪个图片指定到了哪个状态,当你在状态列表里选择一行时,与之对应的配置好的静态图片和闪烁图片会在预览区里显示出来.

      如何扩展一个块的块图标,使它能够显示与它附加在一起的消息兼容块的消息?
      Fig. 08
      n

      现在你可以检查是否这个“状态字1”放到了用户自定义对象的接口里,并且哪个信号与它连接了(动态地).n

      如何扩展一个块的块图标,使它能够显示与它附加在一起的消息兼容块的消息?
      Fig. 09n

      如果这个"Status"的值是1,那么图片"@MessageLock.emf", 和"Measuring point Disabled"会显示出来,从这里你可以断定这个扩展状态显示的“状态字1”连到了变量标签"*.EventState" (组值).

      如果"Status"的值是0,会根据已经使用的消息类型的消息状态显示相关的图片。这个使用的消息状态会在“Alarm”列里显示, 信息是“到达”、“走了”,“已确认”。这些图片的名字会显示在“基本图片”列和“闪烁图片”列里,如下表所示.

      Alarm报警 基本图片/闪烁图片 描述
      OK @CollectValue_transparent.emf /
      (empty)
      No message
      Bit 25 (S), - @CollectValue_empty.emf /
      @CollectValue_S.emf
      消息类型为 "AS Process Control Fault" 的消息如何扩展一个块的块图标,使它能够显示与它附加在一起的消息兼容块的消息? 已发出
      Bit 25 (S), + @CollectValue_empty.emf /
      @CollectValue_S.emf
      消息类型为"AS Process Control Fault" 如何扩展一个块的块图标,使它能够显示与它附加在一起的消息兼容块的消息? 已到达
      Bit 25 (S), +Q @CollectValue_S.emf/
      (empty)
      消息类型为"AS Process Control Fault"的消息 如何扩展一个块的块图标,使它能够显示与它附加在一起的消息兼容块的消息? 已确认
      Bit 24 (F), - @CollectValue_empty.emf /
      @CollectValue_F.emf
      消息类型为 "AS Process Control Error" 的消息如何扩展一个块的块图标,使它能够显示与它附加在一起的消息兼容块的消息?已发出
      Bit 24 (F), + @CollectValue_empty.emf /
      @CollectValue_F.emf
      消息类型为 "AS Process Control Error" 的消息如何扩展一个块的块图标,使它能够显示与它附加在一起的消息兼容块的消息? 已到达
      Bit 24 (F), +Q @CollectValue_F.emf/
      (empty)
      消息类型为 "AS Process Control Error" 的消息如何扩展一个块的块图标,使它能够显示与它附加在一起的消息兼容块的消息?已确认
  • 关闭扩展状态显示对象的对话框.n
  • 结束用户自定义对象的编辑模式.
    在这里你选择命令"Select all",然后右键单击它,打开用户自定义对象的快捷菜单,选择菜单命令“Customized object > Finish editing”.n
  • 现在右键单击,打开用户自定义对象的快捷菜单,选择命令"Configuration dialog",在"Selected Properties" 列表里,依次展开"Links > CollectValue" 入口,你可以看到这个用户自定义对象的"CollectValue"属性在内部连接了"Group value",和"Status word 1".

    如何扩展一个块的块图标,使它能够显示与它附加在一起的消息兼容块的消息?
    Fig. 10

    在上边这个扩展状态显示的“测量值失效”信息是由"Status word 1"显示的,前边的假定得到了证实.

    注意:
    我们也可以想象在设置里,已将第16位“测量值交效”直接加在了扩展状态显示的“已经使用的位”列里,然后你根本不必再使用“状态字1”。这这简化设置过程.

5规划扩展这个"SammelanzeigeCurrent" 对象
下面的这两个组状态值将要被用到组显示里边: n

  • "Alarm High" 如何扩展一个块的块图标,使它能够显示与它附加在一起的消息兼容块的消息?
  • "Warning High" 如何扩展一个块的块图标,使它能够显示与它附加在一起的消息兼容块的消息?

组值n

  • "AS Process Control Fault" 如何扩展一个块的块图标,使它能够显示与它附加在一起的消息兼容块的消息?
  • "Measuring point Disabled" 如何扩展一个块的块图标,使它能够显示与它附加在一起的消息兼容块的消息?

没有必要再加上,因为它们已经被使用了.

6扩展"SammelanzeigeCurrent"对象的属性 n

  • 右键单击块图标然后在快捷菜单里选择命令"Customized object > Edit...".n
  • 右键单出这个拷贝的组显示对象。(对象名“SammelanzeigeCurrent”).n
  • 从弹出的菜单里选择命令 "Configuration dialog".n
  • 现在我们做如下修改: n
    • 在 "General" 标签时,您加上组值 "Alarm High" 如何扩展一个块的块图标,使它能够显示与它附加在一起的消息兼容块的消息? 和 "Warning High" 如何扩展一个块的块图标,使它能够显示与它附加在一起的消息兼容块的消息?到 "Used bits" 列表中.

      如何扩展一个块的块图标,使它能够显示与它附加在一起的消息兼容块的消息?
      Fig. 11

      注意:
      采用这种做法,为状态指定的图片配置将会丢失..

    • 切换到 "Assign pictures" 标签.n
    • 为各种状态指定对应的图片。在下图中可以看到如何指定,在例图中为新状态指定的是一个红色背景包围的字母.

      如何扩展一个块的块图标,使它能够显示与它附加在一起的消息兼容块的消息?
      Fig. 12

      注意:
      了显示组值(Group value)"Alarm High" 如何扩展一个块的块图标,使它能够显示与它附加在一起的消息兼容块的消息? 和"Warning High" 如何扩展一个块的块图标,使它能够显示与它附加在一起的消息兼容块的消息?的状态,你必须首先生成对应的图片文件(EMF 文件)。你可以创建图片文件在临时画面里,在这里我们可以使用静态文本“Static text”对象。指定一个合适的颜色和相关的文本。使用“File”菜单的“Export….”功能来生成需要的图片文件。

      如何扩展一个块的块图标,使它能够显示与它附加在一起的消息兼容块的消息?
      Fig. 13

  • 结束编辑这个用户自定义对象(块图标).
7将"SammelanzeigeCurrent"的属性放到这个块图标的接口上去
打开这个用户自定义对象的设置对话框,将"CollectValueCurrent"的属性 定义到这个用户自定义对象的属性里. n

如何扩展一个块的块图标,使它能够显示与它附加在一起的消息兼容块的消息?
Fig. 14n

点击"OK"来关闭配置对话框.

8连接"SammelanzeigeCurrent"的属性
连接"SammelanzeigeCurrent"的属性到消息变量. n

如何扩展一个块的块图标,使它能够显示与它附加在一起的消息兼容块的消息?
Fig. 15

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

如何扩展一个块的块图标,使它能够显示与它附加在一起的消息兼容块的消息?
Fig. 16n

你可以手动修正这个变量连接。为了防止这些变化在下一次编译时被覆盖,你应该改变这个块图标的"类型(type)"属性.n

如何扩展一个块的块图标,使它能够显示与它附加在一起的消息兼容块的消息?
Fig. 17

解决方案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

如何扩展一个块的块图标,使它能够显示与它附加在一起的消息兼容块的消息?
Fig. 18n

注意:

  • 如果一个AS块包含多个消息块(例如:ALARM_8P or NOTIFY_8P),那么这些单独的消息状态已经逐位连接到了控制器,在这种情况下 在OS上执行"bit-by-bit OR"操作是没有必要的.在条ID为 28757820 的FAQ文档中对此进行了描述.n
  • 这个动态对话框不适用于使用"Create/Update Block Icons"功能来完全创建块图标, 因为变量和触发器都要采用后来的. ID号为14278452 的FAQ文档描述了如何配置块图标,使它们能够重复使用脚本.
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

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2020年11月5日 下午12:03
下一篇 2021年4月12日 上午12:00

相关推荐

发表回复

登录后才能评论