6ES7232-4HD32-0XB0西門子SM1232 模擬量輸出模塊
S7-1200 V4.0 支持智能 IO 設(shè)備功能,故可使用 S7-1200 作為智能 IO 設(shè)備和 CP343-1 的 Profinet 通信。本例中將 S7-300 做為控制器,連接作為智能 IO 設(shè)備的S7-1200 CPU 實現(xiàn) Profinet 通信;下面詳細介紹使用方法。
硬件:
軟件:
CP343-1 的 PN 接口連接 S7-1200 的 PN 接口,這種方式可以分2種情況來操作,具體如下:
CPU 314C 作為 controller,1217C 作為 IO device,使用 Step7 V13 在一個項目中操作,詳細步驟如下。
使用 STEP7 V13 創(chuàng)建一個新項目,并通過“添加新設(shè)備”組態(tài) S7-300 站 PLC_1,選擇 CPU 314C-2 ptp, 添加 CP343-1 ,設(shè)置 IP 地址。如圖 1 所示。
圖 1 在新項目中插入 S7-300 站
在“操作模式”選項中確認 CP343-1 的操作模式。 如圖 2 所示。
圖 2 選擇 CP343-1 操作模式
使用 STEP7 V13 創(chuàng)建一個新項目,并通過“添加新設(shè)備”組態(tài) S7-1200 站 PLC_2,選擇 CPU1217C DC/DC/DC V4.0;設(shè)置 IP 地址,并確認設(shè)備名稱,本示例中設(shè)備名稱是plc_2。如圖 3 所示。
圖 3 在新項目中插入 S7-1200 站
S7-1200 作為 IO 設(shè)備,需要將其操作模式設(shè)置為 IO 設(shè)備,并將 IO 設(shè)備分配給控制器 PLC_1 。如圖 4 所示。
圖 4 S7-1200 設(shè)置為 IO 設(shè)備
接著,在“智能設(shè)備通信”的“傳輸區(qū)”創(chuàng)建 IO 通信區(qū),控制器的 QB2~6 共計5個字節(jié)傳送到 IO 設(shè)備的 IB2~6 ;控制器的 IB2~6 共計5個字節(jié)讀取來自 IO 設(shè)備的 QB2~6 。如圖 5 所示。
圖 5 創(chuàng)建 IO 通信區(qū)
分別將 PLC_1 站和 PLC_2 站下載到各自的 PLC 中。
將軟件切換到“網(wǎng)絡(luò)視圖”,找到 PN/IE 總線,查看設(shè)備名稱是否正確。如圖 6、7 所示。
圖 6 網(wǎng)絡(luò)視圖
圖 7 確認設(shè)備名稱和 IP 地址
本例中,CP343-1 作為 IO 控制器,需要在 OB1 中編程調(diào)用 PNIO_SEND 和 PNIO_RECV 進行數(shù)據(jù)讀寫。如圖 8 所示。
圖 8 CPU314C 中編程
CALL “PNIO_SEND” | ||
CPLADDR | :=256 | // CP 模板起始地址 |
MODE | :=0 | // 工作模式:當(dāng)CP343-1僅作為IO控制器或IO設(shè)備時,設(shè)為0;當(dāng)CP343-1同時作為IO控制器和IO設(shè)備時,設(shè)為1 |
LEN | :=7 | // 要發(fā)送的數(shù)據(jù)區(qū)長度;該長度始終是從數(shù)據(jù)區(qū)地址0開始計算 |
SEND | :=P#M100.0 BYTE 7 | // 發(fā)送數(shù)據(jù)區(qū) |
IOCS | :=P#M150.0 BYTE 10 |
// 每一用戶數(shù)據(jù)字節(jié)傳送一個狀態(tài)位。長度信息取決于LEN參數(shù)中的長度。 以程序段1為例,共發(fā)送7個字節(jié),每個字節(jié)需要1個比特位,所以共需要7位,即至少需要1字節(jié)。 |
DONE | :=%M0.0 | // 為1時,無錯誤完成該作業(yè) |
ERROR | :=%M0.1 | // 為1時,有故障發(fā)生 |
STATUS | :=%MW2 | // 狀態(tài)代碼 |
CHECK_IOCS | :=%M0.3 |
// 0: 所有IOCS均設(shè)置為GOOD |
CALL “PNIO_RECV” | ||
CPLADDR | :=256 | // CP 模板起始地址 |
MODE | :=0 | // 工作模式:當(dāng)CP343-1僅作為IO控制器或IO設(shè)備時,設(shè)為0;當(dāng)CP343-1同時作為IO控制器和IO設(shè)備時,設(shè)為1 |
LEN | :=7 | // 要接收的數(shù)據(jù)區(qū)長度;該長度始終是從數(shù)據(jù)區(qū)地址0開始計算 |
RECV | :=P#M200.0 BYTE 7 | // 發(fā)送數(shù)據(jù)區(qū) |
IOPS | :=P#M250.0 BYTE 10 |
// 每一用戶數(shù)據(jù)字節(jié)傳送一個狀態(tài)位。長度信息取決于LEN參數(shù)中的長度。 以程序段2為例,共接收7個字節(jié),每個字節(jié)需要1個比特位,所以共需要7位,即至少需要1字節(jié)。 |
NDR | :=%M1.0 | // 為1時,無錯誤完成該作業(yè) |
ERROR | :=%M1.1 | // 為1時,有故障發(fā)生 |
STATUS | :=%MW4 | // 狀態(tài)代碼 |
CHECK_IOPS | :=%M1.2 |
// 0: 所有IOPS均設(shè)置為GOOD |
ADD_INFO | :=%MW6 | // 附加診斷信息;具體請查看指令幫助信息 |
檢查無錯誤后,下載 S7-300 的程序,分別給兩個站點新建監(jiān)控表,添加通信數(shù)據(jù)區(qū),監(jiān)控。如圖 9 所示。
圖 9 通信測試