MBAP報頭 | PDU報文體 | |||||
---|---|---|---|---|---|---|
事務標示2字節 | 協議標示2字節 | 長度(總長度-6) | 從站地址 | 功能碼 | 起始地址2字節 | 讀取數量2字節 |
0x00 0x01 | 0x00 0x00 | 0x06 | 0xFF | 0x03 | 0x00 0x04 | 0x00 0x02 |
基于以太網總線的modbus讀卡器, YW-630NA, YW-641NA,使用modbus tcp協議。Modbus TCP是一種基于TCP/IP的一種協議,報文結構包括MBAP報文頭和PDU報文體,報頭用于區分不同的報文,功能碼決定報文的功能。
MODBUS TCP協議支持多種功能碼,不同的功能碼有不同的功能
功能碼 | 功能 |
---|---|
0x01 | 讀線圈狀態 |
0x02 | 讀離散輸入狀態 |
0x03 | 讀保持寄存器 |
0x04 | 讀輸入寄存器 |
0x05 | 寫單個線圈 |
0x06 | 寫單個保持寄存器 |
0x0F | 寫多個線圈 |
0x10 | 寫多個保持寄存器 |
我們主要使用的功能碼是0x03,0x06和0x10
一、功能碼0x03,讀保持寄存器,讀外部寄存器
YW-630NA和YW-641NA用于讀的功碼就是0x03,PLC發送的數據幀:
MBAP報頭 | PDU報文體 | |||||
---|---|---|---|---|---|---|
事務標示2字節 | 協議標示2字節 | 長度(總長度-6) | 從站地址 | 功能碼 | 起始地址2字節 | 讀取數量2字節 |
0x00 0x01 | 0x00 0x00 | 0x06 | 0xFF | 0x03 | 0x00 0x04 | 0x00 0x02 |
事務標示2字節:PLC用于標示那一條報文,從機應答會保持一致。
協議標示2字節:目前都是00 00
長度:從站地址到報文結束的字節長度,相當于報文總長度-6.
從站地址:Modbus讀卡器的站地址,PLC默認都是0xFF
功能碼:
0x03,讀寄存器
起始地址:
2個字節,如40004,實際地址是4,高位是0,低位是4.
寄存器數量:
需要讀取的寄存器的數量,讀卡號一般2個字節,有部分需要讀4個字節,這里4個字節為例,所以是4,高位是0,地位是4.
YW-630NA和YW-641NA收到PLC發送的03指令后,回復的數據幀:
MBAP報頭 | PDU報文體 | |||||
---|---|---|---|---|---|---|
事務標示2字節 | 協議標示2字節 | 長度(總長度-6) | 從站地址 | 功能碼 | 數據字節數 | 數據 |
0x00 0x01 | 0x00 0x00 | 0x06 | 0xFF | 0x03 | 0x04 | 0xA5 0x34 0x88 0x01 |
事務標示2字節:從機應答會與主機發出來的標示保持一致。
協議標示2字節:目前都是00 00
長度:從站地址到報文結束的字節長度,相當于報文總長度-6.
從站地址:Modbus讀卡器的站地址
功能碼:
0x03,讀寄存器
數據字節數:
1個字節,用于回復讀取的字節數,一般是寄存器數量的2倍
數據值:
所有的數據
二、功能碼0x06,寫單個寄存器
YW-630NA和YW-641NA用于寫的功碼就是0x06和0x10,先說0x06,PLC發送的數據幀:
MBAP報頭 | PDU報文體 | |||||
---|---|---|---|---|---|---|
事務標示2字節 | 協議標示2字節 | 長度(總長度-6) | 從站地址 | 功能碼 | 寄存器地址2字節 | 寄存器值2字節 |
0x00 0x01 | 0x00 0x00 | 0x06 | 0xFF | 0x06 | 0x00 0x04 | 0x00 0x02 |
事務標示2字節:PLC用于標示那一條報文,從機應答會保持一致。
協議標示2字節:目前都是00 00
長度:從站地址到報文結束的字節長度,相當于報文總長度-6.
從站地址:Modbus讀卡器的站地址,PLC默認都是0xFF
功能碼:
0x06,寫單個寄存器
寄存器地址:
2個字節,如40004,實際地址是4,高位是0,低位是4.
寄存器值:
要寫的寄存器的值,2個字節,高位前,地位在后.
YW-630NA和YW-641NA收到PLC發送的06指令后,回復的數據幀與收到的數據幀完全相同。這里就不解析了
三、功能碼0x10,寫多個寄存器
YW-630NA和YW-641NA支持寫多個寄存器,功能碼0x10,PLC發送的數據幀:
MBAP報頭 | PDU報文體 | |||||||
---|---|---|---|---|---|---|---|---|
事務標示2字節 | 協議標示2字節 | 長度(總長度-6) | 從站地址 | 功能碼 | 寄存器起始地址2字節 | 寄存器個數2字節 | 寄存器數據字節數1字節 | 寄存器數據n字節 |
0x00 0x01 | 0x00 0x00 | 0x10 | 0xFF | 0x06 | 0x00 0x04 | 0x00 0x04 | 0x08 | 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 |
事務標示2字節:PLC用于標示那一條報文,從機應答會保持一致。
協議標示2字節:目前都是00 00
長度:從站地址到報文結束的字節長度,相當于報文總長度-6.
從站地址:Modbus讀卡器的站地址,PLC默認都是0xFF
功能碼:
0x10,寫多個寄存器
寄存器地址:
2個字節,如40004,實際地址是4,高位是0,低位是4.
寄存器數量:
4個寄存器,從40004到40007,高位在前00,低位在后04.
字節數:
8個字節,4個寄存器共8個字節
值:
對應8個字節的值,對卡號清零,就寫8個0
YW-630NA和YW-641NA收到PLC發送的指0x10指令后,回復的數據幀:
MBAP報頭 | PDU報文體 | |||||
---|---|---|---|---|---|---|
事務標示2字節 | 協議標示2字節 | 長度(總長度-6) | 從站地址 | 功能碼 | 寄存器地址2字節 | 寄存器值2字節 |
0x00 0x01 | 0x00 0x00 | 0x06 | 0xFF | 0x10 | 0x00 0x04 | 0x00 0x04 |
事務標示2字節:PLC用于標示那一條報文,從機應答會保持一致。
協議標示2字節:目前都是00 00
長度:從站地址到報文結束的字節長度,相當于報文總長度-6.
從站地址:Modbus讀卡器的站地址,PLC默認都是0xFF
功能碼:
0x10,寫多個寄存器
寄存器地址:
2個字節,如40004,實際地址是4,高位是0,低位是4.
寄存器數量:
寄存器數量,2個字節,高位前,地位在后.
上一篇:Modbus RTU協議分析
下一篇:Modbus讀卡器如何讀取IC卡卡號
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讀卡器開發指南 |