在做電表遠(yuǎn)程抄表項(xiàng)目的時(shí)候,RS485這個(gè)詞幾乎繞不開。很多人知道要用RS485接線,但搞不清楚"485協(xié)議"和"RS485"有什么區(qū)別,也不知道為什么Modbus這個(gè)詞總是一起出現(xiàn)。這篇把電表485協(xié)議的來龍去脈說清楚。

一、RS485是什么
RS485是一種物理層通信標(biāo)準(zhǔn),規(guī)定的是電氣特性:差分信號(hào)傳輸、最遠(yuǎn)傳輸距離1200米、最多掛接32個(gè)節(jié)點(diǎn)(使用中繼可擴(kuò)展)、總線拓?fù)浣Y(jié)構(gòu)。它只是一根線和電信號(hào)的規(guī)范,本身不定義數(shù)據(jù)格式,不規(guī)定你發(fā)什么內(nèi)容、怎么解析數(shù)據(jù)。
二、Modbus是什么
Modbus是在RS485物理層之上運(yùn)行的應(yīng)用層協(xié)議,規(guī)定了數(shù)據(jù)的格式和通信規(guī)則:主站如何發(fā)起請(qǐng)求,從站如何響應(yīng),數(shù)據(jù)以什么格式打包。電表485協(xié)議,準(zhǔn)確說應(yīng)該叫"Modbus RTU over RS485"——用RS485線傳輸,用Modbus RTU格式解析數(shù)據(jù)。兩者的關(guān)系:RS485是高速公路,Modbus是路上跑的車隊(duì)規(guī)則。
三、電表485協(xié)議的數(shù)據(jù)讀取流程
1.主站發(fā)起讀取請(qǐng)求:采集器或上位機(jī)(主站)向指定電表地址發(fā)送Modbus RTU讀命令,包含從站地址、功能碼(通常03讀保持寄存器)、寄存器起始地址和讀取數(shù)量。
2.電表響應(yīng):被尋址的電表(從站)收到請(qǐng)求后,把對(duì)應(yīng)寄存器里的數(shù)據(jù)打包返回,包含從站地址、功能碼、字節(jié)數(shù)和數(shù)據(jù)內(nèi)容,末尾附CRC16校驗(yàn)碼。
3.主站解析:采集器按照電表廠家提供的寄存器地址表(俗稱"通信規(guī)約"或"Modbus地圖"),把返回的16進(jìn)制數(shù)據(jù)解析成電壓、電流、功率、電量等工程量。
四、國標(biāo)DL/T645與Modbus的區(qū)別
國內(nèi)電力行業(yè)還有一種專用協(xié)議DL/T645,是國家電網(wǎng)和南方電網(wǎng)用電量計(jì)量的行業(yè)標(biāo)準(zhǔn),廣泛用于居民電表和工業(yè)用電計(jì)量表。它也跑在RS485物理層上,但數(shù)據(jù)幀格式與Modbus完全不同,不能互相替換。選表時(shí)需要確認(rèn)采集系統(tǒng)支持的協(xié)議類型,不能默認(rèn)"RS485就等于Modbus"。

五、RS485接線注意事項(xiàng)
1.總線型拓?fù)洌篟S485必須手拉手串聯(lián),不能星型分叉布線,否則信號(hào)反射會(huì)導(dǎo)致通信不穩(wěn)定。
2.終端電阻:總線兩端各接一個(gè)120Ω終端電阻,消除信號(hào)反射;總線長度超過100米時(shí)必加,短距離可省略但建議保留。
3.地址不重復(fù):同一RS485總線上每臺(tái)電表的從站地址必須**(1~247),重復(fù)地址會(huì)導(dǎo)致兩臺(tái)表同時(shí)響應(yīng)、數(shù)據(jù)互相干擾。
4.屏蔽雙絞線:布線建議使用屏蔽雙絞線(STP),工廠強(qiáng)干擾環(huán)境尤其重要,普通雙絞線在強(qiáng)磁場環(huán)境下通信錯(cuò)誤率高。