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