WinCC+Flexible在數(shù)控機床界面開發(fā)中的應用
0 前言
目前,西門子數(shù)控系統(tǒng)在我國機床行業(yè)中的應用日益廣泛。西門子840D數(shù)控系統(tǒng)標準人機交互界面對于通用型數(shù)控機床是適用的,但對于一些特殊、專用的機床,則需要有自己專用的界面。當前,OEM(Original Equipment Manufacturer)軟件設計方法成為機床界面開發(fā)的主流方法,主要通過VB(Visual Basic)開發(fā)人機界面,利用VC(Microsoft Visual C++)編寫出與西門子數(shù)控系統(tǒng)相聯(lián)系的語言動態(tài)鏈接庫,通過西門子數(shù)控系統(tǒng)提供的VB、VC接口實現(xiàn)界面開發(fā),并將其嵌入到西門子數(shù)控系統(tǒng)。但該方法要求開發(fā)人員熟悉數(shù)控系統(tǒng)及VB、VC編程。OEM軟件的價格較為昂貴,且OEM界面開發(fā)周期較長。在實際應用中,要求機床操作人員具有一定的專業(yè)知識。因此,開發(fā)操作方便、柔性化、智能化的人機界面,就顯得非常有必要。
1 西門子數(shù)控系統(tǒng)界面開發(fā)方法簡述
西門子數(shù)控系統(tǒng)主要界面的開發(fā)方式有以下幾種:
(1)使用擴展接口編寫畫面
利用并定義標準界面上的空白軟鍵激活存放在標準循環(huán)目錄下的畫面配置文件(corn文件)。
(2)使用Configuring Package配置畫面
(3)使用Programming Package創(chuàng)建畫面(OEM)允許用戶將使用VB和VC編寫的應用程序加入HMIA dvanced,并可通過Programmming Package提供的接口訪問NC(Numerical Contr01)/PLC(Programmable Logic Controller)變量,實現(xiàn)多幅畫面的調(diào)用,管理NC數(shù)據(jù),實現(xiàn)復雜的計算、復雜的畫面,利用PCU50上的接口(RS232、打印口和以太網(wǎng)口等)輸出加工數(shù)據(jù)和充分利用Windows資源等等功能。通過在計算機上編寫程序,將結(jié)果(包括可執(zhí)行程序、配置文件等)拷貝到MMC/PCU。
在以上3種方法中,方法(1)易于實現(xiàn),但其功能簡單,用于高檔機床人機界面的開發(fā)手段是遠遠不夠的。方法(3)為OEM方法,功能非常強大,借助VB、VC++等軟件,在理論上可以開發(fā)任何所需界面,但需額外購買HMI編程包,價格較為昂貴,此外還需要VB、VC++等軟件的支持,專業(yè)性要求較高。方法(2)則是利用wjnCC Flexible配置的人機界面,采用圖形化編輯且內(nèi)部帶有功能強大的系統(tǒng)函數(shù),可以快速地配置畫面,縮短了開發(fā)周期,雖然也需要購買WinCCFlexible軟件,但價格較OEM便宜。
2 WinCC FlexibIe簡述
2.1 WinCC Flexible簡介
WinCC Flexible系列軟件是德國西門子公司工業(yè)全集成自動化(T隊)的子產(chǎn)品,是一款面向機器的自動化概念的HMI軟件,它具有舒適而高效的設計功能。winCC Flexible系列軟件具有開放、簡易的擴展功能,帶有豐富的系統(tǒng)函數(shù)及強大的Vissual Basic腳本功能,為人機界面的功能實現(xiàn)提供有力的手段。WinCC Flexible功能強大并且簡單、高效,易于上手并提供智能化的工具,例如圖形導航和移動圖形化組態(tài)。在創(chuàng)建工程時,通過點擊鼠標便可以生成HMI項目的基本結(jié)構,節(jié)省了界面框架設計的時間。WinCC Flexible帶有豐富的圖庫,提供大量的對象供用戶使用。WillCC Flexible運行系統(tǒng)是用于過程可視化的軟件,運行系統(tǒng)在過程模式下執(zhí)行項目來實現(xiàn)與自動化系統(tǒng)之間的通信、圖像在屏幕上的可視化及各種過程的操作、過程值的記錄和報警事件等。
2.2 WinCe Flexible主要功能
在人機界面開發(fā)中,winCC Flexible的主要功能有:人機界面上各種軟件的定義、NCU(Numerical Control Unit)中各種變量和參數(shù)的訪問、R參數(shù)的訪問及存儲和PLC中各種變量的訪問,如I/O口、數(shù)據(jù)塊DB等以及NCU中文件的管理、MMC中文件的管理。
3專用數(shù)控磨床人機界面設計
現(xiàn)以某企業(yè)的專用磨床為例,介紹利用WinCC Flexible開發(fā)人機界面的過程。根據(jù)機床實際需求,開發(fā)面向工藝的引導式中文人機界面。將winCC Flexible開發(fā)軟件安裝在個人計算機上,在WINDOWS操作系統(tǒng)下,通過winCC Flexible提供的Configuration Package接口,即可訪問NCK(Numerical Control Kemel)、PLC、MMCl03變量及文件。
3.1 總體設計思路
WinCC Flexible開發(fā)的用戶界面設計不僅僅是窗體本身的畫面外觀設計,重要的是底層內(nèi)部腳本的編輯和整體的構架,通過合理的人性化構架來引導機床操作人員進行操作。怎樣通過腳本實現(xiàn)數(shù)據(jù)的處理、存儲及如何實現(xiàn)文件的管理?利用WinCC Flexible提供的VBS(Visual Basic Script)腳本開發(fā)的工藝數(shù)據(jù)庫管理軟件可對車軸磨削的工件數(shù)據(jù)、砂輪數(shù)據(jù)、修整數(shù)據(jù)等磨削工藝參數(shù)進行存儲和管理,加工數(shù)據(jù)最終以CVS(數(shù)據(jù)文件格式)數(shù)據(jù)流文件形式進行存儲。總體設計思路如圖1。
在機床運行開發(fā)好的人機界面程序之前,需要在西門子840D數(shù)控系統(tǒng)上安裝西門子WinCC Flexible runtime的運行環(huán)境,此外還需要配置regie.ini文件,配置說明如下:
3.3 引導式結(jié)構設計
如何在人機界面中體現(xiàn)出加工工藝順序,使得機床操作變得簡單易懂并容易上手,是引導式界面設計的核心問題。以加工工件為主線,按照磨削工藝順序,進行人機界面畫面配置。將界面劃分為工件設置、設備管理、砂輪修整、文件管理等幾大模塊,如圖2所示。
以多臺階零件加工為例,根據(jù)多臺加工工藝流程如圖3所示,首先進入加工參數(shù)預設界面,如圖4所示,輸入工件名稱后按照排序依次設定工件基本信息、工步選擇及左側(cè)磨削參數(shù),如圖5、圖6、圖7所示。完成一個界面參數(shù)輸入后,點擊保存按鈕,初始界面上該界面的顯示狀態(tài)將由待設定變?yōu)樵O定完成,提示操作人員設定已完成。
系統(tǒng)采用模塊化程序設計方法,既便于系統(tǒng)功能的各種組合和修改,又便于未參與開發(fā)的技術維護人員補充、維護。在系統(tǒng)功能分析的基礎上,根據(jù)西門子840D數(shù)控系統(tǒng)及WinCC Flexible組態(tài)軟件程序編制的特點,建立系統(tǒng)功能模塊結(jié)構,如圖8所示。分別采用工件名、砂輪號、修整器號作為各子數(shù)據(jù)庫的索引標志。
數(shù)據(jù)管理以工件名為索引,采用VBSript編程實現(xiàn)對文件的新建、刪除、重命名及加工數(shù)據(jù)的讀取、存儲等管理操作,如圖9所示。
4 結(jié)語
將利用WinCC Flexible系列軟件開發(fā)出的人機界面應用于某專用磨床,并進行了工件磨削測試。引導式的操作界面、人性化的界面設計及方便高效的數(shù)據(jù)管理,實現(xiàn)了設計的預期目標。今后,隨著對數(shù)控系統(tǒng)結(jié)構和硬件的深入研究,機床制造企業(yè)需要通過對HMI界面的二次開發(fā)來實現(xiàn)為數(shù)控機床添加可靠性更高、專業(yè)性更強的功能,開發(fā)出功能更加全面、操作更加靈活方便的人機界面。
[HSoftkeyTexts]HSK6=“WmCC Flexible”(配置水平6號軟件改名為WmCCFlexible,按此鍵進入開發(fā)好的人機界面);
Task6---name:=OEMframe,Cmdline:=”E:\\LProgram
Files\\Siemens\\SIMATICWinCCFlexible\\WinCCFlexible
2008Runtime\\I-ImiRtm.exef:\kAdd_On\\CZ.fwx”。(配置人機界面的路徑)
其中工件設置包含工件基本信息、磨削方式選擇及磨削參數(shù)等預加工參數(shù)的設置;砂輪修整模塊則包含修整相關參數(shù)。操作人員按照界面下表提示,按照順序完成相關參數(shù)的設置即可開始加工,操作簡單、快捷、高效。
DoWhilek
k=SmartTags(“sortA)osti”)(i)
Ifk=0Then
SmartTags(“sort_numb”=i
SmartTags(“sort_posti”)(i)=1
EndIf
i=i+l
Loop
SelectCaseSmartTags(“sort_numb”)
CaselSmartTags(“FileNamel”)=
SmartTags(“NEw—FileName”)
Case2SmartTags(“FileName2”)=
SmartTags(“NEW_FileName”)
......
EndSelect