徐曉彬,沈 浪,黃 炎
(江蘇省金屬板材智能裝備重點實驗室,江蘇 揚州 225200)
數控轉塔沖床HMI操作軟件,通常采用數控系統供應商提供的通用HMI操作軟件,其HMI操作軟件可應用于多種適配的機床。對于數控轉塔沖床OEM廠商來說,添加一些個性化的功能變得非常困難,雖然類似西門子數控系統提供了HMI的功能擴展開發工具,但因種種限制導致功能擴展性差,功能實現困難。近年來隨著德國工業4.0和中國制造2025的提出,數控機床的智能化提出了更高的要求,數控機床需要與MES、ERP等管理系統互連互通,HMI操作軟件必須提供與其他設備數據交互的標準接口,但通用性數控系統HMI并不具備此功能。基于以上原因,OEM廠商非常有必要自主開發專用的HMI操作軟件,不僅可以根據機床特點提供更加人性化的操作體驗,還可以提供更多的擴展功能。
基于美學、人機工程學以及工業軟件的特殊性,HMI軟件布局設計需遵循以下原則:①滿足企業形象及產品功能要求;②滿足材料加工工藝和質地要求;③滿足人與產品相適應以及作業環境要求;④符合產品造型設計美學法則及符合時代審美要求;⑤符合不同地區和國家對色彩的愛好和禁忌要求。
按照以上設計原則,軟件采用黑灰色為主色調,以藍色為輔助色起強調作用,整體給人一種沉穩舒服的感覺。整個頁面分為4個功能區域:頂部狀態顯示區、左側主功能導航區、底部命令選擇區、中間內容顯示區。針對觸摸屏操作,按鈕等可點擊控件的大小都做了特定的優化,確保了觸摸屏操作的準確性和舒適性。
通過對數控轉塔沖床的功能需求分析,本軟件主要包括以下基本功能模塊:①程序管理模塊,包括加工程序的預覽、編輯、加載、復制、刪除、導入、導出等功能;②機床狀態模塊,包括機床手動控制、MDA運行、自動運行等功能;③轉塔模具模塊,包括轉塔上模具的圖形化顯示、模具自動匹配、模具沖壓計數等功能;④機床設置模塊,包括系統參數的修改、用戶等級設置;軟件語言的設置等功能;⑤維護診斷模塊,包括IO狀態監控、備份和恢復功能、維護保養提示等功能;⑥報警信息模塊,包括報警信息顯示、歷史報警記錄等功能。頁面設計如圖1所示。基本功能模塊以外,根據實際需求預留標準功能拓展接口,例如能源監控、遠程診斷等。
WPF為Windows Presentation Foundation的首字母縮寫,中文譯為“Windows呈現基礎”。WPF是微軟新一代圖形系統,運行于.NET Framework 3.0及以上版本,為用戶界面、2D/3D圖形、文檔和媒體提供了統一的描述和操作方法[1]。WPF相對于以前Windows用戶界面開發工具來說,向前跨出了巨大的一步,主要有以下優點:

圖1 數控轉塔沖床HMI程序管理設計
(1)硬件加速:通過DirectX執行所有WPF繪圖操作,可充分利用現代顯卡的最新功能;
(2)分辨率無關性:WPF能夠根據系統DPI設置,非常靈活地放大和縮小顯示的內容,以使其適合所用的顯示器和顯示選擇;
(3)聲明式用戶界面:WPF中運用XAML語言定義用戶界面。XAML語言的語法類似于XML,通過XAML,不必編寫代碼即可創建窗口。特別是XAML的能力不局限于創建一成不變的用戶界面。可以使用許多工具,如數據綁定和觸發器等自動運行基本的用戶界面行為,而不需要編寫C#代碼[2]。
本軟件采用WPF技術作為軟件開發的基礎,旨在開發出用戶體驗更佳的數控轉塔沖床的HMI軟件。
軟件采用了MVVM軟件設計模式,MVVM是Model-View-ViewModel的簡寫。MVVM模式是微軟WPF和Silverlight架構師John Gossman在2005年提出的。MVVM模式是基于微軟.Net Framework以及WPF產生和發展的,和經典的MVC模式一樣,MVVM模式將數據層、業務邏輯層以及表現層區分開來,然而,它充分利用了WPF中的XAML和Data Binding的功能,最大程度地使得業務邏輯與界面分離開[3]。
使用MVVM模式,程序的UI和其背后的展現與業務邏輯將被分離至三個類中[4]:①視圖(View),封裝UI與UI邏輯;②模型視圖(ViewModel),封裝展示邏輯與狀態;③模型(Model),封裝程序的業務邏輯以及數據處理。
在MVVM模式中,視圖(View)通過數據綁定以及命令行與視圖模型(ViewModel)交互,并改變事件通知。視圖模型(VIewModel)查詢觀察并協調模型更新、轉換、校驗以及聚合數據,從而在視圖(View)顯示。圖2展示了MVVM類以及它們之間的交互。

