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 環閉合狀態
圖 14、MRP 環打開狀態
審核編輯:劉清
-
plc
+關注
關注
5011文章
13297瀏覽量
463342 -
Mac
+關注
關注
0文章
1106瀏覽量
51476 -
S7-1200
+關注
關注
11文章
331瀏覽量
17984
原文標題:通過 PROFINET 數據記錄庫讀取 S7-1200 的 IP 地址、MAC 地址及 MRP 環狀態
文章出處:【微信號:gh_a8b121171b08,微信公眾號:機器人及PLC自動化應用】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
評論