天天看點

通過 PROFINET 資料記錄庫讀取 S7-1200 IP 位址、MAC 位址及 MRP 環狀态

作者:工控WJX

1. 讀取 IP 位址和 MAC 位址

使用 LPNDR_ReadGlobalInfo 函數塊可以讀取 PROFINET 裝置的 IP 位址和 MAC 位址。

1-1 使用 TIA PORTAL V17 建立項目

使用 TIA PORTAL V17 建立一個新項目,組态 CPU S7-1200 與分布式 IO ET200SP ,設定 IP 位址,并确認裝置名稱後下載下傳到 PLC 中,如圖 1、2、3 所示。

通過 PROFINET 資料記錄庫讀取 S7-1200 IP 位址、MAC 位址及 MRP 環狀态

圖 1、在新項目中組态 S7-1200 和 ET200SP

通過 PROFINET 資料記錄庫讀取 S7-1200 IP 位址、MAC 位址及 MRP 環狀态

圖 2、設定 S7-1200 參數

通過 PROFINET 資料記錄庫讀取 S7-1200 IP 位址、MAC 位址及 MRP 環狀态

圖 3、設定 ET200SP 參數

1-2 程式設計調用 LPNDR_ReadGlobalInfo 函數塊

通過庫選項在全局庫中打開 PROFINET 資料記錄庫,從庫中調用 LPNDR_ReadGlobalInfo 函數塊,如圖 4 所示。

通過 PROFINET 資料記錄庫讀取 S7-1200 IP 位址、MAC 位址及 MRP 環狀态

圖 4、調用 LPNDR_ReadGlobalInfo 函數塊

表 1、LPNDR_ReadGlobalInfo 引腳說明

參數 聲明 資料類型 說明
execute IN Bool 讀資料記錄
hwId IN HW_IO PROFINET 接口硬體辨別符
mode IN Int

允許值:

1: 接口資訊

2: MRP 資訊

3: 端口資訊

4:端口連接配接狀态

5:端口統計

busy OUT Bool 指令執行中
done OUT Bool 指令執行完成
error OUT Bool 發生錯誤
status OUT Word 錯誤說明
DataRecord IN_OUT Version

将資訊讀取到的目标區域

根據“mode”參數選擇資料類型聲明目标區域

程式段 1 中,用于讀取 CPU 1215C 的接口資訊,是以 hwId 選擇 PLC PROFINET 接口的硬體辨別符;mode 選擇 1,讀取接口資訊;DataRecord 選擇資料類型為“LPNDR_typeInterfaceInformation”用于接收讀取到的接口參數。

程式段 2 中,用于讀取 ET200SP 的接口資訊,是以 hwId 選擇 ET200SP PROFINET 接口的硬體辨別符;mode 選擇 1 ,讀取接口資訊;DataRecord 選擇資料類型為“LPNDR_typeInterfaceInformation”用于接收讀取到的接口參數。

1-3 測試結果

分别觸發程式段 1、程式段 2 中功能塊的 execute 管腳,執行程式後在 DataRecord 管腳連接配接的變量中讀取到相應的接口資訊,如圖 5 、6 所示。

通過 PROFINET 資料記錄庫讀取 S7-1200 IP 位址、MAC 位址及 MRP 環狀态

圖 5、讀取 S7-1200 接口資訊

通過 PROFINET 資料記錄庫讀取 S7-1200 IP 位址、MAC 位址及 MRP 環狀态

圖 6、讀取 ET200SP 接口資訊

2. 讀取MRP環狀态

使用 LPNDR_ReadMRPState 函數塊可以讀取 PROFINET 裝置(MRP管理者)的 MRP 環的狀态。

2-1 組态程式設計

使用 TIA PORTAL V17 建立一個新項目,組态 CPU S7-1200、分布式IO ET200SP 及 SCALANCE X204 IRT 交換機,網絡視圖如圖 7 所示,并組态拓撲視圖,如圖 8 所示。

通過 PROFINET 資料記錄庫讀取 S7-1200 IP 位址、MAC 位址及 MRP 環狀态

圖 7、網絡視圖組态

通過 PROFINET 資料記錄庫讀取 S7-1200 IP 位址、MAC 位址及 MRP 環狀态

圖 8、拓撲視圖組态

分别設定 S7-1200、ET200SP 及 SCALANCE X204 IRT 的媒體備援角色,将 S7-1200 與 ET200SP 設定為用戶端,将 SCALANCE X204 IRT 設定為管理者,如圖 9、10、11 所示。

通過 PROFINET 資料記錄庫讀取 S7-1200 IP 位址、MAC 位址及 MRP 環狀态

圖9、組态 S7-1200 為媒體備援用戶端

通過 PROFINET 資料記錄庫讀取 S7-1200 IP 位址、MAC 位址及 MRP 環狀态

圖 10、組态 ET200SP 為媒體備援用戶端

通過 PROFINET 資料記錄庫讀取 S7-1200 IP 位址、MAC 位址及 MRP 環狀态

圖 11、組态 SCALANCE X204 IRT 為媒體備援管理者

2-2 程式設計調用 LPNDR_ReadMRPState 函數塊

程式設計調用 LPNDR_ReadMRPState 函數塊,用于檢測 MRP 環狀态,如圖 12 所示。

通過 PROFINET 資料記錄庫讀取 S7-1200 IP 位址、MAC 位址及 MRP 環狀态

圖 12、調用 LPNDR_ReadMRPState 函數塊

表 2、LPNDR_ReadMRPState 引腳說明

參數 聲明 資料類型 說明
execute IN Bool 讀資料記錄
hwId IN HW_IO MRP 管理者接口硬體辨別符
busy OUT Bool 指令執行中
done OUT Bool 指令執行完成
error OUT Bool 發生錯誤
mrpRingState OUT Word MRP 環狀态
status OUT Word 錯誤說明

2-3 測試結果

當 MRP 環連接配接閉合情況下,通過觸發 execute 管腳執行 LPNDR_ReadMRPState 函數塊,可以看到輸出管腳 mrpRingState 為 1,說明 MRP 環為閉合狀态,如圖 13 所示。

當 MRP 環連接配接打開情況下,通過觸發 execute 管腳執行 LPNDR_ReadMRPState 函數塊,可以看到輸出管腳 mrpRingState 為 0,說明 MRP 環為打開狀态,如圖 14 所示。

通過 PROFINET 資料記錄庫讀取 S7-1200 IP 位址、MAC 位址及 MRP 環狀态

圖 13、MRP 環閉合狀态

通過 PROFINET 資料記錄庫讀取 S7-1200 IP 位址、MAC 位址及 MRP 環狀态

繼續閱讀