久久免费视频一区二区,伊人久久五月天,午夜免费激情,美女网站免费黄,日韩av专区,欧美天天色,人人澡超碰碰97碰碰碰

基于QT+PMAC的V溝機(jī)數(shù)控軟件的開(kāi)發(fā)

來(lái)源:互聯(lián)網(wǎng)

點(diǎn)擊:2465

A+ A-

所屬頻道:新聞中心

關(guān)鍵詞:PMACV溝機(jī) 數(shù)控軟件

    0 引言

      隨著近年來(lái)光纖通訊行業(yè)的迅猛發(fā)展,對(duì)光纖產(chǎn)品的質(zhì)量要求越來(lái)越高。光纖連接器用于光纖之間的對(duì)接,其主要組成部件是V型槽結(jié)構(gòu)。V型槽結(jié)構(gòu)作為連接光纖的微光學(xué)器件,其加工精度直接影響著光纖連接器的性能。通常V型槽的加工精度由槽的傾斜角、表面粗糙度、直線度等來(lái)衡量。為了實(shí)現(xiàn)V槽的亞微米級(jí)的加工精度,需尋求一種最為有效的加工方式。目前V型槽陣列的加工方法主要有三種:濕法腐蝕,壓膜,超精密加工。利用超精密機(jī)床對(duì)V型槽進(jìn)行磨削加工,是實(shí)現(xiàn)其高精度的一種非常有效的方法。

      超精密數(shù)控系統(tǒng)作為超精密數(shù)控機(jī)床的控制核心,也是加工V型槽陣列需要重點(diǎn)研究的環(huán)節(jié)。QT是C++圖形用戶界面應(yīng)用程序框架,具備藝術(shù)級(jí)的圖形界面開(kāi)發(fā)功能,QT的良好封裝機(jī)制也使得QT的模塊化程度非常高,可重用性較好。PMAC則是功能強(qiáng)大,市場(chǎng)定位較高的一款控制器。本課題在上位機(jī)上借助QT開(kāi)發(fā)工具,調(diào)用Turbo PMAC clipper提供的PcommSeRer Pr02:Lih岬庫(kù)函數(shù),開(kāi)發(fā)了V型槽加工機(jī)床的數(shù)控系統(tǒng)軟件。該軟件不僅實(shí)現(xiàn)了優(yōu)越的人機(jī)界面功能,還能根據(jù)V槽的關(guān)鍵參數(shù)自動(dòng)生成NC代碼并檢測(cè)代碼的正確性,并能對(duì)系統(tǒng)的參數(shù)進(jìn)行規(guī)范的數(shù)據(jù)庫(kù)管理,以及進(jìn)行V槽加工過(guò)程的三維模擬仿真,可視化強(qiáng)。同時(shí),軟件也實(shí)現(xiàn)了系統(tǒng)的CNC運(yùn)動(dòng)控制功能。針對(duì)這樣一款專門應(yīng)用于V型槽陣列加工的軟件,它的實(shí)用性,市場(chǎng)需求度都是不言而喻的。

    1 V溝機(jī)數(shù)控系統(tǒng)的硬件設(shè)計(jì)

      系統(tǒng)硬件結(jié)構(gòu)主要包括:研華工控機(jī),Turbo PMAC Clipper多軸運(yùn)動(dòng)控制器,端子板,KOI工MORGEN AKD.P系列驅(qū)動(dòng),氣浮主軸,KOmMORGEN直線電機(jī),ReniShaw光柵尺,氣浮工作臺(tái),配以其他的I/O等輔助設(shè)備。


    2 V溝機(jī)數(shù)控系統(tǒng)的軟件開(kāi)發(fā)

      V溝機(jī)數(shù)控系統(tǒng)具有普通數(shù)控系統(tǒng)的數(shù)控加工、系統(tǒng)診斷、數(shù)據(jù)采集等功能。同時(shí)還應(yīng)具有本身特殊的功能,即根據(jù)V型槽的關(guān)鍵參數(shù)以及加工工藝自動(dòng)生成NC代碼,將代碼下載至PMAC控制器中,從而進(jìn)行加工。整個(gè)軟件開(kāi)發(fā)過(guò)程包括:軟件功能的設(shè)計(jì)以及功能模塊的劃分,人機(jī)界面的設(shè)計(jì),各功能模塊的編寫(xiě)和調(diào)試,整個(gè)應(yīng)用程序的集成、調(diào)試和運(yùn)矧引。在訪n(10ws7操作系統(tǒng)下,利用QT4.8開(kāi)發(fā)工具,通過(guò)調(diào)用PcommServer Pr02 Library庫(kù)函數(shù),實(shí)現(xiàn)軟件的編寫(xiě)和系統(tǒng)的控制功能。

      2.1 建立QT與PM漁C的通訊

      基于QT+PMAc的開(kāi)放式數(shù)控系統(tǒng),其開(kāi)放性既體現(xiàn)在軟件上,又體現(xiàn)在硬件上。QT提供了非常強(qiáng)大的圖形用戶功能,允許用戶根據(jù)自己的需要開(kāi)發(fā)人機(jī)交互界面;PMAC運(yùn)動(dòng)控制卡則提供了多于400個(gè)運(yùn)動(dòng)相關(guān)的函數(shù),實(shí)現(xiàn)數(shù)控系統(tǒng)插補(bǔ)、前瞻、補(bǔ)償、伺服算法、聯(lián)動(dòng)功能等各種控制功能。

      PcommSenrer Pm2“bEary是PMAC為在Windows系統(tǒng)下開(kāi)發(fā)人機(jī)界面提供的動(dòng)態(tài)鏈接庫(kù)。它是基于COM組件的形式提供的,用戶通過(guò)安裝PMAC Executive pr02 suite軟件包,在系統(tǒng)盤(pán)里可找到pcommserver.exe、pcomm32w.dll、pcomlIl32w.1ib等文件,但并沒(méi)有提供庫(kù)的頭文件,因此不能用一般的顯式隱式來(lái)調(diào)用。那么要在QT中調(diào)用庫(kù)函數(shù),就必須知道QT如何調(diào)用COM接口,下面說(shuō)明其調(diào)用方法。

      QT提供的QAxContainer模塊,該模塊允許使用COM對(duì)象,以及在QT應(yīng)用程序中嵌入ActiveX控件。它提供了2個(gè)類:QAxwidget(Qwidget的子類,作為ActiveX控件的容器)和QAxObject(QWidget的子類,易于訪問(wèn)非可視化COM對(duì)象)。本次開(kāi)發(fā)中采用生成命名空間的方式來(lái)調(diào)用cOM對(duì)象的APIs。具體操作流程如下:

      (1)通過(guò)VC++6.0中的Tools工具條中的OLE/COM object viewer選項(xiàng),查找類型庫(kù),可查得pcom—mserver.exe的類型庫(kù)ID{50ECCF67-B73C-431B-A53D-9EDDAF3CE611}

      (2)叫提供了一個(gè)名為d啪pcpp的工具可以為想要訪問(wèn)的類型庫(kù)生成一個(gè)c++名空間,將dumpcpp工具所在的bin目錄添加到系統(tǒng)路徑中。

      (3)運(yùn)行命令提示符,在用戶名后輸人命令:dumpcpp-n PCOMMSERVERKb{50ECCF67-B73C-431B-A53D-9EDDAF3CE611}。運(yùn)行后,會(huì)自動(dòng)生成兩個(gè)文件:ponmmserverHb.cpp和ponmmserverlib.h。

      (4)在QT應(yīng)用程序的.pm中添加“CONnG+=qaxcontainer”,并添加上述導(dǎo)出的頭文件和源文件。通過(guò)包含頭文件“#include ponmmserverlib.h”和在程序開(kāi)頭使用“using namespace PCOMMSERVERLib;”語(yǔ)句,并定義“PCOMMSERVERLib:PmacDevice*Pmac”對(duì)象指針,利用Pmac即可調(diào)用運(yùn)動(dòng)庫(kù)函數(shù)。

      2.2 數(shù)控軟件主界面設(shè)計(jì)

      利用QT優(yōu)越的圖形界面設(shè)計(jì)功能,實(shí)現(xiàn)人機(jī)接口界面如圖2所示,界面實(shí)現(xiàn):坐標(biāo)、速度、狀態(tài)、程序的顯示,三維圖形的顯示和模擬仿真,自動(dòng)加工信息處理,文件的管理,零件尺寸、系統(tǒng)、伺服、砂輪等參數(shù)設(shè)置,MDI,G代碼編譯,錯(cuò)誤診斷等功能。整個(gè)界面秉承了設(shè)計(jì)友好,操作簡(jiǎn)單,交互性好的原則。

      2.3 各功能模塊的設(shè)計(jì)和開(kāi)發(fā)

      數(shù)控軟件作為整個(gè)數(shù)控系統(tǒng)的核心組成部分,功能眾多。為了使數(shù)控系統(tǒng)易于維護(hù),具有可重構(gòu)性、可擴(kuò)展性,采用模塊化設(shè)計(jì)方法。

      (1)系統(tǒng)的初始化

      建立injtial()函數(shù)實(shí)現(xiàn)控制器的初始化,首先調(diào)用SelectDevice(int hWiIldow,im&pdwDe、rice,bool&pbsuccess)函數(shù)選擇設(shè)備號(hào),調(diào)用后會(huì)彈出設(shè)備選擇對(duì)話框,選擇PMAC 00,點(diǎn)擊OK按鈕。然后,調(diào)用open(int&pdwDevice,b001&pbSuccess)函數(shù)打開(kāi)運(yùn)動(dòng)控制器,若PC未連接卡或通訊出現(xiàn)異常則報(bào)錯(cuò),另外系統(tǒng)關(guān)閉時(shí)需調(diào)用close(int&p“Device)關(guān)閉控制卡。

      (2)系統(tǒng)設(shè)置及處理下載系統(tǒng)的配置文件,如I、M、P、Q變量配置,G代碼的解釋程序,監(jiān)控的PLC程序以及其它的特殊的參數(shù)設(shè)置。

      (3)NC文件的讀取、編譯、下載

      對(duì)系統(tǒng)進(jìn)行設(shè)置完成后,打開(kāi)并讀取加工文件,然后對(duì)其進(jìn)行編譯,編譯成功后下載至運(yùn)動(dòng)控制器,下載文件到控制器時(shí)使用:D響rIlload(int dwDevice,constQString&fileP訕,bool bMacro,b00l bM印,bool bkg,b001 bDmd,bool&pbSuccess)函數(shù),該函數(shù)在使用時(shí)需要注意參數(shù):①filepatll指的是絕對(duì)路徑,相對(duì)路徑無(wú)法識(shí)別。②bDIlld代表是否下載,所以需要置為tme,否則,不能成功執(zhí)行。③執(zhí)行多個(gè)DowIlload命令需要中間調(diào)用Sleep()函數(shù)。

      另外,PMAC雖然支持G、M、D、T代碼,但是需要按照要求的格式來(lái)預(yù)先對(duì)各種代碼進(jìn)行解釋,PMAC在執(zhí)行上述代碼時(shí)會(huì)自動(dòng)轉(zhuǎn)去調(diào)用相應(yīng)的子程序(即解釋程序),例如:執(zhí)行G01會(huì)自動(dòng)調(diào)用PROGl000的N1000行,執(zhí)行M03會(huì)自動(dòng)調(diào)用豫OGl001的N3000行,其它類似。

      (4)自動(dòng)加工、手動(dòng)運(yùn)行、回零等功能的實(shí)現(xiàn)下載編譯完加工程序文本,通過(guò)調(diào)用GetResponse(0,”&1BlR”,pAnswer)使程序自動(dòng)連續(xù)運(yùn)行,同樣的對(duì)于單步運(yùn)行、暫停亦可通過(guò)該函數(shù)發(fā)送命令“S”、“H"。GetResponse(int dwDevice,const QString&question,QString&pAnswer)相當(dāng)于萬(wàn)能函數(shù),它能直接向控制器發(fā)送指令,而pmac自帶類似Basic的語(yǔ)言,兩者結(jié)合使用。手動(dòng)功能的實(shí)現(xiàn)通過(guò)發(fā)送手動(dòng)命令“#nJ+”或“#nJ-”(n為電機(jī)號(hào)),回零發(fā)送回零指令“#nHM”,該函數(shù)執(zhí)行成功則字符串pAnswer為空,否則會(huì)報(bào)錯(cuò)。若要發(fā)送控制符指令,則利用GetcontmlRe—sponse(int dwDeVice,int number,QString&pAnswer)函數(shù),number代表控制符的ASCII碼的十進(jìn)制值。在編寫(xiě)軟件時(shí),利用GetRespo璐e函數(shù)直接發(fā)送指令,同在PMAC自帶的PEWIN32軟件終端窗口操作類似,通過(guò)變量、命令和程序三者相互配合,完成運(yùn)動(dòng)控制、過(guò)程控制和主機(jī)通信等任務(wù)。

      (5)坐標(biāo)、速度、狀態(tài)的實(shí)時(shí)顯示開(kāi)設(shè)一個(gè)監(jiān)控線程類MoIlitorThread,實(shí)時(shí)獲取系統(tǒng)的狀態(tài)反饋并顯示。在一個(gè)statusGeⅡtems()函數(shù)內(nèi)調(diào)用GetResponse()函數(shù)獲取位置、速度、行號(hào)等程序信息,并將獲取的信息傳遞給對(duì)應(yīng)的全局變量。線程啟動(dòng)時(shí)就調(diào)用stamsGetItems(),設(shè)定多長(zhǎng)時(shí)間獲取一次數(shù)據(jù),獲取完一次則發(fā)送信號(hào),激發(fā)updatedata()槽,使得顯示在編輯框中的信息隨之更新。

      (6)基于OpenGL的三維模擬仿真Qt提供的QOpenGL模塊,輕松地實(shí)現(xiàn)了在應(yīng)用程序中使用openGL功能,建立基于OpenGL交互控制的虛擬數(shù)控機(jī)床加工仿真系統(tǒng),實(shí)現(xiàn)G代碼的三維模擬仿真,使系統(tǒng)具有良好的實(shí)時(shí)性、交互性以及三維圖形顯示能力。

      (7)工藝參數(shù)、系統(tǒng)參數(shù)、坐標(biāo)系設(shè)置參數(shù)的有效管理

      建立基于Micros硪Omce Access(微軟數(shù)據(jù)庫(kù)管理系統(tǒng))的數(shù)據(jù)庫(kù)表格,通過(guò)QT提供的Qtsql模塊以及QODBc驅(qū)動(dòng)來(lái)實(shí)現(xiàn)對(duì)數(shù)據(jù)庫(kù)文件的訪問(wèn)和操作。要執(zhí)行數(shù)據(jù)庫(kù)的各種操作,必須首先建立數(shù)據(jù)庫(kù)模型QSqlDatab鵲e的一個(gè)對(duì)象,擁有一個(gè)QSqlDatabase對(duì)象代表著擁有一個(gè)數(shù)據(jù)庫(kù)的連接,在一個(gè)已經(jīng)打開(kāi)的QSqlDatabase對(duì)象上,就可以執(zhí)行各種數(shù)據(jù)庫(kù)操作。創(chuàng)建一個(gè)QSqlDatabase對(duì)象的方法是使用QSqlDatabase類的靜態(tài)函數(shù)addDatab鵲e,而打開(kāi)這個(gè)數(shù)據(jù)庫(kù)連接,則需要先設(shè)置數(shù)據(jù)庫(kù)的DSN(Data S0urce Name),DSN的設(shè)置是通過(guò)成員函數(shù)setDatabaseName完成的。在QODBc中,DSN選用”DRIVER={Microsoft Access Driver(術(shù).mdb)};FIL={Ms Access};DBQ=Xxx.mdb”字符串的形式提供。部分代碼如下:

      QSqlDatabase db=QSqlDatabase::addDatabase(”QODBC”);  ∥建立一個(gè)數(shù)據(jù)庫(kù)連接并指定驅(qū)動(dòng)  QString fliePatll=”..\CNCnew\Test.mdb”;∥指定數(shù)據(jù)庫(kù)相對(duì)路徑  QString dsn:QString(”DRIVER={Microsoft Ac—  cess Driver(宰.mdb)};”  ”FIL={MS Access};DBQ=%1”).a(chǎn)rgfniePatll);∥設(shè)置dsn  db.setDateName(dsn);∥設(shè)置數(shù)據(jù)庫(kù)名字  db.open();∥打開(kāi)連接

      完成連接后即可用QsqlTableModel類來(lái)訪問(wèn)數(shù)據(jù)表,用record(),values()函數(shù)獲取相應(yīng)記錄的字段值。  (8)V溝槽的參數(shù)化編程

      最后,將生成的G代碼用正確的格式顯示到文本框,并以PMAC能下載的格式保存在.pmc類型的文件里。

    3 軟件測(cè)試

      連接好設(shè)備,在PC上運(yùn)行軟件,打開(kāi)參數(shù)設(shè)置頁(yè),設(shè)置好系統(tǒng)、坐標(biāo)系等參數(shù),將要加工的V槽的關(guān)鍵參數(shù)輸入到工件參數(shù)設(shè)置頁(yè),點(diǎn)擊相應(yīng)的功能按鈕自動(dòng)獲取NC代碼,同時(shí),可以對(duì)代碼進(jìn)行保存、編輯、修改、刪除等操作,選擇代碼文件,點(diǎn)擊編譯按鈕,實(shí)現(xiàn)NC代碼的自動(dòng)編譯,編譯通過(guò),方可運(yùn)行。運(yùn)行程序之前,根據(jù)成功編譯的代碼來(lái)進(jìn)行三維模擬加工仿真,頁(yè)面可以實(shí)現(xiàn)仿真速度的設(shè)置,以及單步、多步測(cè)試。整個(gè)過(guò)程操作非常簡(jiǎn)單,根據(jù)按鈕選擇相應(yīng)的功能。程序運(yùn)行正常,控制精準(zhǔn)。

    4 結(jié)束語(yǔ)

      采取QT+PMAC的模式,初步設(shè)計(jì)和開(kāi)發(fā)出了V溝槽加工數(shù)控系統(tǒng)軟件。軟件實(shí)現(xiàn)了界面友好,操作易行的人機(jī)交互功能,并集成數(shù)控系統(tǒng)各個(gè)模塊,完成了從初始化、參數(shù)設(shè)置、加工文件處理、運(yùn)行、顯示及錯(cuò)誤警告處理到三維模擬仿真的各種功能,整個(gè)程序采取模塊化設(shè)計(jì),可擴(kuò)展性強(qiáng),易于維護(hù)。


    (審核編輯: 智匯胡妮)

    聲明:除特別說(shuō)明之外,新聞內(nèi)容及圖片均來(lái)自網(wǎng)絡(luò)及各大主流媒體。版權(quán)歸原作者所有。如認(rèn)為內(nèi)容侵權(quán),請(qǐng)聯(lián)系我們刪除。