声音报警确认问题

报警使用HORN方式做的,问下专家,,报警如果不消除,声音是一直响的,那个horn组里的reset不好复位的。能不能做到确认此次报警后不响,下一批新报警来时再发出声音???以此类推!

问题补充:
请问我如何判断新报警到来,脚本怎么写,谢谢!

最佳答案

打开全局脚本C脚本编辑器,然后找到标准函数里的Alarm这个组里的GMsgFunction函数
把它改成下面这样
BOOL GMsgFunction( char* pszMsgData)
{
#pragma code("Winmm.dll")
void WINAPI PlaySoundA(char*pszSound,char*hmode,DWORD dwflay);
#pragma code()
MSG_RTDATA_STRUCT mRT;
memset( &mRT, 0, sizeof( MSG_RTDATA_STRUCT ) );
  if( pszMsgData != NULL )
  {
     printf( "Meldung : %s \r\n", pszMsgData );

    // Meldungsdaten einlesen
     sscanf( pszMsgData,  "%ld,%ld,%04d.%02d.%02d,%02d:%02d:%02d:%03d,%ld, %ld, %ld, %d,%d",
 &mRT.dwMsgNr,    // Meldungsnummer
 &mRT.dwMsgState,     // Status MSG_STATE_COME, .._GO, .._QUIT, .._QUIT_SYSTEM
 &mRT.stMsgTime.wYear,   // Tag
 &mRT.stMsgTime.wMonth,   // Monat
 &mRT.stMsgTime.wDay,  // Jahr
 &mRT.stMsgTime.wHour,   // Stunde
 &mRT.stMsgTime.wMinute,  // Minute
 &mRT.stMsgTime.wSecond,   // Sekunde
 &mRT.stMsgTime.wMilliseconds, // Millisekunde
 &mRT.dwTimeDiff,   // Zeitdauer der anstehenden Meldung
 &mRT.dwCounter,   // Interner Meldungsz?hler
 &mRT.dwFlags,   // Flags( intern )
 &mRT.wPValueUsed,
 &mRT.wTextValueUsed );
 
      // Prozesswerte lesen, falls gewünscht
    } 

if (mRT.dwMsgState==MSG_STATE_COME)
{
PlaySoundA("C:\\WINDOWS\\Media\\ringin",NULL,1|8); \\当报警到达,报警声循环发声
}
else if(mRT.dwMsgState==MSG_STATE_QUIT)
{
PlaySoundA("C:\\WINDOWS\\Media\\notify",NULL,0); \\当报警确认,确认声发一声
}
else if(mRT.dwMsgState==MSG_STATE_GO)
{
PlaySoundA("C:\\WINDOWS\\Media\\chimes",NULL,0); \\当报警离开,离开声发一声
}

  printf("Nr : %d, St: %x, %d-%d-%d %d:%d:%d.%d, Dur: %d, Cnt %d, Fl %d\r\n" , 
  mRT.dwMsgNr, mRT.dwMsgState, mRT.stMsgTime.wDay, mRT.stMsgTime.wMonth, mRT.stMsgTime.wYear, 
  mRT.stMsgTime.wHour, mRT.stMsgTime.wMinute, mRT.stMsgTime.wSecond, mRT.stMsgTime.wMilliseconds, mRT.dwTimeDiff,
  mRT.dwCounter, mRT.dwFlags ) ;

   return( TRUE );

然后,打开报警记录,在每条报警编号的属性里进行组态,在“触发一个动作” 前打上勾,例如有100条报警,那么在这100条报警编号的属性里都要打勾。
进行完这个步骤后,就可以在WINCC平台中实现报警发声功能了。

提问者对于答案的评价:
谢谢 ,我试试看

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

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

相关推荐

  • Wincc编译错误

    内部错误:value  cannot  be  null  parameter &nbsp…

    SIMATIC WinCC 2017年11月4日
  • wincc 用VBS生成excel报表的困惑

    1表格里的时间是格林威治时间怎么改为北京时间?2表格里的消息文本只能显示英文或者字符,中文成问号,(格式已经改为文本)请详细指点一下 图片说明:    最佳答案…

    2017年10月29日
  • WINCC TCP/IP通讯连接多个PLC站点的问题

    目前有个项目,需要在一个WINCC界面上控制多个独立的PLC系统,我们设想在TCP/IP目录下建立多个连接,IP地址不重复,不知道这样做是否可行,若其中一个PLC站点故障,是否会影…

    SIMATIC WinCC 2019年6月10日
  • 触摸屏不能自动跳转到画面里去

    MP277触摸屏不能自动弹出loader窗口,也不能自动跳转到触摸屏画面里,我断电后,重新接通电源后,弹出loader窗口闪一下即没有了,我等了大约半个小时后,触摸屏也没有自动跳转…

    SIMATIC WinCC 2019年6月11日
  • 6AV66430CD011AX1、6AV66430CD011AX2

    这两个型号的触摸屏有什么区别,为什么价格差距大 最佳答案 -1AX1淘汰产品,备件少,所以贵。为了备件供应,将型号更改为-1AX2的,详见以下文档链接:临时通知的修改:SIMATI…

    SIMATIC WinCC 2017年6月24日
  • wincc 图形编辑器报错

    wincc 打开图形编辑器中的一个图形是会报错误1605,但是画面又能打开,这个是什么问题 图片说明:    最佳答案 看着像你的软件没有安装好啊,或…

    2017年7月30日
  • 关于报警查询的问题

    各位师傅你们好,我现在想做报警查询,wincc中的数据库会把查到的数据保留多长时间啊,我过了几天查几天前的数据怎么就查不到啊,这应该怎样设置啊,谢谢谢谢 最佳答案 收一下邮箱hua…

    SIMATIC WinCC 2019年6月11日
  • WinCC文本显示问题

    现有这样的一个问题请教各位, 建立了一个静态文本,要求静态文本里显示的文本信息根据连接的变量里的值不同显示不同的文本信息,比如静态文本连接的变量是DB1.DBW0,DB1…

    SIMATIC WinCC 2019年6月11日
  • wincc在受限账户中的运行

    想请问一下!WINCC怎么能在自己创建的受限账户中运行!我现在能在管理员账户中运行,可是在受限账户中运行!打开WINCC就提示“接口不对”我已经把受限账户添加到了SIMATIC&n…

    SIMATIC WinCC 2018年12月14日
  • WINCC如何与S7-200通信

    WINCC如何与S7-200实现工业以太网通信 最佳答案 简单的系统 直接用 s7-200 的 PPI ,以PC acc…

    SIMATIC WinCC 2019年6月11日