帶你全面了解RS485接口知識(shí)
接口標(biāo)準(zhǔn)
接線方法
有一種錯(cuò)誤接法,卻是很多人經(jīng)常使用的,是星型接法,或者叫樹(shù)形接法。如果數(shù)量較少,這種接法可能也不會(huì)有問(wèn)題,建議大家從一開(kāi)始就按照正確的布線方法,便于后續(xù)問(wèn)題排查,以免返工。
掛接設(shè)備
傳輸距離
通信協(xié)議
ModbusRTU與RS485是什么關(guān)系?
準(zhǔn)確來(lái)說(shuō),兩者應(yīng)該是不同層級(jí)的關(guān)系,ModbusRTU是應(yīng)用層一種通信協(xié)議,RS485是物理層的一種接口標(biāo)準(zhǔn)。
我們常說(shuō)的ModbusRTU通信,通常是指基于RS485,但是ModbusRTU協(xié)議也可以基于RS232/RS422,甚至可以基于以太網(wǎng)TCP/UDP。
同時(shí),RS485也不是ModbusRTU的專屬,任何協(xié)議都可以基于RS485傳輸,至于能不能實(shí)現(xiàn)一主多從,要看協(xié)議層面有沒(méi)有設(shè)計(jì)設(shè)備地址。
一主多從的實(shí)現(xiàn)有兩個(gè)條件,*是物理層支持,第二是應(yīng)用層支持,兩者缺一不可。比如,我們物理層使用RS232,即使應(yīng)用層使用ModbusRTU協(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慢。
下面這張圖,是使用ModbusTCP與各種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)橐恢鞫鄰妮喸儯J(rèn)為ModbusRTU通信速度慢。
Modbus協(xié)議在報(bào)文層設(shè)計(jì)了設(shè)備地址,這樣就可以配合RS485實(shí)現(xiàn)一主多從,一主多從可以簡(jiǎn)化布線、易于管理、節(jié)約成本。
因此,在通信要求不高的情況,使用一主多從是一個(gè)非常好的方案,一主多從輪詢機(jī)制必然會(huì)帶來(lái)通信效率的降低。
既然選擇了這種方案,就需要接受它的缺點(diǎn),如果接受不了這個(gè)缺點(diǎn),就不要選擇它。