RS-485多從機競爭的解決方案
在RS-485多機通信中,往往會出現(xiàn)多個從機同時向主機發(fā)送數(shù)據(jù)。比如在RS-485溫度測量系統(tǒng)中,多個RS-485從機的溫度測量值只要超過報警點就立即向主機發(fā)送報警信息,但是這也可能會出現(xiàn)2個或者2個以上的RS-485從機同時向主機發(fā)送報警信息。如果不采取RS-485競爭解決機制,那么就可能會導致2個從機同時發(fā)送的信息重疊,這樣主機就無法接收到正確的信號,嚴重的還可能導致整個RS-485系統(tǒng)的崩潰。傳統(tǒng)的解決方案是由主機循環(huán)輪流對各個RS-485下位機點名通信,這雖然解決了RS-485多從機的競爭,但是同時延誤了實時報警信息。本文介紹的新方案之一能夠識別從機發(fā)送信號的時間順序,先發(fā)送的從機信號可以同時抑制其他從機的RS-485發(fā)送信號,只有等先發(fā)送信號的從機發(fā)送完畢之后其它從機才能夠發(fā)送RS-485信號。本文介紹的新方案之二可以讓下位機能夠主動發(fā)送自己的地址,這樣就無需主機對各從機進行輪流查詢。本文介紹的新方案之三是將從機轉換為不同的波特率,由于主機每次只能夠接收某一種波特率的信號,這樣就完全避免了多從機的競爭。本文中的“上位機”即“主機”,“下位機”即“從機”。
1、在RS-485總線中接入RS-485智能共享器
2路RS-485對1路RS-485智能共享器(型號:HUB2485Z)本來是用于兩個RS-485上位機共同控制一個RS-485下位機的通信連接,在這里我們將HUB2485Z用于兩臺下位機的RS-485口共享一臺上位機的RS-485口。HUB2485Z使RS-485總線同時接2個從機(下位機)。HUB2485Z已經(jīng)有2個下位機RS-485(1)和RS-485(2)的插座(DB-9針并且配接線端子)和1個上位機的接線端子,無需修改軟件、5V供電。HUB2485Z適用于兩臺下位機的RS-485口同時驅動一臺上位機的RS-485口。HUB2485Z的外型為DB-9(針)/DB-9(針)轉接盒大小,其中兩個DB-9針的RS-485口均配接線端子。兩個DB-9針的下位機RS-485口,如圖RS-485(1)和RS-485(2)是完全一樣的,可以互換。上位機RS-485為接線端子,位于如圖產(chǎn)品的上側面,與電源接線端子在一起。HUB2485Z需要外接5V電源,配套提供。
波仕HUB2485Z智能RS-485集線器能夠識別兩個下位機RS-485(1)和RS-485(2)的發(fā)送順序,避免同時發(fā)送導致的系統(tǒng)癱瘓。也就是說,即使兩個下位機正在同時發(fā)送,HUB2485Z會選取發(fā)送開始時間領先的下位機正確發(fā)送數(shù)據(jù),而只有等到這一個下位機的數(shù)據(jù)發(fā)送完畢后,另外一個下位機才可以開始發(fā)送數(shù)據(jù)。HUB2485Z的具有雙向通信功能,當上位機發(fā)送時,兩個下位機同時接收到相同的數(shù)據(jù),并不區(qū)分地址。
圖2 RS-485智能共享器使用布線圖
在圖2中,舉例說明了同時接4個RS-485下位機的布線圖,實際上還可以一直繼續(xù)接下去。以接4個下位機為例,下位機4和下位機3分別接入3號HUB2485Z的RS-485(1)和RS-485(2)口,共享的RS-485口再級聯(lián)接入另外一個2號HUB2485Z的RS-485(2)口,2號HUB2485Z的RS-485(1)接下位機2。以此類推,2號HUB2485Z的RS-485(2)口接下位機2,共享的RS-485接到1號HUB2485Z的RS-485(2),1號HUB2485Z的RS-485(1)接下位機1。在這樣的布線結構中,每一個下位機都接入到了HUB2485Z共享器,由于HUB2485Z是可以級聯(lián)的,所以非常靈活地接入多個下位機。實際上,1號HUB2485Z的RS-485(1)也可以繼續(xù)級聯(lián)新的HUB2485Z。
2、在RS-485總線中接入RS-485地址轉換器
傳統(tǒng)的RS-485多機通信方案是每次都由主機循環(huán)輪流對各個RS-485下位機點名通信,主機先發(fā)送被呼叫的從機的地址,總線中每一個從機都將這個地址信號與自己的地址進行比較,地址一樣就繼續(xù)也主機通信,不一樣就不與主機通信。這樣可能存在的問題就是從機發(fā)送的信號是可以不帶本從機地址的,因為主機已經(jīng)發(fā)送了從機地址信息,緊接著收到的從機信號一定就是這個被點名的從機的信號,而且從機信號不帶地址可以極大簡化主機的信號處理程序。從機發(fā)送的信號不帶從機地址就會限制RS-485多機通信的實時性,比如RS-485多機溫度測量系統(tǒng)就不能夠實時報警,因為主機不知道發(fā)送報警信號的從機的地址。
評論