声音报警

做声音报警
 就是不能触发不知道错误在那
 请给各位指教
 谢谢
 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 播放声音报警

    我网上弄了一个嵌入按钮中的播放声音的C脚本。但我想关联到一个IO域输出显示变量上:大于等于设定值时播放,低于该设定值时停播。请问怎么实现呢? 问题补充:安照昵称ISIEMENSID…

    2021年7月5日
  • WINCC通讯很慢

    在一台工控机上新装的Wincc6.2,系统是XP SP2。装Wincc前刚重装了系统,系统没有装过杀毒软件,也没有打任何更新补丁(wincc的除外)。 &nbs…

    SIMATIC WinCC 2019年6月11日
  • 求教博途的WINCC监控问题

    做的十层双部并联电梯画好WINCC界面,仿真时,部分按钮和图形无法连接到PLC变量,该怎么调,另写一段梯形图后在HMI里能连接变量,请问怎么提调? 问题补充:HMI界面画了一些按钮…

    SIMATIC WinCC 2017年5月28日
  • wincc无法保存数据

    有一台设备,没加工一个件都会自动记录件型号和日期、时间等信息到Excel表格里,现在直接不保存了,而且会出现比如打开12月份的表格里边是5月份的内容这样的现象。请问这是什么原因,可…

    SIMATIC WinCC 2020年11月1日
  • wincc WebNavigator网页发布

    求问,如图1我用wincc viever RT可以有画面显示,如图2在IE浏览器里面插件显示状态未知,即使安装过了还是显示未知,不显示画面. 图片说明: &nb…

    2021年7月5日
  • wincc 变量更改切换画面

    大家好!本人想利用全局脚本的方法,用wincc内部变量的更改切换画面1、wincc项目利用向导生成的wincc模板,基础画面A1画面中的按钮切换A1的 画面窗口1&nbs…

    SIMATIC WinCC 2021年7月5日
  • wincc菜单问题

    能否通过WINCC菜单按钮,来打开windows记事本等应用程序,且windows记事本窗口在运行系统当中。这样可以记录一些相关运行信息。 最佳答案 1、VBS调用外部程序可通过W…

    SIMATIC WinCC 2019年6月11日
  • smart 1000IE V3只能用WinCC flexible SMART V3编辑吗

    smart 1000IE V3只能用WinCC flexible SMART V3编辑吗,有没有别的软件,现在WinCC&nbsp…

    SIMATIC WinCC 2021年7月5日
  • WinCC 可以通过脚本 控制 多边形的角点位置吗?

    多边形对象有很多角点,我可以通过脚本,动态的控制各个角点的位置吗? 钻石用户推荐最佳答案 1楼上的朋友说的应该不对,您说的是对整个对象的XY坐标进行调整,并非是控制各个角点的命令吧…

    SIMATIC WinCC 2020年11月1日
  • PCS7面板修改问题

    我是PCS7的初学者,PCS7中motor功能块经OS编译后,在Wincc中的哪些电机面板的颜色怎么修改呵。系统默认的是绿色的运行。我想修改为红色运行,绿色停止(业主要求的)。请各…

    SIMATIC WinCC 2019年6月11日