WinCC 面向物件的高效組態開發方式

原文作者:朱飛翔 -

西門子工業技術支援中心

遇到客戶問:

工廠裡有幾百個電機,每個電機都有成組的控制命令和狀態資料,手動建千百個按鈕和I/O域,再去連千百個變數,我要瘋了

WinCC 面向物件的高效組態開發方式

能否以模組方式建立電機物件?

之後能否統一修改這些電機的屬性,如顏色?

總之,就是想要:簡單!複用!省時!

WinCC 的答案就是:

面板!直接拖拽“結構變數”到畫面中,搞定

WinCC 面向物件的高效組態開發方式

本文以示例方式來介紹這個話題,包括:

示例功能介紹

示例實現步驟

示例源程式下載連結及其它

功能介紹

WinCC 中直接拖拽“結構變數”到畫面中,自動生成3個不同面板(Faceplate)例項,對應現場3個實際物件,顯示各自的狀態。

WinCC 面向物件的高效組態開發方式

注:最新版WinCC 7。5 SP2還可以一次性拖拽多個UDT變數,自動生成多個面板例項!

組態步驟

在博途Step7中,建立UDT使用者資料型別和變數

新建PLC專案,並建立使用者資料型別“TankUnit”

WinCC 面向物件的高效組態開發方式

新建資料塊“MyDB”,然後建立三個資料型別為“TankUnit”的變數,Tank1、Tank2和Tank3。

WinCC 面向物件的高效組態開發方式

在博途Step7中,匯出 PLC 變數

