王超,張立平,王愛震
(天津賽象科技股份有限公司,天津 300384)
基于HMI Advanced的纏繞機上位軟件開發(fā)
Upper software development of the spiral windar based on HMI Advanced
王超,張立平,王愛震
(天津賽象科技股份有限公司,天津 300384)
介紹了HMI Advanced軟件在纏繞機上的應(yīng)用。包括HMI Advanced程序開發(fā)環(huán)境,規(guī)劃畫面功能,生成動態(tài)鏈接庫,使用Visual Basic軟件開發(fā)應(yīng)用程序,HMI與PLC通訊方式,設(shè)定程序入口等等。該軟件的應(yīng)用降低了操作難度,提高了數(shù)據(jù)傳輸速度。
纏繞機;西門子;數(shù)控系統(tǒng) ;HMI Advanced;Visual Basic
過去的纏繞機一般都使用LABVIEW作為人機接口,與PLC進行通訊。這種軟件通用性強,運算速度快,底層代碼完全開放,所以便于設(shè)計人員進行設(shè)計調(diào)試。由于纏繞機最核心的纏貼機頭結(jié)構(gòu)是4軸聯(lián)動系統(tǒng)(膠條輸送軸、橫移X軸、縱移Y軸、旋轉(zhuǎn)Z軸),見圖1。為提高四軸系統(tǒng)的聯(lián)動精度和穩(wěn)定性,控制系統(tǒng)由普通的PLC系統(tǒng),提升為控制精度更高和相應(yīng)頻率更快的西門子數(shù)控系統(tǒng)840D sl。如果PLC采用西門子的數(shù)控,問題就出現(xiàn)了。原本的上位軟件并不能直接對數(shù)控文件進行處理,只能針對PLC的普通數(shù)字量、模擬量進行通訊。這樣在上位工控機中,就必須同時安裝labview 和 HMI Advanced 才能實現(xiàn)功能。現(xiàn)場操作人員在操作時,也會覺得2個軟件來回切換非常麻煩。效率低,而且容易出現(xiàn)誤操作,導(dǎo)致數(shù)控加工文件丟失。西門子的HMI Advanced軟件,本身具備了和數(shù)控CPU進行通訊的功能,而且又是可以通過高級語言編程進行開發(fā)。所以本文主要講解如何使用Visual Basic規(guī)劃設(shè)計HMI Advanced 實現(xiàn)上位機與數(shù)控CPU的無縫連接。
我國數(shù)控系統(tǒng)雖然取得了較大的發(fā)展,但是我國高檔數(shù)控機床配套的數(shù)控系統(tǒng)90%以上都是國外產(chǎn)品,特別是對于國防工業(yè)繼續(xù)的高檔數(shù)控機床,高檔數(shù)控系統(tǒng)是決定機床裝備的性能、功能、可靠性和成本的關(guān)鍵因素。而國外對我國至今仍進行封鎖限制,成為制約我國高檔數(shù)控機床發(fā)展的瓶頸。
在本文中提到的西門子840D sl系統(tǒng),就是數(shù)控系統(tǒng)中最先進的系統(tǒng)之一,其編程方式跟其他的系統(tǒng)有點差別。一般旋轉(zhuǎn)編程以及角度偏移都跟其他的系統(tǒng)不一樣。
(1)硬件要求
標(biāo)準(zhǔn)PC(英文 Windows XP SP2 以上);PCU50 / PCU50.3 : Windows XP SP2。
(2) 軟件要求
PCU50 / PCU50.3;
Visual Basic VB6 / VC6;
Visual C++ 用于編譯文本DLL;
HMI Programming Package。
(1) 操作畫面主要包含以下幾個內(nèi)容,見表1。
表1 操作畫面包含內(nèi)容
(2) 畫面之間的調(diào)用關(guān)系規(guī)劃
主界面可調(diào)用:OEM1 / OEM4 / OEM5 / OEM6 / OEM7 / OEM8。
配方列表可調(diào)用:OEM2。
配方編輯可調(diào)用:OEM3。
(1) 在840D sl 上使用HMI Advanced開發(fā)用戶界面時,其中用于描述畫面結(jié)構(gòu)及調(diào)用關(guān)系的文件zus、mdi等文件,如果采用記事本等編寫比較繁瑣,不宜閱讀。因此Screen Designer軟件的出現(xiàn),可以方便快捷直觀的對畫面結(jié)構(gòu)進行設(shè)計。
(2) 新建一個項目,根據(jù)之前的規(guī)劃給每一個界面分別賦予一個編號,在編輯界面上方輸入該State編號,見圖2。
圖2 畫面設(shè)計軟件
(3) 每一個畫面都包含8個水平軟鍵和8個垂直軟鍵。這些軟件有2種功能,一是可以進行界面的跳轉(zhuǎn),二是可以當(dāng)成按鈕,提供返回值。
(4) 把VB項目中指定的FORM嵌入到當(dāng)前的SCREEN中去。
(5) 設(shè)置每一個畫面的軟鍵標(biāo)題文字和點擊軟鍵觸發(fā)的返回值,區(qū)分大小寫。
(6) 當(dāng)所有的畫面設(shè)計完畢之后,就可以保存項目并生成相關(guān)的文件了。
(1) 通過VC創(chuàng)建OEM Programming package 界面的文本顯示DLL文件。
(2) 創(chuàng)建一個MFC AppWizard (dll) 。
(3) 選擇創(chuàng)建DDL類型時,選擇Regular DLL using shared MFC DLL。
(4) 在項目中,#Endif 語句后面添加下述指令:#include “example1_.rc” 指定文本語言切換文件。
(5) 編譯文件,生成語言動態(tài)鏈接庫文件,然后將該文件放在指定位置。
(1) Visual Basic是一種由Microsoft公司開發(fā)的結(jié)構(gòu)化、模塊化、面向?qū)ο蟮?,包含協(xié)助開發(fā)環(huán)境的事件驅(qū)動為機制的可視化程序設(shè)計語言。從任何標(biāo)準(zhǔn)來說,VB都是世界上使用人數(shù)最多的一種語言。VB擁有圖形用戶界面GUI和快速應(yīng)用程序開發(fā)(RAD)系統(tǒng),可以輕易的使用DAO / RDO / ADO連接數(shù)據(jù)庫,或者輕松的創(chuàng)建ActiveX控件。
(2) 打開Visual Basic針對每一個畫面分別新建一個窗體,見圖3。
(3) 在窗體中可以添加控件、編寫代碼,實現(xiàn)邏輯功能。
圖3 Visual Basic開發(fā)界面
(1) 數(shù)控CPU與HMI Advanced之間的通訊一般是通過OPC或者Sinumerik-COM來實現(xiàn)的。為了保證兼容性,這種訪問通常是采用DCDDE服務(wù)器來實現(xiàn)連接,見圖4。組態(tài)NCDDE服務(wù)器初始文件,可以讓系統(tǒng)去匹配特殊的開發(fā)環(huán)境。Windows操作系統(tǒng)支持動態(tài)數(shù)據(jù)交換(DDE)。
圖 4 數(shù)控CPU與HMI的通訊結(jié)構(gòu)
(2) 與Visual Basic建立一個DDE連接,連接的媒介只有三種,Label 、textbox 、picture 。
(3) 只讀模式,LinkMode = 1 ,實時連接,常用于一些狀態(tài)顯示的例子。
(4) 可讀可寫模式LinkMode = 2 ,結(jié)合Link Request和Link Poke來確定是讀或者寫。
(5) 只讀模式LinkMode = 3 ,僅僅在NC和PLC終端數(shù)據(jù)發(fā)生變化時,才將數(shù)據(jù)發(fā)送到HMI上。
(6) 以纏繞重量的數(shù)據(jù)傳遞舉例,見例程:
Rem Winding Weight hot link : The address in PLC is DB622.DBD56 ; The Address in HMI Advance is Text_main(2)
T e x t_m a i n(2).L i n k T o p i c = g_ chNCDDEServiceName
Text_main(2).LinkItem = " / PLC / DataBlock / Float [c622,14] "
Text_main(2).LinkMode = 1
(1) Regie文件是控制程序文件,它負(fù)責(zé)管理:輔助程序(基本模塊)、區(qū)域應(yīng)用程序(Area application)、動態(tài)鏈接庫和VBX文件
(2) Regie文件進行區(qū)域應(yīng)用程序管理用到下列文件:
REGIE.INI文 件、REGIE.DLL文 件、REGIE-language.ini(e.g. RE_UK.INI) 文件、ORMFRAME. INI文件、MMC.INI文件。
(3) Regie.ini文件的組成
表2 Regie.ini文件組成
通過膠條形狀與外輪廓的計算后,HMI Advance會自動計算出,4軸電機的運動軌跡和相應(yīng)的插補點坐標(biāo)。將該坐標(biāo)轉(zhuǎn)換后,并且生成數(shù)控加工文件MPF文件,最后通過PI服務(wù)器的功能可以對該文件加載到數(shù)控CPU當(dāng)中,例程如下:
Sub Mpf_File_Arrange()
Dim trans As String
FileCopy " C: Strip Machine 2D recipecurrent load recipemotion.mpf", "C: Siemens Sinumerik HMI-Advanced dhmpf.dirmotion.mpf"
Labela.LinkTopic = g_chNCDDEServiceName
Labela.LinkMode = 2
Labela.LinkExecute "COPY_TO_NC(C: SiemensSinumerikHMI-Advanced dh mpf. dir motion.mpf, /NC/_N_MPFDIR/_N_motion_MPF,trans)"
End Sub
(1) HMI Advanced軟件和其他的上位軟件一樣,也擁有報警功能,但HMI Advanced的報警功能更完善。他擁有一個報警功能的控制體系,針對不同的報警等級和報警類型會有相應(yīng)的分類。
(2) 在HMI Advanced軟件中,報警和事件服務(wù)器會通過COM接口提供當(dāng)前系統(tǒng)的報警信息。為了保證兼容性,訪問報警服務(wù)器(mbdde.exe)也需要通過DDE才行,見圖5。
圖5 報警通訊模塊結(jié)構(gòu)
(3) 系統(tǒng)提供的報警信息都包含:數(shù)控內(nèi)容報警、驅(qū)動器報警、程序循環(huán)報警、PLC報警、HMI報警。
(4) 報警信息文件的管理
將 “myplc_uk.com”放 置 在: C: Siemens Sinumerik HMI-Advanced dh mb.dir 下面。
在路徑C: Siemens Sinumerik HMI-Advanced mmc2下面,找到mbdde.ini文件,打開進行修改。找到USERPLC行,在后面添加上述報警文件的路徑。
報警觸發(fā)。從DB2.DBB180.0開始,對應(yīng) 第70000號 報警信息。以此類推。支持至少2000多個報警。
報警號70000 ~ 70031為紅色報警,70032 ~ 70063為黑色報警,以此類推。每32個報警為一組,顏色則為紅、黑交替。
(5) 報警信息例程
Sub Form_Load ( )
Label1.LinkTopic = ”mbdde |alarm”
Label1.LinkMode = 2
Label1.LinkExecute ”Alarm Free (test )”
End Sub
界面簡潔易于入手,參數(shù)設(shè)定及設(shè)備監(jiān)控數(shù)據(jù)功能全面。
界面效果圖見圖6、圖7。
圖6 HMI Advanced 主界面
圖7 HMI Advanced 仿真界面
通過開發(fā)HMI Advanced軟件,實現(xiàn)上位機功能的完善與統(tǒng)一,降低了操作難度,提高了數(shù)據(jù)傳輸速度,也保證了穩(wěn)定性。作為數(shù)控領(lǐng)域最先進的系統(tǒng)之一,如何保證數(shù)控系統(tǒng)高速穩(wěn)定的運行,上位軟件的提升也是給予了一定的保障。由于HMI Advanced的開放性,可通過Visual Basic的軟件的開發(fā),也使其性能得到深度的開發(fā)和釋放。
(R-01)
TQ330.493
1009-797X(2016)07-0042-04
B
10.13520/j.cnki.rpte.2016.07.011
王超(1987-),男,畢業(yè)于天津科技大學(xué)電氣工程及其自動化專業(yè),2010年7月畢業(yè)至今,在天津賽象科技股份有限公司技術(shù)中心工作,主要負(fù)責(zé)橡膠機械設(shè)備電氣設(shè)計及調(diào)試工作
2016-01-25