徐曉彬,沈 浪,黃 炎
(江蘇省金屬板材智能裝備重點(diǎn)實(shí)驗(yàn)室,江蘇 揚(yáng)州 225200)
數(shù)控轉(zhuǎn)塔沖床HMI操作軟件,通常采用數(shù)控系統(tǒng)供應(yīng)商提供的通用HMI操作軟件,其HMI操作軟件可應(yīng)用于多種適配的機(jī)床。對(duì)于數(shù)控轉(zhuǎn)塔沖床OEM廠商來說,添加一些個(gè)性化的功能變得非常困難,雖然類似西門子數(shù)控系統(tǒng)提供了HMI的功能擴(kuò)展開發(fā)工具,但因種種限制導(dǎo)致功能擴(kuò)展性差,功能實(shí)現(xiàn)困難。近年來隨著德國工業(yè)4.0和中國制造2025的提出,數(shù)控機(jī)床的智能化提出了更高的要求,數(shù)控機(jī)床需要與MES、ERP等管理系統(tǒng)互連互通,HMI操作軟件必須提供與其他設(shè)備數(shù)據(jù)交互的標(biāo)準(zhǔn)接口,但通用性數(shù)控系統(tǒng)HMI并不具備此功能?;谝陨显颍琌EM廠商非常有必要自主開發(fā)專用的HMI操作軟件,不僅可以根據(jù)機(jī)床特點(diǎn)提供更加人性化的操作體驗(yàn),還可以提供更多的擴(kuò)展功能。
基于美學(xué)、人機(jī)工程學(xué)以及工業(yè)軟件的特殊性,HMI軟件布局設(shè)計(jì)需遵循以下原則:①滿足企業(yè)形象及產(chǎn)品功能要求;②滿足材料加工工藝和質(zhì)地要求;③滿足人與產(chǎn)品相適應(yīng)以及作業(yè)環(huán)境要求;④符合產(chǎn)品造型設(shè)計(jì)美學(xué)法則及符合時(shí)代審美要求;⑤符合不同地區(qū)和國家對(duì)色彩的愛好和禁忌要求。
按照以上設(shè)計(jì)原則,軟件采用黑灰色為主色調(diào),以藍(lán)色為輔助色起強(qiáng)調(diào)作用,整體給人一種沉穩(wěn)舒服的感覺。整個(gè)頁面分為4個(gè)功能區(qū)域:頂部狀態(tài)顯示區(qū)、左側(cè)主功能導(dǎo)航區(qū)、底部命令選擇區(qū)、中間內(nèi)容顯示區(qū)。針對(duì)觸摸屏操作,按鈕等可點(diǎn)擊控件的大小都做了特定的優(yōu)化,確保了觸摸屏操作的準(zhǔn)確性和舒適性。
通過對(duì)數(shù)控轉(zhuǎn)塔沖床的功能需求分析,本軟件主要包括以下基本功能模塊:①程序管理模塊,包括加工程序的預(yù)覽、編輯、加載、復(fù)制、刪除、導(dǎo)入、導(dǎo)出等功能;②機(jī)床狀態(tài)模塊,包括機(jī)床手動(dòng)控制、MDA運(yùn)行、自動(dòng)運(yùn)行等功能;③轉(zhuǎn)塔模具模塊,包括轉(zhuǎn)塔上模具的圖形化顯示、模具自動(dòng)匹配、模具沖壓計(jì)數(shù)等功能;④機(jī)床設(shè)置模塊,包括系統(tǒng)參數(shù)的修改、用戶等級(jí)設(shè)置;軟件語言的設(shè)置等功能;⑤維護(hù)診斷模塊,包括IO狀態(tài)監(jiān)控、備份和恢復(fù)功能、維護(hù)保養(yǎng)提示等功能;⑥報(bào)警信息模塊,包括報(bào)警信息顯示、歷史報(bào)警記錄等功能。頁面設(shè)計(jì)如圖1所示?;竟δ苣K以外,根據(jù)實(shí)際需求預(yù)留標(biāo)準(zhǔn)功能拓展接口,例如能源監(jiān)控、遠(yuǎn)程診斷等。
WPF為Windows Presentation Foundation的首字母縮寫,中文譯為“Windows呈現(xiàn)基礎(chǔ)”。WPF是微軟新一代圖形系統(tǒng),運(yùn)行于.NET Framework 3.0及以上版本,為用戶界面、2D/3D圖形、文檔和媒體提供了統(tǒng)一的描述和操作方法[1]。WPF相對(duì)于以前Windows用戶界面開發(fā)工具來說,向前跨出了巨大的一步,主要有以下優(yōu)點(diǎn):
圖1 數(shù)控轉(zhuǎn)塔沖床HMI程序管理設(shè)計(jì)
(1)硬件加速:通過DirectX執(zhí)行所有WPF繪圖操作,可充分利用現(xiàn)代顯卡的最新功能;
(2)分辨率無關(guān)性:WPF能夠根據(jù)系統(tǒng)DPI設(shè)置,非常靈活地放大和縮小顯示的內(nèi)容,以使其適合所用的顯示器和顯示選擇;
(3)聲明式用戶界面:WPF中運(yùn)用XAML語言定義用戶界面。XAML語言的語法類似于XML,通過XAML,不必編寫代碼即可創(chuàng)建窗口。特別是XAML的能力不局限于創(chuàng)建一成不變的用戶界面??梢允褂迷S多工具,如數(shù)據(jù)綁定和觸發(fā)器等自動(dòng)運(yùn)行基本的用戶界面行為,而不需要編寫C#代碼[2]。
本軟件采用WPF技術(shù)作為軟件開發(fā)的基礎(chǔ),旨在開發(fā)出用戶體驗(yàn)更佳的數(shù)控轉(zhuǎn)塔沖床的HMI軟件。
軟件采用了MVVM軟件設(shè)計(jì)模式,MVVM是Model-View-ViewModel的簡寫。MVVM模式是微軟WPF和Silverlight架構(gòu)師John Gossman在2005年提出的。MVVM模式是基于微軟.Net Framework以及WPF產(chǎn)生和發(fā)展的,和經(jīng)典的MVC模式一樣,MVVM模式將數(shù)據(jù)層、業(yè)務(wù)邏輯層以及表現(xiàn)層區(qū)分開來,然而,它充分利用了WPF中的XAML和Data Binding的功能,最大程度地使得業(yè)務(wù)邏輯與界面分離開[3]。
使用MVVM模式,程序的UI和其背后的展現(xiàn)與業(yè)務(wù)邏輯將被分離至三個(gè)類中[4]:①視圖(View),封裝UI與UI邏輯;②模型視圖(ViewModel),封裝展示邏輯與狀態(tài);③模型(Model),封裝程序的業(yè)務(wù)邏輯以及數(shù)據(jù)處理。
在MVVM模式中,視圖(View)通過數(shù)據(jù)綁定以及命令行與視圖模型(ViewModel)交互,并改變事件通知。視圖模型(VIewModel)查詢觀察并協(xié)調(diào)模型更新、轉(zhuǎn)換、校驗(yàn)以及聚合數(shù)據(jù),從而在視圖(View)顯示。圖2展示了MVVM類以及它們之間的交互。
圖2 視圖(View)與視圖模型(ViewModel)交互示意圖
MVVM模式的主要目的是分離視圖(View)和模型(Model),其有以下優(yōu)點(diǎn):
(1)低耦合,視圖(View)可獨(dú)立于Model變化和修改,一個(gè)ViewModel可以綁定到不同的"View"上,當(dāng)View變化時(shí)Model可以不變,當(dāng)Model變化時(shí)View也可以不變。
(2)可重用性,開發(fā)人員可以把一些視圖邏輯放在一個(gè)ViewModel里面,讓很多view重用這段視圖邏輯。
(3)獨(dú)立開發(fā),開發(fā)人員可以專注于業(yè)務(wù)邏輯和數(shù)據(jù)的開發(fā)(ViewModel),設(shè)計(jì)人員可以專注于頁面設(shè)計(jì),而且可以并行工作,提高軟件開發(fā)效率。
(4)可測試,界面素來是比較難于測試的,而現(xiàn)在測試可以針對(duì)ViewModel來寫。
軟件采用Adobe Illustrator+VisualStudio2013的開發(fā)工具組合,Adobe Illustrator軟件主要用于軟件頁面布局的設(shè)計(jì);VisualStudio2013軟件用于軟件功能的開發(fā),開發(fā)語言主要使用了XAML語言和C#語言,XAML語言主要用于頁面布局和動(dòng)態(tài)效果的程序開發(fā),C#語言主要用于軟件業(yè)務(wù)邏輯和數(shù)據(jù)處理的程序開發(fā)。
下面通過軟件中加工程序列表顯示功能的實(shí)現(xiàn),講解一下MVVM模式在數(shù)控轉(zhuǎn)塔沖床HMI軟件開發(fā)中的實(shí)際應(yīng)用。
(1)編寫Model,運(yùn)用C#語言定義文件的屬性以及獲取文件列表的方法GetFileList
(2)編寫View Model,運(yùn)用C#語言定義需要綁定到View的FileList屬性、SelectedFile屬性以及獲取文件列表的方法GetFileList
(3)編寫View,運(yùn)用XAML語言定義用于顯示加工程序列表的控件,并設(shè)置控件的外觀,并把View Model中定義的屬性綁定到對(duì)應(yīng)的屬性上,這樣在View中就可以顯示文件列表了,并在用戶選擇一個(gè)文件時(shí)ViewModel通過屬性SelectedFile知道用戶選擇了哪個(gè)文件,從而實(shí)現(xiàn)了數(shù)據(jù)的雙向傳輸,代碼如下:
通過加工程序列表顯示功能的實(shí)現(xiàn)可以看出,運(yùn)用MVVM模式的軟件結(jié)構(gòu)簡單,邏輯清晰,代碼耦合度低、可重用性高。界面設(shè)計(jì)與后臺(tái)邏輯采用不同的語言開發(fā),從根本上實(shí)現(xiàn)了界面設(shè)計(jì)與后臺(tái)邏輯代碼的分離,前臺(tái)與后臺(tái)開發(fā)可以同步進(jìn)行,顯著縮短了軟件的開發(fā)周期。
本軟件已完成軟件開發(fā)并運(yùn)行測試,目前應(yīng)用于江蘇亞威機(jī)床股份有限公司數(shù)控轉(zhuǎn)塔沖床。機(jī)床操作更人性化,功能擴(kuò)展也更方便快捷,對(duì)提升產(chǎn)品競爭力有很大作用。圖3是軟件實(shí)際應(yīng)用現(xiàn)場。
圖3 HMI軟件機(jī)床現(xiàn)場實(shí)際應(yīng)用
[1]劉鐵猛.深入淺出WPF[M].北京:中國水利水電出版社,2010.
[2][美]MatthewMacDonald.WPF編程寶典:C#2012版[M].王德才,譯.北京:清華大學(xué)出版社,2012.
[3]劉 立.MVVM模式分析與應(yīng)用[J].微型電腦應(yīng)用,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.