RS-485總線(xiàn)通訊技術(shù)在多機監控系統中的應用
引言
本文引用地址:http://dyxdggzs.com/article/201609/304049.htm一個(gè)監控系統中如果要同時(shí)檢測到控制系統中的各種分散的數據往往是比較困難的,而采用RS-485總線(xiàn)通訊與單片機組成分布式監控系統是一種最佳可行的方案。而多機通訊技術(shù)是組成分布式監控系統的關(guān)鍵技術(shù)之一。作者對設備監控系統進(jìn)行大量查閱資料并進(jìn)行了詳細分析,對通訊網(wǎng)進(jìn)行了較深入的研究,最后通過(guò)舞臺燈的軟、硬件聯(lián)調和抗干擾試驗,投入現場(chǎng)使用,運行都很良好,因此,試驗驗證了該方法的可行性。
1 系統結構
我們采用PC機或51單片機為主機(雙系統),用AT89C52作為從機模塊,選用MAX487數據通訊接口器件作為通訊接口,構成一個(gè)以RS-485接口為通訊總線(xiàn)的分布式網(wǎng)絡(luò ),與主機連接的各個(gè)從機分別進(jìn)行相應的舞臺設備的開(kāi)關(guān)量控制,上升、下降等狀態(tài)切換,限位信號的處理等工作。各種數據及信號的傳輸都是通過(guò)數據通訊總線(xiàn)實(shí)現。
2 理論分析
網(wǎng)絡(luò )的正常運行與多機聯(lián)網(wǎng)的通訊方式、通訊接口標準及多機通訊的總線(xiàn)競爭等都是在研發(fā)中必需考慮得的關(guān)鍵技術(shù)問(wèn)題。
2.1 通訊方式的選擇
本系統的多機通訊采用的是串行方式。串行通訊分異步和同步。由于異步通訊允許間歇通訊,對于低速通訊(如工業(yè)監控系統)來(lái)說(shuō)是理想的。眾所周知,主機上的串行工作方式有4種,方式3是9位波特率可變的異步通訊方式。此方式的第9個(gè)數據位和標志位SM2聯(lián)合使用時(shí)具有識別地址的功能,特別實(shí)用于多機通訊。因此,本系統選用了串行通訊方式3。
2.2 通訊接口標準的選擇
目前廣泛使用的串行通訊接口為RS-232C。但RS-232C在分布式監控系統中作為多機通訊使用有以下幾點(diǎn)不足:
1) 數據傳輸率局限于20Kbit/秒,傳輸距離局限于15米。
2)不能避免共模信號在通訊中的干擾。
3)只適用于點(diǎn)對點(diǎn)的通訊,無(wú)法用最少的信號線(xiàn)實(shí)現多點(diǎn)對多點(diǎn)的通訊。
RS-422(全雙工)和RS-485(半雙工)串行接口總線(xiàn)正是為了克服上述缺點(diǎn)而設計的標準接口。RS-422需要兩對平衡差分信號線(xiàn),而RS-485只需其中一對,對于多機連接更為便利,因此,選用了RS-485作為聯(lián)網(wǎng)的通訊是最佳選擇方案。
2.3 總線(xiàn)競爭的解決方案
在各種分布式集中監控系統中,總線(xiàn)型網(wǎng)絡(luò )的通信方式主要是采用主從方式,即系統的通信由主機(上位機)控制通信的主動(dòng)權,選擇呼叫某一個(gè)從機(下位機)進(jìn)行通信。這種通信方式不會(huì )產(chǎn)生總線(xiàn)的競爭,通信協(xié)議簡(jiǎn)單可靠。主從方式的工作機制確定了它主要適用于從機有經(jīng)常性的數據需要傳送的場(chǎng)合。在本系統中,有突發(fā)性數據需要傳輸(如開(kāi)關(guān)變位,限位信號到達),而系統又要求對從機的這種突發(fā)性數據進(jìn)行快速響應,這種情況下簡(jiǎn)單的主從方式在實(shí)現時(shí)數據通信可能會(huì )丟失。尤其是本系統從機數量比較多,有時(shí)會(huì )發(fā)生兩個(gè)或多個(gè)從機同時(shí)想占用總線(xiàn)的情況。例如,可能在某一時(shí)刻有兩個(gè)單片機監控的限位信號同時(shí)到達,都向主機發(fā)送數據,從而產(chǎn)生了總線(xiàn)競爭。不同的總線(xiàn)形式采用了不同的解決方法。作者研發(fā)的監控系統主要采用上位機為PC機或51單片機,下位機為51單片機的形式,這也是監控系統中應用最為廣泛的形式,并且降低了成本。以下主要就這種形式的總線(xiàn),分析兩種解決多機通信中總線(xiàn)競爭問(wèn)題的方法。

