如何用其他带有报警消息的块中的消息来显示一个顺控程序的运行状态信息?

指导:
条目号28883565 描述了在OS上显示顺控程序当前运行状态的各种方法。本文描述了将操作状态作为一个消息文本显示的方法。消息的关联值用于在消息文本中显示顺控程序的实际操作状态。为了实现这一点,在SFC type相应的步中,要把用于显示运行状态的的文本写到一个特别创建的输出变量(control value)。这个文本 (STRING) 在CFC中连接到用户创建的块。要实际触发这个消息,需要在SFC Type中将一个布尔量(BOOL)输出置位,在CFC中连接到用户创建的消息块。n

选择这个方案的说明:

  • 在组态SFC Type的时候,顺控程序的运行状态 ("STRING"数据类型) 不能直接连接到报警块(ALARM_8P或者 NOTIFY_8P)的报警关联值。所以必须要在CFC中把数据类型 "STRING" 转换成另外一种类型 (ARRAY OF BYTE或者 STRUCT)。在下面描述的方案中,这种数据类型的转换是通过一个额外的块实现的。这个额外的块同时也用于触发需要“操作员消息”。n
  • 另外,也可以利用SFC Type中现有的消息信号触发实际的“操作员消息”。当在CFC中直接置位/复位消息触发信号以及连接文本的时候,要考虑到可能带来的时间延迟。条目号 28883644详细描述了这一方案。

用这种方式,顺控程序的运行状态作为消息显示在WinCC消息系统中和BATCH记录中。这种方式生成的消息不会显示在SFC面板的Alarm视图中,因为PCS7的面板中只显示关联块(背景DB)的消息。在这种情况下,这些消息只是直接被SFC Type的实例触发的消息。条目号 28737155 描述了怎样才能让消息也显示在PCS7面板的Alarm视图中。
n

No. 步骤
1 组态SFC type n

  • 定义SFC控制变量(output 参数)
    在 SFC type中,创建相应数量的output参数(控制变量) 来实现消息触发信号和顺控步骤中的实际消息文本。根据顺控程序的结构 (例如,是否有并行的分支),可能需要多个消息触发信号和消息文本。在本例中,创建了5个二进制 (BOOL) 和5 个文本 (STRING) 变量作为控制变量。本例中有一个并行分支,因此每个分支有两个信号就够了,其他信号为保留值。
  • 写入 SFC 控制变量 (output 参数)
    在步处理的动作中给SFC的控制变量赋值,例如: n
    • 步的初始化
      在步的初始化阶段可以复位消息触发信号 (FALSE),例如,在这一时刻还没有设置实际的运行状态文本。
      背景:
      复位消息触发信号对于一个已经存在并需要确认的消息会导致消息块运行时产生一个"Went out"消息。然而一个新的消息只有在消息触发信号的上升沿才能够被触发,因此在此复位是非常重要的。n
    • 步的处理
      在步的处理过程中可以置位消息触发信号 (TRUE) 同时设置当前运行状态的文本。
      背景:
      这会导致消息块在运行时产生 "Came in"消息。当前的运行状态显示在消息文本中。

下图显示了上述过程的例子:n

如何用其他带有报警消息的块中的消息来显示一个顺控程序的运行状态信息?
Fig. 01n

注释:
注意消息触发信号的改变 (上升沿) 一定要输出以触发消息。如果在一个步结束时复位并且在下一个步的初始化中置位,则消息触发信号(output参数)不会改变。

2创建一个带消息功能的块
创建带消息功能的块的相关信息可以从下面得到 n

  • 在手册 "Process Control System PCS 7 - Block Programming Instructions"中
    这个手册包含了"Configuring Messages"和 "Coecting to SIMATIC BATCH" 相关的说明。

可以下载下面的SCL源程序,用于创建带消息功能的块。n

如何用其他带有报警消息的块中的消息来显示一个顺控程序的运行状态信息? operate_scl.pdf ( 10 KB ) n

在PCS7中创建块推荐使用SCL编程语言。当然,也可以用STL语言创建PCS7的块,因此也提供了STL的源程序。注意在SCL和STL中系统功能 "BLKMOV" (SFC 20) 的使用是不同的。n

如何用其他带有报警消息的块中的消息来显示一个顺控程序的运行状态信息? operate_STL.pdf ( 11 KB ) n

下面的下载提供了源程序和文本文件。可以通过Notepad.exe打开文本文件,例如,拷贝源代码然后插入到相应的程序编辑器里 (SCL editor或者 AWL editor)。必须分配一个块编号(block number)才能正确编译。可以在符号表中为块定义一个符号。n

如何用其他带有报警消息的块中的消息来显示一个顺控程序的运行状态信息? operate.zip ( 16 KB ) n