圖2 視圖(View)與視圖模型(ViewModel)交互示意圖
MVVM模式的主要目的是分離視圖(View)和模型(Model),其有以下優點:
(1)低耦合,視圖(View)可獨立于Model變化和修改,一個ViewModel可以綁定到不同的"View"上,當View變化時Model可以不變,當Model變化時View也可以不變。
(2)可重用性,開發人員可以把一些視圖邏輯放在一個ViewModel里面,讓很多view重用這段視圖邏輯。
(3)獨立開發,開發人員可以專注于業務邏輯和數據的開發(ViewModel),設計人員可以專注于頁面設計,而且可以并行工作,提高軟件開發效率。
(4)可測試,界面素來是比較難于測試的,而現在測試可以針對ViewModel來寫。
軟件采用Adobe Illustrator+VisualStudio2013的開發工具組合,Adobe Illustrator軟件主要用于軟件頁面布局的設計;VisualStudio2013軟件用于軟件功能的開發,開發語言主要使用了XAML語言和C#語言,XAML語言主要用于頁面布局和動態效果的程序開發,C#語言主要用于軟件業務邏輯和數據處理的程序開發。
下面通過軟件中加工程序列表顯示功能的實現,講解一下MVVM模式在數控轉塔沖床HMI軟件開發中的實際應用。
(1)編寫Model,運用C#語言定義文件的屬性以及獲取文件列表的方法GetFileList

(2)編寫View Model,運用C#語言定義需要綁定到View的FileList屬性、SelectedFile屬性以及獲取文件列表的方法GetFileList

(3)編寫View,運用XAML語言定義用于顯示加工程序列表的控件,并設置控件的外觀,并把View Model中定義的屬性綁定到對應的屬性上,這樣在View中就可以顯示文件列表了,并在用戶選擇一個文件時ViewModel通過屬性SelectedFile知道用戶選擇了哪個文件,從而實現了數據的雙向傳輸,代碼如下:

通過加工程序列表顯示功能的實現可以看出,運用MVVM模式的軟件結構簡單,邏輯清晰,代碼耦合度低、可重用性高。界面設計與后臺邏輯采用不同的語言開發,從根本上實現了界面設計與后臺邏輯代碼的分離,前臺與后臺開發可以同步進行,顯著縮短了軟件的開發周期。
本軟件已完成軟件開發并運行測試,目前應用于江蘇亞威機床股份有限公司數控轉塔沖床。機床操作更人性化,功能擴展也更方便快捷,對提升產品競爭力有很大作用。圖3是軟件實際應用現場。

圖3 HMI軟件機床現場實際應用
[1]劉鐵猛.深入淺出WPF[M].北京:中國水利水電出版社,2010.
[2][美]MatthewMacDonald.WPF編程寶典:C#2012版[M].王德才,譯.北京:清華大學出版社,2012.
[3]劉 立.MVVM模式分析與應用[J].微型電腦應用,2012,28(12):57-60.
[4]Amir Ahani.Intro to the Model-View-ViewModel DesignPattern[EB/OL].https://dzone.com/articles/model-view-viewmodel-design.