在安全系統(tǒng)中F-CPU之間可以借助 PN/PN Coupler 模塊進(jìn)行控制器之間的安全相關(guān)的通信。通信通過兩個(gè)安全應(yīng)用程序塊進(jìn)行,即SENDDP塊用于發(fā)送數(shù)據(jù),而RCVDP塊用于接收數(shù)據(jù)。這些塊由用戶在F-CPU相應(yīng)的安全程序中調(diào)用,以故障安全的方式將 16 個(gè)數(shù)據(jù)類型為 BOOL 的數(shù)據(jù)和 2 個(gè)數(shù)據(jù)類型為 INT 的數(shù)據(jù)或者 1 個(gè)數(shù)據(jù)類型為 DINT(S7-1200、S7-1500)的數(shù)據(jù)發(fā)送至另一 F-CPU。
在本例程中,將CPU1513F-1PN作為一個(gè) IO 控制器,CPU1215FC作為另一個(gè) IO 控制器,通過 PN/PN Coupler(V4.2)實(shí)現(xiàn)兩個(gè)CPU的安全相關(guān)的通信。CPU1513F在安全程序中使用F應(yīng)用程序塊SENDDP進(jìn)行發(fā)送,CPU1215FC在安全程序中用RCVDP進(jìn)行接收,以安全方式一次傳送16個(gè)BOOL型數(shù)據(jù)和2個(gè)INT型數(shù)據(jù)。注意:必須在安全程序開始時(shí)調(diào)用RCVDP,必須在安全程序結(jié)束時(shí)調(diào)用SENDDP。
示例中使用的軟硬件環(huán)境
硬件:
CPU1513F-1PN 6ES7 513-1FL02-0AB0,V2.8.3
CPU1215FC DC/DC/DC 6ES7 215-1AF40-0CB0,V4.4.1
PN/PN Coupler 6ES7 158-3AD10-0XA0,V4.2.0
軟件:
STEP7 Professional V16 Update2
STEP7 Safety V16
1.第一種情況(同一項(xiàng)目中操作)
這種情況下兩個(gè)CPU 使用 STEP7 V16 在一個(gè)項(xiàng)目中操作,詳細(xì)步驟如下。
1.1 使用 STEP7 V16 創(chuàng)建項(xiàng)目加入 S7-1500和S7-1200 站
使用 STEP7 V16 創(chuàng)建一個(gè)新項(xiàng)目,并通過“添加新設(shè)備”分別組態(tài) S7-1500和S7-1200 站,選擇對(duì)應(yīng)型號(hào) CPU,創(chuàng)建各自的PN/IE子網(wǎng),設(shè)置各自的 IP 地址,并確認(rèn)設(shè)備名稱。
本示例中CPU151F設(shè)備名稱是PLC_1,CPU1215FC設(shè)備名稱是PLC_2。如圖 1 所示。
圖 1 在新項(xiàng)目中創(chuàng)建兩個(gè)PLC 站
1.2 配置PN/PN Coupler
在“硬件目錄”中找到 PN/PN Coupler,確認(rèn)訂貨號(hào),選擇版本,拖入到“網(wǎng)絡(luò)視圖”中,如圖 2 所示。
圖 2 在項(xiàng)目中拖入PN Coupler V4.2版本
圖 3 將PN Coupler PROFINET接口 X1連接到CPU1513F的PROFINET接口
圖 4 組態(tài)PN Coupler PROFINET接口X1部分的IP地址和設(shè)備名稱
圖 5 組態(tài)PN Coupler PROFINET接口X2部分的IP地址和設(shè)備名稱
注意:安全通信時(shí)要使用固定格式的傳輸區(qū)類型,這里是CPU1513F向CPU1215FC發(fā)送數(shù)據(jù),所以要選擇輸出長(zhǎng)度12個(gè)字節(jié)的類型。
圖 6 組態(tài)PN Coupler 地址映射
兩個(gè)CPU在同一個(gè)項(xiàng)目中,系統(tǒng)自動(dòng)在PN Coupler PROFINET接口X2的PLC_2側(cè)自動(dòng)生成了一個(gè)匹配的傳輸區(qū)“PROFISAFE輸入/輸出 12字節(jié)/6字節(jié)”,如圖 7 所示。
注意:最好使用系統(tǒng)自動(dòng)分配的IO地址,如果要進(jìn)行修改,要保證傳輸區(qū)分配的輸入地址和輸出地址的起始地址相同。
圖 7 PN Coupler 地址映射信息
圖 8 傳輸區(qū)在兩個(gè)CPU的地址分配情況
1.3 分配PN/PN Coupler設(shè)備名稱
鼠標(biāo)左鍵點(diǎn)中PN Coupler 左側(cè)X1網(wǎng)絡(luò)接口,按住鼠標(biāo)拖拽連接到CPU1513F的PROFINET接口,這樣PN Coupler的PROFINET接口X1就連接到PN/IE_1子網(wǎng),分配IO控制器為PLC_1,如圖 3 所示。然后設(shè)置X1接口的IP地址和設(shè)備名稱,如圖 4 所示。。
同樣方法將PN Coupler的PROFINET接口X2拖向CPU1215FC的PROFINET接口,網(wǎng)絡(luò)會(huì)顯示連接到PN/IE_2子網(wǎng),自動(dòng)分配IO控制器為PLC_2。PN Coupler的左下角會(huì)顯示“多重分配”字樣,然后設(shè)置X2接口的IP地址和設(shè)備名稱。如圖 5 所示。
在PN Coupler屬性界面中“轉(zhuǎn)換映射”創(chuàng)建“傳輸區(qū)_1”,類型選擇“PROFISAFE輸入/輸出 6字節(jié)/12字節(jié)”,如圖 6 所示。
將兩個(gè)安全CPU都編譯下載后,還需要在線分配PN Coupler設(shè)備名稱后PROFINET通信才能正常,而且由于PN Coupler的PROFINET網(wǎng)口有兩個(gè),要分別進(jìn)行操作。
在前面的組態(tài)配置中CPU1513F連接的是PN Couler上PROFINET接口X1網(wǎng)絡(luò),所以在實(shí)際的網(wǎng)線連接時(shí)要將CPU1513F的PROFINET網(wǎng)線插入到PN Coupler左側(cè)總線適配器的網(wǎng)口上。同樣,CPU1215FC的網(wǎng)線應(yīng)該插入到PN Coupler右側(cè)總線適配器的網(wǎng)口上。
圖 9 PN Coupler模塊面板圖
以CPU1513F側(cè)操作為例,介紹分配設(shè)備名稱操作。首先要保證計(jì)算機(jī)的網(wǎng)線連接到PN Coupler上PROFINET接口X1網(wǎng)絡(luò)中。使用鼠標(biāo)右擊PN Coupler左側(cè),彈出的對(duì)話框中選擇分配設(shè)備名稱,如圖 10 所示。
圖 10 鼠標(biāo)右擊左側(cè),打開分配設(shè)備名稱界面
進(jìn)入分配設(shè)備名稱界面后,點(diǎn)擊“更新列表”會(huì)顯示出網(wǎng)絡(luò)中的可訪問節(jié)點(diǎn)。核對(duì)MAC地址與PN Coupler上面印刷的MAC ADDRESS 1相同,確保是PN Coupler上的PROFINET X1接口。點(diǎn)擊“分配名稱”,如圖11所示。
圖 11 分配設(shè)備名稱操作
操作成功后,在狀態(tài)欄會(huì)顯示“確定”,如圖 12所示。
圖 12 分配設(shè)備名稱操作完成
采用同樣的步驟,對(duì)PN Coupler的PROFINET接口X2分配設(shè)備名稱,完成后網(wǎng)絡(luò)視圖在線后狀態(tài)顯示通信正常,如圖13。
注意:這時(shí)計(jì)算機(jī)的網(wǎng)線要連接到PN Coupler上PROFINET接口X2網(wǎng)絡(luò)中,而且使用鼠標(biāo)右擊PN Coupler右側(cè),核對(duì)MAC地址時(shí)要與PN Coupler上面印刷的MAC ADDRESS 2相同。
圖13 硬件組態(tài)在線狀態(tài)
1.4 編程、下載
安全相關(guān)的通信除了要進(jìn)行硬件組態(tài)外,還要使用專門的安全通信程序塊完成數(shù)據(jù)的發(fā)送和接收。
在CPU1513F程序塊中添加F-DB,命名“SendData”建立16個(gè)BOOL類型和2個(gè)INT類型變量,作為發(fā)送數(shù)據(jù)。在CPU1215FC程序塊中添加F-DB,命名“RcvData”建立16個(gè)BOOL類型和2個(gè)INT類型變量用于接收數(shù)據(jù),如圖14。
圖 14 CPU1513F中的發(fā)送數(shù)據(jù)塊結(jié)構(gòu)
圖 15 CPU1215FC中的接收數(shù)據(jù)塊結(jié)構(gòu)
示例中是CPU1513F向CPU1215FC發(fā)送數(shù)據(jù),所以在CPU1513F的安全主程序FB1中調(diào)用SENDDP數(shù)據(jù)發(fā)送功能塊,注意參數(shù)DP_DP_ID和LADDR參數(shù)的填寫,指令所在位置如圖16。
圖 16 指令所在位置
LADDR參數(shù)需要到PN Coupler X1接口部分的屬性中查找“傳輸區(qū)_1”的系統(tǒng)常數(shù),如圖17。
圖 17 查找PN Coupler X1接口配置的傳輸區(qū)_1的系統(tǒng)常數(shù)
CPU1215FC的安全主程序FB1中調(diào)用RCVDP數(shù)據(jù)接收功能塊,參數(shù)DP_DP_ID要與CPU1513F的SENDDP一致,如圖16。
圖 18 CPU1215FC中的接收功能塊DP_DP_ID要與CPU1513F中的發(fā)送功能塊一致
LADDR參數(shù)需要到PN Coupler X2接口部分的屬性中查找“傳輸區(qū)_1”的系統(tǒng)常數(shù),如圖19。
圖 19 查找PN Coupler X2接口配置的傳輸區(qū)_1的系統(tǒng)常數(shù)
示例中CPU1513F向CPU1215FC發(fā)送了2個(gè)INT類型的數(shù)據(jù),如果要發(fā)送DINT類型的數(shù)據(jù),只需要將要發(fā)送的數(shù)據(jù)地址填寫在SENDDP功能指令的輸入?yún)?shù)SD_DI_00處,同時(shí)在輸入?yún)?shù)DINTMODE=1就可以。
這時(shí)CPU1215FC就可以在RCVDP功能指令的輸出參數(shù)RD_DI_00處接收到DINT數(shù)據(jù)。注意:不能同時(shí)傳送INT和DINT類型的數(shù)據(jù)。
將兩個(gè)PLC的程序進(jìn)行編譯,然后分別下載到PLC。
1.5 通訊測(cè)試
檢查無錯(cuò)誤后,分別給兩個(gè)站點(diǎn)新建監(jiān)控表,對(duì)數(shù)據(jù)進(jìn)行監(jiān)控,如圖 20 所示。
圖 20 通信測(cè)試
1.6 發(fā)生通信錯(cuò)誤時(shí)的處理
如果發(fā)生通信錯(cuò)誤,發(fā)送方(SENDDP指令)會(huì)置位輸出參數(shù) ERROR 和 SUBS_ON =1,同時(shí)在輸出參數(shù)DIAG處顯示有關(guān)所發(fā)生通信錯(cuò)誤類型的信息。
接收方(RCVDP 指令)會(huì)將輸入?yún)?shù) SUBBO_xx 和 SUBI_xx 或 SUBDI_00所指定的故障安全值替代到對(duì)應(yīng)輸出,同時(shí)置位輸出ERROR和 SUBS_ON =1,在輸出參數(shù)DIAG處顯示有關(guān)所發(fā)生通信錯(cuò)誤類型的信息。
圖 21 SENDDP/RCVDP 指令的DIAG的結(jié)構(gòu)說明
當(dāng)不再檢測(cè)到通信錯(cuò)誤時(shí),RCVDP 指令會(huì)置位輸出參數(shù)ACK_REQ = 1,這時(shí)在輸入?yún)?shù) ACK_REI 處輸入上升沿進(jìn)行確認(rèn),安全數(shù)據(jù)傳遞才會(huì)恢復(fù)。
圖 22 通信錯(cuò)誤及確認(rèn)的時(shí)序圖
在本示例中,為了演示通信錯(cuò)誤的確認(rèn)過程,故意制造了一個(gè)通信錯(cuò)誤。
1、將CPU1513F切換到停止模式,CPU1215FC中的RCVDP指令置位輸出ERROR和 SUBS_ON =1,同時(shí)在輸出參數(shù)DIAG處顯示信息16#10。
圖 23 CPU1215FC RCVDP指令報(bào)錯(cuò)
2、根據(jù)DIAG的提示信息,查找故障原因,將CPU1513F切換到運(yùn)行模式后,錯(cuò)誤排除。RCVDP指令置位輸出ACK_REQ =1,請(qǐng)求重新集成。
圖 24 CPU1215FC RCVDP指令請(qǐng)求確認(rèn)
3、對(duì)RCVDP指令的輸入?yún)?shù)ACK_REI置位,對(duì)發(fā)送數(shù)據(jù)的重新集成進(jìn)行確認(rèn)后,數(shù)據(jù)傳遞恢復(fù)。
圖 25 CPU1215FC RCVDP指令進(jìn)行確認(rèn)
2.第二種情況(不在同一項(xiàng)目中操作)
如果兩個(gè)CPU是分開在兩個(gè)TIA項(xiàng)目中,只需要將PN Coupler的兩個(gè)PROFINET接口的配置分開來操作就可以了。即,在CPU1513F的項(xiàng)目中配置PN Coupler上的PROFINET X1接口,在CPU1215FC的項(xiàng)目中配置PN Coupler上的RPOFINET X2接口。
對(duì)于安全通信程序塊SENDDP/RCVDP的調(diào)用和參數(shù)填寫,與前面在同一個(gè)項(xiàng)目中的操作是完全相同的。
2.1 S7-1500 項(xiàng)目中配置PROFINET X1接口
創(chuàng)建一個(gè)新項(xiàng)目,并通過“添加新設(shè)備”組態(tài) S7-1500 站,在網(wǎng)絡(luò)視圖中配置PN Coupler。鼠標(biāo)左鍵點(diǎn)中PN Coupler 左側(cè)X1網(wǎng)絡(luò)接口,按住鼠標(biāo)拖拽連接到CPU1513F的PROFINET接口,這樣PN Coupler的PROFINET接口X1就連接到CPU1513F。然后設(shè)置X1接口的IP地址和設(shè)備名稱,操作方法與前面的都是相同的,只是不需要再對(duì)PN Coupler上的PROFINET X2接口進(jìn)行配置。之后在“轉(zhuǎn)換映射”中創(chuàng)建“傳輸區(qū)_1”,在PROFINET接口[X1]下面,類型選擇“PROFISAFE輸入/輸出 6字節(jié)/12字節(jié)”,如圖 21 所示。
圖 26 在S7-1500項(xiàng)目中配置PROFINET接口[X1]
2.2 S7-1200 項(xiàng)目中配置PROFINET X2接口
創(chuàng)建一個(gè)新項(xiàng)目,并通過“添加新設(shè)備”組態(tài) S7-1200 站,在網(wǎng)絡(luò)視圖中配置PN Coupler。鼠標(biāo)左鍵點(diǎn)中PN Coupler 左側(cè)X2網(wǎng)絡(luò)接口,按住鼠標(biāo)拖拽連接到CPU1215FC的PROFINET接口,這樣PN Coupler的PROFINET接口X1就連接到CPI1215FC上。然后設(shè)置X2接口的IP地址和設(shè)備名稱,操作方法與前面的都是相同的,只是不需要再對(duì)PN Coupler上的PROFINET X1接口進(jìn)行配置。之后在“轉(zhuǎn)換映射”中創(chuàng)建“傳輸區(qū)_1”,在PROFINET接口[X2]下面類型選擇“PROFISAFE輸入/輸出 12字節(jié)/6字節(jié)”,如圖 22 所示。
圖 27 在S7-1200項(xiàng)目中配置PROFINET接口[X2]
編輯:黃飛
?
評(píng)論
查看更多