產(chǎn)品詳情
S7-1200 西門子 6ES7221-3AD30-0XB0 型號及規(guī)格
S7-1200作為智能IO設(shè)備和CP343-1的 Profinet 通信(S7-300做控制器)
S7-1200 V4.0 支持智能 IO 設(shè)備功能,故可使用 S7-1200 作為智能 IO 設(shè)備和 CP343-1 的 Profinet 通信。本例中將 S7-300 做為控制器,連接作為智能 IO 設(shè)備的S7-1200 CPU 實現(xiàn) Profinet 通信;下面詳細(xì)介紹使用方法。
硬件:
- CPU 1217C DC/DC/DC,V4.0
- CPU 314C-2ptp,V2.6 + CP343-1,V3.0
軟件:
- Step7 V13
- Step7 V5.5 SP3
CP343-1 的 PN 接口連接 S7-1200 的 PN 接口,這種方式可以分2種情況來操作,具體如下:
- 第一種情況:CPU 1217C 和 CPU 314C 使用 Step7 V13 編程,在一個項目中操作。
- 第二種情況:CPU 1217C 使用 Step7 V13,而 CPU 314C 使用 Step7 V5.5。
1. 第一種情況(同一項目中操作)
CPU 314C 作為 controller,1217C 作為 IO device,使用 Step7 V13 在一個項目中操作,詳細(xì)步驟如下。
1-1 使用 Step7 V13 創(chuàng)建 S7-300 站
使用 STEP7 V13 創(chuàng)建一個新項目,并通過“添加新設(shè)備”組態(tài) S7-300 站 PLC_1,選擇 CPU 314C-2 ptp, 添加 CP343-1 ,設(shè)置 IP 地址。如圖 1 所示。
圖 1 在新項目中插入 S7-300 站
在“操作模式”選項中確認(rèn) CP343-1 的操作模式。 如圖 2 所示。
圖 2 選擇 CP343-1 操作模式
1-2 使用 Step7 V13 創(chuàng)建 S7-1200 站
使用 STEP7 V13 創(chuàng)建一個新項目,并通過“添加新設(shè)備”組態(tài) S7-1200 站 PLC_2,選擇 CPU1217C DC/DC/DC V4.0;設(shè)置 IP 地址,并確認(rèn)設(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ū)
1-2 硬件組態(tài)下載,檢查設(shè)備名稱和 IP 地址是否正確
分別將 PLC_1 站和 PLC_2 站下載到各自的 PLC 中。
將軟件切換到“網(wǎng)絡(luò)視圖”,找到 PN/IE 總線,查看設(shè)備名稱是否正確。如圖 6、7 所示。
圖 6 網(wǎng)絡(luò)視圖
圖 7 確認(rèn)設(shè)備名稱和 IP 地址
1-3 S7-300 編程
本例中,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 | // 附加診斷信息;具體請查看指令幫助信息 |
1-4 通訊測試
檢查無錯誤后,下載 S7-300 的程序,分別給兩個站點新建監(jiān)控表,添加通信數(shù)據(jù)區(qū),監(jiān)控。如圖 9 所示。
圖 9 通信測試
1-5 地址對應(yīng)關(guān)系的說明
圖 10 地址對應(yīng)關(guān)系
從圖中可以看到,當(dāng) CP343-1 作為控制器時,其傳送的地址需從0開始的。地址對應(yīng)排列關(guān)系以邏輯地址大小為序。地址如果出現(xiàn)間隔時,如例子中,沒有組態(tài)的地址區(qū) IB0~2(QB0~1) 及其對應(yīng)的 MB100~101(MB200~201) 也將被傳送。
2. 第二種情況(不在同一項目中操作)
不在一個項目中的操作,即:CPU314C 作為 controller 使用 Step7 V5.5 編程;1217C 作為 IO device,使用 Step7 V13 編程,詳細(xì)步驟如下。
2-1 使用 Step7 V13 創(chuàng)建 S7-1200 站
使用 STEP7 V13 創(chuàng)建一個新項目,并通過“添加新設(shè)備”組態(tài) S7-1200 站 IO-device ,選擇 1217C;設(shè)置 IP 地址,并確認(rèn)設(shè)備名稱,本示例中設(shè)備名稱是io_device。如圖 11 所示。
圖 11 在新項目中插入 S7-1200 站
S7-1200 作為 IO 設(shè)備,需要將其操作模式設(shè)置為 IO 設(shè)備。如圖 12 所示。
圖 12 S7-1200 設(shè)置為 IO 設(shè)備,并創(chuàng)建 IO 通信區(qū)
接著,在“智能設(shè)備通信”的“傳輸區(qū)”創(chuàng)建 IO 通信區(qū),控制器將傳輸5個字節(jié)到 IO 設(shè)備的 IB2~6 ;IO 設(shè)備將 QB2~6 共計5個字節(jié)傳送給控制器。
2-2 導(dǎo)出 IO 設(shè)備的 GSD 文件
編譯該項目,在“智能設(shè)備通信”屬性的下方,找到并點擊“導(dǎo)出”按鈕,根據(jù)提示將 GSD 文件導(dǎo)出(注意不要修改設(shè)備名稱)。如圖 13 所示。
圖 13 導(dǎo)出 IO 設(shè)備的 GSD 文件
2-3 使用 Step7 V5.5 創(chuàng)建 S7-300 站
使用 STEP7 V5.5 創(chuàng)建一個新項目,并組態(tài) CPU 314C-2 ptp, 添加 CP343-1 ,設(shè)置 IP 地址,并確認(rèn)設(shè)備名稱,本示例中設(shè)備名稱是PN-IO。如圖 14 所示。
圖 14 在新項目中插入 S7-300 站
在 Step7 V5.5 的硬件組態(tài)界面,通過“選項”進入“安裝 GSD 文件...”界面, 在源路徑選擇 IO-device 的 GSD 文件存放路徑。如圖 15 所示。
圖 15 Step7 V5.5 安裝 IO-device 的 GSD 文件
2-4 在 Step7 V5.5 中組態(tài) IO-device
首先,需要給 CP343-1 插入 Profinet IO 總線,在 CP343-1 的“PN-IO”上鼠標(biāo)右鍵,選擇“插入 Profinet IO 系統(tǒng)”。如圖 16 所示。
圖 16 插入 Profinet IO 系統(tǒng)
然后,從硬件目錄路徑:PROFINET IO --> Preconfigured Stations --> CPU 1217C DC/DC/DC --> IO-device 拖拽到 PN 總線上。如圖 17 所示。
圖 17 組態(tài) IO-device
2-5 硬件組態(tài)下載,檢查設(shè)備名稱和 IP 地址是否正確
分別將 S7-300 站和 S7-1200 站下載到各自的 PLC 中。
將 STEP7 V13 軟件切換到“網(wǎng)絡(luò)視圖”,找到 PN/IE 總線,查看設(shè)備名稱是否正確。如圖 18、19 所示。
圖 18 網(wǎng)絡(luò)視圖
圖 19 確認(rèn)設(shè)備名稱和 IP 地址
2-6 S7-300 編程
本例中,CP343-1 作為 IO 控制器,需要在 OB1 中編程調(diào)用 PNIO_SEND 和 PNIO_RECV 進行數(shù)據(jù)讀寫。如圖 20 所示。
圖 20 CPU314C 中編程
CALL “PNIO_SEND” | ||
CPLADDR | :=W#16#100 | // CP 模板起始地址 |
MODE | :=B#16#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 | :=W#16#100 | // CP 模板起始地址 |
MODE | :=B#16#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 | // 附加診斷信息;具體請查看指令幫助信息 |
2-7 通訊測試
檢查無錯誤后,分別給兩個站點新建監(jiān)控表,添加通信數(shù)據(jù)區(qū),監(jiān)控。如圖 21 所示。
圖 21 通信測試
2-8 地址對應(yīng)關(guān)系的說明
圖 22 地址對應(yīng)關(guān)系
從圖中可以看到,當(dāng) CP343-1 作為控制器時,其傳送的地址需從0開始的。地址對應(yīng)排列關(guān)系以邏輯地址大小為序。地址如果出現(xiàn)間隔時,如例子中,沒有組態(tài)的地址區(qū) IB0~2(QB0~1) 及其對應(yīng)的 MB100~101(MB200~201) 也將被傳送
S7-1200與分布式IO設(shè)備的診斷功能
S7-1200 CPU V2.1 開始支持分布式 IO 設(shè)備的診斷功能,可使用 DeviceStates 和 ModuleStates 指令對分布式 IO 設(shè)備的站狀態(tài)和子模塊進行診斷。本文使用 1214C V4.0 CPU 和 ET200SP 的 PN 通信為例進行說明(DP通信同樣適用)。
硬件:
- CPU 1214C DC/DC/DC,V4.0,一臺
- ET200SP 分布式 IO 站,PN 接口,兩套
軟件:
- TIA Portal V13 SP1 UPD2
使用 TIA Portal 創(chuàng)建項目
使用 TIA Portal 創(chuàng)建一個新項目,正確配置,下載后,進入網(wǎng)絡(luò)視圖,所有站點狀態(tài)正常。如圖 1 所示。
圖 1 網(wǎng)絡(luò)視圖
注意:分布式 IO 為 PN 子站時,可在“網(wǎng)絡(luò)概覽”中可以查看分布式 IO 的設(shè)備編號。
1 使用 DeviceStates 指令對分布式 IO 子站進行診斷
1-1 創(chuàng)建全局?jǐn)?shù)據(jù)塊,用于存儲狀態(tài)數(shù)據(jù)
在全局?jǐn)?shù)據(jù)塊中創(chuàng)建數(shù)據(jù)類型為 Array of BOOL 數(shù)組,共計1024個元素。 如圖 2 所示。
圖 2 創(chuàng)建全局?jǐn)?shù)據(jù)塊
1-2 編程
在 OB1 中調(diào)用 DeviceStates 指令,雙擊 LADDR 引腳,選擇需要診斷的 IO 系統(tǒng)。如圖 3 所示。
圖 3 調(diào)用 DeviceStates 指令
本例中將 MODE 設(shè)置為2,STATE 填寫上述定義的全局?jǐn)?shù)據(jù)塊數(shù)組。如圖 4 所示。
圖 4 填寫相應(yīng)的引腳
指令引腳說明:
參數(shù) LADDR |
使用 LADDR 參數(shù)通過硬件標(biāo)識符選擇 PROFINET IO 或 DP 主站系統(tǒng)。 硬件標(biāo)識符位于:
|
參數(shù) MODE |
使用 MODE 參數(shù)可讀取狀態(tài)信息。 可讀取整個 PROFINET IO 或 DP 主站系統(tǒng)的下列一條狀態(tài)信息:
|
參數(shù) STATE |
通過 STATE 參數(shù),輸出由 MODE 參數(shù)選擇的 IO 設(shè)備/DP 從站的狀態(tài)。 如果使用 MODE 選擇的狀態(tài)適用于 IO 設(shè)備/DP 從站,則在 STATE 參數(shù)中將下列位設(shè)置為“1”:
使用“BOOL”或“Array of BOOL”作為數(shù)據(jù)類型: |
1-3 測試
將程序下載到 PLC 中。
監(jiān)控全局?jǐn)?shù)據(jù)塊 devicestate。如圖 5 所示。
圖 5 IO 系統(tǒng)正常
當(dāng) IO device_2 故障時(掉電或網(wǎng)線拔除導(dǎo)致丟站),state[2]=1。如圖 6 所示。
圖 6 IO device_2 故障
當(dāng) IO device_1 和 IO device_2 故障時(掉電或網(wǎng)線拔除導(dǎo)致丟站),state[1]=1 和 state[2]=1。如圖 7 所示。
圖 7 IO device_1 和 IO device_2 故障
2 使用 ModuleStates 指令對分布式 IO 子模塊進行診斷
2-1 創(chuàng)建全局?jǐn)?shù)據(jù)塊,用于存儲狀態(tài)數(shù)據(jù)
在全局?jǐn)?shù)據(jù)塊中創(chuàng)建數(shù)據(jù)類型為 Array of BOOL 數(shù)組,共計128個元素。 如圖 8 所示。
圖 8 創(chuàng)建全局?jǐn)?shù)據(jù)塊
2-2 編程
在 OB1 中調(diào)用 ModuleStates 指令,雙擊 LADDR 引腳,選擇需要診斷的分布式 IO 站。如圖 9 所示。
圖 9 調(diào)用 ModuleStates 指令
本例中將 MODE 設(shè)置為2,STATE 填寫上述定義的全局?jǐn)?shù)據(jù)塊數(shù)組。如圖 10 所示。
圖 10 填寫相應(yīng)的引腳
指令引腳說明:
參數(shù) LADDR |
使用 LADDR 參數(shù)通過站硬件標(biāo)識符選擇 IO 設(shè)備或 DP 從站。
|
參數(shù) MODE |
使用 MODE 參數(shù)可讀取狀態(tài)信息。 可讀取模塊的下列一條狀態(tài)信息:
|
參數(shù) STATE |
STATE 參數(shù)輸出使用 MODE 參數(shù)選擇的模塊狀態(tài)。
使用“BOOL”或“Array of BOOL”作為數(shù)據(jù)類型:
|
1-3 測試
將程序下載到 PLC 中。
監(jiān)控全局?jǐn)?shù)據(jù)塊 modulestate。如圖 11 所示。
圖 11 分布式 IO 站所有子模塊正常
當(dāng) IO device_1 站插槽編號1的子模塊故障時(損壞或被拔除),state[2]=1。如圖 12 所示。
SIMATIC NET OPC SERVER 與 S7-1200 CM1243-5 的 DP 主從通信
使用 SIMATIC NET OPC SERVER 可以與 S7-1200 CM1243-5 建立 S7 通信,除此之外,還可以使用另外一種通信方式—— DP 主從通信(PC Station 做 DP 從站,1200 做 DP 主站),下面詳細(xì)介紹使用方法。
硬件:
CPU 1214C DC/DC/DC,V2.2 (6ES7 214-1AE30-0XB0)
CM1243-5 (6GK7 243-5DX30-0XE0)
CP5612 (6GK1561-2AA00)
軟件:
Step7 V12 SP1
SIMATIC NET V8.2
OPC Scout V10
S7-1200 通過 CM1243-5 做 DP 主站,PC Station 做 DP 從站與之進行 DP 主從通信,具體操作步驟如下。
1. 使用 STEP7 V12 生成 S7-1200 項目
使用 STEP7 V12 創(chuàng)建一個新項目,并通過“添加新設(shè)備”組態(tài) S7-1200 站PLC_1,選擇 CPU1214C DC/DC/DC V2.2 創(chuàng)建項目。如圖 1 所示。
圖1. 創(chuàng)建 S7-1200 項目
組態(tài) CM1243-5,為 CM1243-5 添加子網(wǎng) PROFIBUS_1,分配站地址為 2。如圖 2 所示。
圖2. 組態(tài) CM1243-5
2. 使用 CP5612 建立 DP 從站
再次通過“添加新設(shè)備”創(chuàng)建 PC 站,在 “PC 系統(tǒng)”里,選擇 PC station,插入一個 PC 站。如圖 3 所示。
圖3. 插入 PC 站
在“用戶應(yīng)用程序”中,將“OPC服務(wù)器”插入第 1 槽;在“通信模塊”中,將“CP5612”插入第 2 槽。如圖 4 所示。
圖4. 創(chuàng)建 PC 站
在將“OPC服務(wù)器”插入第 1 槽之前,請先選擇 OPC SERVER 的版本。如圖 5 所示。
圖5. 選擇 OPC SERVER 的版本
在 PC 站的設(shè)備視圖中,進入 CP5612 卡的屬性框,在“PROFIBUS 地址”中選擇子網(wǎng)“PROFIBUS_1”,DP 地址分配成 3。如圖 6 所示。
圖6. CP5612分配DP地址
在“操作模式”中選擇“DP 從站”,在“分配的 DP 主站”選擇“PLC.CM1243-5.DP 接口”。如圖 7 所示。
圖7. CP5612 選擇 DP 從站
在“智能從站通信”中,添加 2 個傳輸區(qū),一個是輸入?yún)^(qū),一個是輸出區(qū)(注意圖8 紅框中描述的是主站地址,分別從 QB2 和 IB2 開始,該地址在后面通信中將會使用到,請留意)。如圖 8 所示。
圖8. 組態(tài)從站傳輸區(qū)地址
在 PC 站的屬性框中,在“XDB 組態(tài)”中勾選“生成 XDB 文件”,指定 XDB 文件路徑,再將 PC 站編譯,在指定路徑中生成一個 XDB 文件。如圖 9 所示。
圖9. 生成 XDB 文件
3. OPC SERVER 站配置
從電腦的右下角雙擊“Station Configuration Editor”,進入 Station Configuration Editor 對話框,點擊“Import Station...”,將圖 9 生成的 XDB 文件導(dǎo)入進來,如圖 10 所示。
圖10. OPC SERVER 站配置
導(dǎo)入完成后,OPC SERVER 站配置也就完成。如圖 11 所示。
圖11. OPC SERVER 站配置完成
4. 通信測試
將 S7-1200 項目下載到 PLC 中,此時 CM1243-5 的 DIAG 指示燈還是紅閃,表示 DP 主從通信并未建立起來,這是因為 OPC Server 默認(rèn)處于未激活狀態(tài),PC Station 作為 DP 從站還沒有生效,需要啟動一個 OPC 客戶端來激活服務(wù)器。按以下步驟啟動一個 OPC 客戶端。
從電腦“開始”菜單中,執(zhí)行 SIMATIC NET 的 OPC Scout V10。如圖 12 所示。
圖12. 執(zhí)行 OPC Scout V10
在 OPC Scout V10 中添加輸入輸出變量,在 DA view1 中對輸出進行賦值,如圖 13 所示。
圖13. OPC Scout V10 變量測試
在 S7-1200 項目的監(jiān)控表中監(jiān)視相應(yīng)的變量,如圖 14所示。
S7-1200 西門子 6ES7221-3AD30-0XB0