單片機與組態(tài)王通信協議
通訊參數包括數據位,停止位,波特率、校驗方式。
本文引用地址:http://www.ex-cimer.com/article/201611/322101.htm數據位、停止位、波特率由單片機決定。組態(tài)王中的設定和單片機一致即可。校驗方式參照“數據傳輸格式”中相關部分。
二、
格式1、組態(tài)王發(fā)送地址請求格式:(此時檢驗位為1)
ENQ | Sta | EOT | CRC |
格式2、單片機應答地址格式:(此時檢驗位為0)
ACK | Sta | ETX | CRC |
格式3、組態(tài)王讀數據請求格式:(此時檢驗位為0)
ENQ | R | DataType | DataAddr | DataNum | EOT | CRC |
格式4、單片機應答讀數據格式(正確):(此時檢驗位為0)
ACK | DataLong | Data…. | ETX | CRC |
格式5、單片機應答讀數據格式(錯誤):(此時檢驗位為0)
NAK | ErrorCode | ETX | CRC |
格式6、組態(tài)王寫數據請求格式:(此時檢驗位為0)
ENQ | W | DataType | DataAddr | |||
Data…. | EOT | CRC | ||||
格式7、單片機應答寫數據格式(正確):(此時檢驗位為0)
ACK | ErrorCode | ETX | CRC |
三、時序:
讀數據:
組態(tài)王 | 單片機 |
第一步:格式1 | |
第二步:格式2 | |
第三步:格式3 | |
第四步:格式4或格式5 | |
第五步:如果第四步單片機執(zhí)行格式4,結束。否則,執(zhí)行格式1。 | |
第六步:格式2 | |
第七步:格式3 | |
第八步:格式4或格式5 |
寫數據:
組態(tài)王 | 單片機 |
第一步:格式1 | |
第二步:格式2 | |
第三步:格式6 | |
第四步:格式7 | |
第五步:如果第四步單片機執(zhí)行格式7的ErrorCode=0,結束。否則,執(zhí)行格式1。 | |
第六步:格式2 | |
第七步:格式6 | |
第八步:格式7 |
四、協議說明:
數據傳輸:所有數據均為16進制數
ENQ(頭) | H05 | 詢問 | 請求幀的開始代碼 |
ACK(頭) | H06 | 確認 | ACK應答幀的開始代碼 |
NAK(頭) | H15 | 否認 | NAK應答幀的開始代碼 |
EOT(尾) | H04 | 正文的結束 | 請求幀的結束ASCII代碼 |
ETX(尾) | H03 | 結束正文 | 應答幀的結束ASCII代碼 |
Sta:: 設備地址1字節(jié)
R:
W:
DataType;需要交換的數據類型,1字節(jié)。1,字節(jié);2,字,3,浮點型。
DataType的值 | 含義 |
1 | 字節(jié) |
2 | 字 |
3 | 浮點數 |
DataNum:要讀取的數據的數量,1字節(jié)。
DataAddr;為數據偏移地址2字節(jié),低字節(jié)在前,高字節(jié)在后
Data: 實際傳輸的數據,低字節(jié)在前,高字節(jié)在后
DataLong:
CRC: 為從第一個字節(jié) 至CRC前的所有字節(jié)的異或值,1字節(jié)
ErrorCode:
ErrorCode數值 | 含義 |
0 | 正確應答 |
1 | 數據類型錯誤 |
2 | 數據范圍超限 |
3 | 指令無法識別,應為R或W。 |
4 | 校驗錯誤 |
以上協議若有不妥之處,可協商改動。
評論