1、引言
在復(fù)雜現(xiàn)場(chǎng)工業(yè)環(huán)境中,有時(shí)需要對(duì)現(xiàn)場(chǎng)工作設(shè)備進(jìn)行備份,提供一套與工作設(shè)備完全相同的設(shè)備,提高設(shè)備的應(yīng)急處理能力和工作任務(wù)完成的的靠性。在這種備份方式中,主輔兩臺(tái)設(shè)備同時(shí)開(kāi)機(jī),同時(shí)接收終端設(shè)備數(shù)據(jù),根據(jù)需求采用通信協(xié)議簡(jiǎn)單、容錯(cuò)能力強(qiáng)、安全性好以及成本較低的RS422總線方式實(shí)現(xiàn)。RS422總線是一種點(diǎn)對(duì)點(diǎn)傳輸總線,它定義了一種平衡通信接口,將傳輸速率提高到10Mb/s,在傳輸速率低于100kb/s時(shí),其傳輸距離可達(dá)1200米。RS422傳輸協(xié)議屬于單機(jī)發(fā)送、多機(jī)接收的單向、平衡傳輸規(guī)范,只對(duì)接口電氣特性做出規(guī)定,不涉及接插件、電纜或協(xié)議,可在此基礎(chǔ)上建立高層通信協(xié)議進(jìn)行通信。
2、系統(tǒng)接口設(shè)計(jì)
為使主輔設(shè)備互為備份,需要主輔設(shè)備同時(shí)接收數(shù)據(jù)、主設(shè)備應(yīng)答終端設(shè)備信號(hào)命令,而輔設(shè)備不應(yīng)答終端設(shè)備信號(hào)命令。主輔設(shè)備與終端設(shè)備通過(guò)RS422端口連接方式如圖1所示。
圖1 系統(tǒng)接口設(shè)計(jì)小標(biāo)
3、系統(tǒng)工作流程
主輔設(shè)備同時(shí)工作時(shí),系統(tǒng)工作流程如圖2所示:
圖2 系統(tǒng)工作流程框圖
4、軟件設(shè)計(jì)
通信過(guò)程中,終端設(shè)備通過(guò)RS422端口按查詢通信方式和中斷通信方式與主輔設(shè)備進(jìn)行通信。
4.1 數(shù)據(jù)幀格式設(shè)計(jì)
4.1.1 查詢通信幀格式
查詢通信幀格式如表1所示,按照單字節(jié)握手方式進(jìn)行數(shù)據(jù)傳輸:終端設(shè)備按照單字節(jié)信號(hào)傳輸方式發(fā)送信號(hào)命令到主輔設(shè)備,主設(shè)備在接收到每個(gè)字節(jié)后返回到終端設(shè)備,輔設(shè)備則無(wú)應(yīng)答。終端設(shè)備在確認(rèn)接收字節(jié)與發(fā)送字節(jié)無(wú)誤后繼續(xù)發(fā)送幀中下一字節(jié)數(shù)據(jù)到主輔設(shè)備。
表1 查詢通信數(shù)據(jù)幀格式
幀格式
幀頭
數(shù)據(jù)長(zhǎng)度
識(shí)別符
代碼
幀尾
字節(jié)數(shù)
3
2
2
1
1
4.1.2 中斷通信數(shù)據(jù)幀格式
中斷通信數(shù)據(jù)幀格式如表2所示,按照中斷方式進(jìn)行數(shù)據(jù)傳輸:設(shè)備通過(guò)數(shù)據(jù)幀格式將每一個(gè)字節(jié)順序發(fā)出,接收方以中斷方式進(jìn)行接收,根據(jù)幀格式判斷是否收到完整數(shù)據(jù)幀。
表2 中斷通信數(shù)據(jù)幀格式
幀格式
幀頭
識(shí)別符
數(shù)據(jù)區(qū)
校驗(yàn)和
數(shù)據(jù)長(zhǎng)度
幀尾
字節(jié)數(shù)
2
7
200
1
2
2
4.2 設(shè)計(jì)考慮
4.2.1 數(shù)據(jù)幀判別
設(shè)置后臺(tái)監(jiān)視線程,主輔設(shè)備同時(shí)不間斷接收終端設(shè)備傳輸信號(hào),接收到信號(hào)后,判斷是否為單字節(jié),若是單字節(jié)則延時(shí)20毫秒繼續(xù)接收。20毫秒后若沒(méi)有接收到數(shù)據(jù)則進(jìn)入查詢通信格式進(jìn)行單字節(jié)握手接收,否則進(jìn)入中斷通信方式進(jìn)行數(shù)據(jù)接收。
4.2.2 通信同步
4.2.2.1 主輔設(shè)備與終端設(shè)備數(shù)據(jù)接收同步
主輔設(shè)備與終端設(shè)備通信時(shí)需在發(fā)送和接收數(shù)據(jù)時(shí)間間隔上進(jìn)行限制,當(dāng)接收和發(fā)送時(shí)間超過(guò)時(shí)間間隔,就認(rèn)為本次通信失敗。程序立即回到通信程序開(kāi)始,并清空緩沖區(qū)的數(shù)據(jù)繼續(xù)查詢接收;終端設(shè)備若在規(guī)定時(shí)間未收到返回確認(rèn)信號(hào),也立即返回到通信程序開(kāi)始,并清空緩沖區(qū)中的數(shù)據(jù),重新發(fā)送數(shù)據(jù),接收雙方重新同步。
4.2.2.2 主設(shè)備與輔設(shè)備接收同步
主設(shè)備與輔設(shè)備同時(shí)接收終端設(shè)備傳輸數(shù)據(jù),因?yàn)榻邮站€程都是程序子線程,因此當(dāng)主設(shè)備接收并應(yīng)答終端設(shè)備信號(hào)時(shí),輔設(shè)備接收線程可能存在未同步接收的情況,當(dāng)主設(shè)備與終端設(shè)備通信到一定時(shí)間時(shí),輔設(shè)備才開(kāi)始接收數(shù)據(jù)。此時(shí),輔設(shè)備接收線程進(jìn)入中斷通信方式。
因此在程序設(shè)計(jì)中接收線程采用中斷查詢混合接收方式,判別幀格式不屬于中斷通信幀格式后,采用單字節(jié)格式繼續(xù)進(jìn)行數(shù)據(jù)接收。
4.2.3 丟幀處理
主輔設(shè)備同時(shí)接收終端設(shè)備中斷數(shù)據(jù)幀格式時(shí),需考慮到主輔設(shè)備間接收線程同步性,判別接收數(shù)據(jù)時(shí)是否存在丟幀現(xiàn)象。
4.3 接收工作線程
軟件接收參數(shù)工作線程如圖3所示。
圖3 軟件接收工作線程
4.3.1 查詢通信流程
查詢通信工作流程如圖4所示。
圖4 查詢通信工作流程
4.3.2 中斷查詢混合通信流程
中斷查詢混合通信工作流程如圖5所示。
圖5 中斷查詢混合通信工作流程
5、結(jié)論
經(jīng)過(guò)實(shí)驗(yàn)驗(yàn)證,通信時(shí),通過(guò)主設(shè)備單獨(dú)應(yīng)答終端設(shè)備信號(hào)命令,主輔設(shè)備能很好的同時(shí)接收終端設(shè)備數(shù)據(jù)并存儲(chǔ)備份。經(jīng)過(guò)分析,這種按照RS422總線方式進(jìn)行連接的備份測(cè)試方法雖然降低了總線輸出電平差值,但輸出電平仍然遠(yuǎn)大于RS422規(guī)定的200mv門限電平值。因此,這種連接設(shè)計(jì)的主輔備份測(cè)試系統(tǒng)很好的滿足了數(shù)據(jù)備份和數(shù)據(jù)通信傳輸要求,而其結(jié)構(gòu)簡(jiǎn)單、構(gòu)造方便、成本較低的優(yōu)點(diǎn)更具有無(wú)可比擬的優(yōu)勢(shì)。