1.1 在PLC中建立智能语音报警功能码传递,当有事件发生时,报警功能码自动产生。
1.2 录音或者是使用语音合成软件,生成语音文件例如:
将这些语音文件放置到一个固定的目录,例如D:\DTSGF\sound
1.3在WinCC中建立全局动作事件代码:使用变量MW12触发。
#include "a;
int gscAction( void )
{
#pragma option(mbcs)
#include "dmclient.h"
#pragma code ("kernel32.dll")
VOID WINAPI Sleep ( DWORD dwMilliseconds );
char szSoundPath[50];
int num=0;
num= GetTagWord("MW12");
if(num>0)
{
sprintf(szSoundPath,"%d.wav", num);
cc_playsound(szSoundPath);
//Sleep(1000);
}
return 0;
}
函数cc_PlaySound,是语音播放函数。
#pragma option(mbcs)
#include "a;
void cc_playsound(char* lpszSoundFile)
{
#pragma code("winmm.dll")
BOOL PlaySound(LPCTSTR lpszSound, HMODULE hModule,DWORD dwSound);
#define SND_FILENAME 0x00020000L
#define SND_ASYNC 0x0001
#define SND_LOOP 0x0008
#pragma code()
BOOL bRet = FALSE;
char szProjectPath[_MAX_PATH];
char szSoundPath[_MAX_PATH];
if (lpszSoundFile == NULL)
{
bRet=PlaySound(NULL,NULL,SND_FILENAME|SND_ASYNC);
}
else
{
GetProjectPath(szProjectPath);
sprintf(szSoundPath,"%sSound\\%s", szProjectPath, lpszSoundFile);
bRet=PlaySound(szSoundPath,NULL,SND_FILENAME|SND_ASYNC);
}
if (bRet == FALSE)
{MessageBeep((WORD)-1);}
}