MODBUS-RTU RS485數據通信協(xié)議(通用型壓力、液位、溫度傳感器/變送器,供電24(12-30VDC))
一.概述:
本協(xié)議遵守MODBUS通信協(xié)議,采用了MODBUS協(xié)議中的子集中RTU方式.RS485半雙工工作方式。
二.串行數據格式:
串口設置:無(wú)校驗,8位數據,1位停止位。
舉例:9600,N,8,1 含義:9600bps,無(wú)校驗,8位數據位,1位停位。
本變送器支持的串口波特率為:
1200,2400,4800,9600,19200,38400,57600,115200
CRC校驗的多項式:0xA001.
數據通信過(guò)程中的數據全部是按照雙字節整形數據來(lái)處理,如果數據標識的是浮點(diǎn)數,寫(xiě)需要讀取小數點(diǎn)來(lái)確定數據的大小.
三.通信格式:
1.讀命令格式(03功能碼)舉例
A.發(fā)送讀命令格式:
地址 |
功能碼 |
數據起始(H) |
數據起始(L) |
數據個(gè)數(H) |
數據個(gè)數(L) |
CRC16 (L) |
CRC16 (H) |
0X01 |
0X03 |
0X00 |
0X00 |
0X00 |
0X01 |
0X84 |
0X0A |
B.返回讀數據格式:舉例
地址 |
功能碼 |
數據長(cháng)度 |
數據 (H) |
數據 (L) |
CRC16 (L) |
CRC16 (H) |
0X01 |
0X03 |
0X02 |
0X00 |
0X01 |
0X79 |
0X84 |
2.寫(xiě)命令格式(06功能碼)舉例
地址 |
功能碼 |
數據起始(H) |
數據起始(L) |
數據 (H) |
數據 (L) |
CRC16 (L) |
CRC16 (H) |
0X01 |
0X06 |
0X00 |
0X00 |
0X00 |
0X02 |
0X08 |
0X0B |
B.返回讀數據格式:舉例
地址 |
功能碼 |
數據起始(H) |
數據起始(L) |
數據 (H) |
數據 (L) |
CRC16 (L) |
CRC16 (H) |
0X01 |
0X06 |
0X00 |
0X00 |
0X00 |
0X02 |
0X08 |
0X0B |
3.異常應答返回
地址 |
功能碼 |
異常碼 |
CRC16 (L) |
CRC16 (H) |
0X01 |
0X80+功能碼 |
0x01(非法功能) 0x02( 非法數據地址) 0x03(非法數據 |
|
|
四.支持的命令及命令和數據意義:
MODBUS-RTU協(xié)議命令列表如下:
功能碼 |
數據起始地址 |
數據個(gè)數 |
數據字節 |
數據范圍 |
指令意義 |
0x03功能碼讀取數據 |
|||||
0x03 |
0x0000 |
1 |
2 |
1-255 |
讀取從機地址 |
0x03 |
0x0001 |
1 |
2 |
0-1200 1-2400 2-4800 3-9600 4-19200 5-38400 6-57600 7-115200 |
波特率讀取 |
0x03 |
0x0003 |
1 |
2 |
0-#### 1-###.# 2-##.## 3-#.### |
小數點(diǎn)分別代表0-3位小數點(diǎn) |
0x03 |
0x0002 |
1 |
2 |
0- Mpa 1- Kpa 2- Pa 3- Bar 4- Mbar 5- kg/cm2 6- psi 7- mh2o 8- mmh2o |
壓力單位 |
0x03 |
0x0004 |
1 |
2 |
-32768-32767 |
測量輸出值 |
0x03 |
0x0005 |
1 |
2 |
-32768-32767 |
變送器量程零點(diǎn) |
0x03 |
0x0006 |
1 |
2 |
-32768-32767 |
變送器量程滿(mǎn)點(diǎn) |
0x03 |
0x000c |
1 |
2 |
-32768-32767 |
零位偏移值,出廠(chǎng)一般為0 |
0x06功能碼寫(xiě)數據 |
|||||
0x06 |
0x0000 |
|
2 |
1-255 |
改寫(xiě)從機地址 |
0x06 |
0x0001 |
|
2 |
0-1200 1-2400 2-4800 3-9600 4-19200 5-38400 6-57600 7-115200 |
修改波特率 |
0x06 |
0x000c |
|
2 |
-32768-32767 |
零位偏移值.壓力輸出值=校準測量值+零位偏移值 |
保存和恢復工廠(chǎng) |
|||||
0x06 |
0x000F |
|
2 |
0- 保存到用戶(hù)區 |
|
0X06 |
0x0010 |
|
2 |
1-返回工廠(chǎng)參數 |
|
說(shuō)明:
1. 修改波特率時(shí)變送器會(huì )以主機發(fā)送的波特率回復修改數據,回復完以后變送器波特率會(huì )變?yōu)樾薷暮蟮哪繕酥?
2. 修改地址時(shí)也是以修改前的地址回復數據,回復完以后會(huì )自動(dòng)修改變送器地址.
3. 保存和回復工廠(chǎng)命令會(huì )原值返回,表示變送器已經(jīng)接受了主機的命令.
4. 恢復工廠(chǎng)數據時(shí)要注意,可能工廠(chǎng)保存的參數和用戶(hù)保存的不一致,所以其中地址,波特率和校準數據可能都不一致,所以恢復完工廠(chǎng)參數以后必須重新搜索變送器.
5. 用戶(hù)允許修改的數據只有3個(gè),分別是地址,地址,波特率,零位偏移值.
6. 一般用戶(hù)不允許修改變送器的校準數據,如需校準和更改,請聯(lián)系本公司索取變送器校準軟件.用戶(hù)自己發(fā)送修改校準數據命令會(huì )導致變送器輸出命令異常代碼。如需修改校準數據,請使用本公司的校準軟件。
7. 如果需要讀取的數據時(shí)浮點(diǎn)數標識的,比如6.000.但是本協(xié)議規定了數據都是以整形數據來(lái)通信的,所以讀取到的數據是6000,然后要根據小數點(diǎn)的位置來(lái)做運算,才能得到6.000,比如小數點(diǎn)是3,則就是說(shuō)6000/10(3),就是6000除以10的三次方,得到6.000這個(gè)數據.