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 所示。
圖 1、在新項目中組态 S7-1200 和 ET200SP
圖 2、設定 S7-1200 參數
圖 3、設定 ET200SP 參數
1-2 程式設計調用 LPNDR_ReadGlobalInfo 函數塊
通過庫選項在全局庫中打開 PROFINET 資料記錄庫,從庫中調用 LPNDR_ReadGlobalInfo 函數塊,如圖 4 所示。
圖 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 所示。
圖 5、讀取 S7-1200 接口資訊
圖 6、讀取 ET200SP 接口資訊
2. 讀取MRP環狀态
使用 LPNDR_ReadMRPState 函數塊可以讀取 PROFINET 裝置(MRP管理者)的 MRP 環的狀态。
2-1 組态程式設計
使用 TIA PORTAL V17 建立一個新項目,組态 CPU S7-1200、分布式IO ET200SP 及 SCALANCE X204 IRT 交換機,網絡視圖如圖 7 所示,并組态拓撲視圖,如圖 8 所示。
圖 7、網絡視圖組态
圖 8、拓撲視圖組态
分别設定 S7-1200、ET200SP 及 SCALANCE X204 IRT 的媒體備援角色,将 S7-1200 與 ET200SP 設定為用戶端,将 SCALANCE X204 IRT 設定為管理者,如圖 9、10、11 所示。
圖9、組态 S7-1200 為媒體備援用戶端
圖 10、組态 ET200SP 為媒體備援用戶端
圖 11、組态 SCALANCE X204 IRT 為媒體備援管理者
2-2 程式設計調用 LPNDR_ReadMRPState 函數塊
程式設計調用 LPNDR_ReadMRPState 函數塊,用于檢測 MRP 環狀态,如圖 12 所示。
圖 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 所示。
圖 13、MRP 環閉合狀态