宋相征,張琳娜,鄭鵬,趙鳳霞
(鄭州大學(xué)機(jī)械工程學(xué)院,河南鄭州 450001)
在現(xiàn)代磨削加工中,半自動(dòng)、自動(dòng)磨床應(yīng)用廣泛,但其自動(dòng)加工中無(wú)法對(duì)零件尺寸進(jìn)行實(shí)時(shí)的檢測(cè)控制,只能按照既定的程序進(jìn)行開(kāi)環(huán)式的磨削加工。主動(dòng)量?jī)x可在磨削過(guò)程中實(shí)時(shí)測(cè)量工件尺寸,并對(duì)加工狀況進(jìn)行實(shí)時(shí)判斷,發(fā)出控制信號(hào)對(duì)磨削加工的不同階段進(jìn)行自動(dòng)控制。這種閉環(huán)控制可進(jìn)一步提高磨床的自動(dòng)化水平,提高加工精度和效率。
主動(dòng)量?jī)x軟件系統(tǒng)負(fù)責(zé)測(cè)量數(shù)據(jù)的采集、處理、輸出、顯示、I/O控制等功能。因此,軟件系統(tǒng)開(kāi)發(fā)在整個(gè)主動(dòng)量?jī)x的開(kāi)發(fā)中顯得尤為重要。目前工業(yè)控制中主流開(kāi)發(fā)軟件主要有兩種:一種是工業(yè)組態(tài)軟件,例如組態(tài)王 (Kingview);另一種是高級(jí)編程語(yǔ)言,例如Visual Basic。工業(yè)組態(tài)軟件編程可視化程度高、界面簡(jiǎn)單直觀、編程效率高,利用組態(tài)王開(kāi)發(fā)出來(lái)的界面美觀,可視性好。但組態(tài)王的數(shù)據(jù)最高采集頻率為55 ms,低于磨加工主動(dòng)量?jī)x對(duì)數(shù)據(jù)采集速度的要求,因此它不能作為數(shù)據(jù)采集處理開(kāi)發(fā)工具;VB的數(shù)據(jù)處理功能強(qiáng)大,數(shù)據(jù)采集速度高,可以滿(mǎn)足主動(dòng)量?jī)x的開(kāi)發(fā)要求,因此適合作為底層開(kāi)發(fā)平臺(tái)進(jìn)行數(shù)據(jù)采集與處理?;谝陨弦蛩?,提出基于工業(yè)組態(tài)軟件組態(tài)王6.53和VB6.0混合編程的軟件開(kāi)發(fā)方案。文中以磨加工主動(dòng)量?jī)x單鍵槽工件測(cè)量功能開(kāi)發(fā)為例,主要研究Kingview人機(jī)交互界面設(shè)計(jì)編程、VB數(shù)據(jù)處理程序開(kāi)發(fā)、VB與組態(tài)王之間的數(shù)據(jù)通信技術(shù)3個(gè)混合編程中的關(guān)鍵技術(shù)。
文中依據(jù)VB與組態(tài)王各自的編程優(yōu)勢(shì),確立利用組態(tài)王開(kāi)發(fā)新型磨加工主動(dòng)量?jī)x的人機(jī)交互系統(tǒng),利用VB開(kāi)發(fā)數(shù)據(jù)采集處理系統(tǒng)的軟件系統(tǒng)聯(lián)合編程開(kāi)發(fā)方案。軟件系統(tǒng)的混合編程總體工作分配如圖1所示。
軟件系統(tǒng)的混合編程主要包括3個(gè)部分:第一部分為開(kāi)發(fā)組態(tài)王人機(jī)交互系統(tǒng)。操作人員可通過(guò)人機(jī)交互系統(tǒng)的測(cè)量模塊觀察實(shí)時(shí)測(cè)量值、加工狀況、實(shí)時(shí)曲線,可在手動(dòng)情況下對(duì)設(shè)置和調(diào)整界面中的系統(tǒng)參數(shù)進(jìn)行修改調(diào)整,更新后的數(shù)據(jù)保存于組態(tài)王配方文件中,通過(guò)Blockdde將配方改動(dòng)信號(hào)傳遞給VB,VB進(jìn)行相應(yīng)的配方讀取更新系統(tǒng)參數(shù)值;第二部分是開(kāi)發(fā)VB數(shù)據(jù)采集處理系統(tǒng)。VB程序具體負(fù)責(zé)在軟件系統(tǒng)運(yùn)行后實(shí)現(xiàn)創(chuàng)建Blockdde鏈接,啟動(dòng)組態(tài)王運(yùn)行程序,進(jìn)行板卡初始化,以及循環(huán)往復(fù)地進(jìn)行數(shù)據(jù)的采集、處理輸出工作,同時(shí)接收配方文件更新變量,必要時(shí)進(jìn)行組態(tài)王配方的讀取;第三部分是VB和組態(tài)王軟件之間的通信編程。在混合編程中,許多參數(shù)需要在VB與組態(tài)王之間互相傳遞,是通過(guò)Blockdde的方式進(jìn)行開(kāi)發(fā)的。
圖1 VB與組態(tài)王軟件工作分配
以測(cè)量外徑為例,加工中測(cè)頭落入鍵槽內(nèi)過(guò)程中實(shí)際電壓值如圖2中曲線所示,單鍵槽主動(dòng)測(cè)量的主要思想是輸出周期中,將實(shí)際電壓變化量補(bǔ)償為理論電壓變化量 (虛直線部分)。正常磨削加工情況下,進(jìn)給量、工件轉(zhuǎn)速等因素均為定值,一個(gè)輸出周期ts(12 ms)內(nèi),采集電壓變化值也可視為定值即圖中的hs。
圖2 單鍵槽工件測(cè)量原理圖
由圖2可知,應(yīng)補(bǔ)償?shù)碾妷毫繛?
其中:hv可由VB程序?qū)η昂髢纱尾杉玫降碾妷褐涤?jì)算得到。由圖可知:
其中:tc為操作人員根據(jù)加工條件設(shè)定的系統(tǒng)參數(shù),可知,每次輸出需要進(jìn)行的電壓補(bǔ)償量為:
組態(tài)王的界面設(shè)計(jì)編程主要分為畫(huà)面功能規(guī)劃、繪制畫(huà)面與創(chuàng)建變量、編寫(xiě)動(dòng)畫(huà)鏈接語(yǔ)言等步驟。
單鍵槽工件測(cè)量功能在顯示界面中以“W功能”表示,整個(gè)功能作為一個(gè)小的文本框模塊嵌入項(xiàng)目設(shè)置畫(huà)面中,當(dāng)點(diǎn)擊功能框后,彈出“W功能選擇鍵盤(pán)”畫(huà)面,用于用戶(hù)輸入W功能時(shí)間參數(shù),點(diǎn)擊“W功能選擇鍵盤(pán)”畫(huà)面中的確定按鈕,判斷輸入是否有效,有效則關(guān)閉“W功能選擇鍵盤(pán)”畫(huà)面,返回項(xiàng)目設(shè)置主界面,否則彈出相應(yīng)的報(bào)警窗口,提示用戶(hù)重新輸入。具體組態(tài)王程序執(zhí)行流程規(guī)劃見(jiàn)圖3。
圖3 組態(tài)王程序執(zhí)行流程設(shè)計(jì)
依據(jù)以上設(shè)計(jì),新建變量及其功能如下:\本站點(diǎn)W功能時(shí)間1,用于在項(xiàng)目設(shè)置畫(huà)面的W功能框中顯示用戶(hù)輸入的參數(shù)值 (即tc); \本站點(diǎn)畫(huà)面置頂選擇,用于判定當(dāng)前畫(huà)面級(jí)數(shù),鎖定其他級(jí)數(shù)畫(huà)面按鍵均為無(wú)效;\本站點(diǎn)W功能選擇,用于暫存用戶(hù)輸入中的參數(shù)值。新建畫(huà)面有3個(gè):“項(xiàng)目設(shè)置1”畫(huà)面,用于設(shè)置項(xiàng)目1加工工件的各種加工參數(shù),包括W功能;“W功能選擇鍵盤(pán)”,用戶(hù)輸入W功能參數(shù)值的畫(huà)面; “W功能時(shí)間超限報(bào)警”畫(huà)面,當(dāng)用戶(hù)輸入?yún)?shù)錯(cuò)誤,彈出此窗口。各畫(huà)面設(shè)計(jì)見(jiàn)圖4。
圖4 W功能各級(jí)畫(huà)面設(shè)計(jì)
W功能框彈出的動(dòng)畫(huà)鏈接窗口中,“彈起時(shí)”選項(xiàng)下輸入命令語(yǔ)言為:
if(\本站點(diǎn)畫(huà)面置頂選擇==0)/*判斷是否系統(tǒng)處于1級(jí)畫(huà)面。
ShowPicture("W功能選擇鍵盤(pán)");/*顯示畫(huà)面"W功能選擇鍵盤(pán)"
W功能選擇鍵盤(pán)畫(huà)面中數(shù)字輸入按鈕的“彈起時(shí)”選項(xiàng)下輸入命令語(yǔ)言類(lèi)似,分別控制字符串變量“\本站點(diǎn)W功能選擇”加相應(yīng)的字符;取消按鍵控制關(guān)閉W功能選擇鍵盤(pán),回到項(xiàng)目設(shè)置1畫(huà)面;清除按鍵控制清空字符串變量“\本站點(diǎn)W功能選擇”;確認(rèn)鍵“彈起時(shí)”選項(xiàng)的命令語(yǔ)言為:
VB程序負(fù)責(zé)單鍵槽工件測(cè)量原理的程序?qū)崿F(xiàn),主要由開(kāi)發(fā)的功能函數(shù)Public Function function W實(shí)現(xiàn),其函數(shù)體如下:
由于采用VB與組態(tài)王的混合編程技術(shù),兩款軟件之間的數(shù)據(jù)傳遞非常重要,數(shù)據(jù)傳遞的效率決定了整個(gè)系統(tǒng)實(shí)時(shí)性的好壞。VB與組態(tài)王程序之間的數(shù)據(jù)通信方式選用Blockdde通信模式,只需建立一個(gè)熱鏈接即可完成多個(gè)數(shù)據(jù)傳遞,從根本上提高了系統(tǒng)實(shí)時(shí)性。以測(cè)量項(xiàng)目1、2為例,研究Blockdde通信方式的實(shí)現(xiàn)方法。
Blockdde通信的建立主要分為3個(gè)步驟:初始化、建立數(shù)據(jù)庫(kù)、數(shù)據(jù)互傳。整個(gè)過(guò)程需要VB與組態(tài)王進(jìn)行相應(yīng)的編程與設(shè)置,VB所用函數(shù)及功能見(jiàn)表1。
表1 Blockdde中所用函數(shù)及函數(shù)功能
初始化主要完成對(duì)服務(wù)器名、話(huà)題名的聲明。服務(wù)器名、話(huà)題名是服務(wù)程序的“身份證”,用于唯一標(biāo)識(shí)所創(chuàng)建的服務(wù)程序。VB中聲明的服務(wù)器名、話(huà)題名必須和組態(tài)王中建立的Blockdde動(dòng)態(tài)鏈接設(shè)置的相同,此例中針對(duì)測(cè)量項(xiàng)目1、2(即測(cè)頭1、2的實(shí)際測(cè)量值)進(jìn)行編程,實(shí)現(xiàn)測(cè)量值的實(shí)時(shí)傳遞。
建立數(shù)據(jù)庫(kù),需要進(jìn)行數(shù)據(jù)通信的所有變量的信息均需要進(jìn)行數(shù)據(jù)庫(kù)登記,變量信息包括變量ID、變量類(lèi)型、屬性、初始值等;變量信息在組態(tài)王建立變量時(shí)確定,VB進(jìn)行數(shù)據(jù)庫(kù)登記時(shí)需要與組態(tài)王相關(guān)變量信息保持一致。組態(tài)王中測(cè)量項(xiàng)目1、2測(cè)量值變量的信息見(jiàn)表2。
表2 組態(tài)王中測(cè)量項(xiàng)目1、2測(cè)量值變量信息
數(shù)據(jù)互傳包括VB將變化的數(shù)據(jù)傳遞給組態(tài)王與組態(tài)王將設(shè)定值傳給VB。對(duì)于測(cè)量項(xiàng)目1、2,需要VB通過(guò)Blockdde實(shí)時(shí)傳遞給組態(tài)王,其程序代碼如下:
通過(guò)對(duì)組態(tài)王與VB的混合編程,實(shí)現(xiàn)利用組態(tài)王人機(jī)交互系統(tǒng)進(jìn)行各個(gè)模塊的開(kāi)發(fā)、界面設(shè)計(jì)與程序編寫(xiě);利用VB將數(shù)據(jù)采集、多種處理數(shù)據(jù)方法、Blockdde傳輸?shù)裙δ茉O(shè)計(jì)編寫(xiě)為自定義函數(shù)模塊,供VB主程序調(diào)用。最終構(gòu)建了完整的磨加工主動(dòng)量?jī)x軟件系統(tǒng)。結(jié)合系統(tǒng)硬件平臺(tái),以W功能、測(cè)量結(jié)果傳遞為測(cè)量對(duì)象,對(duì)組態(tài)王顯示界面、VB后臺(tái)處理及Blockdde通信進(jìn)行了一系列的實(shí)驗(yàn)驗(yàn)證。
W功能選用了項(xiàng)目1、2兩個(gè)測(cè)量項(xiàng)目,參數(shù)設(shè)置除W功能有無(wú)外,其余均相同,通過(guò)調(diào)整測(cè)量傳感器電壓大小,最終在組態(tài)王測(cè)量界面中得到的項(xiàng)目1、2的尺寸變化曲線如圖5所示,分析可知有W功能的項(xiàng)目1與無(wú)W功能的項(xiàng)目2相比,尺寸曲線得到了準(zhǔn)確有效的補(bǔ)償修正,證明由VB編寫(xiě)的W功能函數(shù)正確有效,且將修正后的值實(shí)時(shí)傳遞給組態(tài)王人機(jī)交互界面。
圖5 W功能試驗(yàn)曲線
Blockdde選用項(xiàng)目1、2為測(cè)量項(xiàng)目,以?xún)蓚€(gè)項(xiàng)目的測(cè)量值為實(shí)驗(yàn)對(duì)象,利用VB啟動(dòng)組態(tài)王運(yùn)行程序,調(diào)整測(cè)頭數(shù)據(jù)至適當(dāng)位置,組態(tài)王測(cè)量界面中測(cè)量值與VB運(yùn)行程序中Form1窗體測(cè)量值運(yùn)行結(jié)果如圖6所示,兩者時(shí)刻保持相同,由此可知VB程序順利通過(guò)Blockdde通信方式將測(cè)得的測(cè)量數(shù)據(jù)傳遞給了組態(tài)王。
圖6 Blockdde通信試驗(yàn)曲線
采用VB與組態(tài)王混合編程的方式,有效地發(fā)揮了兩款軟件各自的優(yōu)勢(shì),一方面利用組態(tài)王開(kāi)發(fā)出了美觀、操作簡(jiǎn)潔的顯示界面,另一方面利用VB開(kāi)發(fā)出了高速的數(shù)據(jù)采集、處理程序,使主動(dòng)量?jī)x的實(shí)時(shí)性、精度得到了有效保證,為我國(guó)磨削加工主動(dòng)測(cè)量?jī)x的發(fā)展做出應(yīng)有貢獻(xiàn),具有廣闊的市場(chǎng)應(yīng)用前景。
[1]王鴻偉.磨加工過(guò)程中的主動(dòng)測(cè)量?jī)x[J].軸承,2004(4):32-34.
[2]周自波.外圓磨在線檢測(cè)應(yīng)用系統(tǒng)的硬件研究與開(kāi)發(fā)[D].成都:四川大學(xué),2005.
[3]北京亞控科技發(fā)展有限公司.組態(tài)王 Kingview version6.51命令語(yǔ)言函數(shù)速查手冊(cè)[M].北京:亞控公司,2005.
[4]郭寒軍.嵌入式智能主動(dòng)測(cè)量?jī)x的研究與開(kāi)發(fā)[D].無(wú)錫:江南大學(xué),2008.
[5]史延齡.基于VB6.0和DDE的組態(tài)王與智能儀表的通信研究[J].工業(yè)控制計(jì)算機(jī),2011(4):80-81.
[6]李洪波.智能主動(dòng)測(cè)量系統(tǒng)開(kāi)發(fā)與應(yīng)用[D].哈爾濱:黑龍江大學(xué),2008.
[7]辛德璽,孫濤.機(jī)械加工中的主動(dòng)測(cè)量?jī)x控制[J].中國(guó)集體經(jīng)濟(jì)(下半月),2007(5):134.
[8]亞控公司.組態(tài)王5.1使用手冊(cè)[M].北京:亞控自動(dòng)化軟件科技有限公司,1999.
[9]郭秀江,汪仁煌.BlockDDE在瀝青拌和樓控制系統(tǒng)數(shù)據(jù)采集中的應(yīng)用[J].廣東工業(yè)大學(xué)學(xué)報(bào),2002(1):16-20.