每次聽(tīng)到別人說(shuō)RS485通信協(xié)議,就很想去糾正他RS485是一種接口標(biāo)準(zhǔn)而不是通信協(xié)議。本文跟大家聊聊關(guān)于RS485的那些事。
接口標(biāo)準(zhǔn)
首先明確一點(diǎn),RS485是一種接口標(biāo)準(zhǔn)而不是通信協(xié)議,RS485還有2個(gè)兄弟:RS232和RS422。RS是Recommend Standard的縮寫(xiě),對(duì)于串口通信,目前工業(yè)領(lǐng)域主要使用RS232和RS485,RS422使用較少。RS485因?yàn)榭垢蓴_、傳輸距離遠(yuǎn)、支持多節(jié)點(diǎn)等優(yōu)點(diǎn)使用更為廣泛,下面是RS232、RS422及RS485的性能對(duì)比圖。
接線(xiàn)方法
RS485可以一對(duì)多,因此針對(duì)多臺(tái)RS485設(shè)備,我們應(yīng)該如何接線(xiàn)?
首先,在電纜選擇上,推薦使用屏蔽雙絞線(xiàn),型號(hào)為RVSP2×0.5(二芯屏蔽雙絞線(xiàn),每芯由16股的0.2mm的導(dǎo)線(xiàn)組成),線(xiàn)材特性阻抗為120Ω。
其次,正確的接線(xiàn)方法是手拉手菊花鏈式接法,如果通信距離較遠(yuǎn)(比如超過(guò)100米),應(yīng)該在網(wǎng)絡(luò)的起始端和末尾端各并接一個(gè)120Ω的終端電阻,以減少信號(hào)在兩端的反射。
有一種錯(cuò)誤接法,卻是很多人經(jīng)常使用的,是星型接法,或者叫樹(shù)形接法。如果數(shù)量較少,這種接法可能也不會(huì)有問(wèn)題,建議大家從一開(kāi)始就按照正確的布線(xiàn)方法,便于后續(xù)問(wèn)題排查,以免返工。
掛接設(shè)備
一條RS485總線(xiàn)上可以?huà)燧d多少個(gè)RS485設(shè)備,這個(gè)問(wèn)題會(huì)經(jīng)常被問(wèn)到。具體的數(shù)量由RS485轉(zhuǎn)換器的負(fù)載能力決定,正常來(lái)說(shuō),RS485芯片的負(fù)載能力有三個(gè)級(jí)別,這三個(gè)級(jí)別依次可以?huà)燧d32臺(tái)、128臺(tái)和256臺(tái)。
通常,我們使用的RS485轉(zhuǎn)換器負(fù)載能力是32臺(tái),而且也不建議在一條RS485總線(xiàn)上掛載太多,掛載越多,出現(xiàn)問(wèn)題處理越麻煩。
如果設(shè)備確實(shí)很多,可以通過(guò)擴(kuò)展RS485總線(xiàn)的數(shù)量來(lái)分擔(dān)負(fù)載壓力,比如100臺(tái)RS485設(shè)備,分4個(gè)RS485總線(xiàn),每個(gè)總線(xiàn)掛載25臺(tái)。
RS485傳輸距離
從理論的角度來(lái)說(shuō),在無(wú)中繼的情況下,RS485通信距離是1200米,但是這個(gè)是在理想情況下,理想情況是指通信電纜優(yōu)質(zhì)、波特率9600bps、只有一個(gè)RS485設(shè)備并且允許偶爾通信中斷。
實(shí)際情況,伴隨著負(fù)載設(shè)備增多、通信電纜不達(dá)標(biāo)、RS485轉(zhuǎn)換器品質(zhì)等外界因素影響,通信距離都會(huì)有所降低。
正常來(lái)說(shuō),通信距離超過(guò)100米,就要考慮增加終端電阻,超過(guò)1000米,就要考慮增加RS485總線(xiàn)中繼器。
通信協(xié)議ModbusRTU與RS485是什么關(guān)系?
準(zhǔn)確來(lái)說(shuō),兩者應(yīng)該是不同層級(jí)的關(guān)系,Modbus RTU是應(yīng)用層一種通信協(xié)議,RS485是物理層的一種接口標(biāo)準(zhǔn)。
我們常說(shuō)的Modbus RTU通信,通常是指基于RS485,但是Modbus RTU協(xié)議也可以基于RS232/RS422,甚至可以基于以太網(wǎng)TCP/UDP。
同時(shí),RS485也不是Modbus RTU的專(zhuān)屬,任何協(xié)議都可以基于RS485傳輸,至于能不能實(shí)現(xiàn)一主多從,要看協(xié)議層面有沒(méi)有設(shè)計(jì)設(shè)備地址。
一主多從的實(shí)現(xiàn)有兩個(gè)條件,第一是物理層支持,第二是應(yīng)用層支持,兩者缺一不可。比如,我們物理層使用RS232,即使應(yīng)用層使用Modbus RTU協(xié)議,也無(wú)法實(shí)現(xiàn)一主多從。
通信速度
很多人提到Modbus協(xié)議,第一反應(yīng)就是慢,這個(gè)是長(zhǎng)期以來(lái),口口相傳的結(jié)果。究竟是否如此,我們來(lái)具體分析一下。
通信速度主要受到兩個(gè)因素的影響:數(shù)據(jù)量大小和硬件層的速度。數(shù)據(jù)量大小指的是需要傳輸?shù)臄?shù)據(jù)多少,而硬件層的速度則跟通信設(shè)備和網(wǎng)絡(luò)基礎(chǔ)息息相關(guān),這兩者共同決定了通信速度的快慢。
舉個(gè)例子,大家都經(jīng)常取快遞,整個(gè)耗時(shí)時(shí)間,跟快遞數(shù)量多少、距離有多遠(yuǎn)以及我們使用的交通工具都是有關(guān)的。
首先,Modbus是一種通信協(xié)議,是沒(méi)有速度的說(shuō)法的。如果真的要論速度,Modbus報(bào)文幀簡(jiǎn)單緊湊,表達(dá)同樣一個(gè)意思,在不考慮安全性的前提下,Modbus可以用更少的報(bào)文來(lái)表達(dá),而其他協(xié)議,可能報(bào)文要更復(fù)雜,數(shù)據(jù)量也更大。
其次,硬件層的速度,這個(gè)與波特率及通信距離都有關(guān)系,因此如果真的說(shuō)慢,你只能說(shuō)串口通信慢,但不能說(shuō)Modbus慢。
下面這張圖,是使用Modbus TCP與各種PLC及板卡通信結(jié)果,實(shí)測(cè)結(jié)果,沒(méi)有好壞貶低。
很多人一味地追求快,但是對(duì)于上位機(jī)來(lái)說(shuō),根本不需要太快,人眼能識(shí)別的動(dòng)畫(huà)是25幀/秒,即40ms,超過(guò)這個(gè)頻率,你眼睛都識(shí)別不過(guò)來(lái)。
一主多從
另外一種情況,可能很多人是因?yàn)橐恢鞫鄰妮喸?xún),認(rèn)為ModbusRTU通信速度慢。
Modbus協(xié)議在報(bào)文層設(shè)計(jì)了設(shè)備地址,這樣就可以配合RS485實(shí)現(xiàn)一主多從,一主多從可以簡(jiǎn)化布線(xiàn)、易于管理、節(jié)約成本。
因此,在通信要求不高的情況,使用一主多從是一個(gè)非常好的方案,一主多從輪詢(xún)機(jī)制必然會(huì)帶來(lái)通信效率的降低。既然選擇了這種方案,就需要接受它的缺點(diǎn),如果接受不了這個(gè)缺點(diǎn),就不要選擇它。
總之,存在即合理,一個(gè)優(yōu)秀的工程師,應(yīng)該學(xué)會(huì)在正確的場(chǎng)景下選擇正確的方案,最終達(dá)到自己的目的。
相關(guān)閱讀
◆RS485和MODBUS的區(qū)別與聯(lián)系
◆儀表RS458總線(xiàn)你加了終端匹配電阻嗎
◆秒懂RS232、RS422及RS485的選擇及使用
共有訪(fǎng)客發(fā)表了評(píng)論
網(wǎng)友評(píng)論