王超,張立平,王愛(ài)震
(天津賽象科技股份有限公司,天津 300384)
基于HMI Advanced的纏繞機(jī)上位軟件開(kāi)發(fā)
Upper software development of the spiral windar based on HMI Advanced
王超,張立平,王愛(ài)震
(天津賽象科技股份有限公司,天津 300384)
介紹了HMI Advanced軟件在纏繞機(jī)上的應(yīng)用。包括HMI Advanced程序開(kāi)發(fā)環(huán)境,規(guī)劃畫(huà)面功能,生成動(dòng)態(tài)鏈接庫(kù),使用Visual Basic軟件開(kāi)發(fā)應(yīng)用程序,HMI與PLC通訊方式,設(shè)定程序入口等等。該軟件的應(yīng)用降低了操作難度,提高了數(shù)據(jù)傳輸速度。
纏繞機(jī);西門(mén)子;數(shù)控系統(tǒng) ;HMI Advanced;Visual Basic
過(guò)去的纏繞機(jī)一般都使用LABVIEW作為人機(jī)接口,與PLC進(jìn)行通訊。這種軟件通用性強(qiáng),運(yùn)算速度快,底層代碼完全開(kāi)放,所以便于設(shè)計(jì)人員進(jìn)行設(shè)計(jì)調(diào)試。由于纏繞機(jī)最核心的纏貼機(jī)頭結(jié)構(gòu)是4軸聯(lián)動(dòng)系統(tǒng)(膠條輸送軸、橫移X軸、縱移Y軸、旋轉(zhuǎn)Z軸),見(jiàn)圖1。為提高四軸系統(tǒng)的聯(lián)動(dòng)精度和穩(wěn)定性,控制系統(tǒng)由普通的PLC系統(tǒng),提升為控制精度更高和相應(yīng)頻率更快的西門(mén)子數(shù)控系統(tǒng)840D sl。如果PLC采用西門(mén)子的數(shù)控,問(wèn)題就出現(xiàn)了。原本的上位軟件并不能直接對(duì)數(shù)控文件進(jìn)行處理,只能針對(duì)PLC的普通數(shù)字量、模擬量進(jìn)行通訊。這樣在上位工控機(jī)中,就必須同時(shí)安裝labview 和 HMI Advanced 才能實(shí)現(xiàn)功能。現(xiàn)場(chǎng)操作人員在操作時(shí),也會(huì)覺(jué)得2個(gè)軟件來(lái)回切換非常麻煩。效率低,而且容易出現(xiàn)誤操作,導(dǎo)致數(shù)控加工文件丟失。西門(mén)子的HMI Advanced軟件,本身具備了和數(shù)控CPU進(jìn)行通訊的功能,而且又是可以通過(guò)高級(jí)語(yǔ)言編程進(jìn)行開(kāi)發(fā)。所以本文主要講解如何使用Visual Basic規(guī)劃設(shè)計(jì)HMI Advanced 實(shí)現(xiàn)上位機(jī)與數(shù)控CPU的無(wú)縫連接。
我國(guó)數(shù)控系統(tǒng)雖然取得了較大的發(fā)展,但是我國(guó)高檔數(shù)控機(jī)床配套的數(shù)控系統(tǒng)90%以上都是國(guó)外產(chǎn)品,特別是對(duì)于國(guó)防工業(yè)繼續(xù)的高檔數(shù)控機(jī)床,高檔數(shù)控系統(tǒng)是決定機(jī)床裝備的性能、功能、可靠性和成本的關(guān)鍵因素。而國(guó)外對(duì)我國(guó)至今仍進(jìn)行封鎖限制,成為制約我國(guó)高檔數(shù)控機(jī)床發(fā)展的瓶頸。
在本文中提到的西門(mén)子840D sl系統(tǒng),就是數(shù)控系統(tǒng)中最先進(jìn)的系統(tǒng)之一,其編程方式跟其他的系統(tǒng)有點(diǎn)差別。一般旋轉(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) 操作畫(huà)面主要包含以下幾個(gè)內(nèi)容,見(jiàn)表1。

