WINCC的声音报警???!!! 请大家帮帮我!!!

已锁定

阳澄湖

  • 帖子

    139
  • 精华

    1
  • 被关注

    0

论坛等级:游士

注册时间:2004-01-31

普通 普通 如何晋级?

WINCC的声音报警???!!! 请大家帮帮我!!!

2092

13

2004-11-08 19:31:52

我在WINCC 6。0的全局脚本中写了精华版中的声音报警的一段程序,出现以下的问题:

在运行状态下点击一个利用WINCC向导组态为退出WINCC运行状态的按钮后,出现提示“动作仍在执行,是否退出动作?”不管是选择“退出动作”还是选择“不退出动作”,都可进入组态状态,而后再激活项目,进入运行状态,第一次点一些用C脚本组态的按钮可正常运行,但第二次再点同样这些按钮时则无效!
删除这段脚本后,无上面讲的提示,而且一切正常!西门子支持说这个声音脚本有问题!!!???

以下是这段肢本:


在全局脚本里面新建一个循环的东东,可以设置 2s,代码如下



#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 dwNotifyMask;

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("C:\\Program Files\\Windows NT\\Pinball\\SOUND36.WAV",SND_ASYNCSND_LOOP);

else

sndPlaySoundA(NULL,SND_ASYNC);


//sndPlaySoundA("C:\\windows\\media\\office97\\laser.wav",SND_ASYNCSND_LOOP);



}


return 1;

}
WINCC的声音报警???!!! 请大家帮帮我!!! 已锁定
编辑推荐: 关闭

请填写推广理由:

本版热门话题

SIMATIC WinCC / Panel

共有32767条技术帖

相关推荐

热门标签

相关帖子推荐

guzhang

恭喜,你发布的帖子

评为精华帖!

快扫描右侧二维码晒一晒吧!

再发帖或跟帖交流2条,就能晋升VIP啦!开启更多专属权限!

  • 分享

  • 只看
    楼主

top
X 图片
您收到0封站内信:
×
×
信息提示
很抱歉!您所访问的页面不存在,或网址发生了变化,请稍后再试。