声音报警

做声音报警
 就是不能触发不知道错误在那
 请给各位指教
 谢谢
 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能否读取计算机数据采集卡?

    WINCC能否读取插在计算机上数据采集卡,如果可以请问都支持哪几种数据采集卡,该如何读取和存储数据,谢谢? 最佳答案 要看数据采集卡的数据接口了数据采集卡我想应该是提供动态链接库D…

    SIMATIC WinCC 2019年6月11日
  • wincc7.3 如何向PLC实时写入数据

    已经把支站的所以数据都读取到wincc数据库中了,现在就是要把流量(浮点数)写入指定PLC站的地址,除了plc与plc之间通讯,wincc能不能直接将读取的数据写入,用C或者VB的…

    SIMATIC WinCC 2021年7月5日
  • SIMATIC WinCC flexible 2008打不开项目文件

    SIMATIC WinCC flexible 2008无法打开文件,电脑是win7 64位,安装的SIMATIC WinCC&nb…

    SIMATIC WinCC 2021年7月5日
  • Function Trend Control 怎么设置线宽

    请教各位:Function Trend Control 怎么设置趋势线的宽度?我只找到颜色的设置选项。 问题补充:我打开控件属性里 没有看到…

    SIMATIC WinCC 2019年6月11日
  • 怎么在windows2000下安装wincc v6.0sp3?

    我用的操作系统是windows2000英文版,请问我要装wincc v6.0 sp3要做什么准备工作,或者说可以用这个操作系统装wincc v6.0&…

    SIMATIC WinCC 2019年6月11日
  • 流水动画X的值是怎么设定的?

    WinCC跟我做:WinCC V7水流动画 课程编号:V1047 本视频介绍了WinCC如何使用折线实现水…. 点击这里,打开新窗口观看完整视频 该视频下的所有用户提问列表 我…

    2021年7月5日
  • KTP900精简屏幕编译报错找不到变量

    我使用HMIKTP900屏幕,在原来的程序上加上数据导出,我就在历史数据中添加了一组记录数据,后来又不要了。奇怪的事情发生了,我编译屏幕会一直报错 问题补充:报错显示的是记录变量&…

    2020年11月1日
  • 谁提供一些关于C脚本的资料

    关于C脚本的编写还很不熟悉,希望找些资料学习一下,有的请不吝共享,邮箱shanhan118@163.com 最佳答案 《WinCC脚本应用》:http://bbs.iianews.…

    SIMATIC WinCC 2019年6月11日
  • wincc 变量替换

    大侠们好!我现在碰到一个情况,具体是这样的:现场共有15台设备,其控制模式都是一样的。因此,我打算做一个通用的控制画面(在画面窗口1中打开,该画面上有设备的各种状态指示和启停控制等…

    SIMATIC WinCC 2021年7月5日
  • WINCC的难点

    1、如图,WINCC里以前建立的报警列表里若干个报警信息,现在不用了,怎样能一下全部删除呢?一个一个删很费劲的。2、报警列表下面不知怎么设置的,跳出了几百条系统的报警信息,哪个参数…

    2018年12月9日