滑鼠右擊 PLC 專案的名稱 (需安裝SIMATIC SCADA Export匯出工具:

https://support。industry。siemens。com/cs/de/en/view/109748955/zh)

WinCC 面向物件的高效組態開發方式

匯出Zip格式檔案,完成博途Step7中的組態

WinCC 面向物件的高效組態開發方式

WinCC V 7。5中的組態,建立結構變數

在WinCC變數管理的PLC連線中匯入變數。選擇“從檔案中載入”。選擇前面匯出的ZIP檔案。

WinCC 面向物件的高效組態開發方式

WinCC 面向物件的高效組態開發方式

在開啟的介面中,在“AS 結構”頁,選擇結構“TankUnit”,在滑鼠右鍵彈出選單中選擇“建立結構”。WinCC 中就建立了和PLC相同的結構型別。

WinCC 面向物件的高效組態開發方式

然後在左側選中“ProgramBlocksFolder->MyDB”資料塊,在畫面中間的“AS 符號”標題欄點選滑鼠右鍵,在彈出選單中選擇“全選”。

WinCC 面向物件的高效組態開發方式

畫面中的“訪問”項將被啟用。PLC 中的變數成功匯入到WinCC專案

WinCC 面向物件的高效組態開發方式

在變數管理中,選中新建的連線,並切換到“變數”頁。就可以看到新建立的變數。

WinCC 面向物件的高效組態開發方式

修改WinCC中的結構變數,在“TankUnit”中新建一個結構型別元素“Name”,並設定為內部變數。完成WinCC中結構變數的建立

WinCC 面向物件的高效組態開發方式

WinCC V 7。5中的組態,建立面板型別

在WinCC圖形編輯器中選擇“檔案->新建面板型別”。在面板中新增物件。並設定靜態引數。如面板的畫面寬度為200,高度為280等。本例中新增:靜態文字1、輸入輸出域1、條形圖1、按鈕1和2個SVG物件。其中一個是“SVG全域性庫->IndustryGraphicLibraryV2。0->Tanks->Tank2”,另一個是“SVG全域性庫->IndustryGraphicLibraryV2。0->Valves->ControlValve”。並調整物件引數

WinCC 面向物件的高效組態開發方式

透過圖形編輯器“編輯->組態面板型別”選單,開啟組態面板型別對話方塊。切換到“變數”頁。透過拖拽方式把“變數/結構型別”中的“TankUnit”新增到左側“所選變數”中,然後把相應物件的屬性拖拽到變數下。

WinCC 面向物件的高效組態開發方式

還可滑鼠右鍵選擇相應的物件設定更新週期。

WinCC 面向物件的高效組態開發方式

面板中各物件的功能

名稱

功能

對應變數

靜態文字1

用於顯示物件的名稱

TankUnit。Name

輸入輸出域1和條形圖1

用於顯示“TankUnit。Level”的數值

TankUnit。Level

按鈕1

用於切換“TankUnit。State”的狀態

TankUnit。State

SVG物件(Valve)

用於顯示“TankUnit。Valve”的狀態

TankUnit。Valve

SVG物件(Tank)

僅用於畫面顯示

其中,靜態文字1、輸入輸出域1和條形圖1這三個控制元件已經透過拖拽方式和變數建立了關聯。對於按鈕1首先需要設定“屬性->效果->全域性顏色方案”為“否”。然後在“事件->滑鼠->單擊滑鼠”中新增VBS動作並編寫指令碼。該指令碼用於切換“TankUnit。State”的狀態。

WinCC 面向物件的高效組態開發方式

用“TankUnit。State”的值控制按鈕1的背景顏色來顯示執行結果。“TankUnit。State”為1時顯示綠色,為0時顯示紅色。在按鈕1的“動畫”頁,雙擊“新增新動畫”新增“動態化屬性0”,在“過程”中啟用“例項特定變數”,然後選擇“TankUnit。State”作為變數。透過新增屬性新增“背景顏色”屬性。實現變數特定數值和物件屬性顏色之間的關聯。

WinCC 面向物件的高效組態開發方式

對於SVG物件(Valve),用“TankUnit。Valve”的值控制物件的顏色。“TankUnit。Valve”為1時物件顯示綠色,為0時物件顯示紅色。在SVG物件(Valve)的“動畫”頁,雙擊“新增新動畫”新增“動態化屬性0”,在“過程”中啟用“例項特定變數”,然後選擇TankUnit。Valve”作為變數。在新增屬性中新增“BasicColor”和“ContrastColor”屬性。實現變數特定數值和屬性之間的關聯。

WinCC 面向物件的高效組態開發方式

完成面板型別組態,儲存為“TankTemplate”。

WinCC V 7。5中的組態,建立面板例項

在WinCC圖形編輯器中,選擇“檔案->新建”開啟編輯介面。新建畫面,在畫面的“事件->其它->開啟畫面”事件下新建VBS動作用於初始化變數“TankUnit。Name”。本例中將會建立三個面板例項,因此初始化三個變數的值。

WinCC 面向物件的高效組態開發方式

WinCC 面向物件的高效組態開發方式

在WinCC圖形編輯器的選單欄“檢視->工具欄”下啟用“變數”項。開啟變數瀏覽介面。導航到相應的連線,介面會列出所有的結構變數例項。

WinCC 面向物件的高效組態開發方式

選中結構變數,按住滑鼠左鍵直接拖拽到畫面上,然後鬆開。彈出選單中會列出引用該結構變數的所有面板型別。選擇需要建立的面板型別,就自動建立了一個和該結構變數相關聯的面板例項。

WinCC 面向物件的高效組態開發方式

最後透過“幾何”屬性設定面板例項大小,透過“其它->縮放模式”設定顯示比例。通常例項的寬度和高度和麵板模板一致,縮放模式設定為1:1。

WinCC 面向物件的高效組態開發方式

在例項的“使用者自定義”屬性中可以看到,該面板例項已經和結構變數建立了關聯。

WinCC 面向物件的高效組態開發方式

同樣的方法只需拖拽結構變數到WinCC畫面上就可以建立多個例項。本例中將新增三個面板例項,分別對應於Tank1、Tank2和Tank3。程式啟用後的執行效果如文章首圖。

源程式及其它資訊

本文源程式

(版本:WinCC V7。5 Update 2,Step 7 V15 Update 3)

連結:

https://pan。baidu。com/s/1dclGzz1AG1wPHduFyUJNCA

提取碼:

2I5R

面板(Faceplate)基礎知識

參考:WinCC V7 中如何組態面板( Faceplate )

https://support。industry。siemens。com/cs/cn/zh/view/77914614