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