SIMATIC S7-1200,模擬輸入, SM 1231 RTD溫度傳感器,RTD溫度傳感器模塊 8個模擬輸入
SIMATIC S7-1200 SM 1231,AI 8x16 bit RTD
訂貨號: 6ES7231-5PF32-0XB0
2. 軟件編程
a. Modbus RTU 主站編程
Modbus RTU 主站編程需要調(diào)用 Modbus_Comm_Load 指令和 Modbus_Master 指令,其中 Modbus_Comm_Load 指令通過 Modbus RTU 協(xié)議對通信模塊進行組態(tài),Modbus_Master 指令可通過由 Modbus_Comm_Load 指令組態(tài)的端口作為 Modbus 主站進行通信, Modbus_Comm_Load 指令的 MB_DB 參數(shù)必須連接到 Modbus_Master 指令的(靜態(tài))MB_DB 參數(shù)。
本例中分布式機架 ET200SP 中 CM PtP 模塊作為 Modbus RTU 主站,其相關(guān)編程步驟如下:
(1) OB1 中插入一個 FC,并在 FC 中拖入 Modbus_Comm_Load 指令和 Modbus_Master 指令。如圖 12 所示。
圖 12. Modbus RTU 主站指令
Modbus_Comm_Load 指令各參數(shù)意義如表 1 所示:
引腳 | 說明 |
---|---|
REQ | 上升沿觸發(fā) |
PORT | 通信端口的硬件標識符 |
BAUD | 波特率選擇:3600,6000,12000,2400,4800,9600,19200,38400,57600,76800,115200 |
PARITY | 奇偶檢驗選擇:0-無;1-奇校驗;2-偶校驗 |
FLOW_CTRL | 流控制選擇:0-(默認值)無流控制 |
RTS_ON_DLY | RTS 延時選擇:0-(默認值) |
RTS_OFF_DLY | RTS 關(guān)斷延時選擇:0-(默認值) |
RESP_TO | 響應(yīng)超時: 默認值 = 1000 ms。Modbus_Master 允許用于從站響應(yīng)的時間(以毫秒為單位)。 |
MB_DB | 對 Modbus_Master 或 Modbus_Slave 指令的背景數(shù)據(jù)塊的引用。 MB_DB 參數(shù)必須與 Modbus_Master 或 Modbus_Slave 指令中的靜態(tài)變量 MB_DB 參數(shù)相連。 |
DONE | 如果上一個請求完成并且沒有錯誤,DONE 位將變?yōu)?TRUE 并保持一個周期。 |
ERROR | 如果上一個請求完成出錯,則 ERROR 位將變?yōu)?TRUE 并保持一個周期。 STATUS 參數(shù)中的錯誤代碼僅在 ERROR = TRUE 的周期內(nèi)有效。 |
STATUS | 端口組態(tài)錯誤代碼,請參考 TIA Portal 軟件在線幫助或 S7-1200 系統(tǒng)手冊。 |
表 1. Modbus_Comm_Load 指令參數(shù)意義
Modbus_Master 指令各參數(shù)意義如表 2 所示。
引腳 | 說明 |
---|---|
EN | 使能端 |
REQ | TRUE = 請求向 Modbus 從站發(fā)送數(shù)據(jù) ,建議采用上升沿觸發(fā) |
MB_ADDR | Modbus RTU 從站地址。默認地址范圍:0 至 247;擴展地址范圍:0 至 65535。值 0 被保留用于將消息廣播到所有 Modbus 從站。 |
MODE | 模式選擇: 請求類型(讀取或?qū)懭耄?/p> |
DATA_ADDR | 從站中的起始地址:Modbus 從站中將供訪問的數(shù)據(jù)的起始地址。 |
DATA_LEN | 數(shù)據(jù)長度:要在該請求中訪問的位數(shù)或字數(shù)。 |
DATA_PTR | 數(shù)據(jù)指針: 指向要進行數(shù)據(jù)寫入或數(shù)據(jù)讀取的 M 區(qū)或數(shù)據(jù)塊地址。 |
DONE | 完成位:上一請求已完成且沒有出錯后,DONE 位將保持為 TRUE 一個掃描周期時間。 |
BUSY | FALSE – Modbus_Master 無激活命令;TRUE – Modbus_Master 命令執(zhí)行中 |
ERROR | |
STATUS | 端口組態(tài)錯誤代碼,請參考 TIA Portal 軟件在線幫助或 S7-1200 系統(tǒng)手冊。 |
表 2. Modbus_Master 指令參數(shù)意義
注意:
① Modbus_Comm_Load 指令不建議在啟動組織塊 OB100 中調(diào)用,建議在 OB1 中調(diào)用。
Modbus_Comm_Load 指令在 OB1 中調(diào)用時,其輸入位“REQ”需使用上升沿觸發(fā),本例中該輸入位采用 “FirstScan” 系統(tǒng)存儲器位。
② Modbus_Comm_Load 指令背景數(shù)據(jù)塊中的靜態(tài)變量 “MODE” 用于描述點對點模塊的工作模式,有效的工作模式包括:
0 = 全雙工 (RS232)
1 = 全雙工 (RS422) 四線制模式(點對點)
2 = 全雙工 (RS422) 四線制模式(多點主站)
3 = 全雙工 (RS422) 四線制模式(多點從站)
4 = 半雙工 (RS485) 二線制模式
該靜態(tài)變量 “MODE” 默認數(shù)據(jù)為 0(RS232 全雙工模式),需要根據(jù)點對點模塊實際組態(tài)修改該數(shù)值,本例中 CM PtP 模塊工作在 RS485 半雙工模式需要將該數(shù)值修改為 4,如圖 13 所示。
圖 13. Modbus_Comm_Load 背景數(shù)據(jù)塊靜態(tài)變量 “MODE” 修改為 4
③ Modbus_Master 指令的 “DATA_PTR” 參數(shù)用于指向要進行數(shù)據(jù)寫入或數(shù)據(jù)讀取的數(shù)據(jù)區(qū)域地址,該數(shù)據(jù)區(qū)域在 V3.0 支持非優(yōu)化(標準的)數(shù)據(jù)塊。一般建議使用指針方式填寫,例如程序中的 P#DB3.DBX0.0 WORD 5,此外也可以使用基本數(shù)據(jù)類型數(shù)組方式填寫。指針的含義參見鏈接。
從 V4.0 版本開始支持優(yōu)化 DB 塊,具體參見鏈接。
在數(shù)據(jù)塊的屬性中取消“優(yōu)化的塊訪問”即可將數(shù)據(jù)塊修改為非優(yōu)化訪問的數(shù)據(jù)塊(鼠標右鍵數(shù)據(jù)塊,選擇“屬性”,取消“優(yōu)化的塊訪問”),如圖 14 所示。
圖 14. 設(shè)置數(shù)據(jù)塊為非優(yōu)化訪問
④ 當 Modbus RTU 網(wǎng)絡(luò)中存在多個 modbus RTU 從站或一個 modbus RTU 從站同時需要多個作業(yè),例如需要讀和寫或者讀多個區(qū)域等,則需要調(diào)用多個 Modbus_Master 指令,Modbus_Master 指令之間需要采用輪詢方式調(diào)用,并且使用相同背景數(shù)據(jù)塊。
如圖 15 所示,用于描述兩個 Modbus_Master 指令輪詢調(diào)用的方式。