周思柱,曾豪勇,李寧,華劍,秦倫
(長江大學(xué)機械結(jié)構(gòu)強度與振動研究所,湖北荊州 434023)
數(shù)控技術(shù)是用數(shù)字信息技術(shù)控制機械運動的技術(shù),數(shù)控裝備則是機械技術(shù)與數(shù)字信息技術(shù)深度結(jié)合的典型體現(xiàn)。當(dāng)前,數(shù)控技術(shù)正在向智能化和網(wǎng)絡(luò)化方向發(fā)展,數(shù)控技術(shù)的進步正加快實現(xiàn)“中國制造”的轉(zhuǎn)型升級,使得機械工業(yè)正在由電氣化時代向數(shù)控化時代過渡。數(shù)控系統(tǒng)是實現(xiàn)數(shù)控化的核心裝備,通過網(wǎng)絡(luò)及通信技術(shù)對數(shù)控系統(tǒng)進行無人化操作、加工程序的傳輸、狀態(tài)監(jiān)控和故障診斷等遠(yuǎn)程管理控制,對于提升傳統(tǒng)裝備制造業(yè)、實現(xiàn)信息化制造和網(wǎng)絡(luò)化制造有著重要意義。
采用靜態(tài)鏈接庫技術(shù),在VC++編程環(huán)境下調(diào)用系統(tǒng)提供的API接口函數(shù)庫,實現(xiàn)PC機與華中8型數(shù)控系統(tǒng)的網(wǎng)絡(luò)通信,實現(xiàn)機床參數(shù)、工作狀態(tài)和故障診斷等信息交互,從而快速、高效、可靠地完成數(shù)控機床的管理與監(jiān)控。
華中8型數(shù)控系統(tǒng)為國內(nèi)自主研發(fā)的高檔數(shù)控系統(tǒng),此課題所選為8型系列的HNC-808M數(shù)控裝置。借助數(shù)控裝置的網(wǎng)絡(luò)通信功能,PC機可以獲取系統(tǒng)信息,也可以發(fā)送相應(yīng)指令控制機床動作,具體包括:
(1)獲取系統(tǒng)工作狀態(tài)、軸參數(shù)等信息;
(2)手動運行。等同于控制面板手動鍵或手持單元,可通過PC機界面手動移動機床進給軸;
(3)加工程序的遠(yuǎn)程傳輸與運行;
(4)數(shù)控系統(tǒng)的遠(yuǎn)程故障診斷。
8型系統(tǒng)軟件架構(gòu)層次包括HMI、API以及NCU三部分,其結(jié)構(gòu)如圖1所示。HMI是用戶與系統(tǒng)之間進行信息交互的媒介。NCU層是實現(xiàn)系統(tǒng)功能的核心部分,開發(fā)人員將該層功能進行封裝,通過調(diào)用應(yīng)用程序接口 (API)函數(shù)來訪問特定的功能與服務(wù),實現(xiàn)數(shù)據(jù)共享。圖1所示的API層則為NCU的接口層,為上層的應(yīng)用提供訪問系統(tǒng)功能的接口函數(shù)。
圖1 8型系統(tǒng)軟件結(jié)構(gòu)
8型系統(tǒng)的API函數(shù)是以靜態(tài)鏈接庫的形式存放的,程序員將相應(yīng)的函數(shù)和數(shù)據(jù)編譯進庫 (擴展名為*.LIB),使用時需要提供生成庫的.h文件和.lib文件。在鏈接過程中,VC++的編譯器從靜態(tài)庫中恢復(fù)這些函數(shù)和數(shù)據(jù),并將其和應(yīng)用程序中的其他模塊一起加入到可執(zhí)行程序中,實現(xiàn)靜態(tài)鏈接。借助靜態(tài)鏈接庫,在PC機上調(diào)用庫中相應(yīng)的功能函數(shù),即可實現(xiàn)數(shù)控系統(tǒng)相應(yīng)的功能。
數(shù)控系統(tǒng)的通信協(xié)議與通信接口是實現(xiàn)數(shù)控系統(tǒng)遠(yuǎn)程控制功能的關(guān)鍵。不同的數(shù)控系統(tǒng)所配置的通信接口也不盡相同,如串行口、以太網(wǎng)接口和DNC接口。但無論是串行通信還是以太網(wǎng)通信,常用的策略是利用編程軟件的通信控件建立通信連接,如VC++集成環(huán)境下微軟的ActiveX控件MSComm和VB環(huán)境下的Winsock控件。這種方法需要編程者按照通信協(xié)議編寫相應(yīng)的程序和設(shè)置控件屬性,以建立連接,增加了開發(fā)工作量。
不同于上述通信方法,8型系統(tǒng)是帶有TCP/IP協(xié)議的網(wǎng)絡(luò)通信服務(wù)的數(shù)控系統(tǒng),系統(tǒng)定義了TCP/IP網(wǎng)絡(luò)的API,以靜態(tài)鏈接庫的形式提供給用戶使用。系統(tǒng)與上位機通信時,無需重新設(shè)置通信控件,只需在上位機C++程序中設(shè)置好IP地址和端口號,調(diào)用靜態(tài)鏈接庫中的網(wǎng)絡(luò)功能函數(shù)即能實現(xiàn)通信功能。
在Visual Studio 2010開發(fā)環(huán)境下,調(diào)用靜態(tài)鏈接庫的步驟如下:在項目→配置屬性→鏈接器→輸入→附加依賴項中加入.lib文件,并將*lib.h拷貝到當(dāng)前工程目錄下,然后在調(diào)用程序的.cpp源代碼文件中添加語句:
按照不同的功能屬性,8型系統(tǒng)提供了不同的接口文件 (*lib.h文件),此課題所使用的接口主要如表1所示。
表1 8型系統(tǒng)API主要接口
(1)建立通信。PC機與數(shù)控系統(tǒng)的通信采用TCP/IP協(xié)議的客戶機/服務(wù)器(C/S)編程模式。HNC-8系列數(shù)控裝置通信菜單下可查看服務(wù)器IP和本機IP,服務(wù)器IP為上位機IP地址,該IP可以修改,設(shè)置時必須與數(shù)控系統(tǒng)IP地址保持同一C段,端口號的選擇要避開系統(tǒng)的保留端口。此外,還需將數(shù)控系統(tǒng)參數(shù)000050號參數(shù)置1,以啟動系統(tǒng)網(wǎng)絡(luò)功能。
在VC++環(huán)境下,按如圖2所示流程圖調(diào)用hncnet.h中的函數(shù)即能與數(shù)控系統(tǒng)建立通信。相關(guān)程序代碼如下所示:
為端口號
("192.168.1.113",10001);//192.168.1.113為數(shù)控系統(tǒng)的IP。
圖2 調(diào)用API函數(shù)通信過程
(2)獲取系統(tǒng)狀態(tài)信息。在上位機界面顯示數(shù)控系統(tǒng)當(dāng)前的狀態(tài),包括工作模式、加工信息以及報警信息等。
(3)手動操作。手動進給是通過調(diào)用hncreg.h中的寄存器接口函數(shù)來設(shè)置手動軸寄存器值 (圖3所示)實現(xiàn)的。
圖3 手動軸寄存器設(shè)置 (PLC梯形圖)
程序代碼為:
(4)加載G代碼并運行。借助通信功能,上位機可以將G代碼程序發(fā)送至系統(tǒng)內(nèi)存并運行,也可以通過程序加載函數(shù)HNC_SysCtrlSelectProg()直接加載并運行上位機路徑下的程序,實時性強,方便有效。
連接硬件,開啟PC端程序及數(shù)控系統(tǒng),當(dāng)顯示連接正常時,表示PC機與數(shù)控系統(tǒng)通信成功,在PC機上選擇程序運行,運行界面如圖4所示。
圖4 PC機程序與數(shù)控系統(tǒng)運行結(jié)果顯示
經(jīng)測試,在PC機程序上選擇加工代碼運行,PC機顯示當(dāng)前加工程序、數(shù)控系統(tǒng)運行參數(shù)以及軸參數(shù)等信息準(zhǔn)確及時;手動操作過程流暢;可直接在上位機上編寫G代碼;運行后無需人工操作數(shù)控系統(tǒng),較好地實現(xiàn)了遠(yuǎn)程控制的功能。
隨著數(shù)控技術(shù)網(wǎng)絡(luò)化的發(fā)展,遠(yuǎn)程控制技術(shù)可以實現(xiàn)機床的集中管理,明顯節(jié)省車間資源。采用Windows環(huán)境PC上位機,與華中8型高檔數(shù)控系統(tǒng)進行信息交換、遠(yuǎn)程操作與監(jiān)控診斷,實現(xiàn)了數(shù)控系統(tǒng)的遠(yuǎn)程控制功能,提高了數(shù)控系統(tǒng)的開發(fā)效率,實時性好,操作性強。
[1]趙維鐸,易紅,倪中華,等.基于WEB的數(shù)控系統(tǒng)遠(yuǎn)程控制的研究[J].制造業(yè)自動化,2002,24(8):6 -9.
[2]郇極,馬維民.數(shù)控系統(tǒng)網(wǎng)絡(luò)和遠(yuǎn)程服務(wù)功能的研究和試驗[J].組合機床與自動化加工技術(shù),2003(2):49-53.
[3]WRIGHT C.Visual C++程序員實用大全(精華版)[M].鄧勁生,等譯.北京:中國水利水電出版社,2005.
[4]武漢華中數(shù)控股份有限公司.華中8型應(yīng)用程序開發(fā)接口(HNCAPI)及使用案例[M],2013.