当运行时消息出现时,如何在用户指定的”GMsgFunction()”动作中确定消息文本和过程值?

使用说明:
在组态消息时,如果设置了属性 "This message triggers an action", 那么运行时当有指定消息事件(到来,离开,被确认...)时,动作将会被触发。n

当运行时消息出现时,如何在用户指定的"GMsgFunction()"动作中确定消息文本和过程值?
图. 01n

在此 C动作中,可以自己编程来响应指定的报警事件。 "GMsgFunction()" 作为默认的动作被调用。n

有关"GMsgFunction()" 的详细的信息:n

  • WinCC 信息系统下的 "Working with WinCC > ANSI-C for Creating Functions and Actions > Function description > Standard Functions > Alarm > GMsgFunction"n
  • 条目24842903 - 该条目描述了当该动作执行时的报警事件和"Status" ("St:")数值的意义。利用该值可以在动作中确定报警的状态。 如果某些情况下,想要用户指定的动作在特定的报警事件(到来,被确认,消息发送或堵塞)时被执行,那么这个状态值和重要。

"GMsgFunction()" 函数可以在全局脚本编辑器中的 "Standard functions > Alarm > GMsgFunction"中找到。下面下载例子中的 "GMsgFunction()"提供了两个例程 ,分别判断消息文本和过程值。n

当运行时消息出现时,如何在用户指定的"GMsgFunction()"动作中确定消息文本和过程值? GMsgFunction.zip ( 8 KB ) n

重要事项:

  • 确定在修改文件"gmsgfunc.fct" (../Siemens/WinCC/aplib/Alarm)前,先保存原始备份。n
  • 而且,应该保存修改过的文件 "gmsgfunc.fct" , 因为如果重新安装 SIMATIC WinCC 的话,该文件将被覆盖。n
  • 注意所有的消息都会调用同一个gmsgfunc.fct. 如果对于不同的消息事件想调用不同的处理函数,可以在程序中根据自己的需求来处理当前的消息号或当前的消息状态。n
  • 请注意过度使用该函数可能会影响性能。尽可能保证函数简洁。n
  • 在下载例程中使用了一些来自于SIMATIC WinCC ODK选件包中的函数(比如 MSRTGetMsgCSData ...) . 关于 ODK 的信息请参见条目9652128
  • 如果进行了 "compile entire OS with memory reset" (比如,使用 PCS 7),报警纪录编辑器中的"This message triggers an action" 的设置会被重置。不使用内存重置则不会影响该设置。

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

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

相关推荐

发表回复

登录后才能评论