鄭鵬,張琳娜,趙鳳霞
(鄭州大學(xué)機(jī)械工程學(xué)院,河南鄭州 450001)
磨加工主動(dòng)量?jī)x動(dòng)態(tài)數(shù)據(jù)交換技術(shù)的研究
鄭鵬,張琳娜,趙鳳霞
(鄭州大學(xué)機(jī)械工程學(xué)院,河南鄭州 450001)
根據(jù)工控主板型磨加工主動(dòng)量?jī)x的硬件結(jié)構(gòu)特點(diǎn)及功能要求,利用組態(tài)軟件和高級(jí)語(yǔ)言混合編程方式實(shí)現(xiàn)主動(dòng)量?jī)x軟件系統(tǒng)的開發(fā)。針對(duì)磨加工主動(dòng)量?jī)x數(shù)據(jù)采集、分析和處理的數(shù)據(jù)通信問題,提出了基于BlockDDE技術(shù)的動(dòng)態(tài)數(shù)據(jù)交換方法。給出了主動(dòng)量?jī)x數(shù)據(jù)交換的原理,以及BlockDDE初始化、建立數(shù)據(jù)庫(kù)、數(shù)據(jù)傳輸?shù)脑敿?xì)步驟。為驗(yàn)證該方法的正確性,給出了具體的應(yīng)用實(shí)例。實(shí)驗(yàn)結(jié)果表明:該方法可以滿足主動(dòng)量?jī)x數(shù)據(jù)傳輸?shù)膶?shí)時(shí)性、高速性、精確性要求。研究成果將為新型磨加工主動(dòng)量?jī)x的開發(fā)提供必要的技術(shù)支持。
磨加工;主動(dòng)測(cè)量;BlockDDE技術(shù);控制系統(tǒng)
隨著制造業(yè)現(xiàn)代化的不斷發(fā)展,工業(yè)生產(chǎn)對(duì)設(shè)備的加工精度、加工效率提出了更高的要求。磨削加工擔(dān)負(fù)著零件精密表面的最終加工工序,它的精度對(duì)機(jī)械產(chǎn)品的質(zhì)量具有直接的影響[1]。磨加工主動(dòng)測(cè)量控制儀 (簡(jiǎn)稱主動(dòng)量?jī)x)在近二十年得到了快速的發(fā)展,它是一種在線測(cè)量工件并能控制磨削進(jìn)程的智能化設(shè)備[2-3]。在工作過程中,主動(dòng)量?jī)x始終測(cè)量著工件的尺寸,并將其尺寸變化量隨時(shí)傳遞給控制器,再由控制設(shè)備發(fā)出信號(hào)控制機(jī)床的動(dòng)作,如圖1所示。由于它能使操作人員無需停機(jī)就能測(cè)量工件,減少了勞動(dòng)強(qiáng)度,提高了生產(chǎn)效率,降低了廢品率。但目前國(guó)內(nèi)磨加工主動(dòng)量?jī)x的發(fā)展相對(duì)落后,產(chǎn)品普遍存在功能單一、顯示不夠直觀、設(shè)置及調(diào)整不方便等不足。
圖1 磨加工主動(dòng)量?jī)x工作原理圖
針對(duì)國(guó)內(nèi)磨加工主動(dòng)量?jī)x存在的問題,以基于工控主板的總線式硬件系統(tǒng)為平臺(tái),利用組態(tài)軟件進(jìn)行控制軟件系統(tǒng)的開發(fā)。由于組態(tài)軟件開發(fā)界面便捷,很大程度上提高了人機(jī)界面的交互能力和可操作性[4-5]。但組態(tài)軟件受限于數(shù)據(jù)采集頻率,它無法滿足磨削加工中的測(cè)量采樣要求。因此,采用組態(tài)軟件與高級(jí)語(yǔ)言混合編程方式進(jìn)行系統(tǒng)的開發(fā)無疑是有效解決高速采樣和數(shù)據(jù)處理問題的途徑。文中針對(duì)混合編程過程中數(shù)據(jù)采集、分析和處理的交互問題,提出了基于BlockDDE的主動(dòng)量?jī)x動(dòng)態(tài)數(shù)據(jù)交換方法,有效地提高了數(shù)據(jù)通信效率,保證了過程的實(shí)時(shí)性和準(zhǔn)確性,為磨加工主動(dòng)量?jī)x的系統(tǒng)開發(fā)提供可靠的技術(shù)支持。
磨加工主動(dòng)量?jī)x采用組態(tài)王KingView作為系統(tǒng)的上層平臺(tái),實(shí)現(xiàn)顯示和用戶操作界面功能;采用VisualBasic(以下簡(jiǎn)稱VB)程序作為底層平臺(tái),實(shí)現(xiàn)與傳感測(cè)量裝置及數(shù)控磨床接口通信,完成數(shù)據(jù)采集及數(shù)據(jù)處理。系統(tǒng)的數(shù)據(jù)交換工作流程如圖2所示。在磨削加工過程中,測(cè)量裝置 (測(cè)頭)始終監(jiān)測(cè)著工件的尺寸變化,并實(shí)時(shí)將采樣數(shù)據(jù)傳遞給主動(dòng)量?jī)x的底層平臺(tái)VB程序,VB程序從組態(tài)王參數(shù)配方中讀取已預(yù)先設(shè)定的各參數(shù),并將當(dāng)前工件尺寸測(cè)量值和信號(hào)點(diǎn)設(shè)定值進(jìn)行比對(duì),從而通過IO口發(fā)出信號(hào) (粗磨、精磨、光磨、到尺寸等)給磨床控制系統(tǒng),機(jī)床隨即進(jìn)行相應(yīng)的動(dòng)作,如改變砂輪的轉(zhuǎn)速和進(jìn)給速度等。同時(shí),按要求實(shí)時(shí)地將處理后的數(shù)據(jù)傳遞給上層平臺(tái)組態(tài)王界面進(jìn)行顯示。
圖2 主動(dòng)量?jī)x數(shù)據(jù)交換流程圖
由上述主動(dòng)量?jī)x的功能和數(shù)據(jù)交換原理可知,當(dāng)采用混合編程時(shí),高速、實(shí)時(shí)、準(zhǔn)確的數(shù)據(jù)交換尤為重要。采用基于BlockDDE的動(dòng)態(tài)數(shù)據(jù)交換技術(shù),實(shí)現(xiàn)主動(dòng)量?jī)x工作過程中組態(tài)王和VB之間的數(shù)據(jù)動(dòng)態(tài)交互。
標(biāo)準(zhǔn)DDE(Dynamic Data Exchange)是微軟公司在Windows平臺(tái)上設(shè)計(jì)的一個(gè)完整的通信協(xié)議,它支持兩個(gè)或多個(gè)應(yīng)用程序能彼此交換數(shù)據(jù)和發(fā)送指令[6]。DDE始終發(fā)生在客戶應(yīng)用程序和服務(wù)器應(yīng)用程序之間。提供數(shù)據(jù)的一方稱為服務(wù)器,接收數(shù)據(jù)的一方稱為客戶。通過建立“熱鏈路”將客戶程序和服務(wù)器程序聯(lián)系起來,所謂“熱鏈路”,就是請(qǐng)求服務(wù)程序,每當(dāng)特定項(xiàng)的數(shù)據(jù)發(fā)生變化時(shí),就將數(shù)據(jù)值直接發(fā)送給客戶程序。使用標(biāo)準(zhǔn)的DDE時(shí),每個(gè)DDE項(xiàng)目都必須對(duì)應(yīng)一個(gè)熱鏈接,當(dāng)要交換的數(shù)據(jù)量大時(shí),將消耗更多的資源,而且在數(shù)據(jù)量大并且數(shù)據(jù)變化頻繁時(shí),速度會(huì)變得很慢。BlockDDE可以有效地解決這一“瓶頸”問題,在使用BlockDDE時(shí),在服務(wù)器程序和客戶程序之間只需建立一個(gè)熱鏈接,服務(wù)器程序的多個(gè)數(shù)據(jù)項(xiàng)同時(shí)發(fā)生變化后,只需一次DDE通信就可以傳送給客戶程序,運(yùn)行速度快捷。圖3所示為兩種交換方式的比較。
圖3 DDE及BlockDDE鏈接方式
DDE通信都需要建立服務(wù)程序名,主題名及項(xiàng)目名3個(gè)標(biāo)識(shí)。對(duì)于標(biāo)準(zhǔn)的DDE,組態(tài)王的應(yīng)用程序名和主題分別規(guī)定為“VIEW”和“tagname”,在數(shù)據(jù)詞典里定義I/O變量的同時(shí)也定義了項(xiàng)目名;VB程序的應(yīng)用程序名和主題分別為工程名和窗體的LinkTopic屬性值,項(xiàng)目名是一個(gè)特定的文本框、標(biāo)簽或圖片框的名稱。對(duì)于BlockDDE,可通過調(diào)用初始化函數(shù)同時(shí)完成對(duì)服務(wù)程序名和主題名的聲明,并且項(xiàng)目名不但可以是對(duì)應(yīng)于VB應(yīng)用程序中的控件名,而且還可以是變量名,這對(duì)于采用VB開發(fā)底層程序而言,不需要在窗體上創(chuàng)建控件,從而使得程序更加簡(jiǎn)潔流暢。
根據(jù)上述磨加工主動(dòng)量?jī)x數(shù)據(jù)交換過程,基于BlockDDE技術(shù)實(shí)現(xiàn)動(dòng)態(tài)數(shù)據(jù)的交換主要包括初始化、建庫(kù)、數(shù)據(jù)傳輸。BlockDDE以動(dòng)態(tài)鏈接庫(kù)的形式用來開發(fā)DDE服務(wù)程序 (以下簡(jiǎn)稱I/O SERVER)。
BlockDDE的初始化首先需要聲明I/O SERVER的服務(wù)名和主題名,登記重載函數(shù)DataFormKingView的實(shí)際地址以及主窗口句柄。初始化是由函數(shù)SDde_Initial來完成的,通常在主窗口創(chuàng)建進(jìn)行。下面一段代碼用于初始化服務(wù)名svrName為“主動(dòng)量?jī)x”,主題名topicName為“BlockDDE”的 I/O SERVER。Dim suc As Integer
BlockDDE為每一個(gè)I/O SERVER維護(hù)一個(gè)數(shù)據(jù)庫(kù)。所有需要傳送的數(shù)據(jù)點(diǎn)都要登記入庫(kù),必須聲明每個(gè)數(shù)據(jù)點(diǎn)變量的ID號(hào)、變量類型、數(shù)據(jù)屬性及初始值,可通過調(diào)用函數(shù)CreatDateBaseItem為每一個(gè)數(shù)據(jù)點(diǎn)登記。
CreateDataBaseItem(ByVal hInst As long,ByVal wTagID as integer,Byval bType As BYTE,ByVal bAttri As BYTE,InitialDdeValue As DDEValue)
其中:wTagID為該變量在組態(tài)王數(shù)據(jù)詞典中的ID號(hào);bType為該變量的數(shù)據(jù)類型,有模擬型(FLOAT_TYPE)、長(zhǎng)整型 (LONG_TYPE)、離散型(DISC_TYPE)、字符串型 (STRING_TYPE)4種;bAttri為該變量的數(shù)據(jù)屬性,有讀寫或只寫;InitialD-deValue為該變量的初始值。
如定義測(cè)量裝置測(cè)頭1的數(shù)據(jù)變量為G1,數(shù)據(jù)類型為IO實(shí)型,ID地址為21,數(shù)據(jù)屬性為讀寫。為判斷主動(dòng)量?jī)x當(dāng)前工作狀態(tài)是手動(dòng)還是自動(dòng),在組態(tài)王中定義IO字符串變量READY,ID地址為23。如圖4所示,則有
圖4 變量定義列表
初始化和創(chuàng)建數(shù)據(jù)庫(kù)成功后,I/O SERVER和組態(tài)王之間能夠進(jìn)行雙向數(shù)據(jù)交換。I/O SERVER可以不斷地將變化的數(shù)據(jù)傳送給組態(tài)王并隨時(shí)接收組態(tài)王發(fā)送過來的數(shù)據(jù)。I/O SERVER向組態(tài)王傳送的過程分兩步:首先,調(diào)用SDde_SetDataToDB將新值設(shè)入到BlockDDE數(shù)據(jù)庫(kù)中,然后調(diào)用SDde_Send,將其發(fā)送給組態(tài)王。
組態(tài)王與I/O SERVER之間的數(shù)據(jù)交換是雙向的,I/O SERVER通過重載函數(shù)DateFormKingView來完成組態(tài)王向I/O SERVER發(fā)送數(shù)據(jù)。當(dāng)組態(tài)王中的變量發(fā)生改變時(shí),將調(diào)用DateFormKingView。如組態(tài)王傳遞工作狀態(tài)READY值給I/O SERVER的字符串READY變量,則有:
磨加工主動(dòng)量?jī)x實(shí)現(xiàn)加工過程在線的工件測(cè)量,并將控制信號(hào)發(fā)送給數(shù)控磨床,通過閉環(huán)控制實(shí)現(xiàn)工件的自動(dòng)加工。該實(shí)驗(yàn)從測(cè)頭值、工作狀態(tài)、內(nèi)部補(bǔ)調(diào)值3個(gè)方面進(jìn)行數(shù)據(jù)的動(dòng)態(tài)傳輸和顯示,從而驗(yàn)證文中提出的動(dòng)態(tài)數(shù)據(jù)通信方法的正確性。
首先在組態(tài)王KingView環(huán)境的工程瀏覽器下,根據(jù)向?qū)ЫDE設(shè)備,DDE設(shè)備命名為BLOCKDDE,服務(wù)器名和話題名分別為“主動(dòng)量?jī)x”和“BlockDDE”,數(shù)據(jù)交換方式選擇“高速塊交換”,如圖5所示。
DDE設(shè)備建立完成后,在數(shù)據(jù)詞典中定義相應(yīng)的DDE變量,如表1所示,分別建立對(duì)應(yīng)于測(cè)頭1、測(cè)頭 2、工作狀態(tài)、內(nèi)部補(bǔ)調(diào)值變量 G1、G2、READY、nb,其中“寄存器”的值就是在定義變量時(shí)變量屬性中的項(xiàng)目名,對(duì)應(yīng)于VB應(yīng)用程序中的控件名或變量名,如圖6所示。
圖5 DDE的設(shè)備建立
表1 組態(tài)王變量定義
圖6 組態(tài)王數(shù)據(jù)詞典變量定義界面
實(shí)驗(yàn)過程中數(shù)控磨床驅(qū)動(dòng)測(cè)量裝置,接觸式測(cè)量工件,VB程序采集并處理測(cè)頭1、測(cè)頭2的測(cè)量數(shù)據(jù),對(duì)傳感器電壓值與尺寸關(guān)系為:測(cè)量值=(測(cè)頭電壓值-零位電壓值)×倍率,其結(jié)果如表2所示。為便于觀察,將測(cè)量數(shù)據(jù)顯示于VB工程界面中,如圖7所示,當(dāng)主動(dòng)量?jī)x工作時(shí),VB程序?qū)y(cè)頭數(shù)據(jù)傳遞給組態(tài)王用戶界面進(jìn)行顯示。運(yùn)行組態(tài)王工程后,在主動(dòng)量?jī)x測(cè)量窗口4中通過智能仿真儀表顯示測(cè)頭1、測(cè)頭2的數(shù)據(jù),儀表具有自動(dòng)倍率切換功能,如圖8所示。
表2 測(cè)頭數(shù)據(jù)
圖7 VB工程界面
圖8 組態(tài)王測(cè)量窗口界面
主動(dòng)量?jī)x工作過程中,組態(tài)王將主動(dòng)量?jī)x的工作狀態(tài)READY值 (手動(dòng)為0、自動(dòng)為1)反饋到VB中,通過VB與數(shù)控磨床IO的通信,磨床產(chǎn)生相應(yīng)的動(dòng)作。另一方面,由于主動(dòng)量?jī)x存在系統(tǒng)誤差,操作人員在加工過程中可以通過內(nèi)部補(bǔ)調(diào)值修正實(shí)時(shí)測(cè)量結(jié)果,如圖8所示,該內(nèi)部補(bǔ)調(diào)值需要傳遞給后臺(tái)VB程序進(jìn)行相應(yīng)運(yùn)算,因此,VB需要實(shí)時(shí)接收組態(tài)王發(fā)送的內(nèi)部補(bǔ)償值,接收到的READY及內(nèi)部補(bǔ)調(diào)值如圖7所示。
圖9所示為主動(dòng)量?jī)x的加工過程狀態(tài)顯示窗口,加工中組態(tài)王實(shí)時(shí)接收VB傳輸來的尺寸數(shù)據(jù),通過描繪加工過程數(shù)據(jù)的曲線,可以直觀地反映出工件在磨削過程中所處的加工狀態(tài)。
圖9 主動(dòng)量?jī)x加工狀態(tài)曲線顯示圖
實(shí)驗(yàn)結(jié)果表明:利用組態(tài)王和VB混合編程中的數(shù)據(jù)通信方法能夠滿足主動(dòng)量?jī)x對(duì)數(shù)據(jù)處理的要求;并且利用BlockDDE技術(shù),VB應(yīng)用程序與組態(tài)王數(shù)據(jù)交換的實(shí)時(shí)性也可以滿足過程控制的需要。
基于BlockDDE通信技術(shù)實(shí)現(xiàn)磨加工主動(dòng)量?jī)x的動(dòng)態(tài)數(shù)據(jù)通信,為綜合運(yùn)用組態(tài)王軟件及VB高級(jí)語(yǔ)言的混合編程進(jìn)行主動(dòng)量?jī)x軟件控制系統(tǒng)的開發(fā)提供了必要的技術(shù)基礎(chǔ)。經(jīng)過實(shí)驗(yàn)測(cè)試,在線測(cè)量數(shù)據(jù)的傳遞準(zhǔn)確性、實(shí)時(shí)性及穩(wěn)定性能夠滿足功能要求,進(jìn)一步驗(yàn)證了該方法的可行性和正確性。
[1]SCHOLZ Rick.Gaging Improves Automatic Grinder Control[J].Quality,2002(4):33 -353.
[2]王鴻偉.磨加工過程中的主動(dòng)測(cè)量?jī)x[J].軸承,2004(4):32-34.
[3]薛君英.PULCOMV4主動(dòng)量?jī)x在數(shù)控珩磨加工中的應(yīng)用[J].機(jī)電信息,2010(30):12-13.
[4]楊漢,袁中凡.基于組態(tài)軟件和PLC的機(jī)翼精加工水平測(cè)控系統(tǒng)[J].中國(guó)測(cè)試技術(shù),2008(1):131-133.
[5]李瑞先,譚德榮,曹雁鋒.基于組態(tài)王測(cè)控系統(tǒng)軟件的設(shè)計(jì)及實(shí)現(xiàn)[J].測(cè)控技術(shù),2006(6):57-59.
[6]田曉英,張文焱,劉慶濱,等.利用DDE技術(shù)實(shí)現(xiàn)King View與VC程序的監(jiān)控?cái)?shù)據(jù)通訊[J].自動(dòng)化技術(shù)與應(yīng)用,2004(12):45-48.
Study on Dynam ic Data Exchange Technology for Grinding Active Measuring Instrument
ZHENG Peng,ZHANG Linna,ZHAO Fengxia
(Institute of Mechanical Engineering,Zhengzhou University,Zhengzhou Henan 450001,China)
According to the characteristics of hardware structure and functionality requires of the grinding activemeasuring instrument,mixed-language programming of the configuration software and the computer advanced language was adopted in the activemeasuring instrument system software development.For the communication problem of data acquisition and processing,dynamic data exchangemethod based on BlockDDE was presented.Data exchange principle of the active measuring instrument was described,and BlockDDE initializing,database establishing and data transferwere also described.Finally,an application examplewas given to verify the proposedmethod.The experimental results show that the real-time and accuracy of data exchange for the activemeasuring instrument can bemet by the proposedmethod.The research results can provide profound technical supports for the grinding activemeasuring instrument development.
Grinding;Activemeasurement;BlockDDE technology;Control system
TH705
A
1001-3881(2014)10-162-4
10.3969/j.issn.1001 -3881.2014.10.049
2013-04-27
鄭鵬 (1976—),男,工學(xué)博士,副教授,主要從事機(jī)械精度設(shè)計(jì)、傳感檢測(cè)技術(shù)等領(lǐng)域的研究。E-mail:zpzzut@163.com。