表1 操作畫(huà)面包含內(nèi)容
(2) 畫(huà)面之間的調(diào)用關(guān)系規(guī)劃
主界面可調(diào)用:OEM1 / OEM4 / OEM5 / OEM6 / OEM7 / OEM8。
配方列表可調(diào)用:OEM2。
配方編輯可調(diào)用:OEM3。
(1) 在840D sl 上使用HMI Advanced開(kāi)發(fā)用戶(hù)界面時(shí),其中用于描述畫(huà)面結(jié)構(gòu)及調(diào)用關(guān)系的文件zus、mdi等文件,如果采用記事本等編寫(xiě)比較繁瑣,不宜閱讀。因此Screen Designer軟件的出現(xiàn),可以方便快捷直觀的對(duì)畫(huà)面結(jié)構(gòu)進(jìn)行設(shè)計(jì)。
(2) 新建一個(gè)項(xiàng)目,根據(jù)之前的規(guī)劃給每一個(gè)界面分別賦予一個(gè)編號(hào),在編輯界面上方輸入該State編號(hào),見(jiàn)圖2。

圖2 畫(huà)面設(shè)計(jì)軟件
(3) 每一個(gè)畫(huà)面都包含8個(gè)水平軟鍵和8個(gè)垂直軟鍵。這些軟件有2種功能,一是可以進(jìn)行界面的跳轉(zhuǎn),二是可以當(dāng)成按鈕,提供返回值。
(4) 把VB項(xiàng)目中指定的FORM嵌入到當(dāng)前的SCREEN中去。
(5) 設(shè)置每一個(gè)畫(huà)面的軟鍵標(biāo)題文字和點(diǎn)擊軟鍵觸發(fā)的返回值,區(qū)分大小寫(xiě)。
(6) 當(dāng)所有的畫(huà)面設(shè)計(jì)完畢之后,就可以保存項(xiàng)目并生成相關(guān)的文件了。
(1) 通過(guò)VC創(chuàng)建OEM Programming package 界面的文本顯示DLL文件。
(2) 創(chuàng)建一個(gè)MFC AppWizard (dll) 。
(3) 選擇創(chuàng)建DDL類(lèi)型時(shí),選擇Regular DLL using shared MFC DLL。
(4) 在項(xiàng)目中,#Endif 語(yǔ)句后面添加下述指令:#include “example1_.rc” 指定文本語(yǔ)言切換文件。
(5) 編譯文件,生成語(yǔ)言動(dòng)態(tài)鏈接庫(kù)文件,然后將該文件放在指定位置。
(1) Visual Basic是一種由Microsoft公司開(kāi)發(fā)的結(jié)構(gòu)化、模塊化、面向?qū)ο蟮模瑓f(xié)助開(kāi)發(fā)環(huán)境的事件驅(qū)動(dòng)為機(jī)制的可視化程序設(shè)計(jì)語(yǔ)言。從任何標(biāo)準(zhǔn)來(lái)說(shuō),VB都是世界上使用人數(shù)最多的一種語(yǔ)言。VB擁有圖形用戶(hù)界面GUI和快速應(yīng)用程序開(kāi)發(fā)(RAD)系統(tǒng),可以輕易的使用DAO / RDO / ADO連接數(shù)據(jù)庫(kù),或者輕松的創(chuàng)建ActiveX控件。
(2) 打開(kāi)Visual Basic針對(duì)每一個(gè)畫(huà)面分別新建一個(gè)窗體,見(jiàn)圖3。
(3) 在窗體中可以添加控件、編寫(xiě)代碼,實(shí)現(xiàn)邏輯功能。

圖3 Visual Basic開(kāi)發(fā)界面
(1) 數(shù)控CPU與HMI Advanced之間的通訊一般是通過(guò)OPC或者Sinumerik-COM來(lái)實(shí)現(xiàn)的。為了保證兼容性,這種訪問(wèn)通常是采用DCDDE服務(wù)器來(lái)實(shí)現(xiàn)連接,見(jiàn)圖4。組態(tài)NCDDE服務(wù)器初始文件,可以讓系統(tǒng)去匹配特殊的開(kāi)發(fā)環(huán)境。Windows操作系統(tǒng)支持動(dòng)態(tài)數(shù)據(jù)交換(DDE)。

