西門子6ES7522-1BL01-0AB0
西門子6ES7522-1BL01-0AB0
注意
- 1. Modbus RTU 主站指令庫的功能是通過在用戶程序中調(diào)用預(yù)先編好的程序功能塊實現(xiàn)的,該庫對 Port 0 和 Port 1 有效。該指令庫將設(shè)置通信口工作在口下。
- 2. Modbus RTU 主站指令庫使用了一些用戶中斷功能,編其他程序時不能在用戶程序中禁止中斷。
- 3. Modbus RTU 主站庫對CPU的版本有要求。CPU 的版本必須為 2.00 或者 2.01(即訂貨號為 6ES721*-***23-0BA*),1.22版本之前(包括1.22版本)的 S7-200 CPU 不支持。
使用 Modbus RTU 主站指令庫,可以讀寫 Modbus RTU 從站的數(shù)字量、模擬量 I/O 以及保持寄存器。
要使用 Modbus RTU 主站指令庫,須遵循下列步驟:

- 1.安裝西門子指令庫
- 2.按照要求編寫用戶程序調(diào)用 Modubs RTU 主站指令庫
- 安裝西門子指令庫
1.2 Modbus RTU 主站功能編程
1. 調(diào)用 Modbus RTU 主站初始化和控制子程序
使用 0.0 調(diào)用 MBUS_CTRL 完成主站的初始化,并啟動其功能控制:

圖 2. 用 0.0 調(diào)用 Modbus RTU 主站初始化與控制子程序
各參數(shù)意義如下:
| a. | EN | 使能: | 必須保證每一掃描周期都被使能(使用 0.0) |
|---|---|---|---|
| b. | Mode | : | 為 1 時,使能 Modbus 協(xié)議功能;為 0 時恢復(fù)為 PPI 協(xié)議 |
| c. | Baud | 波特率: | 支持的通訊波特率為。 |
| d. | Parity | 校驗: | 校驗選擇 |
| 0=無校驗 | |||
| 1=奇較驗 | |||
| 2=偶較驗 | |||
| e. | Timeout | 超時: | 主站等待從站響應(yīng)的時間,以毫秒為單位,典型的設(shè)置值為 1000 毫秒(1 秒),允許設(shè)置的范圍為 1 - 32767。 |
注意: 這個值必須設(shè)置足夠大以保證從站有時間響應(yīng)。 | |||
| f. | Done | 完成位: | 初始化完成,此位會自動置1。可以用該位啟動 MBUS_MSG 讀寫操作(見例程) |
| g. | Error | 初始化錯誤代碼(只有在 Done 位為1時有效): | |
| 0= 無錯誤 | |||
| 1= 校驗選擇 | |||
| 2= 波特率選擇 | |||
| 3= 選擇 | |||
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. | Sle | 從站地址: | 可選擇的范圍 1 - 247 |
| d. | RW | 從站地址: | 0 = 讀, 1 = 寫 |
注意: | |||
| 1. 開關(guān)量輸出和保持寄存器支持讀和寫功能 | |||
| 2. 開關(guān)量輸入和模擬量輸入只支持讀功能 | |||
| e. | Addr | 讀寫從站的數(shù)據(jù)地址: | |
| 選擇讀寫的數(shù)據(jù)類型 | |||
| 00001 至 0xxxx - 開關(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ù)錯誤(sle address, Modbus address, count, RW) | |||
| 5 = Modbus/口未使能 | |||
| 6 = Modbus正在忙于其它請求 | |||
| 7 = 響應(yīng)錯誤(響應(yīng)不是請求的操作) | |||
| 8 = 響應(yīng)CRC校驗和錯誤 | |||
| - | |||
| 101 = 從站不支持請求的功能 | |||
| 102 = 從站不支持數(shù)據(jù)地址 | |||
| 103 = 從站不支持此種數(shù)據(jù)類型 | |||
| 104 = 從站設(shè)備故障 | |||
| 105 = 從站接受了信息,但是響應(yīng)被 | |||
| 106 = 從站忙,拒絕了該信息 | |||
| 107 = 從站拒絕了信息 | |||
| 108 = 從站存儲器奇偶錯誤 | |||
常見的錯誤:
- 如果多個 MBUS_MSG 指令同時使能會造成 6 號錯誤
- 庫存儲區(qū)被程序其它地方復(fù)用,有時也會造成6 號錯誤
- 從站 delay 參數(shù)設(shè)的時間過長會造成主站 3 號錯誤
- 從站掉電或不運行,網(wǎng)絡(luò)故障都會造成主站 3 號錯誤
3. 在 CPU 的 V 數(shù)據(jù)區(qū)中為庫指令分配存儲區(qū)(Library Memory)
Modbus Master 指令庫需要一個284個字節(jié)的全局 V 存儲區(qū)。
1.3 關(guān)于 Modbus RTU 主站協(xié)議及地址
此為西門子正式推出的庫指令說明資料。
在 Modbus RTU Master 協(xié)議和 PPI 協(xié)議之間切換:
Modbus RTU Master 協(xié)議指令庫使通信口工作在口下,此時不能與 Micro/WIN 通信。要在切換回 PPI 協(xié)議,可以:
- 將 MBUS_CTRL 指令的 Mode 輸入端設(shè)置為邏輯"0"
- 將 CPU 的允許選擇開關(guān)置為 STOP 位置



































乐都县|
垣曲县|
宁国市|
微山县|
兴和县|
龙游县|
龙口市|
绥阳县|
温宿县|
馆陶县|
中阳县|
顺义区|
四会市|
洛阳市|
太湖县|
通化县|
大同县|
新巴尔虎左旗|
马山县|
商城县|
林州市|
石棉县|
临安市|
娱乐|
平昌县|
咸宁市|
开阳县|
西青区|
同德县|
虞城县|
成都市|
江永县|
上虞市|
闽侯县|
永济市|
蛟河市|
潮州市|
乌苏市|
东乌珠穆沁旗|
合川市|
弥渡县|