WINCC文本語音報警與一鍵消音功能實現(xiàn)
- 1. 全局腳本
- 2. 報警器
- 3. 區(qū)分語音報警和普通報警
1. 全局腳本
然后需要找到將導出的聲音文件用文本命名加以區(qū)分,比如煤氣濃度高報警,煤氣濃度高高報警。不可以有特殊符號,可以用英文。
打開WINCC項目,新建內(nèi)部變量。
如果報警時AZT_1001.H表示煤氣濃度高報警,那么建立一個煤氣高報警狀態(tài)位ALARM_SOUND_AZT1001H,使用這個狀態(tài)位來觸發(fā)語音(因為報警消失的時間不確定,使用一鍵消音就必須做一個狀態(tài)位)。同時還需要建立一個全局消音內(nèi)部變量ALARMSOUND_ALL用來連接一鍵消音。
打開WINCC項目文件,新建全局腳本。
#include "apdefap.h" int gscAction( void ) { #pragma code("Winmm.dll") void WINAPI PlaySoundA(char* pszSound ,char* hmode,DWORD dwFlag); #pragma code() if(!GetTagBit("AZT_1001.H"))// 煤氣濃度高報警 { SetTagBit("ALARM_SOUND_AZT1001H",0); } if(GetTagBit("ALARMSOUND_ALL")&&GetTagBit("AZT_1001.H")) { SetTagBit("ALARM_SOUND_AZT1001H",1); } //聲音播報 if(GetTagBit("AZT_1001.H")&&!GetTagBit("ALARM_SOUND_AZT1001H")) { PlaySoundA("C:\\alarmsound\\煤氣濃度高報警.wav", NULL, 1); } SetTagBit("ALARMSOUND_ALL",0); return 0; }
最后在C盤下面新建一個文件夾“alarmsound”,然后將語音文件全部放到該文件夾中。然后再畫面中建立一個按鈕,連接一鍵消音按鈕ALARMSOUND_ALL,設置鼠標,事件,按下置1即可。
上述方法適合程序沒有中沒有報警狀態(tài)變量,如果有的話可以直接使用報警器更方便。
2. 報警器
報警狀態(tài)位與報警并不是一個變量,報警是現(xiàn)場決定的,我們不可以人為復位掉,因此控制報警語音必須要建立一個與報警對應的報警狀態(tài)位。
如果再程序中建立了一個可以復位的報警狀態(tài)位,那么可以直接將該變量導入到“報警記錄——報警器——信號分配——變量”中去,然后后面聲音的文件路徑取決于語音文件存放的位置。
3. 區(qū)分語音報警和普通報警
在報警控件中需要區(qū)分語音報警于普通報警,這樣就需要更改報警控件中文本的顏色和填充顏色:
可以在顏色的位置修改顏色。