圖 4 數(shù)控CPU與HMI的通訊結(jié)構(gòu)
(2) 與Visual Basic建立一個(gè)DDE連接,連接的媒介只有三種,Label 、textbox 、picture 。
(3) 只讀模式,LinkMode = 1 ,實(shí)時(shí)連接,常用于一些狀態(tài)顯示的例子。
(4) 可讀可寫(xiě)模式LinkMode = 2 ,結(jié)合Link Request和Link Poke來(lái)確定是讀或者寫(xiě)。
(5) 只讀模式LinkMode = 3 ,僅僅在NC和PLC終端數(shù)據(jù)發(fā)生變化時(shí),才將數(shù)據(jù)發(fā)送到HMI上。
(6) 以纏繞重量的數(shù)據(jù)傳遞舉例,見(jiàn)例程:
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)、動(dòng)態(tài)鏈接庫(kù)和VBX文件
(2) Regie文件進(jìn)行區(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文件組成
通過(guò)膠條形狀與外輪廓的計(jì)算后,HMI Advance會(huì)自動(dòng)計(jì)算出,4軸電機(jī)的運(yùn)動(dòng)軌跡和相應(yīng)的插補(bǔ)點(diǎn)坐標(biāo)。將該坐標(biāo)轉(zhuǎn)換后,并且生成數(shù)控加工文件MPF文件,最后通過(guò)PI服務(wù)器的功能可以對(duì)該文件加載到數(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軟件和其他的上位軟件一樣,也擁有報(bào)警功能,但HMI Advanced的報(bào)警功能更完善。他擁有一個(gè)報(bào)警功能的控制體系,針對(duì)不同的報(bào)警等級(jí)和報(bào)警類(lèi)型會(huì)有相應(yīng)的分類(lèi)。
(2) 在HMI Advanced軟件中,報(bào)警和事件服務(wù)器會(huì)通過(guò)COM接口提供當(dāng)前系統(tǒng)的報(bào)警信息。為了保證兼容性,訪問(wèn)報(bào)警服務(wù)器(mbdde.exe)也需要通過(guò)DDE才行,見(jiàn)圖5。

圖5 報(bào)警通訊模塊結(jié)構(gòu)
(3) 系統(tǒng)提供的報(bào)警信息都包含:數(shù)控內(nèi)容報(bào)警、驅(qū)動(dòng)器報(bào)警、程序循環(huán)報(bào)警、PLC報(bào)警、HMI報(bào)警。
(4) 報(bào)警信息文件的管理
將 “myplc_uk.com”放 置 在: C: Siemens Sinumerik HMI-Advanced dh mb.dir 下面。
在路徑C: Siemens Sinumerik HMI-Advanced mmc2下面,找到mbdde.ini文件,打開(kāi)進(jìn)行修改。找到USERPLC行,在后面添加上述報(bào)警文件的路徑。
報(bào)警觸發(fā)。從DB2.DBB180.0開(kāi)始,對(duì)應(yīng) 第70000號(hào) 報(bào)警信息。以此類(lèi)推。支持至少2000多個(gè)報(bào)警。
報(bào)警號(hào)70000 ~ 70031為紅色報(bào)警,70032 ~ 70063為黑色報(bào)警,以此類(lèi)推。每32個(gè)報(bào)警為一組,顏色則為紅、黑交替。
(5) 報(bào)警信息例程
Sub Form_Load ( )
Label1.LinkTopic = ”mbdde |alarm”
Label1.LinkMode = 2
Label1.LinkExecute ”Alarm Free (test )”
End Sub
界面簡(jiǎn)潔易于入手,參數(shù)設(shè)定及設(shè)備監(jiān)控?cái)?shù)據(jù)功能全面。
界面效果圖見(jiàn)圖6、圖7。

圖6 HMI Advanced 主界面

圖7 HMI Advanced 仿真界面
通過(guò)開(kāi)發(fā)HMI Advanced軟件,實(shí)現(xiàn)上位機(jī)功能的完善與統(tǒng)一,降低了操作難度,提高了數(shù)據(jù)傳輸速度,也保證了穩(wěn)定性。作為數(shù)控領(lǐng)域最先進(jìn)的系統(tǒng)之一,如何保證數(shù)控系統(tǒng)高速穩(wěn)定的運(yùn)行,上位軟件的提升也是給予了一定的保障。由于HMI Advanced的開(kāi)放性,可通過(guò)Visual Basic的軟件的開(kāi)發(fā),也使其性能得到深度的開(kāi)發(fā)和釋放。
(R-01)
TQ330.493
1009-797X(2016)07-0042-04
B
10.13520/j.cnki.rpte.2016.07.011
王超(1987-),男,畢業(yè)于天津科技大學(xué)電氣工程及其自動(dòng)化專(zhuān)業(yè),2010年7月畢業(yè)至今,在天津賽象科技股份有限公司技術(shù)中心工作,主要負(fù)責(zé)橡膠機(jī)械設(shè)備電氣設(shè)計(jì)及調(diào)試工作
2016-01-25