袁超
摘 要:軟件設(shè)計(jì)是煤礦安全監(jiān)測(cè)系統(tǒng)的一個(gè)重要的部分,它擔(dān)負(fù)著所有系統(tǒng)運(yùn)行的控制和監(jiān)視功能。對(duì)通信控制機(jī)和擴(kuò)音臺(tái)的查詢、打點(diǎn)、通話和閉鎖功能流程和實(shí)現(xiàn)過程進(jìn)行講解,并對(duì)軟件編譯過程中可能出現(xiàn)的沖突問題提出避免的方法。
關(guān)鍵詞:擴(kuò)音臺(tái) 查詢 打點(diǎn) 通話 閉鎖
中圖分類號(hào):TD76 文獻(xiàn)標(biāo)識(shí)碼:A 文章編號(hào):1007-3973(2013)008-125-02
1 前言
煤礦安全檢測(cè)技術(shù)主要是針對(duì)目前國內(nèi)外各大煤礦的安全生產(chǎn)問題而產(chǎn)生的,它結(jié)合了計(jì)算機(jī)技術(shù)、通信技術(shù)、控制技術(shù)和電子技術(shù)于一身。20世紀(jì)60年代,國外的煤礦監(jiān)測(cè)技術(shù)開始出現(xiàn),從最早期的單一參數(shù)監(jiān)控系統(tǒng),發(fā)展為多參數(shù)監(jiān)控系統(tǒng),目前,國外煤礦安全監(jiān)測(cè)監(jiān)控技術(shù)在煤礦業(yè)得到了廣泛推廣和使用,其煤礦安全監(jiān)測(cè)系統(tǒng)主要由現(xiàn)場(chǎng)測(cè)控分站和控制中心主站組成。
2 通信控制機(jī)和擴(kuò)音臺(tái)
通信控制機(jī)和擴(kuò)音臺(tái)是在設(shè)計(jì)好的井下煤礦監(jiān)測(cè)硬件系統(tǒng)基礎(chǔ)上主要實(shí)現(xiàn)4種功能:查詢、打點(diǎn)、通話和閉鎖。
2.1 查詢
查詢是由控制臺(tái)每隔10秒發(fā)送一次的查詢命令,由通信控制機(jī)轉(zhuǎn)送至各個(gè)擴(kuò)音臺(tái),收到數(shù)據(jù)后再返回給控制臺(tái),以顯示各個(gè)擴(kuò)音臺(tái)的狀態(tài)。
它的主要過程是:通信控制機(jī)從串行口收到控制臺(tái)發(fā)來的一串16進(jìn)制的查詢命令,它首先通過命令線向所有擴(kuò)音臺(tái)發(fā)出查詢1號(hào)臺(tái)開始命令,所有擴(kuò)音臺(tái)收到命令后從睡眠狀態(tài)中被喚醒,同時(shí)通信控制機(jī)通過語音數(shù)據(jù)線向右邊臨近的擴(kuò)音臺(tái)1號(hào)臺(tái)發(fā)送查詢命令(注意:是語音數(shù)據(jù)線而非命令線),1號(hào)臺(tái)從左邊的語音數(shù)據(jù)線收到命令后收集擴(kuò)音臺(tái)狀態(tài)數(shù)據(jù)(正常、閉鎖、故障、未啟用四種之一)后再通過左邊的語音數(shù)據(jù)線返還給通信控制機(jī),通信控制機(jī)把1號(hào)臺(tái)狀態(tài)數(shù)據(jù)存儲(chǔ)好后通過命令線向所有擴(kuò)音臺(tái)廣播查詢1完成命令。
1號(hào)臺(tái)隨后收到此命令,這時(shí)1號(hào)臺(tái)的查詢命令完成。接著1號(hào)臺(tái)通過命令線廣播查詢2號(hào)臺(tái)開始命令,然后同樣通過語音數(shù)據(jù)線發(fā)送和接受2號(hào)臺(tái)的狀態(tài)數(shù)據(jù),并同時(shí)把它通過語音數(shù)據(jù)線轉(zhuǎn)送到通信控制機(jī),接著通過命令線廣播查詢2完成命令。隨后2號(hào)臺(tái)收到后開始廣播查詢3號(hào)臺(tái)命令,如此遞推,一直到倒數(shù)第二臺(tái)擴(kuò)音臺(tái),它向最后一臺(tái)擴(kuò)音臺(tái)發(fā)出查詢命令,之后返回的狀態(tài)數(shù)據(jù)中會(huì)包括一個(gè)END標(biāo)記(用FF表示),隨后倒數(shù)第二臺(tái)擴(kuò)音臺(tái)會(huì)通過命令線廣播查詢結(jié)束命令,由此表示查詢已到了最終的擴(kuò)音臺(tái)。隨著所有的狀態(tài)數(shù)據(jù)都通過語音數(shù)據(jù)線傳送到了通信控制機(jī),通信控制機(jī)把它轉(zhuǎn)換成統(tǒng)一格式后(4位16進(jìn)制數(shù))轉(zhuǎn)送到控制臺(tái),控制臺(tái)在終端上顯示所有擴(kuò)音臺(tái)的狀態(tài),查詢結(jié)束。其中最后一臺(tái)擴(kuò)音臺(tái)未必是20號(hào)機(jī),有可能為16號(hào)機(jī),或者17號(hào)機(jī),因此要以END標(biāo)示。如果通信控制或擴(kuò)音臺(tái)在通過語音數(shù)據(jù)線向下一臺(tái)擴(kuò)音臺(tái)發(fā)送查詢命令后,既沒有返回一般的狀態(tài)數(shù)據(jù),也沒有返回包括END標(biāo)記的狀態(tài)數(shù)據(jù),由此表示下一臺(tái)的擴(kuò)音臺(tái)線路出錯(cuò),本機(jī)會(huì)通過命令線發(fā)送編號(hào)為下一臺(tái)擴(kuò)音臺(tái)的ERR,查詢結(jié)束,并發(fā)出告警。所有擴(kuò)音臺(tái)都通過命令線收到收到查詢結(jié)束命令后,隨即又進(jìn)入睡眠狀態(tài),等待下一次的查詢過程。以上只詳述了查詢右邊所有擴(kuò)音臺(tái)的過程,查詢命令會(huì)同時(shí)掃描左邊所有擴(kuò)音臺(tái),過程與右邊類似,不再贅述。
2.2 打點(diǎn)
打點(diǎn)主要是實(shí)現(xiàn)通信控制機(jī)或擴(kuò)音臺(tái)在按下“信號(hào)”按鈕后,所有通信控制機(jī)或擴(kuò)音臺(tái)廣播1KHz單音頻信號(hào),隨后松開按鈕,廣播結(jié)束的過程。
N號(hào)擴(kuò)音臺(tái)的打點(diǎn)過程如下:N號(hào)擴(kuò)音臺(tái)按下“信號(hào)”按鈕,相應(yīng)的打點(diǎn)開關(guān)被接通,此擴(kuò)音臺(tái)被喚醒,并通過命令線廣播打點(diǎn)命令,讓其它所有擴(kuò)音臺(tái)和通信控制機(jī)做好打點(diǎn)的準(zhǔn)備,同時(shí)其它擴(kuò)音臺(tái)也被喚醒。接著N號(hào)擴(kuò)音臺(tái)的單片機(jī)控制它的語音編碼器發(fā)出1KHz的單音頻數(shù)字信號(hào),此信號(hào)通過語音數(shù)據(jù)線分別向左和向右逐一傳送到各個(gè)擴(kuò)音臺(tái)和通信控制機(jī),在所有的擴(kuò)音臺(tái)和通信控制機(jī)(包括N號(hào)機(jī))收到單音頻數(shù)字信號(hào)后,把通過本機(jī)內(nèi)的語音編碼器轉(zhuǎn)換成模擬信號(hào),通過功放放大后在喇叭上播放出來。當(dāng)需要停止此音頻播放時(shí),松開“信號(hào)”按鈕,N號(hào)機(jī)的打點(diǎn)開關(guān)斷開,單片機(jī)隨即通知它的語音編碼器停止發(fā)出單音頻信號(hào),接著所有的擴(kuò)音臺(tái)和通信控制機(jī)也不再通過語音數(shù)據(jù)線收到單音頻信號(hào),據(jù)此所有的擴(kuò)音臺(tái)和通信控制機(jī)停止播放此單音頻信號(hào),并回復(fù)到睡眠狀態(tài),打點(diǎn)過程結(jié)束。
值得注意的是,在打點(diǎn)關(guān)閉過程中,N號(hào)機(jī)沒有使用命令線發(fā)送停止命令通知所有擴(kuò)音臺(tái)和通信控制機(jī)關(guān)閉打點(diǎn)音頻,而是關(guān)閉自身的語音傳輸線上的語音傳輸,使其它擴(kuò)音臺(tái)和通信控制機(jī)停止收到語音數(shù)據(jù)一段時(shí)間后,根據(jù)判斷自行停止播放打點(diǎn)音頻。這么做的原因是防止命令線發(fā)送的停止命令出錯(cuò),從而使各擴(kuò)音臺(tái)和通信控制機(jī)永遠(yuǎn)無法收到命令,使廣播永遠(yuǎn)繼續(xù)下去;而利用語音數(shù)據(jù)線,則可以根據(jù)一段時(shí)間沒有收到語音數(shù)據(jù)的判斷,決定關(guān)閉音頻播放,這樣無論出錯(cuò)與否,都可以關(guān)閉打點(diǎn)功能,這是一種被動(dòng)式的停止過程。
2.3 通話
通話是實(shí)現(xiàn)通信控制機(jī)或擴(kuò)音臺(tái)按下“通話”按鈕,通過所有通信控制機(jī)或擴(kuò)音臺(tái)廣播語音信號(hào),隨后松開按鈕,語音廣播結(jié)束的過程。
通話的主要流程與打點(diǎn)基本相同,區(qū)別就是通話的語音輸入由一個(gè)麥克風(fēng)輸入,然后語音信號(hào)被傳送至語音編碼器轉(zhuǎn)換成數(shù)字音頻信號(hào)后進(jìn)行廣播,而打點(diǎn)的1kHz單音頻由語音編碼器自己發(fā)出后進(jìn)行廣播。
2.4 閉鎖
閉鎖按鈕包括閉鎖和解鎖兩種功能。閉鎖主要是在煤礦運(yùn)行時(shí)在擴(kuò)音臺(tái)按下“閉鎖”按鈕,通知控制臺(tái),控制臺(tái)首先廣播預(yù)先錄制的語音提示,待播放完之后關(guān)閉所有的煤礦設(shè)備。如果需要解鎖的話,可以在10秒后長按“閉鎖”按鈕(大于3秒),控制臺(tái)收到后同樣廣播預(yù)先錄制的語音提示,之后重啟所有的煤礦設(shè)備。
閉鎖的過程主要如下:當(dāng)某個(gè)擴(kuò)音臺(tái)被按下“閉鎖”按鈕時(shí),閉鎖命令通過命令線廣播至所有擴(kuò)音臺(tái)和通信控制機(jī),所有擴(kuò)音臺(tái)從睡眠中被喚醒,隨后通信控制機(jī)(0號(hào)機(jī))把閉鎖命令通過串行線上傳給控制臺(tái)(ARM板),命令中包括按下“閉鎖”按鈕的擴(kuò)音臺(tái)的編號(hào),控制臺(tái)收到后隨即又通過下行串口向通信控制機(jī)傳送播放MP3錄音命令,通信控制機(jī)再把它通過命令線轉(zhuǎn)發(fā)給所有的擴(kuò)音臺(tái),讓它們做好接收閉鎖的語音通知準(zhǔn)備。隨后控制臺(tái)播放預(yù)先錄制的MP3語音通知,此MP3音頻通過模擬音頻線傳送到通信控制機(jī),接著通信控制機(jī)通過語音編碼器轉(zhuǎn)換成數(shù)字音頻,以和“打點(diǎn)”功能相同的方式通過數(shù)據(jù)線廣播出去??刂婆_(tái)待語音通知播放完畢后通過繼電器關(guān)閉所有的煤礦設(shè)備,同時(shí)根據(jù)擴(kuò)音臺(tái)編號(hào)在它的終端上顯示發(fā)生事故的擴(kuò)音臺(tái)所在的節(jié)點(diǎn)位。
3 軟件編譯中的沖突
在這4種功能實(shí)現(xiàn)過程中,如何避免其中一種功能執(zhí)行過程中和其它功能的沖突,是一個(gè)值得考慮的問題。解決的方法為:在閉鎖、打點(diǎn)和信號(hào)三種按鈕之中任何一個(gè)按鈕被按下時(shí),直到一個(gè)完整的流程執(zhí)行結(jié)束之前,系統(tǒng)不接受另外兩種按鈕的閉合功能,即另外兩種按鈕按下無任何反應(yīng)。這樣可以保證一個(gè)功能的完整執(zhí)行。若當(dāng)系統(tǒng)在執(zhí)行查詢功能時(shí),閉鎖、打點(diǎn)和信號(hào)三種按鈕之中任何一個(gè)按鈕被按下,系統(tǒng)讓閉鎖、打點(diǎn)和信號(hào)功能等待,首先執(zhí)行查詢功能,待查詢功能完成之后,再返回執(zhí)行閉鎖、打點(diǎn)和信號(hào)功能。由于查詢功能的執(zhí)行時(shí)間非常短,小于0.1秒,其它功能的受到的延遲幾乎沒有影響。反之,若正在執(zhí)行閉鎖、打點(diǎn)和信號(hào)三種功能時(shí),系統(tǒng)禁止查詢,待其它功能完成后,查詢開始。
4 結(jié)束語
通過通信控制機(jī)和擴(kuò)音臺(tái)流程的分析,可以依據(jù)設(shè)計(jì)需求,提出實(shí)現(xiàn)方案,進(jìn)行相應(yīng)的軟件編譯。軟件的編譯使用了VC++6.0軟件中的MSComm控件,對(duì)于關(guān)鍵的改變靜態(tài)對(duì)話框顏色的功能則使用了一個(gè)自定義的SendMessage消息,通過改變對(duì)話框的三原色的RGB值來實(shí)現(xiàn)。
參考文獻(xiàn):
[1] 潘濤.基于ZigBee傳感器網(wǎng)絡(luò)的煤礦安全監(jiān)測(cè)系統(tǒng)研究[D].蘭州大學(xué),2010.
[2] 熊若訥.煤礦井下安全智能監(jiān)控分站的設(shè)計(jì)[D].武漢理工大學(xué),2012.