RS485通訊MODBUS RTU協(xié)議數據幀的長度
硬件連接上:所有A接到一起,所有B接到一起AB之間要加匹配電阻100歐到1K之間。485通訊配置時:先要使能發(fā)送TX=1,再改為接收,當TX=0時,默認接收模式。
RS485通訊協(xié)議規(guī)定,在發(fā)送每幀數據之間要超過3.5個字節(jié)的時間長度,否則認為是一幀數據。(3.5個字節(jié)的時間長度這跟你選擇的串行通信波特率有關(Modbus是采用串行通信的),在每個信號波形包含一個二進制位的情況下,波特率是等于比特率的,即1baud=1bit/s。
這樣你就明白了吧:1個字符在RTU模式下是以8位二進制形式傳輸的,故3.5個字符時間就是3.5*8個bit傳輸的時間。假設你選擇的波特率為9600baud(又滿足每個信號波形包含一個二進制位),即9600bit/s,那么1bit所需的傳輸時間就是1/9600秒,這樣3.5個字符時間=3.5*8*1/9600秒。)
RTU消息幀:起始位 設備地址 功能代碼 數據 CRC校驗 結束符
地址域:主設備通過將要聯(lián)絡的從設備的地址放入消息中的地址域來選通從設備。當從設備發(fā)送回應消息時,它把自己的地址放入回應的地址域中,以便主設備知道是哪一個設備作出回應。
功能域:當消息從主設備發(fā)往從設備時,功能代碼域將告之從設備需要執(zhí)行哪些行為。當從設備回應時,它使用功能代碼域來指示是正常回應(無誤)還是有某種錯誤發(fā)生(稱作異議回應)。對正常回應,從設備僅回應相應的功能代碼。對異議回應,從設備返回一等同于正常代碼的代碼,但Z重要的位置為邏輯1。
例如:一從主設備發(fā)往從設備的消息要求讀一組保持寄存器,將產生如下功能代碼:
0 0 0 0 0 0 1 1 (十六進制03H)
對正;貞,從設備僅回應同樣的功能代碼。對異議回應,它返回:
1 0 0 0 0 0 1 1 (十六進制83H)
除功能代碼因異議錯誤作了修改外,從設備將一獨特的代碼放到回應消息的數據域中,這能告訴主設備發(fā)生了什么錯誤。
主設備應用程序得到異議的回應后,典型的處理過程是重發(fā)消息,或者診斷發(fā)給從設備的消息并報告給操作員。
數據域:通過下面的例子來看
以RTU方式讀取整數據的例子
主機請求
地址 功能碼 第一個寄存器的高位地址 第一個寄存器的低位地址 寄存器的數量的高位 寄存器的數量的底位 錯誤校驗
01 03 00 38 00 01 XX
從機應答
地址 功能碼 字節(jié)數 數據高字節(jié) 數據低字節(jié) 錯誤校驗
01 03 2 41 24 XX
CRC校驗:CRC域是兩個字節(jié),包含一16位的二進制值。它由傳輸設備計算后加入到消息中。接收設備重新計算收到消息的CRC,并與接收到的CRC域中的值比較,如果兩值不同,則有誤。
GPRS水位站遙測設備 4G水文監(jiān)測系統(tǒng)
GPRS油井監(jiān)控終端 遠程油井監(jiān)控系統(tǒng)
RS232,RS485,RS422,RJ45之間區(qū)別
Gartner 預測全球芯片供應短缺將持續(xù)到明年二季度