RS-485總線通訊技術(shù)在多機監(jiān)控系統(tǒng)中的應(yīng)用
引言
本文引用地址:http://2s4d.com/article/201609/304049.htm一個監(jiān)控系統(tǒng)中如果要同時檢測到控制系統(tǒng)中的各種分散的數(shù)據(jù)往往是比較困難的,而采用RS-485總線通訊與單片機組成分布式監(jiān)控系統(tǒng)是一種最佳可行的方案。而多機通訊技術(shù)是組成分布式監(jiān)控系統(tǒng)的關(guān)鍵技術(shù)之一。作者對設(shè)備監(jiān)控系統(tǒng)進行大量查閱資料并進行了詳細分析,對通訊網(wǎng)進行了較深入的研究,最后通過舞臺燈的軟、硬件聯(lián)調(diào)和抗干擾試驗,投入現(xiàn)場使用,運行都很良好,因此,試驗驗證了該方法的可行性。
1 系統(tǒng)結(jié)構(gòu)
我們采用PC機或51單片機為主機(雙系統(tǒng)),用AT89C52作為從機模塊,選用MAX487數(shù)據(jù)通訊接口器件作為通訊接口,構(gòu)成一個以RS-485接口為通訊總線的分布式網(wǎng)絡(luò),與主機連接的各個從機分別進行相應(yīng)的舞臺設(shè)備的開關(guān)量控制,上升、下降等狀態(tài)切換,限位信號的處理等工作。各種數(shù)據(jù)及信號的傳輸都是通過數(shù)據(jù)通訊總線實現(xiàn)。
2 理論分析
網(wǎng)絡(luò)的正常運行與多機聯(lián)網(wǎng)的通訊方式、通訊接口標(biāo)準(zhǔn)及多機通訊的總線競爭等都是在研發(fā)中必需考慮得的關(guān)鍵技術(shù)問題。
2.1 通訊方式的選擇
本系統(tǒng)的多機通訊采用的是串行方式。串行通訊分異步和同步。由于異步通訊允許間歇通訊,對于低速通訊(如工業(yè)監(jiān)控系統(tǒng))來說是理想的。眾所周知,主機上的串行工作方式有4種,方式3是9位波特率可變的異步通訊方式。此方式的第9個數(shù)據(jù)位和標(biāo)志位SM2聯(lián)合使用時具有識別地址的功能,特別實用于多機通訊。因此,本系統(tǒng)選用了串行通訊方式3。
2.2 通訊接口標(biāo)準(zhǔn)的選擇
目前廣泛使用的串行通訊接口為RS-232C。但RS-232C在分布式監(jiān)控系統(tǒng)中作為多機通訊使用有以下幾點不足:
1) 數(shù)據(jù)傳輸率局限于20Kbit/秒,傳輸距離局限于15米。
2)不能避免共模信號在通訊中的干擾。
3)只適用于點對點的通訊,無法用最少的信號線實現(xiàn)多點對多點的通訊。
RS-422(全雙工)和RS-485(半雙工)串行接口總線正是為了克服上述缺點而設(shè)計的標(biāo)準(zhǔn)接口。RS-422需要兩對平衡差分信號線,而RS-485只需其中一對,對于多機連接更為便利,因此,選用了RS-485作為聯(lián)網(wǎng)的通訊是最佳選擇方案。
2.3 總線競爭的解決方案
在各種分布式集中監(jiān)控系統(tǒng)中,總線型網(wǎng)絡(luò)的通信方式主要是采用主從方式,即系統(tǒng)的通信由主機(上位機)控制通信的主動權(quán),選擇呼叫某一個從機(下位機)進行通信。這種通信方式不會產(chǎn)生總線的競爭,通信協(xié)議簡單可靠。主從方式的工作機制確定了它主要適用于從機有經(jīng)常性的數(shù)據(jù)需要傳送的場合。在本系統(tǒng)中,有突發(fā)性數(shù)據(jù)需要傳輸(如開關(guān)變位,限位信號到達),而系統(tǒng)又要求對從機的這種突發(fā)性數(shù)據(jù)進行快速響應(yīng),這種情況下簡單的主從方式在實現(xiàn)時數(shù)據(jù)通信可能會丟失。尤其是本系統(tǒng)從機數(shù)量比較多,有時會發(fā)生兩個或多個從機同時想占用總線的情況。例如,可能在某一時刻有兩個單片機監(jiān)控的限位信號同時到達,都向主機發(fā)送數(shù)據(jù),從而產(chǎn)生了總線競爭。不同的總線形式采用了不同的解決方法。作者研發(fā)的監(jiān)控系統(tǒng)主要采用上位機為PC機或51單片機,下位機為51單片機的形式,這也是監(jiān)控系統(tǒng)中應(yīng)用最為廣泛的形式,并且降低了成本。以下主要就這種形式的總線,分析兩種解決多機通信中總線競爭問題的方法。
圖1 解決總線競爭的方案1
在圖1中,當(dāng)從機J有信息主動發(fā)送時,將自身的主動發(fā)送標(biāo)志位Fj置1。主機接收到數(shù)據(jù)后,若校驗正確,則表示無總線競爭情況,發(fā)送數(shù)據(jù)成功;若校驗錯誤,表明可能發(fā)生總線競爭,主機查詢從機1。從機1接收到主機查詢命令后,檢驗自身主動發(fā)送標(biāo)志位Fj,若為0,則從機1沒有主動發(fā)送數(shù)據(jù),主機依次查詢下一從機;若Fj為1,表明從機曾主動發(fā)送,要將已發(fā)數(shù)據(jù)再發(fā)送一次。主機再次接收到信號,校驗正確后,依次查詢下一從機,直到將從機查詢完畢。
圖2 解決總線競爭方案2
方案二前面步驟同方案一,不同之處是主機校驗從機主動所發(fā)的數(shù)據(jù),如果數(shù)據(jù)校驗正確,主機回復(fù)從機,表明已正確接收;若校驗錯誤,主機廣播發(fā)送信號,請求從機重發(fā)數(shù)據(jù)。因為主機是廣播發(fā)送,所以各從機幾乎同時接收到請求信號。沒有主動發(fā)送數(shù)據(jù)的從機不返回信號;而曾主動發(fā)送的從機以接收到請求信號為標(biāo)志,延時j*T后(j為從機的序列號),重發(fā)數(shù)據(jù),如圖2所示。在重發(fā)數(shù)據(jù)時,不同的從機延時不同,使得占用總線的時間不重疊,所以不會造成總線競爭。作者在現(xiàn)場調(diào)試中,通過調(diào)整延時T,即便是在序列號相鄰的從機都重發(fā)數(shù)據(jù)的情況下,也不會發(fā)生沖突。而且延時T只有數(shù)十ms,整個通訊,從第一次因總線競爭而造成的發(fā)送失敗,到主機接收完畢正確的重發(fā)信號,不到0.1s。從而既解決了總線競爭問題,也確保了數(shù)據(jù)的實時傳送,兼顧了系統(tǒng)的實時性和可靠性。
當(dāng)通訊出現(xiàn)總線競爭時,在方案1中,主機遍查從機,流程簡明,但主機使用查詢方式,被占用了較多資源;方案2采用了從機分時上報的方式,解放了主機的查詢工作,但因為加入延時,需要現(xiàn)場調(diào)試找出延時的合理值。本系統(tǒng)為減輕主機的工作負擔(dān),應(yīng)用了方案2,但方案1在主機資源開銷不大的系統(tǒng)中,可以作為首選。
以上方案通訊結(jié)構(gòu)簡單,軟件易實現(xiàn),能避免總線競爭引發(fā)的數(shù)據(jù)丟失,特別適用于有突發(fā)性數(shù)據(jù)需要傳輸?shù)亩鄼C控制系統(tǒng)中。
3 結(jié)束語
通過本項目的研究,作者研制了將RS-485通訊技術(shù)構(gòu)成總線通訊網(wǎng),并運用于多機監(jiān)控系統(tǒng)的方法;實現(xiàn)選擇通訊方式、通訊接口的關(guān)鍵技術(shù);給出了總線競爭問題的解決方案。本系統(tǒng)投入現(xiàn)場運行時,通訊網(wǎng)絡(luò)可靠,達到了預(yù)期的效果。
評論