電子秤ModBus 協議介紹
電子秤ModBus 協議介紹
采用ASCII碼模式,以字符的方式發送數據,校驗方式采用LRC校驗。
LRC校驗碼運算:報頭(:)不參與運算,LRC在數據之后,在\CR\LF之前。參加運算的是報頭之后,LRC之前的所有數據。
每字節(BYTE)為8位(BIT),無奇偶校驗,1位停止位。即:8n1。
電子秤ModBus 協議介紹 數據格式:
說明 | 報頭 | 站號 | 功能碼 | 首址 | 數據量 | 數據 | 校驗碼 | 報尾 |
指令 | : | xx | xx | xxxx | xxxx | xxxx | LRC | \CR\ LF |
回傳 | : | xx | xx |
| xx | xxxx | LRC | \CR\ LF |
報頭、報尾:所有指令均以冒號(:)開始,以回車符、換行符結束。
站號:2個ASCII碼。范圍:01-90 (16進制:0x01-0x5A)。
功能碼:2個ASCII碼
04:讀稱量狀態(顯示值、皮重等)
05:置零操作
06:皮重操作
07:通信測試
首址:4個ASCII碼。讀寫數據的位置。
數據量:4個ASCII碼。讀寫數據的數量。
數據:讀寫的數據
校驗碼:2個ASCII碼。采用LRC校驗。
舉例說明:站號---78 (0x4E)
例1:讀取重量數據
| 報頭 | 站號 | 功能碼 | 首址 | 數據量 | 數據 | 校驗碼 | 報尾 |
指令 | : | 4E | 04 | 0000 | 0007 |
| A7 | \CR\ LF |
回傳 | : | 4E | 04 |
| 07 | 120003E70000CA | E1 | \CR\ LF |
說明 | 數據共7字節,其中12--狀態、0003E7--顯示值、0000CA--皮重值。 狀態:0001 0010 高四位從高到低分別為(0/1):正/負、非零/零、穩定/動態、毛重/凈重; 低四位中,高位恒為0。低三位表示小數點位置,數據范圍:000-011,000--無小數、001--1位小數、010--2位小數、011--3位小數。 例中數據表示:當前重量為正、稱量穩定,顯示為凈重,凈重=9.99,皮重=2.02 |
例2:置零操作
| 報頭 | 站號 | 功能碼 | 首址 | 數據量 | 數據 | 校驗碼 | 報尾 |
指令 | : | 4E | 05 |
|
|
| AD | \CR\ LF |
回傳 | : | 4E | 05 |
|
|
| AD | \CR\ LF |
說明 | 置零成功 | |||||||
回傳 | : | 4E | 85 |
|
| 07 | 26 | \CR\ LF |
說明 | 置零失敗,重量>2%FS。錯誤碼說明見后 |
例3:去皮操作
| 報頭 | 站號 | 功能碼 | 首址 | 數據量 | 數據 | 校驗碼 | 報尾 |
指令 | : | 4E | 06 | 0004 | 0003 | 000064 | 41 | \CR\ LF |
回傳 | : | 4E | 06 |
| 03 | 000064 | 45 | \CR\ LF |
說明 | 設置皮重=100,顯示凈重 | |||||||
指令 | : | 4E | 06 | 0004 | 0000 |
| A8 | \CR\ LF |
回傳 | : | 4E | 06 |
| 03 | 0000C9 | E0 | \CR\ LF |
說明 | 操作前為毛重狀態,操作后,把毛量作為皮重,皮重=201,顯示凈重為0 | |||||||
指令 | : | 4E | 06 | 0004 | 0000 |
| A8 | \CR\ LF |
回傳 | : | 4E | 06 |
| 03 | 000000 | A9 | \CR\ LF |
說明 | 操作前為凈重狀態,操作后,恢復毛量顯示,皮重=0 |
例4:通信測試
| 報頭 | 站號 | 功能碼 | 首址 | 數據量 | 數據 | 校驗碼 | 報尾 |
指令 | : | 4E | 07 |
|
|
| AB | \CR\ LF |
回傳 | : | 4E |
|
|
|
| B2 | \CR\ LF |
說明 | 通信正常,返回站號 |