S7-1500 支持智能 IO 設備功能,故可使用 S7-1500 作為智能 IO 設備和 CP343-1 的 Profinet 通信。本例中將 S7-300 做為控制器,連接作為智能 IO 設備的S7-1500 CPU 實(shí)現 Profinet 通信;下面詳細介紹使用方法。
硬件:
軟件:
CP343-1 的 PN 接口連接 S7-1500 的 PN 接口,這種方式可以分2種情況來(lái)操作,具體如下:
1.第一種情況:CPU 1500 和 CPU 314C 使用 Step7 V14 編程,在一個(gè)項目中操作
2.第二種情況:CPU 1500 使用 Step7 V14,而 CPU 314C 使用 Step7 V5.5
CPU 314C 作為 controller,1500 作為 IO device,使用 Step7 V14 在一個(gè)項目中操作,詳細步驟如下。
使用 STEP7 V14 創(chuàng )建一個(gè)新項目,并通過(guò)“添加新設備”組態(tài) S7-300 站 PLC_1,選擇 CPU 314C-2 ptp, 添加 CP343-1 ,設置 IP 地址。如圖 1 所示。
圖 1 在新項目中插入 S7-300 站
在“操作模式”選項中確認 CP343-1 的操作模式。 如圖 2 所示。
圖 2 選擇 CP343-1 操作模式
使用 STEP7 V14 創(chuàng )建一個(gè)新項目,并通過(guò)“添加新設備”組態(tài) S7-1500 站 PLC_2,選擇 CPU1500 ;設置 IP 地址,并確認設備名稱(chēng),本示例中設備名稱(chēng)是plc_2。如圖 3 所示。
圖 3 在新項目中插入 S7-1500 站
S7-1500 作為 IO 設備,需要將其操作模式設置為 IO 設備,并將 IO 設備分配給控制器 PLC_1 。如圖 4 所示。
圖 4 S7-1500 設置為 IO 設備
接著(zhù),在“智能設備通信”的“傳輸區”創(chuàng )建 IO 通信區,控制器的 QB2~6 共計5個(gè)字節傳送到 IO 設備的 IB2~6 ;控制器的 IB2~6 共計5個(gè)字節讀取來(lái)自 IO 設備的 QB2~6 。如圖 5 所示。
圖 5 創(chuàng )建 IO 通信區
分別將 PLC_1 站和 PLC_2 站下載到各自的 PLC 中。
將軟件切換到“網(wǎng)絡(luò )視圖”,找到 PN/IE 總線(xiàn),查看設備名稱(chēng)是否正確。如圖 6、7 所示。
圖 6 網(wǎng)絡(luò )視圖
圖 7 確認設備名稱(chēng)和 IP 地址
本例中,CP343-1 作為 IO 控制器,需要在 OB1 中編程調用 PNIO_SEND 和 PNIO_RECV 進(jìn)行數據讀寫(xiě)。如圖 8 所示。
圖 8 CPU314C 中編程
CALL “PNIO_SEND” | ||
CPLADDR | :=256 | // CP 模板起始地址 |
MODE | :=0 | // 工作模式:當CP343-1僅作為IO控制器或IO設備時(shí),設為0;當CP343-1同時(shí)作為IO控制器和IO設備時(shí),設為1 |
LEN | :=7 | // 要發(fā)送的數據區長(cháng)度;該長(cháng)度始終是從數據區地址0開(kāi)始計算 |
SEND | :=P#M100.0 BYTE 7 | // 發(fā)送數據區 |
IOCS | :=P#M150.0 BYTE 10 |
// 每一用戶(hù)數據字節傳送一個(gè)狀態(tài)位。長(cháng)度信息取決于LEN參數中的長(cháng)度。 以程序段1為例,共發(fā)送7個(gè)字節,每個(gè)字節需要1個(gè)比特位,所以共需要7位,即至少需要1字節。 |
DONE | :=%M0.0 | // 為1時(shí),無(wú)錯誤完成該作業(yè) |
ERROR | :=%M0.1 | // 為1時(shí),有故障發(fā)生 |
STATUS | :=%MW2 | // 狀態(tài)代碼 |
CHECK_IOCS | :=%M0.3 |
// 0: 所有IOCS均設置為GOOD |
CALL “PNIO_RECV” | ||
CPLADDR | :=256 | // CP 模板起始地址 |
MODE | :=0 | // 工作模式:當CP343-1僅作為IO控制器或IO設備時(shí),設為0;當CP343-1同時(shí)作為IO控制器和IO設備時(shí),設為1 |
LEN | :=7 | // 要接收的數據區長(cháng)度;該長(cháng)度始終是從數據區地址0開(kāi)始計算 |
RECV | :=P#M200.0 BYTE 7 | // 發(fā)送數據區 |
IOPS | :=P#M250.0 BYTE 10 |
// 每一用戶(hù)數據字節傳送一個(gè)狀態(tài)位。長(cháng)度信息取決于LEN參數中的長(cháng)度。 以程序段2為例,共接收7個(gè)字節,每個(gè)字節需要1個(gè)比特位,所以共需要7位,即至少需要1字節。 |
NDR | :=%M1.0 | // 為1時(shí),無(wú)錯誤完成該作業(yè) |
ERROR | :=%M1.1 | // 為1時(shí),有故障發(fā)生 |
STATUS | :=%MW4 | // 狀態(tài)代碼 |
CHECK_IOPS | :=%M1.2 |
// 0: 所有IOPS均設置為GOOD |
ADD_INFO | :=%MW6 | // 附加診斷信息;具體請查看指令幫助信息 |
檢查無(wú)錯誤后,下載 S7-300 的程序,分別給兩個(gè)站點(diǎn)新建監控表,添加通信數據區,監控。如圖 9 所示。
圖 9 通信測試
圖 10 地址對應關(guān)系
從圖中可以看到,當 CP343-1 作為控制器時(shí),其傳送的地址需從0開(kāi)始的。地址對應排列關(guān)系以邏輯地址大小為序。地址如果出現間隔時(shí),如例子中,沒(méi)有組態(tài)的地址區 IB0~2(QB0~1) 及其對應的 MB100~101(MB200~201) 也將被傳送。
不在一個(gè)項目中的操作,即:CPU314C 作為 controller 使用 Step7 V5.5 編程;1500 作為 IO device,使用 Step7 V14 編程,詳細步驟如下。
使用 STEP7 V14 創(chuàng )建一個(gè)新項目,并通過(guò)“添加新設備”組態(tài) S7-1500 站 IO-device ,選擇 1500;設置 IP 地址,并確認設備名稱(chēng),本示例中設備名稱(chēng)是io_device。如圖 11 所示。
圖 11 在新項目中插入 S7-1500 站
S7-1500 作為 IO 設備,需要將其操作模式設置為 IO 設備。如圖 12 所示。
圖 12 S7-1500 設置為 IO 設備,并創(chuàng )建 IO 通信區
接著(zhù),在“智能設備通信”的“傳輸區”創(chuàng )建 IO 通信區,控制器將傳輸5個(gè)字節到 IO 設備的 IB2~6 ;IO 設備將 QB2~6 共計5個(gè)字節傳送給控制器。
編譯該項目,在“智能設備通信”屬性的下方,找到并點(diǎn)擊“導出”按鈕,根據提示將 GSD 文件導出(注意不要修改設備名稱(chēng))。如圖 13 所示。
圖 13 導出 IO 設備的 GSD 文件
使用 STEP7 V5.5 創(chuàng )建一個(gè)新項目,并組態(tài) CPU 314C-2 ptp, 添加 CP343-1 ,設置 IP 地址,并確認設備名稱(chēng),本示例中設備名稱(chēng)是PN-IO。如圖 14 所示。
圖 14 在新項目中插入 S7-300 站
在 Step7 V5.5 的硬件組態(tài)界面,通過(guò)“選項”進(jìn)入“安裝 GSD 文件...”界面, 在源路徑選擇 IO-device 的 GSD 文件存放路徑。如圖 15 所示。
圖 15 Step7 V5.5 安裝 IO-device 的 GSD 文件
首先,需要給 CP343-1 插入 Profinet IO 總線(xiàn),在 CP343-1 的“PN-IO”上鼠標右鍵,選擇“插入 Profinet IO 系統”。如圖 16 所示。
圖 16 插入 Profinet IO 系統
然后,從硬件目錄路徑:PROFINET IO --> Preconfigured Stations --> CPU 1500 --> IO-device 拖拽到 PN 總線(xiàn)上。如圖 17 所示。
圖 17 組態(tài) IO-device
分別將 S7-300 站和 S7-1500 站下載到各自的 PLC 中。
將 STEP7 V14 軟件切換到“網(wǎng)絡(luò )視圖”,找到 PN/IE 總線(xiàn),查看設備名稱(chēng)是否正確。如圖 18、19 所示。
圖 18 網(wǎng)絡(luò )視圖
圖 19 確認設備名稱(chēng)和 IP 地址
本例中,CP343-1 作為 IO 控制器,需要在 OB1 中編程調用 PNIO_SEND 和 PNIO_RECV 進(jìn)行數據讀寫(xiě)。如圖 20 所示。
圖 20 CPU314C 中編程
CALL “PNIO_SEND” | ||
CPLADDR | :=W#16#100 | // CP 模板起始地址 |
MODE | :=B#16#0 | // 工作模式:當CP343-1僅作為IO控制器或IO設備時(shí),設為0;當CP343-1同時(shí)作為IO控制器和IO設備時(shí),設為1 |
LEN | :=7 | // 要發(fā)送的數據區長(cháng)度;該長(cháng)度始終是從數據區地址0開(kāi)始計算 |
SEND | :=P#M100.0 BYTE 7 | // 發(fā)送數據區 |
IOCS | :=P#M150.0 BYTE 10 |
// 每一用戶(hù)數據字節傳送一個(gè)狀態(tài)位。長(cháng)度信息取決于LEN參數中的長(cháng)度。 以程序段1為例,共發(fā)送7個(gè)字節,每個(gè)字節需要1個(gè)比特位,所以共需要7位,即至少需要1字節。 |
DONE | :=%M0.0 | // 為1時(shí),無(wú)錯誤完成該作業(yè) |
ERROR | :=%M0.1 | // 為1時(shí),有故障發(fā)生 |
STATUS | :=%MW2 | // 狀態(tài)代碼 |
CHECK_IOCS | :=%M0.3 |
// 0: 所有IOCS均設置為GOOD |
CALL “PNIO_RECV” | ||
CPLADDR | :=W#16#100 | // CP 模板起始地址 |
MODE | :=B#16#0 | // 工作模式:當CP343-1僅作為IO控制器或IO設備時(shí),設為0;當CP343-1同時(shí)作為IO控制器和IO設備時(shí),設為1 |
LEN | :=7 | // 要接收的數據區長(cháng)度;該長(cháng)度始終是從數據區地址0開(kāi)始計算 |
RECV | :=P#M200.0 BYTE 7 | // 發(fā)送數據區 |
IOPS | :=P#M250.0 BYTE 10 |
// 每一用戶(hù)數據字節傳送一個(gè)狀態(tài)位。長(cháng)度信息取決于LEN參數中的長(cháng)度。 以程序段2為例,共接收7個(gè)字節,每個(gè)字節需要1個(gè)比特位,所以共需要7位,即至少需要1字節。 |
NDR | :=%M1.0 | // 為1時(shí),無(wú)錯誤完成該作業(yè) |
ERROR | :=%M1.1 | // 為1時(shí),有故障發(fā)生 |
STATUS | :=%MW4 | // 狀態(tài)代碼 |
CHECK_IOPS | :=%M1.2 |
// 0: 所有IOPS均設置為GOOD |
ADD_INFO | :=%MW6 | // 附加診斷信息;具體請查看指令幫助信息 |
檢查無(wú)錯誤后,分別給兩個(gè)站點(diǎn)新建監控表,添加通信數據區,監控。如圖 21 所示。
圖 21 通信測試
圖 22 地址對應關(guān)系
從圖中可以看到,當 CP343-1 作為控制器時(shí),其傳送的地址需從0開(kāi)始的。地址對應排列關(guān)系以邏輯地址大小為序。地址如果出現間隔時(shí),如例子中,沒(méi)有組態(tài)的地址區 IB0~2(QB0~1) 及其對應的 MB100~101(MB200~201) 也將被傳送。
電話(huà):13818569113
郵箱:13818569113@139.com
網(wǎng)址:http://m.openxml.net/
地址:上海青浦區北青公路7171號111-112室