声音报警

做声音报警
 就是不能触发不知道错误在那
 请给各位指教
 谢谢
 Dim objWshShell
 Dim dizhi
 Dim chengxu
 Dim panduan
 Set panduan=HMIRuntime.Tags("bianliang")
 If panduan.value = 1 Then
 Set objWshShell = CreateObject("Wscript.Shell")
 dizhi = "C:\WINDOWS\Media\Windows XP 启动.wav"
 chengxu = "sndrec32 /play /close " & Chr(34) & dizhi & Chr(34)
 objWshShell.Run chengxu,0,True  
 End If
 

最佳答案

可以参考一下用得很多的C脚本实现方法:

 BOOL GMsgFunction( char* pszMsgData)
 {
 #pragma code("winmm.dll")
 BOOL PlaySound(LPCTSTR lpszSound,HMODULE hModule,DWORD dwSound);
 #define SND_FILENAME 0x00020000L
 #define SND_ASYNC 0x0001
 #pragma code()

 BOOL bRet=FALSE;
  MSG_RTDATA_STRUCT mRT;
   memset( &mRT, 0, sizeof( MSG_RTDATA_STRUCT ) );

  
   if( pszMsgData != NULL )
   {
  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 );

  if(mRT.dwMsgNr==1)
      {  printf(" No 1 alarm\r\n");
         bRet=PlaySound("C:\\mm.wav",NULL,SND_FILENAME|SND_ASYNC);
         if(bRet)   {MessageBeep((WORD)-1);}
       }
    if(mRT.dwMsgNr==2)
      {  printf(" No 2 alarm\r\n");

       }
   }
 MessageBeep((WORD)-1);
 return( TRUE );
 }
 关于gMsgFunction 的用法参考:
 http://support.automation.siemens.com/WW/view/en/15350783

提问者对于答案的评价:
很好

专家置评

albane的说法也对的,用vb脚本没问题。

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

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

相关推荐

  • wincc连接扫码枪

    现在一个项目用%ignore_a_1% +1200 + 扫码枪。扫码枪有网口支持MOUBUS TCP通信。我想用wincc和扫码枪通信,读取…

    SIMATIC WinCC 2021年7月5日
  • 西门子WinCC如何通过脚本组合字符串

    画面中有一个lnt类型的变量。通过脚本已经获取到了当前系统日期为字符串类型例如2019-12-05现在如何用脚本实现日期+数值一起转换为一个新的字符串如2019-12-05-01并…

    SIMATIC WinCC 2020年11月1日
  • 自定义图像的动态效果

    在WinCC画面编辑器里如何让自定义的图像做出“变量置位时显示,变量复位时消失”的动作。图片格式为JPG。 最佳答案 具体方法:1. 在WINCC画面编辑器中新建一个新画…

    SIMATIC WinCC 2018年3月6日
  • wincc 长时间不操作 鼠标迟钝

    有两个工程项目,都是运行一年多了,wincc6.0版本。现在问题是操作员长时间不操作的话,再操作画面,鼠标迟钝十几米秒,但是操作起来后就没问题了。项目重新备份了一下,还是老问题。 …

    SIMATIC WinCC 2017年11月25日
  • 工程师站向冗余服务器下载wincc项目时,提示无法连接数据库错误

    各位工程师们,求帮助。问题如下:我在工程师站上新建了一个Step 7项目,项目内有400H冗余系统一套,PCStation冗余服务器一套。工程师站与服务器在同一网段,能P…

    2017年8月24日
  • Wincc7.4sp1_如何做声音提醒?

    各位大神,一个水箱液位跌倒某个值的时候,wincc能否发出声音提醒? 最佳答案 http://www.ad.siemens.com.cn/service/elearning/cou…

    SIMATIC WinCC 2021年7月5日
  • wicc7.0报警控件如何用脚本分类查询报警信息

    利用报警空间自身功能在使用时候很不方便,能否用脚本分类条件筛选(例如按类别、设备号等)后查询的信息显示在报警控件里呢? 最佳答案 可用SQL语句对报警控件进行过滤。允许使用的参数主…

    SIMATIC WinCC 2017年6月24日
  • STEP授权问题

    我买了正版授权,有时开机打开STEP提示没有授权,注销一下就好了.不知道为什么? 问题补充:zhangli10说得有道理,我以前遇到过.  但是开机后我等了很久…

    SIMATIC WinCC 2019年6月11日
  • 数据记录的查看

    wincc里怎么以一个对话框的方式显示数据记录,类似于报警那种的对话框 钻石用户推荐最佳答案 wincc有在线趋势控件,可以以数字形式显示数据记录。或者用脚本查询记录,显示到exc…

    SIMATIC WinCC 2021年7月5日
  • MP277项目回传

    请问MP277的源程序能回传编辑吗?还是只有设备制造商才可编辑?我们是产品最终用户,请大神指点,谢谢! 钻石用户推荐最佳答案 1、一般MP277触屏程序是存于SD卡中,可以把SD卡…

    SIMATIC WinCC 2021年7月5日