控件记录中存在报警时播放音乐

以下是脚本,请高手指点是否有错误,经常导致wincc画面异常,删除此全局脚本后,画面运行正常,谢谢!

#include "apdefap.h"
int gscAction( void )
{
MSG_RTDATA_STRUCT mRT;
int i;
char* pszToken;   // Now is my code
#pragma code("winmm.dll")
BOOL WINAPI sndPlaySoundA(char* szWave,DWORD dwFlag);
#pragma code()
DWORD SND_ASYNC=0x0001;
DWORD SND_LOOP=0x0008;
DWORD alarmsum, alarmunack;
LPCMN_ERROR errorunack,errorsum;
#pragma code("msrtcli.dll")
#pragma code()
LPDWORD lpdwServiceID;
MSG_SERVICE_NOTIFY_PROC lpfnNotifyProc;
LPMSG_FILTER_STRUCT lpMsgFilter;
DWORD dwNotityMask;
LPVOID lpvUser;
LPCMN_ERROR lpError;
BOOL  n1;
n1=MSRTGetMsgQuit(&alarmunack,errorunack);
SetTagDWord("number",alarmunack);
MSRTGetMsgActual(&alarmsum,errorsum);
SetTagDWord("sum",alarmsum);
if (alarmsum==0)
sndPlaySoundA(NULL,SND_ASYNC);
else
{
if (alarmunack>0)
sndPlaySoundA("D:\\Horn_Attention.WAV",SND_ASYNC|SND_LOOP);
else
sndPlaySoundA(NULL,SND_ASYNC);
// sndPlaySoundA("D:Horn_Attention.WAV",SND_ASYNC|SND_LOOP);
}
// WINCC:TAGNAME_SECTION_START
// syntax: #define TagNameInAction "DMTagName"
// next TagID : 1
// WINCC:TAGNAME_SECTION_END
// WINCC:PICNAME_SECTION_START
// syntax: #define PicNameInAction "PictureName"
// next PicID : 1
// WINCC:PICNAME_SECTION_END 
return 1; 
}

最佳答案

直接用wincc自带的过程组建horn吧,这个组态简单,而且不耗费wincc资源

http://www.ad.siemens.com.cn/download/docMessage.aspx?Id=2580&

视频:

WinCC跟我做:WinCC实现声音报警的方法
http://www.ad.siemens.com.cn/Service/elearning/cn/Course.aspx?CourseID=892&

提问者对于答案的评价:
简单实用

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

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2017年11月25日 上午11:45
下一篇 2017年11月25日 上午11:45

相关推荐

  • WINCC的数据归档参数动作怎么用?

    某一个数1s采集归档一次,但是每5s得到这组数据(前5个)的最大值最小值平均值和极值。我想要通过归档工具做这个数的极值,我看到这个归档底下,属性,参数下面有一个动作,这个动作C脚本…

    SIMATIC WinCC 2017年10月24日
  • 工程师站下载项目

    用step7组态集成的wincc多用户项目,如何下载到相应的服务器及客户机中,哪位高手能指点一下或是提供个具体的手册或教程!谢谢 最佳答案 http://www.ad.siemen…

    SIMATIC WinCC 2021年7月5日
  • 项目冗余复制错误提示

    目标系统上未安装SQL 服务器实例"Wincc" 保存/复制操作被终止 最佳答案 项目复制器可不仅仅是个简单的文件复制过程,复制的最后有个后…

    SIMATIC WinCC 2019年6月11日
  • WINCC中线性标记是什么意思

    WINCC中线性标记是什么意思,过程值变量范围,变量值范围!是怎么用的 最佳答案 过程值范围:即PLC中读取上来的值的范围。变量值范围:也就是你想要显示的值(即经过线性缩放后的值)…

    SIMATIC WinCC 2019年6月11日
  • 在哪里建立全局脚本可以使用的全局变量

    为什么在全局脚本中不能使用内部变量呢?内部变量不是全局有效的吗? 问题补充:谢谢!按照你的提示做好了. 那我想给那个内部变量赋初值,就是程序一进入运行状态就给它赋一个常量…

    SIMATIC WinCC 2019年6月11日
  • wincc自定义对象

    wincc自定义对象怎么使用,有没有视频教程 最佳答案 WINCC 如何有效组态自定义对象?https://support.industry.siemens.com/cs…

    SIMATIC WinCC 2020年11月1日
  • PORTAL WINCC V13可以做窗口画面吗

    在工具箱控件中没有窗口视图一项 最佳答案 你安装的不是专业版本的安装专业版本地址链接: http://pan.baidu.com/s/1c1zWZuS 密码:&…

    SIMATIC WinCC 2017年6月24日
  • WINCC 用户登录界面有时候为什么会显示英文,有时间英文??

    WINCC 用户登录界面有时候为什么会显示英文,有时间英文??WINCC 用户登录界面有时候为什么会显示英文,有时间英文??WINCC 用户登录界面有…

    2020年11月1日
  • 添加ADO引用

    在WINCC 中通过VBS 脚本对ACESS数据库进行访问,如何向VB 6.0中那样 引用 ADO 最佳答案 VBS无法像VB一样…

    SIMATIC WinCC 2019年6月11日
  • 请问WINCC V6.0问题

    服务包不同,授权不一样么? 最佳答案 相同 提问者对于答案的评价:谢谢!

    SIMATIC WinCC 2019年6月11日