注释:

  • PCS 7 消息对话框
    在下面的步骤中,为了能够打开PCS7的消息对话框组态消息文本,必须在块头(Block header)定义块属性 "S7_alarm_ui := '1'"
  • 使用BLKMOV (SFC 20)
    这一步描述用于数据类型 "STRING"。由于数据类型 "STRING" 不能作为消息关联值连接到 "ALARM_8P" 块。所以必须转换类型。系统功能 "BLKMOV" (SFC 20) 用于将 "STRING" 类型的变量拷贝到可以连接到消息关联值的变量。 n
    • SCL
      在SCL源文件中,系统功能BLKMOV拷贝 "STRING" 类型的变量到"ARRAY OF BYTE"类型的变量。 STRING类型的前2个字节包含了字符串的长度信息 (最大长度和当前使用的长度)。 如果BLKMOV的源字符串是 "STRING" 类型,在SCL中字符串的前2个字节 (长度信息)拷贝。 字符的最大数不拷贝,只拷贝当前用到的字符。"ARRAY OF BYTE" 类型的变量作为消息关联值传递。n
    • STL
      使用STL的时候,前2个字节(长度信息)是拷贝的。在OS运行时,可能会导致消息文本中出现不希望的文字。为了避免这种情况,定义了一个包含2个元素的结构变量作为拷贝的目标变量。结构变量的第一个元素是一个2个byte的ARRAY,包含了长度信息。第二个元素数据类型是ARRAY OF BYTES,包含了要显示的字符。必须选择合适的字节数保证拷贝完整的字符串。整个结构变量不作为消息关联值,只有其中的第二个元素关联。
  • BATCH 连接参数
    如果这个块要用于SIMATIC BATCH,那么必须要有下列参数:"BA_EN", "BA_NA", "BA_ID", "OCCUPIED"和 "STEP_NO"。连接参数 "BA_NA" (STRING 32) 分配到第一个消息关联值,连接参数"STEP_NO" 到第二个消息关联值参数 "BA_ID" 到第三个消息关联值。这对于在BATCH记录中显示消息很重要。条目号 28468592提供了更多信息。
  • 报警关联值的连续连接
    当调用"ALARM_8P"块的时候,消息需要的关联值通过"SD_1"到 "SD_10" 连接。注意第一个连接"SD_1"需要连续调用所需的消息关联值。一旦消息关联值没有连接,后面用到的消息关联值就不会在运行时显示在消息中。

    在这个例子中消息关联值按照如下方式连接:: n

    • SD_1:= abyBA_NA (BATCH batch 标识)n
    • SD_2:= wSTEP_NO (BATCH 步号)n
    • SD_3:= dwBA_ID (BATCH 运行批号)n
    • SD_4:= abyText1 (运行状态文本1)n
    • SD_5:= abyText2 (运行状态文本2)n
    • SD_6:= abyText3(运行状态文本3)n
    • SD_7:= abyText4(运行状态文本4)n
    • SD_8:= abyText5(运行状态文本5)

    更多信息参考条目号189296

  • 删除和重新导入块
    如果修改了带报警功能的块的结构,例如,添加或者删除的输入、输出,那么要在OS运行时显示消息必须执行以下操作: n
    • 更新块类型n
    • 如果在CFC中已经使用了这个块,则要删除,重新插入和连接块。n
    • 完全编译和下载ASn
    • 完全编译和下载OS

    更多信息参考条目号189296.

3组态带消息功能的块的消息
块编译成功后,可以组态消息 n

  • SIMATIC Manager切换到组件视图。n
  • 在树状视图中选择相应控制器程序的"Blocks"目录。n
  • 在工作区域选择创建的块,弹出右键菜单。n
  • 选择 "Special Object Properties > Message...",打开 "PCS 7 Message Configuration"对话框。n
  • 选择需要的消息类别组态消息文本。

    如何用其他带有报警消息的块中的消息来显示一个顺控程序的运行状态信息?
    Fig. 02

4在CFC中连接块
顺控块和单独的消息块连接。 n

如何用其他带有报警消息的块中的消息来显示一个顺控程序的运行状态信息?
Fig. 03

5编译/下载/测试

  • 完全编译并完全下载AS
  • 完全编译并完全下载OS
  • 现在可以测试功能。下图显示了在SFC面板的Alarm视图中的消息。请注意条目号 28737155 中指出的必要的修改。

    如何用其他带有报警消息的块中的消息来显示一个顺控程序的运行状态信息?
    Fig. 04

    下图显示了BATCH 记录。

    如何用其他带有报警消息的块中的消息来显示一个顺控程序的运行状态信息?
    Fig. 05

原创文章,作者:ximenziask,如若转载,请注明出处:https://www.zhaoplc.com/plc332148.html

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

相关推荐

发表回复

登录后才能评论