怎样捕捉报警产生时的消息

自己想监测一下在产生消息时,都弹出一个对话框来提示操作人员有报警产生,弹出的信息用messagebox就可以解决了,但用什么事件来触发messagebox呢,找了一下c脚本编辑器中的操作alarm的函数,没有一个可以捕捉到报警产生消息的。或者自己不理解那些函数吧!!
 报警产生只是起提示作用,具体的报警还得去报警控件中查。不知道这想做法行不行,如果有其他方法又怎么做呢?多谢!!

问题补充:
多谢哈!!明天试一下。
   如果是监测的变量每个都用脚本做一个判断,变量太多的话,有点麻烦。
  第一感觉就是用GMsgFunction,但它的参数是一个char*,而且对这个参数的说明是指向一个结构体,自己随便传入了一个char*类型的参数,也提示输入的函数要指向一个结构体,那个结构体也明白,但怎么要用一个char*类型来传入呢?疑问还蛮多地啊!!

 补充2:新问题:标准函数改不了。哎……,问题刚写入一个字符,C脚本编辑器就关闭了,把工程取消激活也不行,勉强用复制的方法加入了一点,但,又识别不了那个类型的结构体了。呵呵!!

最佳答案

据我所知,方法不止一种:
   1、由PLC产生一个综合报警的位,WinCC编写全局脚本,如果该位为1,则弹出消息。
   2、利用Horn功能,为特定的报警类别配置一个内部变量,由该类别的报警发生时内部变量自动置1,然后编写全局脚本,如果该位为1,则弹出消息。
   3、修改标准函数->Alarm->GMsgFunction,当发生报警时(消息必须勾选<触发一个动作>才能被GMsgFunction捕捉到),弹出消息。

   暂时就想到这么多。。。
  ---------------------------
  楼主第一感觉不错,上来就选了个最难的,呵呵。
 注意:GMsgFunction由系统自动调用。该函数已经将pszMsgData读入了mRT中,根据mRT即可判断是否有报警发生,比如:
 if (mRT.dwMsgState==MSG_STATE_COME)//信息到达处理
 {
      xxxxxxx;
 }

提问者对于答案的评价:
多谢哈!!!还是明白了不少,又看了一下wincc教程1,从西门子上下的,又明白了很多!!!

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

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2019年6月11日
下一篇 2019年6月11日

相关推荐