RTU通信协议
RTU通信協議
一、通訊模式
1.通訊接口電氣標準: 通訊接口符合RS-232 RS–485國際標準。
2. 通訊協議: 采用MODBUS通訊協議RTU模式。
3.通訊格式約定:
(1)通信速率: 300 600 1200 2400 4800 9600可選
(2)RTU數據格式。
(3)字符格式為11位:
一個起始位 八個數據位 一個奇偶校驗位(無校驗則無)
一個停止位(有校驗時),兩個停止位(無校驗時)。
每個字符或字節以如下方式發送(從左到右):
最低有效位…最高有效位;
4.RTU幀:
初始結構≥ 4字節時間 地址碼 = 1字節 功能碼 = 1字節
數據區 = n字節 錯誤校驗= 16位CRC 碼 結束結構≥ 4字節時間
地址碼:地址碼為通訊傳送的第一個字節。在一個通訊網絡中每個從機對應唯一的地址碼,
可設置的范圍為0—255(十進制),按照MODBUS通信規約,可能的從設備地址
范圍為1—247(十進制)。主機發送的地址碼表明將發送到的從機地址,從機發送
的地址碼表明回送的從機地址。
功能瑪:功能碼為通訊傳送的第二個字節。MODBUS通訊規約定義的功能號為1—127,本
表只利用了其中的一部分功能碼。主機發送功能碼是告訴從機器應該執行什么操作,
正常情況下,從機將執行該操作并作為響應回送該功能碼,如果回送的功能碼最高
位為1,則表明從機沒有響應操作或發送出錯誤。
數據區:數據區的組織是根據不同的功能碼而不同。數據區可以是實際的數值,也可以是儀
表寄存器的地址或者狀態設置。
錯誤校驗:CRC校驗。將整個RTU幀看作是一個連續的二進制數據串,校驗時只涉及數據位,
舍去起始位,停止位和任選的奇偶校驗位。
產生CRC碼的步驟如下:
1. 預置一個16位的寄存器為全1(即十六進制FFFFH),稱此寄存器為CRC寄存器;
2. 把第一個8位數據與CRC寄存器的低8位相異或,結果放回CRC寄存器;
3. 把16位CRC寄存器右移一位,用0添補最高位,檢測移出位:
4. 如果移出位為0,則重復第3步驟(再次移出);如果移出位為1,則CRC寄存器
與多項式A001H相異或,結果放回CRC寄存器;
5. 重復第3、4步驟,直至移出8位;
6. 將下一個8位數據與CRC寄存器低8位相異或,結果放回CRC寄存器,重復第2、3、4、5步驟;
7. 最后得到的CRC寄存器內容即為產生的CRC校驗碼。
二、功能說明
1.讀取單個或多個儀表寄存器內容(功能碼為03):
此功能允許用戶從儀表中讀取測量值、記錄資料及系統所設定的參數。
發送格式 儀表地址 功能碼 啟始地址高位 啟始地址低位 數據個數高位 數據個數低位 CRC校驗低位 CRC校驗高位
舉例 01H 03H 00H 02H 00H 01H CRC CRC
RP_MJ_WRITE Length: 0008, Data: 04 03 00 60 00 02 C4 40
IRP_MJ_WRITE Length: 0008, Data: 04 03 00 64 00 02 85 81
儀表回傳的數據中包含了儀表地址、功能碼、數據長度、和CRC校驗碼。
回送格式 儀表地址 功能碼 數據字節長度 數據高位 數據低位 CRC校驗低位 CRC校驗高位
舉例 01H 03H 02H 00H 60H CRC CRC
2.寫單個數據到儀表某一寄存器(功能碼為06):
此功能允許用戶修改儀表中任何許可的單一寄存器內容;但其變更的資料必須是在被接收的范圍內。
發送格式 儀表地址 功能碼 寄存器地址高位 寄存器地址低位 寫入數據高位 寫入數據低位 CRC校驗低位 CRC校驗高位
舉例 01H 06H 00H 10H 00H 01H CRC CRC
儀表回送信息為:
回送格式 儀表地址 功能碼 返回正確代碼 CRC校驗低位 CRC校驗高位
舉例 01H 06H 00H CRC CRC
3.寫連續數據到儀表寄存器(功能碼為10H):
此功能允許用戶變更任何許可的連續寄存器內容;但其變更的資料必須是在被接收的范圍內。
發送格式 儀表地址 功能碼 起始地址高位 起始地址低位 寄存個數高位 寄存個數低位 數據字節個數 數據1高位 數據1低位 數據2高位 數據2低位 CRC校驗低位 CRC校驗高位
舉例 01H 10H 00H 02H 00H 02H 04H 00H 64H 00H 00H CRC CRC
儀表回送信息為:
回送格式 儀表地址 功能碼 返回正確代碼 CRC校驗低位 CRC校驗高位
舉例 01H 10H 00H CRC CRC
4.錯誤產生時的回應:
回送
格式 儀表
地址 功能碼 出錯
代碼 CRC校驗低位 CRC校驗高位
舉例 01H 83H 01H CRC CRC
5.代碼響應:
00H = 正確響應主機操作,同時回送原功能代碼;
01H = 非法的功能碼,同時功能碼最高位置1;
02H = 非法的寄存器,同時功能碼最高位置1;
03H = 非法的數據,同時功能碼最高位置1;
04H = CRC校驗錯誤,同時功能碼最高位置1。
05H = 奇偶校驗錯誤,同時功能碼最高位置1。
三.數值表示方法:
儀表回送的數據為雙字節整數表示測量值或組態參數時,該雙字節整數所表示的范圍為-23767
–+32767(正數以原碼表示,負數以補碼表示)。當所讀取的數據本身含有小數位時,應在讀取數據
之前或之后,應對照儀表的寄存器參數表,讀出小數位參數x,工程數據=該雙字節整數/10x ; 與小數
位無關的數據,則x=0;而小數位固定數據,則x=常數值。向儀表寫入數據時,數據的組成方式與讀數
據時的解碼方式逆向。
例:讀取的測量值數據=03E8H(雙字節十六進制)=1000(十進制)
此時讀取的儀表小數位參數=0001H(雙字節十六進制)=1(十進制),即x=1
則測量值的工程量=1000/101=100.0 其他數據同以上計算方法
四、通訊站址和方式參數說明
儀表附加通訊功能時,增加兩個參數:通訊地址參數為Cd,方式參數為SCT(WT700系列為bt)。
SCT.0 = 5 、4、3、2、1、0時,波特率為9600、4800、2400、1200、600、300;
SCT.1 = 0、1、2時,為無校驗、奇校驗、偶校驗;
SCT.2 = 0、1時,為2位停止位、1位停止位。
注:SCT.0為顯示值最右側數值。 SCT.2、 SCT.1為0時對應顯示位不亮。
對應儀表的參數和測量值地址見“寄存器地址說明”
寄存器地址說明
No. 寄存器地址 寄存器內容 狀態 備 注
1 0000H 1號報警器限值 讀/寫 雙字節整數(可設置范圍:十進制-999—9999),與小數位相關
2 0001H 2號報警器限值 讀/寫 雙字節整數(可設置范圍:十進制-999—9999),與小數位相關
3 0002H 設定值 讀/寫 雙字節整數(可設置范圍:十進制-999—9999),與小數位相關
4 0003H 指示燈類型 讀/寫 雙字節整數(可設置范圍:十進制 1—3),與小數位無關
5 0004H 保留
6 0005H 1號報警器類型 讀/寫 雙字節整數(可設置范圍:十進制 00—14),與小數位無關
7 0006H 1號報警器回差 讀/寫 雙字節整數(可設置范圍:十進制-999—9999),與小數位相關
8 0007H 2號報警器類型 讀/寫 雙字節整數(可設置范圍:十進制 00—14),與小數位無關
9 0008H 2號報警器回差 讀/寫 雙字節整數(可設置范圍:十進制-999—9999),與小數位相關
10 0009H 小數位 讀/寫 雙字節整數(可設置范圍:十進制 0—3),與小數位無關
11 000AH 顯示最大值 讀/寫 雙字節整數(可設置范圍:十進制-999—9999),與小數位相關
12 000BH 顯示最小值 讀/寫 雙字節整數(可設置范圍:十進制-999—9999),與小數位相關
13 000CH 輸入最大值 讀/寫 雙字節整數(可設置范圍:十進制 0—100.0)固定小數位為1
14 000DH 輸入最小值 讀/寫 雙字節整數(可設置范圍:十進制 0—100.0)固定小數位為1
15 000EH 儀表類型 讀/寫 雙字節整數(可設置范圍:十進制 001—016),與小數位無關
16 000FH 輸出類型 讀/寫 雙字節整數(可設置范圍:十進制 0— 2),與小數位無關
17 0010H 本機地址 只讀 雙字節整數(可設置范圍:十進制 0—255)與小數位無關
18 0011H 通訊設置 只讀 雙字節整數(可設置范圍:十進制 000—025),與小數位無關
19 0060H 儀表測量值 只讀 雙字節整數顯示值+雙字節整數小數位
提示說明:
1. 每次數據讀/寫的最大長度為16字節,即八個寄存器的數據內容(一個寄存器地址對應兩個字節數據);當讀/寫的數據長度大于16字節時,將返回錯誤代碼。
2. 數據長度必須和所需讀/寫的寄存器數量相對應,否則將返回錯誤代碼。
3. 對于只讀寄存器不能進行寫操作,否則將返回錯誤代碼。
4. 在對接收的數據處理過程中,如果奇偶校驗與CRC校驗同時發現錯誤,則優先返回奇偶校驗錯誤代碼。
5. 儀表處于參數設置狀態時,將暫不響應主機發出的命令,只有處于正常測量狀態下時,才正確響應主機。
6. 測量值為故障狀態時讀出的數據為無效數據4E20H(十進制20000,表示輸入信號過大),D8F0H(十進制-10000,表示輸入信號過小)。
總結
- 上一篇: 杜比专为旧版本Android,杜比音效a
- 下一篇: nsis访问php,Inetc是NSIS