<big id="a5mua"></big>

      <tt id="a5mua"><dfn id="a5mua"></dfn></tt>
      <wbr id="a5mua"><sup id="a5mua"></sup></wbr>

        
        

      1. 亚洲综合小综合中文字幕,国产久爱免费精品视频,精品国产品香蕉在线,国产午夜精品在人线播放,精品一二三四区在线观看,国产成人无码免费看视频软件 ,色欲久久人妻内射,午夜在线观看成人av
        龍海兒
        關(guān)注《電氣外傳》公眾號(hào),知乎,CSDN等同號(hào)
        級(jí)別: 論壇先鋒
        精華主題: 0
        發(fā)帖數(shù)量: 369 個(gè)
        工控威望: 1392 點(diǎn)
        下載積分: 914 分
        在線時(shí)間: 104(小時(shí))
        注冊(cè)時(shí)間: 2018-04-13
        最后登錄: 2025-11-23
        查看龍海兒的 主題 / 回貼
        樓主  發(fā)表于: 2025-07-02 12:35
        圖片:
        圖片:
        圖片:
        圖片:
        圖片:
        1111MicrosoftInternetExplorer402DocumentNotSpecified7.8 磅Normal0如題,聲音報(bào)警我們用的很多,但是如何實(shí)現(xiàn)差異化的語(yǔ)音報(bào)警呢?直接先看圖看效果。
        那語(yǔ)音報(bào)警都好理解,差異化又具體體現(xiàn)在哪里呢?
        因?yàn)槭忻嫔弦呀?jīng)有前輩開(kāi)發(fā)出了語(yǔ)音報(bào)警,但是不能靈活單獨(dú)的應(yīng)用到每一條報(bào)警上面。比如我只想要一條或者兩條重要信息實(shí)現(xiàn)語(yǔ)音播報(bào),其它報(bào)警靜默顯示就行。那么通過(guò)本例可輕松解決。
        特別說(shuō)明!開(kāi)發(fā)不易,本例所用腳本原件放在文章末尾,小額支持即可下載!感謝理解,歡迎交流。
        第一步,打開(kāi)WinCC創(chuàng)建內(nèi)部變量(alarmComing)二進(jìn)制類(lèi)型與(alarmText)(prevAlarmText1)(prevAlarmText2)三個(gè)16位文本類(lèi)型。(如需要多個(gè)報(bào)警可多建立兩個(gè)Text變量)
        第二步,用Win+r輸入services.msc然后找到Windows Audio服務(wù),啟動(dòng)它(一般都啟動(dòng)著)。
        第三步,把gmsgfunc.fct腳本放到C:\Program Files (x86)\SIEMENS\WinCC\aplib\Alarm中替換掉以前的。
        第四步,把Voice腳本vbs放到wincc項(xiàng)目ScriptAct文件夾中。
        第五步,打開(kāi)報(bào)警記錄找到想要播報(bào)的變量勾選屬性里面觸發(fā)動(dòng)作如圖(不勾選的變量不會(huì)播報(bào))。
        通過(guò)以上操作就可以實(shí)現(xiàn)單獨(dú)變量的聲音報(bào)警,其它變量依然按照普通設(shè)置呈現(xiàn)。如果想觸發(fā)報(bào)警之后一直播報(bào),直到人員點(diǎn)擊消音按鈕才消失。那請(qǐng)看之下進(jìn)階操作。
        將剛才第二步的Voice替換成cycle腳本(注意一定要替換,不可以都保留),然后在報(bào)警控件中將事件里面的OnToolbarButtonClicked屬性加上記事本中的c腳本用于取消循環(huán),也可以自己外加按鈕來(lái)實(shí)現(xiàn)。
        記得拷貝進(jìn)去的每個(gè)腳本都打開(kāi)再次保存一下,否則可能不能發(fā)聲。以下是本例用到的腳本,各位也可以再次優(yōu)化腳本生成更多功能。
        更過(guò)截圖和腳本鏈接請(qǐng)移步同名公眾號(hào)查看

        關(guān)注《電氣外傳》公眾號(hào),知乎,CSDN等同號(hào)
        往事如風(fēng)
        科技改變制造
        級(jí)別: 網(wǎng)絡(luò)英雄

        精華主題: 0
        發(fā)帖數(shù)量: 11980 個(gè)
        工控威望: 19775 點(diǎn)
        下載積分: 15375 分
        在線時(shí)間: 2835(小時(shí))
        注冊(cè)時(shí)間: 2013-01-31
        最后登錄: 2025-12-15
        查看往事如風(fēng)的 主題 / 回貼
        1樓  發(fā)表于: 2025-07-05 20:50
          
        三人行者必有我?guī)?,擇其善者而從之
        hqokabc
        級(jí)別: 正式會(huì)員
        精華主題: 0
        發(fā)帖數(shù)量: 88 個(gè)
        工控威望: 98 點(diǎn)
        下載積分: 451 分
        在線時(shí)間: 6(小時(shí))
        注冊(cè)時(shí)間: 2025-01-02
        最后登錄: 2025-12-15
        查看hqokabc的 主題 / 回貼
        2樓  發(fā)表于: 4天前
        全局腳本怎么寫(xiě)?
        qwerty_123
        www
        級(jí)別: 略有小成
        精華主題: 0
        發(fā)帖數(shù)量: 161 個(gè)
        工控威望: 286 點(diǎn)
        下載積分: 5922 分
        在線時(shí)間: 51(小時(shí))
        注冊(cè)時(shí)間: 2010-09-26
        最后登錄: 2025-12-15
        查看qwerty_123的 主題 / 回貼
        3樓  發(fā)表于: 3天前
        //wincc聲音報(bào)警C腳本版,和wincc自身的報(bào)警沒(méi)有任何關(guān)系,所以不要和wincc自帶的報(bào)警相關(guān)聯(lián)
        //曾經(jīng)用于工程中的語(yǔ)音報(bào)警,事先將語(yǔ)音先錄好,然后將變量和語(yǔ)音關(guān)聯(lián)起來(lái)

        #include "apdefap.h"


        //播放聲音的函數(shù)聲明
        #pragma code("winmm.dll")
        VOID WINAPI PlaySoundA(char *,char *,DWORD);
        #pragma code()

        struct datainfo    //變量名和聲音文件名的對(duì)應(yīng)關(guān)系
        {
            const char * const tagname;    //變量名
            const char * const soundname;    //聲音文件名
        };
        struct statusdatainfo        //保存報(bào)警變量的狀態(tài)信息
        {
            int prevStatus;
            int playing;
        };
        //所有的報(bào)警變量和聲音文件名對(duì)應(yīng)關(guān)系表
        //注意:變量名和文件名要和實(shí)際的變量名、文件名完全一致
        //注意:聲音文件只支持wav文件
        //注意:變量越靠前,則優(yōu)先級(jí)越高,在同時(shí)發(fā)生多個(gè)報(bào)警時(shí),優(yōu)先級(jí)最高的聲音優(yōu)先播放,而且任一時(shí)刻只能播放一個(gè)聲音
        static struct datainfo data[]=  
        {
        {"www","Windows XP 啟動(dòng).wav"},    
        {"testalarm","ringin.wav"},
        {"qqq","Windows XP 關(guān)機(jī).wav"},
        {"eee","Windows XP 注銷(xiāo)音.wav"}
        };

        static struct statusdatainfo  statusdata[sizeof(data)/sizeof(data[0])];
        ////////////////////////////////////

        int gscAction( void )
        {
        int totalnum=0;    //總的報(bào)警變量數(shù)量,也等于總的報(bào)警聲音數(shù)量
        int index=0;    //循環(huán)變量
        int hasfound=0;    //已找到優(yōu)先級(jí)最高的報(bào)警變量
        char * filename=NULL;    //當(dāng)前要播放聲音的文件名
        char * dirname="D:\\WINDOWS\\Media\\";    //聲音文件存放的目錄
        static char * currfilename=NULL;    //當(dāng)前正在播放聲音的文件名,注意:該變量是靜態(tài)變量
        static char  FullName[200];    //當(dāng)前正在播放聲音的文件全名,注意:文件名全名不能太長(zhǎng),該變量是靜態(tài)變量
        char * ack_name="ack"; //報(bào)警確認(rèn)變量的名字,一次只能確認(rèn)優(yōu)先級(jí)最高的報(bào)警
        int ack_status=0;    //當(dāng)前確認(rèn)變量的狀態(tài)

        totalnum=sizeof(data)/sizeof(struct datainfo);    //報(bào)警變量的數(shù)量
        ack_status=GetTagBit(ack_name);

        for(index=0;index<totalnum;index++)    //查找當(dāng)前第一個(gè)報(bào)警的變量所對(duì)應(yīng)的聲音文件名,搜索的順序決定了優(yōu)先級(jí)
        {
            if (statusdata[index].playing)
            {
                statusdata[index].prevStatus=GetTagBit(data[index].tagname);
                if (ack_status)    //確認(rèn)報(bào)警變量
                {
                    ack_status=0;
                    statusdata[index].playing=0;
                }
                else
                {  
                    if (0==hasfound)
                    {
                        hasfound=1;
                        filename=data[index].soundname;
                    }
                }
            }
            else
            {
                statusdata[index].playing=!statusdata[index].prevStatus && GetTagBit(data[index].tagname);
                statusdata[index].prevStatus=GetTagBit(data[index].tagname);
                if (statusdata[index].playing)
                {
                    if(0==hasfound)
                    {
                        filename=data[index].soundname;
                        hasfound=1;
                    }
                }  
            }
        }

        SetTagBit(ack_name,0);  

        if (filename!=currfilename)    //當(dāng)要播放的聲音文件和當(dāng)前正在播放的聲音文件不同時(shí)才播放新的聲音
        {
            currfilename=filename;        //修改當(dāng)前正在播放的聲音文件名
          
            if (NULL==currfilename)    //如果沒(méi)有報(bào)警則停止播放聲音
            {
                FullName[0]=0x0;
                PlaySoundA(NULL,NULL,0x2000|1|8);        //停止播放聲音
            }  
            else    //循環(huán)播放新的聲音文件
            {
                strcpy(FullName,dirname);        //復(fù)制目錄名
                strcat(FullName,currfilename);        //合成聲音文件全名
                PlaySoundA(FullName,NULL,0x2000|1|8);    //播放聲音
            }  
        }

        return 0;


        }

        主站蜘蛛池模板: 欧美不卡无线在线一二三区观| 精品亚洲女同一区二区| 国产播放91色在线观看| 夜夜躁狠狠躁日日躁| 97人妻蜜臀中文字幕| 精品久久综合一区二区| 亚洲av免费成人在线| 亚洲欧美日韩色图| 老色99久久九九爱精品| 国产精品人成视频免费999| 天堂资源在线| 18禁网站免费无遮挡无码中文| 欧美有码在线观看| 亚洲天堂av日韩精品| 国内久久久久久久久久| 亚洲av一区二区在线看| 极品无码国模国产在线观看| 国产一区二区三区色视频| 在线A级毛片无码免费真人| 手机无码人妻一区二区三区免费| 中文字幕人妻无码一夲道| 日韩AV中文无码影院| 人妻一区二区三区人妻黄色| 色综合久久久久综合体桃花网| 久久99精品久久久大学生| 无码国产精品一区二区VR老人| 国产精品丝袜在线不卡| 又爽又黄又无遮掩的免费视频| 精品国产一区二区三区四区五区| 高清中文字幕一区二区| 欧美性巨大╳╳╳╳╳高跟鞋| 日本黄色三级一区二区三区| 国产精品白丝久久AV网站| 成人无码视频| 国产女同疯狂作爱系列| 日本一区二区三本视频在线观看 | 亚洲真人无码永久在线| 中文无码字幕一区到五区免费| 国产av无码国产av毛片| 日本熟妇XXXX潮喷视频| 亚洲日韩欧美丝袜另类自拍|