一、 通信協(xié)議:
- 通訊協(xié)議兼容modbus RTU協(xié)議:
波特率為:9600bps,校驗位:偶校驗,數(shù)據(jù)位:8,停止位:1;默認地址:01H。
寄存器地址 | 數(shù)據(jù)值名稱 | 數(shù)據(jù)類型 | 取值范圍 | 讀寫類型 | 默認值 |
0002H | X軸角度值-低位 | 自定義 | 量程 | R | - |
0003H | X軸角度值-高位 | 自定義 | 量程 | R | - |
0010H | 設(shè)置/相對零點 | int16U | 0000H~ 00FFH | R/W | 0000H |
0011H | 本機地址 | int16U | 01H~ FFH | W | 01H |
R為只讀,W為只寫,R/W為可讀可寫。讀寄存器用03H、寫寄存器用06H。寄存器值低位在前。
- 設(shè)置命令(設(shè)置地址或/相對零點)的時序邏輯:
1)為了提高產(chǎn)品的可靠性和穩(wěn)定性,該設(shè)置命令必須連續(xù)按照Modbus時序發(fā)送兩次,并得到兩次正確回復(fù)后才能設(shè)置成功,并且產(chǎn)品會自動鎖定設(shè)置功能(產(chǎn)品重新上電才能解除鎖定)。其他情況均會設(shè)置不成功,并且產(chǎn)品會鎖定設(shè)置功能。
時序:上電后主機發(fā)送*次設(shè)置命令—>從機回復(fù)設(shè)置成功命令—>主機再次發(fā)送設(shè)置命令—>從機再次回復(fù)設(shè)置成功命令—>產(chǎn)品設(shè)置成功并鎖定設(shè)置功能
2)可以通過廣播命令(廣播地址00)批量設(shè)置產(chǎn)品(地址或/相對零點),但是產(chǎn)品無返回值,需要產(chǎn)品重啟后,逐個產(chǎn)品單獨驗證是否設(shè)置成功。
- 讀取角度數(shù)據(jù)命令:
設(shè)備地址 | 功能碼 | 讀取角度數(shù)據(jù)起始地址低字節(jié) | 讀取角度數(shù)據(jù)起始地址高字節(jié) | 讀取角度數(shù)據(jù)個數(shù)高字節(jié) | 讀取角度數(shù)據(jù)個數(shù)低字節(jié) | CRC校驗 |
1字節(jié) | 0×03 | 1字節(jié) | 1字節(jié) | 1字節(jié) | 1字節(jié) | 2字節(jié) |
響應(yīng):
設(shè)備地址 | 功能碼 | 返回角度數(shù)據(jù)字節(jié)個數(shù) | 讀取角度數(shù)據(jù)起始地址低字節(jié)1 | 讀取角度數(shù)據(jù)起始地址低字節(jié)2 | 讀取角度數(shù)據(jù)起始地址高字節(jié)1 | 讀取角度數(shù)據(jù)起始地址高字節(jié)2 | CRC校驗 |
1字節(jié) | 0×03 | 1字節(jié) | 1字節(jié) | 1字節(jié) | 1字節(jié) | 1字節(jié) | 2字節(jié) |
例如:
發(fā)送命令:01 03 00 02 00 02 65 CB
返回數(shù)據(jù):01 03 04 22 10 00 00 F1 8E
若量程為±60°,返回的角度為-18.7°(角度值=[((1 * 16 + 0) *256 + (2 * 16 + 2))/100 - 60 ]);
若量程為±45°,返回的角度為-3.7°(角度值=[((1 * 16 + 0) *256 + (2 * 16 + 2)) /100- 45)。
注:
1、超量程顯示對應(yīng)測量方向的大值或小值。(例如量程為±60°的,小于-60°,返回角度為-60°)。
2、可連續(xù)讀取0002H開始的多8個寄存器,未定義的寄存器返回值用00H填充。
- 設(shè)置傳感器地址命令:
設(shè)備地址 | 功能碼 | 本機地址寄存器地址高字節(jié) | 本機地址寄存器地址低字節(jié) | 本機地址(目標(biāo)值)高位 | 本機地址(目標(biāo)值)低位 | CRC校驗 |
1字節(jié) | 0×06 | 1字節(jié) | 1字節(jié) | 1字節(jié) | 1字節(jié) | 2字節(jié) |
響應(yīng):
設(shè)備地址 | 功能碼 | 本機地址寄存器地址高字節(jié) | 本機地址寄存器地址低字節(jié) | 本機地址(目標(biāo)值)高位 | 本機地址(目標(biāo)值)低位 | CRC校驗 |
1字節(jié) | 0×06 | 1字節(jié) | 1字節(jié) | 1字節(jié) | 1字節(jié) | 2字節(jié) |
例如:
發(fā)送命令:01 06 00 11 00 05 19 CC
返回數(shù)據(jù):01 06 00 11 00 05 19 CC
該命令將傳感器的地址設(shè)置為0×05。
注:
1、地址在連續(xù)應(yīng)答成功后2次后,立即后生效。
2、設(shè)置地址有效值范圍為01~FF。
- 設(shè)置傳感器相對(非零)或(00)零點命令:
設(shè)備地址 | 功能碼 | 設(shè)置/取消相對零點起始地址高字節(jié) | 設(shè)置/取消相對零點起始地址低字節(jié) | 設(shè)置/取消相對零點命令值高字節(jié) | 設(shè)置/取消相對零點命令值低字節(jié) | CRC校驗 |
1字節(jié) | 0×06 | 1字節(jié) | 1字節(jié) | 1字節(jié) | 1字節(jié) | 2字節(jié) |
響應(yīng):
設(shè)備地址 | 功能碼 | 設(shè)置/取消相對零點寄存器起始地址高字節(jié) | 設(shè)置/取消相對零點寄存器起始地址低字節(jié) | 設(shè)置/取消相對零點命令值高字節(jié) | 設(shè)置/取消相對零點命令值低字節(jié) | CRC校驗 |
1字節(jié) | 0×06 | 1字節(jié) | 1字節(jié) | 1字節(jié) | 1字節(jié) | 2字節(jié) |
例如,設(shè)置相對零點:
發(fā)送命令:01 06 00 10 00 FF C8 4F
返回數(shù)據(jù):01 06 00 10 00 FF C8 4F
注:
1、設(shè)置零點在連續(xù)應(yīng)答成功后2次后,立即后生效。
2、設(shè)置參數(shù):00為零度,非零為相對對零度。