圖1 解決總線(xiàn)競爭的方案1
在圖1中,當從機J有信息主動(dòng)發(fā)送時(shí),將自身的主動(dòng)發(fā)送標志位Fj置1。主機接收到數據后,若校驗正確,則表示無(wú)總線(xiàn)競爭情況,發(fā)送數據成功;若校驗錯誤,表明可能發(fā)生總線(xiàn)競爭,主機查詢(xún)從機1。從機1接收到主機查詢(xún)命令后,檢驗自身主動(dòng)發(fā)送標志位Fj,若為0,則從機1沒(méi)有主動(dòng)發(fā)送數據,主機依次查詢(xún)下一從機;若Fj為1,表明從機曾主動(dòng)發(fā)送,要將已發(fā)數據再發(fā)送一次。主機再次接收到信號,校驗正確后,依次查詢(xún)下一從機,直到將從機查詢(xún)完畢。

圖2 解決總線(xiàn)競爭方案2
方案二前面步驟同方案一,不同之處是主機校驗從機主動(dòng)所發(fā)的數據,如果數據校驗正確,主機回復從機,表明已正確接收;若校驗錯誤,主機廣播發(fā)送信號,請求從機重發(fā)數據。因為主機是廣播發(fā)送,所以各從機幾乎同時(shí)接收到請求信號。沒(méi)有主動(dòng)發(fā)送數據的從機不返回信號;而曾主動(dòng)發(fā)送的從機以接收到請求信號為標志,延時(shí)j*T后(j為從機的序列號),重發(fā)數據,如圖2所示。在重發(fā)數據時(shí),不同的從機延時(shí)不同,使得占用總線(xiàn)的時(shí)間不重疊,所以不會(huì )造成總線(xiàn)競爭。作者在現場(chǎng)調試中,通過(guò)調整延時(shí)T,即便是在序列號相鄰的從機都重發(fā)數據的情況下,也不會(huì )發(fā)生沖突。而且延時(shí)T只有數十ms,整個(gè)通訊,從第一次因總線(xiàn)競爭而造成的發(fā)送失敗,到主機接收完畢正確的重發(fā)信號,不到0.1s。從而既解決了總線(xiàn)競爭問(wèn)題,也確保了數據的實(shí)時(shí)傳送,兼顧了系統的實(shí)時(shí)性和可靠性。
當通訊出現總線(xiàn)競爭時(shí),在方案1中,主機遍查從機,流程簡(jiǎn)明,但主機使用查詢(xún)方式,被占用了較多資源;方案2采用了從機分時(shí)上報的方式,解放了主機的查詢(xún)工作,但因為加入延時(shí),需要現場(chǎng)調試找出延時(shí)的合理值。本系統為減輕主機的工作負擔,應用了方案2,但方案1在主機資源開(kāi)銷(xiāo)不大的系統中,可以作為首選。
以上方案通訊結構簡(jiǎn)單,軟件易實(shí)現,能避免總線(xiàn)競爭引發(fā)的數據丟失,特別適用于有突發(fā)性數據需要傳輸的多機控制系統中。
3 結束語(yǔ)
通過(guò)本項目的研究,作者研制了將RS-485通訊技術(shù)構成總線(xiàn)通訊網(wǎng),并運用于多機監控系統的方法;實(shí)現選擇通訊方式、通訊接口的關(guān)鍵技術(shù);給出了總線(xiàn)競爭問(wèn)題的解決方案。本系統投入現場(chǎng)運行時(shí),通訊網(wǎng)絡(luò )可靠,達到了預期的效果。
評論