2. 調(diào)用 Modbus RTU 主站讀寫子程序MBUS_MSG,發(fā)送 個Modbus 請求;
圖 3. 調(diào)用Modbus RTU 主站讀寫子程序
各參數(shù)意義如下:
a. | EN | 使能: | 同 時刻只能有 個讀寫功能(即 MBUS_MSG)使能 |
---|---|---|---|
注意:建議每 個讀寫功能(即 MBUS_MSG)都用上 個 MBUS_MSG 指令的 Done 完成位來激活,以保證所有讀寫指令循環(huán)進行(見例程)。 | |||
b. | First | 讀寫請求位: | 每 個新的讀寫請求必須使用脈沖觸發(fā) |
c. | Slave | 從站地址: | 可選擇的范圍 1 - 247 |
d. | RW | 從站地址: | 0 = 讀, 1 = 寫 |
注意: | |||
1. 開關(guān)量輸出和保持寄存器支持讀和寫功能 | |||
2. 開關(guān)量輸入和模擬量輸入只支持讀功能 | |||
e. | Addr | 讀寫從站的數(shù)據(jù)地址: | |
選擇讀寫的數(shù)據(jù)類型 | |||
00001 至 0xxx - 開關(guān)量輸出 | |||
10001 至 1xxxx - 開關(guān)量輸入 | |||
30001 至 3xxxx - 模擬量輸入 | |||
40001 至 4xxxx - 保持寄存器 | |||
f. | Count | 數(shù)據(jù)個數(shù) | 通訊的數(shù)據(jù)個數(shù)(位或字的個數(shù)) |
注意: Modbus主站可讀/寫的 大數(shù)據(jù)量為120個字(是指每 個 MBUS_MSG 指令) | |||
g. | DataPtr | 數(shù)據(jù)指針: | 1. 如果是讀指令,讀回的數(shù)據(jù)放到這個數(shù)據(jù)區(qū)中 |
2. 如果是寫指令,要寫出的數(shù)據(jù)放到這個數(shù)據(jù)區(qū)中 | |||
h. | Done | 完成位 | 讀寫功能完成位 |
i. | Error | 錯誤代碼: | 只有在 Done 位為1時,錯誤代碼才有效 |
0 = 無錯誤 | |||
1 = 響應(yīng)校驗錯誤 | |||
2 = 未用 | |||
3 = 接收超時(從站無響應(yīng)) | |||
4 = 請求參數(shù)錯誤(slave address, Modbus address, count, RW) | |||
5 = Modbus/自由口未使能 | |||
6 = Modbus正在忙于其它請求 | |||
7 = 響應(yīng)錯誤(響應(yīng)不是請求的操作) | |||
8 = 響應(yīng)CRC校驗和錯誤 | |||
- | |||
101 = 從站不支持請求的功能 | |||
102 = 從站不支持?jǐn)?shù)據(jù)地址 | |||
103 = 從站不支持此種數(shù)據(jù)類型 | |||
104 = 從站設(shè)備故障 | |||
105 = 從站接受了信息,但是響應(yīng)被延遲 | |||
106 = 從站忙,拒 了該信息 | |||
107 = 從站拒 了信息 | |||
108 = 從站存儲器奇偶錯誤 |
2. 調(diào)用 Modbus RTU 主站讀寫子程序MBUS_MSG,發(fā)送 個Modbus 請求;
圖 3. 調(diào)用Modbus RTU 主站讀寫子程序
各參數(shù)意義如下:
a. | EN | 使能: | 同 時刻只能有 個讀寫功能(即 MBUS_MSG)使能 |
---|---|---|---|
注意:建議每 個讀寫功能(即 MBUS_MSG)都用上 個 MBUS_MSG 指令的 Done 完成位來激活,以保證所有讀寫指令循環(huán)進行(見例程)。 | |||
b. | First | 讀寫請求位: | 每 個新的讀寫請求必須使用脈沖觸發(fā) |
c. | Slave | 從站地址: | 可選擇的范圍 1 - 247 |
d. | RW | 從站地址: | 0 = 讀, 1 = 寫 |
注意: | |||
1. 開關(guān)量輸出和保持寄存器支持讀和寫功能 | |||
2. 開關(guān)量輸入和模擬量輸入只支持讀功能 | |||
e. | Addr | 讀寫從站的數(shù)據(jù)地址: | |
選擇讀寫的數(shù)據(jù)類型 | |||
00001 至 0xxx - 開關(guān)量輸出 | |||
10001 至 1xxxx - 開關(guān)量輸入 | |||
30001 至 3xxxx - 模擬量輸入 | |||
40001 至 4xxxx - 保持寄存器 | |||
f. | Count | 數(shù)據(jù)個數(shù) | 通訊的數(shù)據(jù)個數(shù)(位或字的個數(shù)) |
注意: Modbus主站可讀/寫的 大數(shù)據(jù)量為120個字(是指每 個 MBUS_MSG 指令) | |||
g. | DataPtr | 數(shù)據(jù)指針: | 1. 如果是讀指令,讀回的數(shù)據(jù)放到這個數(shù)據(jù)區(qū)中 |
2. 如果是寫指令,要寫出的數(shù)據(jù)放到這個數(shù)據(jù)區(qū)中 | |||
h. | Done | 完成位 | 讀寫功能完成位 |
i. | Error | 錯誤代碼: | 只有在 Done 位為1時,錯誤代碼才有效 |
0 = 無錯誤 | |||
1 = 響應(yīng)校驗錯誤 | |||
2 = 未用 | |||
3 = 接收超時(從站無響應(yīng)) | |||
4 = 請求參數(shù)錯誤(slave address, Modbus address, count, RW) | |||
5 = Modbus/自由口未使能 | |||
6 = Modbus正在忙于其它請求 | |||
7 = 響應(yīng)錯誤(響應(yīng)不是請求的操作) | |||
8 = 響應(yīng)CRC校驗和錯誤 | |||
- | |||
101 = 從站不支持請求的功能 | |||
102 = 從站不支持?jǐn)?shù)據(jù)地址 | |||
103 = 從站不支持此種數(shù)據(jù)類型 | |||
104 = 從站設(shè)備故障 | |||
105 = 從站接受了信息,但是響應(yīng)被延遲 | |||
106 = 從站忙,拒 了該信息 | |||
107 = 從站拒 了信息 | |||
108 = 從站存儲器奇偶錯誤 |
滬公網(wǎng)安備31012002006133