亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        基于Honeywell PKS的語音報警軟件設(shè)計

        2013-12-31 00:00:00張世君
        網(wǎng)友世界 2013年10期

        【摘 要】隨著油氣田行業(yè)自動化水平的普及,美國Honeywell公司的PKS軟件得到了廣泛的應(yīng)用。但它是一套成熟的軟件,有時無法滿足用戶特殊的功能需求。語音報警軟件作為PKS軟件的輔助軟件,可協(xié)助PKS軟件實現(xiàn)更多的功能,包括數(shù)據(jù)異常分析判斷、自定義語音及文字報警、報警點信息維護記錄日志、定時語音播報、報警信息的查詢和統(tǒng)計等等。

        【關(guān)鍵詞】Honeywell PKS;語音報警;VB編程

        1.引言

        隨著油氣田行業(yè)自動化水平的普及,越來越多的油氣田場站采用了SCADA系統(tǒng)來保證現(xiàn)場安全、平穩(wěn)、經(jīng)濟的運行。SCADA是Supervisory Control And Data Acquisition的縮寫,即數(shù)據(jù)采集與監(jiān)控系統(tǒng)。它是以計算機為基礎(chǔ)的生產(chǎn)過程控制與調(diào)度自動化系統(tǒng),對現(xiàn)場的運行設(shè)備進行監(jiān)視和控制,實現(xiàn)數(shù)據(jù)采集、設(shè)備控制、測量、參數(shù)調(diào)節(jié)以及各類信號報警等各項功能。目前美國Honeywell公司的PKS軟件作為業(yè)內(nèi)優(yōu)秀的SCADA系統(tǒng)上位機軟件被廣泛的應(yīng)用于油氣田場站、長輸管線、閥室,并取得了巨大的成果。但是由于PKS軟件是一套成熟的軟件,因此有時無法滿足用戶特殊的功能需求。語音報警軟件作為PKS軟件的輔助軟件,可以從PKS軟件中實時讀取生產(chǎn)運行數(shù)據(jù),并對其進行分析判斷,若數(shù)據(jù)異常則產(chǎn)生報警,并根據(jù)報警級別及事前設(shè)定的聲音或文字要求進行語音播報報警;完成報點信息的維護,對報警點信息維護記錄實現(xiàn)日志;完成定時語音播報的設(shè)置、播報;實現(xiàn)報警信息的查詢、統(tǒng)計。

        2.軟件的總體設(shè)計與實現(xiàn)

        軟件架構(gòu)采用模塊化結(jié)構(gòu)設(shè)計,將所實現(xiàn)的各種功能分模塊研發(fā),最后匯總至統(tǒng)一程序中。根據(jù)設(shè)計要求,語音報警軟件包含主要功能如下:讀取PKS軟件數(shù)據(jù);語音報警;參數(shù)配置;系統(tǒng)/報警日志歷史;用戶權(quán)限。由于軟件主要通過人機界面和用戶交流,故采用Microsoft Visio Basic作為程序設(shè)計語言。窗體結(jié)構(gòu)采用MDI窗體嵌套技術(shù),分為如下窗體:

        2.1 MDI父窗體

        MDI父窗體負責(zé)軟件整體框架、菜單欄顯示、工具欄顯示,以及部分通用代碼的執(zhí)行。主界面、狀態(tài)欄、系統(tǒng)/報警日志歷史畫面等均嵌入到MDI父窗體內(nèi),而系統(tǒng)配置、登錄等窗體均采用彈出的形式實現(xiàn)。

        2.2 主畫面

        主畫面主要用于顯示報警點信息、報警狀態(tài)信息、系統(tǒng)日志及報警日志,主要包含如下內(nèi)容:

        報警點顯示。這里的位號、參數(shù)要匹配PKS軟件,采集上來的數(shù)據(jù)放在采樣值一欄中,描述、低低報警、低報警、高報警、高高報警欄由用戶自由組態(tài),即軟件可設(shè)置四條報警限。當(dāng)軟件運行后會根據(jù)組態(tài)數(shù)值判斷是否產(chǎn)生報警,若產(chǎn)生報警,則會通過語音朗讀在報警內(nèi)容一欄中的內(nèi)容,同時報警狀態(tài)會顯示出現(xiàn)新的報警信息,報警日志中會記錄報警信息。若已達到報警狀態(tài),之后再采集到的數(shù)據(jù)仍然的該報警狀態(tài)內(nèi),則不會產(chǎn)生新的報警,舊的報警也不會被清除。當(dāng)現(xiàn)場條件恢復(fù),采樣值回到報警限以下時,報警清除,體現(xiàn)在報警狀態(tài)欄中對應(yīng)的報警信息將自動清除,并且下次再升到報警限上時重新產(chǎn)生報警。

        報警狀態(tài)顯示。顯示當(dāng)前有哪些數(shù)據(jù)已觸發(fā)了報警,以及它們的觸發(fā)時間、報警狀態(tài)和觸發(fā)報警值。啟動報警后,若產(chǎn)生報警,則該欄會有相應(yīng)的信息出現(xiàn),停止報警時表格將會被清空,再次啟動報警后若產(chǎn)生報警則該欄會繼續(xù)出現(xiàn)相應(yīng)的信息。

        系統(tǒng)日志欄中顯示系統(tǒng)的運行情況,如系統(tǒng)啟動、報警開啟、進入配置界面等等,用戶可根據(jù)系統(tǒng)日志中顯示的內(nèi)容判斷目前系統(tǒng)的運行情況。報警日志欄中顯示被觸發(fā)的報警信息。與報警狀態(tài)表格不同的是,這里的報警信息并不會因為報警的清除而被清除,用戶可以在這里看到相應(yīng)的報警情況。當(dāng)然,這里的系統(tǒng)日志及報警日志顯示的均為本次系統(tǒng)運行后所產(chǎn)生的日志,若用戶需要查詢之前的日志,可通過系統(tǒng)/報警日志歷史界面查詢。

        2.3 報警點配置畫面

        在報警點配置畫面中,用戶可針對報警點進行組態(tài)。這里主要實現(xiàn)各種參數(shù)修改的功能,比如增加行按鈕可增加一新行,刪除行按鈕可刪除當(dāng)前行;數(shù)據(jù)源IP地址可修改PKS服務(wù)器的IP地址;語音測試功能可點擊“朗讀”按鈕測試當(dāng)前行的報警內(nèi)容,可幫助用戶檢驗組態(tài)結(jié)果;報警次數(shù)下拉菜單中可選擇報警產(chǎn)生后的播報次數(shù)等等。

        2.4 狀態(tài)欄

        狀態(tài)欄主要顯示公司標(biāo)識、系統(tǒng)時間、系統(tǒng)狀態(tài)、目標(biāo)PKS服務(wù)器計算機名稱、用戶權(quán)限等信息,它與主界面同時顯示。

        2.5 系統(tǒng)/報警日志歷史畫面

        系統(tǒng)日志歷史和報警日志歷史的畫面非常類似,區(qū)別僅在于各自儲存的數(shù)據(jù)不同,用戶在此可以看到全部的日志歷史,但不包括已經(jīng)歸檔的數(shù)據(jù)。這里主要實現(xiàn)的功能還包括:

        自動保存歷史記錄周期選項用于設(shè)置系統(tǒng)多長時間將收集的記錄保存到日志中,自動歸檔周期用來實現(xiàn)將日志中的內(nèi)容歸檔到txt文件中,文件路徑由下面的歸檔路徑指定。當(dāng)運行歸檔后,日志里面的內(nèi)容將被清空,同時生成相應(yīng)的txt文件,之后日志將重新記錄新信息。用戶也可以通過點擊“手動歸檔”按鈕直接歸檔。

        2.6 其他畫面

        除了以上主要的嵌入窗體外,另有部分彈出頁面,如參數(shù)配置畫面等,在此不做過多的敘述。

        3.讀取PKS軟件數(shù)據(jù)的設(shè)計與實現(xiàn)

        HONEYWELL PKS軟件提供了相應(yīng)的API函數(shù)[1]可以讀取PKS軟件中的數(shù)據(jù),可采用調(diào)用該API函數(shù)的方法將數(shù)據(jù)讀取過來,并做成全局變量交由其他模塊使用。當(dāng)用戶點擊“啟動報警”按鈕后,數(shù)據(jù)采集程序在后臺運行,在軟件初始化的時候報警點組態(tài)表格中的參數(shù)已經(jīng)被賦給了相應(yīng)的變量,這里將這些變量作為參數(shù),并使用API函數(shù)讀取PKS實時數(shù)據(jù)并填入報警點組態(tài)表格中,具體邏輯如下:

        (1)若沒有報警點組態(tài),采集程序直接停止;

        (2)初始化數(shù)據(jù),并利用rgetpnt函數(shù)查詢是否報警點數(shù)據(jù)在PKS中存在;

        (3)若查詢數(shù)據(jù)成功,則開啟數(shù)據(jù)掃描定時器(Timer)和報警掃描定時器(Timer),可設(shè)定數(shù)據(jù)掃描間隔(并可通過人機界面配置)、報警掃描間隔(并可通過人機界面配置),若查詢數(shù)據(jù)不成功,則采集程序停止,并報具體錯誤提示用戶檢查報警點組態(tài);

        (4)開啟數(shù)據(jù)掃描定時器(Timer)后,Timer內(nèi)的程序?qū)⒁怨潭〞r間循環(huán)運行,采用rGetval_Numb函數(shù)采集PKS的數(shù)據(jù),并將數(shù)據(jù)放入至采樣值一欄中,之后由報警掃描定時器(Timer)對數(shù)據(jù)進行分析判斷,若數(shù)據(jù)超過報警線則產(chǎn)生相應(yīng)報警。

        4.語音報警的設(shè)計與實現(xiàn)

        讀取PKS軟件數(shù)據(jù)成功后,程序開啟報警掃描定時器(Timer)。Timer內(nèi)的程序?qū)⒁怨潭〞r間循環(huán)運行,從而實現(xiàn)每隔一段時間挨個對讀取的數(shù)據(jù)進行分析判斷,與設(shè)置的報警限比對,如果超過報警限則發(fā)出一條設(shè)置好的語音報警并在報警狀態(tài)欄中產(chǎn)生一條報警狀態(tài),同時將該條報警信息記錄到報警日志中。語音報警采用TTS技術(shù)實現(xiàn)語音朗讀[2]。對于報警狀態(tài),采取的策略是當(dāng)報警產(chǎn)生,在報警狀態(tài)欄中會產(chǎn)生該條報警狀態(tài),用戶只可查看不可消除。程序會繼續(xù)循環(huán)判斷,若產(chǎn)生報警的條件依然滿足,則該條報警狀態(tài)持續(xù)存在,若產(chǎn)生報警的條件不再滿足,則刪除該條報警狀態(tài)。這樣,我們就可以通過報警狀態(tài)欄從而看到目前有多少報警點處于超限狀態(tài)。而在報警日志中,由于只會記錄不會清除,故我們可以通過查看日志的方式來了解到曾經(jīng)發(fā)生的報警情況。同時,產(chǎn)生的日志會在可設(shè)置的周期內(nèi)保存到日志歷史中。

        5.參數(shù)配置的設(shè)計與實現(xiàn)

        整個軟件需要設(shè)置與保存的參數(shù),包括:(1)通訊參數(shù),如PKS服務(wù)器名,連接周期等等;(2)報警點參數(shù),如位號,描述,采樣值,報警限,報警內(nèi)容,報警次數(shù)等等;(3)日志參數(shù),如日志歸檔路徑、歸檔周期等等;(4)其他參數(shù),如系統(tǒng)配置參數(shù)等等。

        語音報警系統(tǒng)采用最簡單的txt文件來保存這些參數(shù),程序啟動時采用Open FileName For Input As #1語句讀取txt文件,將各個參數(shù)讀出來并賦予相應(yīng)的全局變量,從而實現(xiàn)在程序中應(yīng)用這些變量。若需要實現(xiàn)參數(shù)修改及保存,可先做相應(yīng)的窗體和TextBox用于填寫可修改的參數(shù),然后設(shè)置一個保存按鈕,當(dāng)用戶點擊按鈕時,產(chǎn)生一個事件,將修改后的參數(shù)利用Open FileName For Output As #1語句寫入到相應(yīng)txt文件中。這樣,我們就可以實現(xiàn)參數(shù)配置了。

        6.系統(tǒng)/報警日志歷史的設(shè)計與實現(xiàn)

        作為一套成熟的軟件,日志功能是必不可少的,用戶可以通過查看日志的方式來了解到之前究竟發(fā)生了什么。語音報警軟件設(shè)計了兩套日志,分別為系統(tǒng)日志和報警日志。其中,系統(tǒng)日志中記錄了有關(guān)于系統(tǒng)運行的內(nèi)容,比如何時系統(tǒng)啟動,是否成功與PKS連接,如不成功錯誤代碼是什么等等,報警日志中記錄了有關(guān)報警的內(nèi)容,比如何時何數(shù)據(jù)產(chǎn)生了什么級別的報警等等。在主界面中我們可以看到報警日志和歷史日志,但是如果關(guān)閉了軟件,那些日志就沒有了。那么,我們就需要將當(dāng)前的日志保存至日志歷史中,這樣才能在任何時候都可以查看到。我們依然采用了將當(dāng)前日志寫入txt文件的方式用來保存日志歷史。為此,我們設(shè)置了一個自動保存歷史記錄周期的參數(shù),該參數(shù)用于產(chǎn)生一個Timer,當(dāng)Timer觸發(fā)時將該周期收集到的最新日志加入到之前txt文件的末尾,這樣,就實現(xiàn)了日志歷史記錄的保存。同時,為了防止txt文件過于龐大,設(shè)置了一個自動歸檔周期的參數(shù),該參數(shù)同樣的產(chǎn)生一個Timer,當(dāng)Timer觸發(fā)時將當(dāng)前的txt文件復(fù)制保存至指定的路徑中,同時清空當(dāng)前的txt文件,這樣用戶可以通過在windows系統(tǒng)中查看歸檔文件的方式來查看之前的日志。

        為了便于用戶查看系統(tǒng)/報警日志歷史,語音報警系統(tǒng)專門設(shè)計了一個頁面用于查看當(dāng)前txt文件中的日志記錄。頁面內(nèi)放置TextBox用于顯示日志歷史記錄,讀入txt文件的函數(shù)如下:

        Public Function openfile(ByVal FileName As String)As String

        Dim a As String

        Dim b

        Open FileName For Input As #1

        While Not EOF(1)

        Line Input #1,b

        If a=\"\"Then

        a=b

        Else

        a=a vbCrLf b

        End If

        Wend

        Close #1

        openfile=a

        End Function

        7.用戶權(quán)限的設(shè)計與實現(xiàn)

        為了保證用戶使用起來更加安全可靠,需要對用戶權(quán)限進行設(shè)置。語音報警軟件采用了兩級權(quán)限的方式,分別設(shè)置了oper和admin兩個權(quán)限。其中oper用戶僅僅可以進行瀏覽,查找日志等一般性操作,而admin權(quán)限則可以進行對組態(tài)的修改,包括報警點的添加和刪除、報警限的修改、通訊參數(shù)的修改、歸檔的周期或者歸檔路徑的修改等等。這個功能實現(xiàn)起來也非常容易,可以設(shè)置全局變量UserPermission。軟件啟動時默認為oper權(quán)限,用戶可以通過登錄窗口將oper權(quán)限改為admin權(quán)限,此時UserPermission賦值為admin。用戶所有涉及到權(quán)限的操作,在執(zhí)行前均會查看一下UserPermission的值,若該值為admin則操作繼續(xù)執(zhí)行,若該值為oper則當(dāng)前操作停止執(zhí)行,同時提示用戶權(quán)限不足。同時,還需要提供修改密碼窗口,可供用戶修改admin密碼,修改密碼可以當(dāng)時生效。

        參考文獻:

        [1]Honeywell PKS knowledge builder CD.

        [2]趙文東,寇海洲.在VB中使用TTS技術(shù)實現(xiàn)語音的編輯和播放[J].洛陽工業(yè)高等??茖W(xué)校學(xué)報,2003,02.

        作者簡介:張世君(1982—),男,工程師,主要從事石油、天然氣行業(yè)自動化控制系統(tǒng)的研究工作。

        亚洲国产av玩弄放荡人妇| 国产av一区二区三区香蕉| 99国语激情对白在线观看| 欧美精品久久久久久三级| 人妻熟女中文字幕在线视频 | 欧美精品一区二区性色a+v| 最新永久免费AV网站| 亚洲一区二区三区福利久久蜜桃 | 午夜精品免费视频一区二区三区| 天天躁日日躁狠狠躁av麻豆| 国产午夜鲁丝片av无码| 久久中文字幕无码一区二区| 最近亚洲精品中文字幕| av天堂亚洲另类色图在线播放 | 亚洲最稳定资源在线观看| 日韩一区二区中文天堂| 国产av无码专区亚洲av果冻传媒| 狠狠色狠狠色综合| 国产亚洲精品成人无码精品网站| 日本高清中文一区二区三区| 综合人妻久久一区二区精品 | 国产毛片精品av一区二区| 中文字幕人妻丝袜成熟乱| 真人作爱免费视频| 久久亚洲国产成人亚| 久久本道久久综合一人| 亚洲精品一品区二品区三区| 被三个男人绑着躁我好爽视频| 极品美女扒开粉嫩小泬| 亚洲午夜久久久精品国产| 久久综合另类激情人妖| 色吧噜噜一区二区三区| 人妻aⅴ中文字幕| 中文字幕av在线一二三区| 免费人成黄页网站在线观看国产 | 亚洲熟伦在线视频| 丁香婷婷六月综合缴清| 疯狂做受xxxx国产| 小12箩利洗澡无码视频网站| 亚洲青涩在线不卡av| 精品三级国产一区二区三 |