邴 旭 林劍峰 徐兆成 化春雷
(沈陽機床(集團)有限責任公司,遼寧 沈陽 110142)
人機界面,即HMI(Human Machine Interface),是用戶與機床互相傳遞信息的媒介。數(shù)控系統(tǒng)自帶的標準人機界面,可以用來實現(xiàn)操作、監(jiān)控、編程、設置和診斷功能,但并不是對所有機床都是最優(yōu)的設計。為了能夠滿足不同客戶的需要以及不同機床特性,系統(tǒng)提供了用戶自己開發(fā)人機界面的功能。如西門子、FANUC、海德漢以及一些國產(chǎn)系統(tǒng)的人機界面的開發(fā)方法,其目的就是要利用專業(yè)的開發(fā)軟件,開發(fā)出具有自身特色的、實用的個性化界面,進一步發(fā)揮數(shù)控系統(tǒng)的性能,提高我國數(shù)控機床的檔次。
從機床的發(fā)展趨勢來看,人機界面的需求主要集中在以下幾個方面:
(1)專用機床上的應用 專用磨床、激光切割機床等,需要有自己的專用界面,這樣才方便對設備的操作、管理,也使專用機床的效益得到充分的發(fā)揮。
(2)特殊結構上的應用 在機床的應用中,往往許多機床都有其自身特有的部分,用戶為了操作需要,經(jīng)常會提出定制相關操作界面的需求。
(3)簡化操作的需要 以提高工作效率等為目的人機界面開發(fā)需求無疑是所占界面開發(fā)需求比重最大的,把常用參數(shù)和常用的功能歸納到若干個畫面中,并且可以直接修改,用戶操作起來就會更加方便。
目前,常用的西門子數(shù)控系統(tǒng)有802D sl、810D、840D pl。其中802D sl由于面向低端經(jīng)濟型數(shù)控機床,其人機界面能夠滿足絕大多數(shù)用戶的需要,因此不需要進行界面的二次開發(fā),而實際上西門子公司也沒有提供802D sl系統(tǒng)人機界面的開發(fā)方法。
810D和840D pl系統(tǒng)是一個開放式的數(shù)控系統(tǒng),其人機界面HMI Advanced具有擴展用戶接口、HMI編程包(HMI Programming Package)和WinCC Flexible三種開發(fā)方法。它們各自的特點見表1所示。
表1 HMI Advanced界面的開發(fā)方法比較
西門子公司新推出的828D和840D sl系統(tǒng),其人機界面是HMI Operate。它支持擴展用戶接口,只是語法稍有不同,對于840D sl系統(tǒng),還可以購買相應版本的HMI Operate的編程包進行二次開發(fā)。
綜上,西門子系統(tǒng)人機界面的開發(fā)方法可以分為擴展用戶接口、HMI編程包、西門子專業(yè)組態(tài)軟件WinCC Flexible三類。下面以常用的HMI Advanced為例,說明這三類開發(fā)方法的應用。
擴展用戶接口配置的畫面可實現(xiàn)定義畫面中的軟鍵和變量、動態(tài)改變畫面、定義操作等級、讀寫NC/PLC變量等功能,并可做算術和邏輯運算。它定義標準界面上的空白軟鍵,激活存放在標準循環(huán)目錄(或制造商循環(huán)、用戶循環(huán))下的com文件中,該文件是文本格式的,按照一定語法規(guī)則編寫的文件。但是鑒于語法中的參數(shù)過于復雜,只適合開發(fā)一些非常簡單的界面。
HMI編程包允許用戶將使用VB和VC++編寫的應用程序加入HMI Advanced,并可通過編程包提供的接口訪問NC/PLC變量、實現(xiàn)多幅畫面的調(diào)用、管理NC數(shù)據(jù)、實現(xiàn)復雜的計算和畫面。用戶可在HMI編程包提供的Sample基礎上開發(fā)界面程序。下面以程序oembsp1.exe為例說明界面程序的開發(fā)方法。界面運行效果如圖1所示。
(1)打開HMI編程包自帶的例子程序oembsp1.vbp,根據(jù)需要添加控件并設計界面外觀,調(diào)用編程包中提供的函數(shù)訪問數(shù)控系統(tǒng),編程結束后生成oembsp1.exe文件。
(2)修改配置文件:
①改RE_UK.ini,配置接口軟鍵文本,在HMI中將6號軟鍵的標簽修改為“test”:
HSK6=“test”
②修改Regie.ini,為6號軟鍵配置應用程序oembsp1.exe:
Task6=name:=oembsp1,Timeout:=60000
(3)放入下面兩個文件:
①oembsp1.mdi:定義了所有程序內(nèi)部子窗口及其類型。
②oembsp1.zus:定義了oem程序的狀態(tài)及動作。
(4)在oembsp1.ini文件中定義上面兩個文件的位置:
MDIList=OEMBSP1OEMBSP1.MDI
ControlFile=OEMBSP1OEMBSP1.ZUS
(5)在oemlanguage目錄中的o1_UK.dll文件中,定義OEM程序內(nèi)的軟鍵文本。
WinCC Flexible是西門子公司的專業(yè)組態(tài)軟件,適用于西門子的各種操作面板,可實現(xiàn)鼠標和功能鍵的處理,輸入/輸出域,bar條,歷史曲線等等。應用WinCC Flexible開發(fā)的畫面既可以作為HMI Advanced的擴展,也可單獨運行。圖2為應用WinCC Flexible軟件開發(fā)的機床HMI界面。
應用WinCC Flexible軟件開發(fā)界面的特點是具有強大的圖形化組態(tài)功能,簡單高效、易于上手、開發(fā)周期短。它提供了智能化的向導工具和供用戶使用的豐富圖庫及操作對象,并支持用戶自定義對象。它還具有強大的通信組態(tài)功能,支持多種通信類型,可組態(tài)基于Windows CE的SIMATIC HMI設備、西門子的C7、乃至PC機??梢耘c西門子的STEP7、iMap和Scout等軟件集成在一起。并且具有優(yōu)良的開放性和擴展性,支持VB腳本和C腳本功能。
目前,F(xiàn)ANUC系統(tǒng)人機界面的開發(fā)方法有三種:宏執(zhí)行器、C語言執(zhí)行器、FANUC PICTURE。這三種開發(fā)方法的特點如表2所示。
宏執(zhí)行器通常用于集成加工程序,制作特殊加工固定循環(huán),或者簡單地自定義畫面;C語言執(zhí)行器功能強大,是被廣泛應用的計算機語言,基本上可以取代宏執(zhí)行器,國外高檔機床、特殊機床應用較多,但是使用C語言執(zhí)行器開發(fā)界面周期長,調(diào)試過程復雜。
運用C語言執(zhí)行器開發(fā)界面,將源文件(.src)編譯為二進制文件(.rel),可通過中間文件(.lst)看編譯錯誤記錄。
usage:mcompi[SRC File][-0/-30]
-0:Macro compile for FS0i-D
-30:Macro compile for FS30i
然后,通過Link控制文件(.lnk),鏈接二進制文件和庫文件(.mex)最終生成Rom文件(.rom),再將Rom文件轉換為存儲卡格式文件(.mem),最后傳到CNC中。
運用C語言執(zhí)行器開發(fā)界面,首先要安裝WinRiver Compiler,從源文件到最終文件生成的過程由Win-River Compiler直接完成,相關內(nèi)容定義都在批處理文件Makefile中,執(zhí)行時只需輸入nmake.exe命令即可。最終文件為存儲卡文件格式(.mem),最后傳到CNC中。
表2 FANUC系統(tǒng)人機界面的開發(fā)方法比較
FANUC PICTURE采用圖形化設計界面,特別適合畫面的制作,能夠滿足絕大部分用戶界面開發(fā)的需要。開發(fā)界面程序過程如下:
(1)首先創(chuàng)建一個新工程,對CNC硬件做參數(shù)配置,在多語言設定選項卡中可以設定語言種類和不同語言的切換方式。
(2)用編輯環(huán)境設計畫面,畫面的編輯過程就是設置通用控件以及FANUC專有控件的位置和屬性的過程。
(3)為了與CNC系統(tǒng)交換信息,必須給各圖形元素賦予對應CNC各種信息的功能。為此FANUC PICTURE設計了兩種功能指令庫:CNC窗口庫和PMC窗口庫。繪圖時點擊圖形元素的屬性,在屬性項中將相應的功能賦予該元素即可完成與CNC系統(tǒng)的鏈接,所繪畫面即會具有操作CNC與顯示CNC信息的功能。
(4)編程結束后,將執(zhí)行文件傳入CNC的Flash ROM中存儲,在數(shù)控系統(tǒng)上運行。圖3所示為應用FANUC PICTURE開發(fā)的軸狀態(tài)顯示界面。
海德漢數(shù)控系統(tǒng)的界面修改與制作大體分為兩種方法,第一種方法是通過菜單編輯軟件MenuDesign來編輯界面,這種方法操作簡便,但是不夠靈活,可以改變界面中右側軟鍵的圖標樣式,及點擊后產(chǎn)生的PLC時序功能,與PLC程序可以很好的結合。圖4所示為利用MenuDesign編輯器開發(fā)的界面,在原有界面右側空白軟鍵處,增加了一個帶有“SYMG”標志的圖形軟鍵,按下該軟鍵,會進入如圖5所示的自己開發(fā)的各伺服軸運行狀態(tài)畫面,該畫面中顯示有機床各個軸運動時的實際速度等信息。
第二種界面開發(fā)方法需要用到Python、Glade和Winpdb等第三方軟件,結合海德漢的PLC程序及宏程序,來實現(xiàn)界面的修改及制作。該方法的特點是制作過程比較復雜,但應用效果很靈活。其中,Python OEM程序選裝,是為機床制造商提供的面向對象的控制系統(tǒng)高級編程語言,開發(fā)的程序可以通過熟悉的PLC窗口導入到PLC中,也可以顯示在單獨可用的窗口中,這個窗口可擴展為TNC的全屏顯示。制作過程如圖6所示。
首先用Glade軟件制作需要顯示的界面,再通過對Python和PLC的編程,將該界面需要導入的觸發(fā)事件和顯示模式做好,之后一并送入到NC的控制核心進行運算,最終達到預期的目的。
國產(chǎn)數(shù)控系統(tǒng)使用較多的有華中數(shù)控、廣州數(shù)控、沈陽高精、大連光洋以及飛陽系統(tǒng)。其中,廣州數(shù)控系統(tǒng)、沈陽高精以及飛陽系統(tǒng)尚未提供人機界面的開發(fā)方法。不過對于大批量訂購的系統(tǒng),廠家可以在系統(tǒng)出廠前按用戶的要求定制界面。目前只有華中數(shù)控和大連光洋系統(tǒng)提供了人機界面開發(fā)的解決方案。
華中數(shù)控的人機界面開發(fā)使用的是華中數(shù)控2000型數(shù)控底層控制軟件包HCNC-API2.0。該軟件的運行平臺是MS-DOS5.0或以上版本,并需要先安裝Borland C++3.1。在安裝目錄下運行N.BAT即可裝載底層并運行DEMO程序,運行N1.BAT即可裝載底層并運行IIPDEMO.EXE,運行E.BAT底層控制程序退出。其界面的開發(fā)是基于C/C++,可以完成屏幕背景的設置、清屏、移動光標等基本功能,在程序的開始部分需要使用putch()、textattr()等指令進行初始化與底層NCBIOS的接口,獲取NCBIOS通信區(qū)指針,將部分通信區(qū)數(shù)據(jù)賦初值,通過這一過程來完成HMI與NC數(shù)據(jù)的通信連接。在主程序中可以通過memset()、gptoxy()和ch_move_rel()等指令與其操作面板上的F1~F7按鈕的配合來進行各個軸運動的控制。
大連光洋數(shù)控系統(tǒng)從整體結構上分為OHMI、通信服務器和CNC內(nèi)核三部分。通信服務器負責CNC內(nèi)核和OHMI之間的通信工作以及對客戶端指令的解釋和處理??蛻舳烁鶕?jù)通信服務器提供的通信協(xié)議與通信服務器進行數(shù)據(jù)的通信。對用戶開放的是HMI部分,因為對用戶開放,所以光洋數(shù)控系統(tǒng)的開放式HMI也稱OHMI。OHMI的開發(fā)主要使用C/C++,遵循socket通信協(xié)議。用戶可以使用C/C++語言根據(jù)不同的需要開發(fā)客戶端程序,所有客戶端程序的統(tǒng)稱為OHMI。
隨著對數(shù)控系統(tǒng)更深層次的研究,對其結構和系統(tǒng)硬件的分析,可以獲得重要的技術參數(shù),通過對人機界面的開發(fā),便能夠將自適應控制、模糊控制、神經(jīng)網(wǎng)絡控制和前饋控制等先進的控制技術應用于數(shù)控機床,這無疑會進一步提高機床整體的性能與質(zhì)量,進而增加產(chǎn)品附加值,提升產(chǎn)品競爭力。
[1]高峰.西門子OEM軟件在數(shù)控凸輪軸磨床上的開發(fā)與應用[J].制造技術與機床,2006(10):122-125.
[2]侯春明,化春雷,邴旭,等.基于西門子840D數(shù)控系統(tǒng)的倒置式立式車床人機界面開發(fā)[J].制造技術與機床,2010(2):81-84.
[3]汪木蘭.數(shù)控原理與系統(tǒng)[M].北京:機械工業(yè)出版社,2005.