基於485總線的modbus讀卡器, YW-630MA, YW-631MA,使用modbus rtu協議。RS485是一種半雙工總線,我們必須瞭解modbus協議,這樣在項目中更容易分析問題和解決問題。
MODBUS協(xié)議支持多種功能碼(mǎ),不同的功能碼(mǎ)有不同的功能
| 功能碼 | 功能 |
|---|---|
| 0x01 | 讀線圈狀态 |
| 0x02 | 讀離散輸入狀态 |
| 0x03 | 讀保持寄存器 |
| 0x04 | 讀輸入寄存器 |
| 0x05 | 寫單個線圈 |
| 0x06 | 寫單個保持寄存器 |
| 0x0F | 寫多個線圈 |
| 0x10 | 寫多個保持寄存器 |
我們(men)主要使用的功能碼(mǎ)是0x03,0x06和0x10
一、功能碼0x03,讀保持寄存器,讀外部寄存器
YW-630MA和YW-631MA用於(yú)讀(dú)的功碼就是0x03,PLC發送的數據幀:
| 從站地址 | 功能碼 | 起始地址(高位) | 起始地址(低位) | 數量(高位) | 數量(低位) | 校驗碼(低位) | 校驗碼(高位) |
|---|---|---|---|---|---|---|---|
| 0x01 | 0x03 | 0x00 | 0x04 | 0x00 | 0x04 | CRCL | CRCH |
從站地址:Modbus讀卡器的站地址,YW-630MA和YW-631MA默認地址都是1.
功能碼: 0x03,讀寄存器
起始地址: 2個字節,如40004,實際地址是4,高位是0,低位是4.
寄存器數量: 需要讀取的寄存器的數量,讀卡号一般2個字節,有部分需要讀4個字節,這裏4個字節爲例,所以是4,高位是0,地位是4.
CRC: CRC校驗是标準算法,PLC裏自動計算,所以不用考慮。
YW-630MA和YW-631MA收到PLC發(fā)送的03指令後,回複(fù)的數據幀:
| 從站地址 | 功能碼 | 字節數 | 數據1(高位) | 數據1(低位) | 數據n(高低位) | 校驗碼(低位) | 校驗碼(高位) |
|---|---|---|---|---|---|---|---|
| 0x01 | 0x03 | 0x08 | 0x93 | 0xAE | ... | CRCL | CRCH |
從站地址:Modbus讀卡器的站地址,YW-630MA和YW-631MA默認地址都是1.
功能碼: 0x03,讀寄存器
字節數: 8個字節,讀瞭4個寄存器,共8個字節,這裏注意是字節的數量,不是寄存器的數量.
數據: 每個寄存器先高位,後低位,依次輸出,4個寄存器共8個字節。
CRC: CRC校驗是标準算法,自動計算,所以不用考慮。
二、功能碼0x06,寫單個寄存器
YW-630MA和YW-631MA用於(yú)寫的功碼就是0x06和0x10,先說0x06,PLC發(fā)送的數據幀:
| 從站地址 | 功能碼 | 寄存器地址(高位) | 寄存器地址(低位) | 寄存器值(高位) | 寄存器值(低位) | 校驗碼(低位) | 校驗碼(高位) |
|---|---|---|---|---|---|---|---|
| 0x01 | 0x06 | 0x00 | 0x04 | 0x00 | 0x00 | CRCL | CRCH |
從站地址:Modbus讀卡器的站地址,YW-630MA和YW-631MA默認地址都是1.
功能碼: 0x06,寫單個寄存器
寄存器地址: 2個字節,如40004,實際地址是4,高位是0,低位是4.
寄存器值: 2個字節,一個寄存器2個字節,高位在前,低位在後.
CRC: CRC校驗是标準算法,PLC裏自動計算,所以不用考慮。
YW-630MA和YW-631MA收到PLC發(fā)送的06指令後,回複的數據幀與收到的數據幀完全相同。這裏就不解析瞭(le)
三、功能碼0x10,寫多個寄存器
YW-630MA和YW-631MA支持寫多個(gè)寄存器,功能碼0x10,PLC發(fā)送的數據幀:
| 從站地址 | 功能碼 | 寄存器開始地址(高位) | 寄存器開始地址(低位) | 寄存器個數(高位) | 寄存器個數(低位) | 要寫的字節數 | 值(要寫的n個字節) | 校驗碼(低位) | 校驗碼(高位) |
|---|---|---|---|---|---|---|---|---|---|
| 0x01 | 0x10 | 0x00 | 0x04 | 0x00 | 0x04 | 0x08 | 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 | CRCL | CRCH |
從站地址:Modbus讀卡器的站地址,YW-630MA和YW-631MA默認地址都是1.
功能碼: 0x10,寫多個寄存器
寄存器地址: 2個字節,如40004,實際地址是4,高位是0,低位是4.
寄存器數量: 4個寄存器,從40004到40007,高位在前00,低位在後04.
字節數: 8個字節,4個寄存器共8個字節
值: 對應8個字節的值,對卡号清零,就寫8個0
CRC: CRC校驗是标準算法,PLC裏自動計算,所以不用考慮。
YW-630MA和YW-631MA收到PLC發(fā)送的指0x10指令後,回複(fù)的數據幀:
| 從站地址 | 功能碼 | 寄存器開始地址(高位) | 寄存器開始地址(低位) | 寄存器個數(高位) | 寄存器個數(低位) | 校驗碼(低位) | 校驗碼(高位) |
|---|---|---|---|---|---|---|---|
| 0x01 | 0x10 | 0x00 | 0x04 | 0x00 | 0x04 | CRCL | CRCH |
從站地址:Modbus讀卡器的站地址,YW-630MA和YW-631MA默認地址都是1.
功能碼: 0x10,寫多個寄存器
寄存器地址: 2個字節,如40004,實際地址是4,高位是0,低位是4.
寄存器數量: 4個寄存器,從40004到40007,高位在前00,低位在後04.
CRC: CRC校驗是标準算法,PLC裏自動計算,所以不用考慮。
上一篇:如何修改ModbusTCP讀卡器的IP地址
下一篇:Modbus TCP協議分析
|
Modbus讀卡器,PLC讀卡器,Modbus RTU, Modbus TCP,modbus接口IC卡讀卡器,Modbus接口RFID讀卡器 微信掃一掃聯系我們 |
1 |
RFID讀寫器産品手冊下載 |
2 |
讀寫器開發SDK下載 |
3 |
WEB讀卡器開發指南 |
4 |
Windows讀卡器開發指南 |
5 |
Android讀卡器開發指南 |
6 |
Wince讀卡器開發指南 |
7 |
PLC讀卡器開發指南 |
8 |
Linux讀卡器開發指南 |
9 |
單片機讀卡器開發指南 |
10 |
PCSC讀卡器開發指南 |