XY步進(jìn)電機(jī)控制系統(tǒng)課程設(shè)計(jì)報(bào)告_第1頁
XY步進(jìn)電機(jī)控制系統(tǒng)課程設(shè)計(jì)報(bào)告_第2頁
XY步進(jìn)電機(jī)控制系統(tǒng)課程設(shè)計(jì)報(bào)告_第3頁
XY步進(jìn)電機(jī)控制系統(tǒng)課程設(shè)計(jì)報(bào)告_第4頁
XY步進(jìn)電機(jī)控制系統(tǒng)課程設(shè)計(jì)報(bào)告_第5頁
已閱讀5頁,還剩17頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、.機(jī)電系統(tǒng)綜合設(shè)計(jì)報(bào)告平面XY步進(jìn)(伺服)數(shù)字控制設(shè)計(jì)院系名稱: 機(jī)械與儲(chǔ)運(yùn)工程學(xué)院 專業(yè)班級(jí): 機(jī)械設(shè)計(jì)制造及其自動(dòng)化09-3班 學(xué)生姓名: 徐利達(dá) 學(xué)號(hào): 2009041322 同組學(xué)生姓名: 王鵬 學(xué)號(hào): 2009041319 指導(dǎo)教師: 張 蓬 完成日期 2013年 4 月 7 日; 摘 要本次機(jī)電系統(tǒng)綜合設(shè)計(jì)要求通過計(jì)算機(jī)高級(jí)編程語言實(shí)現(xiàn)對(duì)步進(jìn)電機(jī)的運(yùn)動(dòng)控制來進(jìn)行控制,以達(dá)到對(duì)機(jī)電一體化知識(shí)的鞏固提高及綜合運(yùn)用。本報(bào)告詳細(xì)講述了GT運(yùn)動(dòng)控制的硬件和軟件環(huán)境,闡述了GT系統(tǒng)運(yùn)動(dòng)控制器的控制原理,數(shù)控技術(shù)中逐點(diǎn)比較法的插補(bǔ)原理,圖像二值化原理,圖形輪廓提取四鄰域法原理,以及這些原理在本次

2、機(jī)電系統(tǒng)綜合設(shè)計(jì)中的具體應(yīng)用和實(shí)現(xiàn)方法。介紹本小組制作NL(No Limited)步進(jìn)電機(jī)控制系統(tǒng)的界面和原理,讓讀者在一定程度上了解數(shù)控技術(shù),圖像處理技術(shù)以及其他方面的相關(guān)內(nèi)容。關(guān)鍵詞:步進(jìn)電機(jī);C語言;二值化目 錄摘 要I第1章 設(shè)計(jì)目的及要求11.1 設(shè)計(jì)目的11.2 設(shè)計(jì)要求1第2章 設(shè)計(jì)的軟硬件環(huán)境22.1 設(shè)計(jì)系統(tǒng)硬件環(huán)境22.2 設(shè)計(jì)系統(tǒng)軟件環(huán)境2第3章 設(shè)計(jì)原理33.1 電機(jī)驅(qū)動(dòng)使能及驅(qū)動(dòng)33.1.1 運(yùn)動(dòng)控制卡的初始化33.1.2 對(duì)專用輸入信號(hào)參數(shù)進(jìn)行設(shè)置33.1.3 運(yùn)動(dòng)控制軸的初始化33.2 單軸運(yùn)動(dòng)43.3 多軸運(yùn)動(dòng)53.4 圖像的二值化輪廓提取63.5 輪廓繪制7第

3、4章 設(shè)計(jì)方案及具體實(shí)施84.1 總體設(shè)計(jì)方案84.2 運(yùn)動(dòng)控制的初始化以及測(cè)試94.2.1 運(yùn)動(dòng)控制的初始化94.2.2 運(yùn)動(dòng)測(cè)試104.3 幾何圖形加工的程序?qū)崿F(xiàn)方法104.3.1 直線加工的程序?qū)崿F(xiàn)方法104.3.2 圓弧以及橢圓弧加工的程序?qū)崿F(xiàn)方法114.4 圖形輪廓加工的程序?qū)崿F(xiàn)方法114.4.1 筆頭位置調(diào)整方法114.4.2 圖像二值化及輪廓提取方法124.4.3 圖像數(shù)據(jù)處理及輪廓加工方法13第5章 設(shè)計(jì)結(jié)果與分析145.1 任務(wù)完成情況以及設(shè)計(jì)優(yōu)缺點(diǎn)145.1.1 優(yōu)點(diǎn)145.1.2 缺點(diǎn)145.2 困難及解決14第6章 設(shè)計(jì)總結(jié)16附錄A 機(jī)電設(shè)計(jì)日志17附錄B 設(shè)計(jì)成果(

4、加工的曲線圖,輪廓圖,軟件設(shè)計(jì)界面)18III第1章 設(shè)計(jì)目的及要求1.1 設(shè)計(jì)目的本次機(jī)電系統(tǒng)綜合設(shè)計(jì)要求以GT系列運(yùn)動(dòng)控制器為核心,以計(jì)算機(jī)語言為控制手段,通過計(jì)算機(jī)與運(yùn)動(dòng)控制器相互通信,對(duì)其進(jìn)行運(yùn)動(dòng)的初始化,運(yùn)動(dòng)過程的控制來實(shí)現(xiàn)運(yùn)動(dòng)控制器兩軸和筆架的運(yùn)動(dòng),并繪制簡(jiǎn)單的幾何圖形如:直線、圓、橢圓等,以及繪制通過計(jì)算機(jī)程序圖形識(shí)別、輪廓識(shí)別處理后的圖像。1.2 設(shè)計(jì)要求利用GT系列運(yùn)動(dòng)控制器和GXY系列運(yùn)動(dòng)平臺(tái),在windows下用VB語言實(shí)現(xiàn)平面XY的數(shù)字加工控制?;疽笕缦拢壕帉慓T系列運(yùn)動(dòng)控制器和GXY系列運(yùn)動(dòng)平臺(tái)的初始化程序,通過初始化程序可實(shí)現(xiàn)系統(tǒng)的復(fù)位;編寫平面X、Y的驅(qū)動(dòng)程序

5、以控制X、Y方向的運(yùn)動(dòng);編寫插補(bǔ)算法以實(shí)現(xiàn)平面四象限的直線,順、逆圓,順、逆橢圓,以及圓弧和橢圓弧簡(jiǎn)單的幾何圖形繪制;編寫控制程序以實(shí)現(xiàn)任意圖像的輪廓提取,并對(duì)提取的輪廓數(shù)據(jù)進(jìn)行處理,將輪廓數(shù)據(jù)轉(zhuǎn)化為對(duì)二維伺服數(shù)據(jù)控制機(jī)床的驅(qū)動(dòng)代碼,利用伺服驅(qū)動(dòng)函數(shù)庫(kù)實(shí)現(xiàn)在該設(shè)備上的輪廓加工;實(shí)現(xiàn)以上加工圖形的繪制時(shí)必須在圖形繪制中實(shí)現(xiàn)抬筆落筆的控制盒超界判斷。第2章 設(shè)計(jì)的軟硬件環(huán)境2.1 設(shè)計(jì)系統(tǒng)硬件環(huán)境本次機(jī)電系統(tǒng)綜合設(shè)計(jì)所采用的GT運(yùn)動(dòng)控制器主要用于對(duì)機(jī)械傳動(dòng)裝置的速度、位置進(jìn)行實(shí)時(shí)的控制管理,使運(yùn)動(dòng)部件按照預(yù)期的軌跡和規(guī)定的運(yùn)動(dòng)參數(shù)完成相應(yīng)的動(dòng)作。運(yùn)動(dòng)控制系統(tǒng)為開環(huán)控制系統(tǒng)。GT系列運(yùn)動(dòng)控制器機(jī)械本

6、體采用模塊化拼裝,其主體由兩個(gè)直線運(yùn)動(dòng)單元(X、Y兩直線運(yùn)動(dòng)軸)組成。每個(gè)直線運(yùn)動(dòng)單元主要包括工作臺(tái)面、滾珠絲杠、導(dǎo)軌、軸承座、基座、伺服電機(jī)等部分。為實(shí)現(xiàn)運(yùn)動(dòng)對(duì)平臺(tái)運(yùn)動(dòng)軌跡的記錄,GT運(yùn)動(dòng)控制器還配備了由繼電器控制上下運(yùn)動(dòng)的筆架,來進(jìn)行圖形的繪制。2.2 設(shè)計(jì)系統(tǒng)軟件環(huán)境本次機(jī)電系統(tǒng)綜合設(shè)計(jì),通過計(jì)算機(jī)高級(jí)語言C實(shí)現(xiàn)對(duì)運(yùn)動(dòng)控制器運(yùn)動(dòng)參數(shù)、運(yùn)動(dòng)方式的計(jì)算和控制。本小組采用VC6.0+進(jìn)行可視化的編程,GT運(yùn)動(dòng)控制器提供了DOS下的運(yùn)動(dòng)函數(shù)庫(kù)和Windows下的運(yùn)動(dòng)函數(shù)動(dòng)態(tài)鏈接庫(kù),本小組使用的是Windows下的運(yùn)動(dòng)函數(shù)動(dòng)態(tài)鏈接庫(kù),只要調(diào)用運(yùn)動(dòng)函數(shù)庫(kù)中的函數(shù),就可以實(shí)現(xiàn)運(yùn)動(dòng)控制器的各種功能。在W

7、indows系統(tǒng)下使用VC中函數(shù)庫(kù),只需要將GT400.dll、GT400.h、GT400.lib三個(gè)文件放到源程序根目錄下,再將GT400.lib添加到用戶工程中,GT運(yùn)動(dòng)控制器提供的Windows下的運(yùn)動(dòng)函數(shù)動(dòng)態(tài)鏈接庫(kù)就可以直接調(diào)用。第3章 設(shè)計(jì)原理按照本次機(jī)電系統(tǒng)綜合設(shè)計(jì)的要求,本小組利用VC+,實(shí)現(xiàn)對(duì)運(yùn)動(dòng)控制器的控制,使運(yùn)動(dòng)控制按照 VB程序進(jìn)行單軸運(yùn)動(dòng)、多軸協(xié)調(diào)運(yùn)動(dòng)、簡(jiǎn)單幾何圖形插補(bǔ)運(yùn)算繪制、復(fù)雜圖形繪制等等。3.1 電機(jī)驅(qū)動(dòng)使能及驅(qū)動(dòng)在實(shí)現(xiàn) GT運(yùn)動(dòng)控制器的運(yùn)動(dòng)之前,需對(duì)其運(yùn)動(dòng)控制卡、運(yùn)動(dòng)控制軸、運(yùn)動(dòng)控制器、專用輸入信號(hào)參數(shù)設(shè)置進(jìn)行初始化,初始化之后才可以實(shí)現(xiàn)運(yùn)動(dòng)控制器簡(jiǎn)單的單軸運(yùn)

8、動(dòng),多軸協(xié)動(dòng)。 3.1.1 運(yùn)動(dòng)控制卡的初始化在運(yùn)動(dòng)控制器初始化中需先打開運(yùn)動(dòng)控制器設(shè)備,復(fù)位運(yùn)動(dòng)控制器,設(shè)置控制周期并對(duì)每一軸進(jìn)行中斷屏蔽。GT運(yùn)動(dòng)控制器庫(kù)函數(shù)中提供的運(yùn)動(dòng)控制器初始化函數(shù)中 GT_Open()用于打開運(yùn)動(dòng)控制器設(shè)備,GT_Reset() 用于復(fù)位運(yùn)動(dòng)控制器,GT_SetSmplTm()用于設(shè)置控制周期,rtn=GT_SetIntrMsk()屏蔽軸中斷。(詳細(xì)初始化過程程序見源程序)。其中,運(yùn)動(dòng)控制器以特定的控制周期刷新控制輸出,單位是微秒。運(yùn)動(dòng)控制器再控制周期內(nèi)要完成必要的計(jì)算,控制周期不能太小,因此設(shè)定的范圍為 481966.08微秒。運(yùn)動(dòng)控制器默認(rèn)的控制周期為 200微

9、秒,一般不應(yīng)小于這個(gè)值。在本次設(shè)計(jì)中,始終采用 200毫秒的控制周期。 3.1.2 對(duì)專用輸入信號(hào)參數(shù)進(jìn)行設(shè)置對(duì)專用輸入信號(hào)參數(shù)進(jìn)行設(shè)置即設(shè)置限位開關(guān)有效電平。運(yùn)動(dòng)控制器通過兩個(gè)(正向、負(fù)向)限位開關(guān)自動(dòng)地設(shè)定控制軸的運(yùn)動(dòng)范圍。一旦限位開關(guān)被觸發(fā),運(yùn)動(dòng)控制器自動(dòng)地禁止控制軸朝越限的方向運(yùn)動(dòng)。運(yùn)動(dòng)控制器默認(rèn)的限位開關(guān)為常閉開關(guān)。即正常工作時(shí),限位開關(guān)信號(hào)為低電平;限位開關(guān)觸發(fā)時(shí),限位開關(guān)為高電平。在此用到了函數(shù)庫(kù)中的 GT_LmtSns(LmtSense)來對(duì)限位開關(guān)有效電平進(jìn)行設(shè)置。(詳細(xì)程序見源程序)。 3.1.3 運(yùn)動(dòng)控制軸的初始化對(duì)運(yùn)動(dòng)控制軸的初始化則需要用 GT_ClrSts()函數(shù)清

10、除當(dāng)前軸不正確狀態(tài),用 GT_StepPulse()函數(shù)設(shè)置輸出正負(fù)脈沖信號(hào),用 GT_AxisOn()函數(shù)開啟當(dāng)前軸的驅(qū)動(dòng)使能(詳細(xì)的軸初始化源程序見源程序)3.2 單軸運(yùn)動(dòng)在運(yùn)動(dòng)的初始化完成以后,便可以通過調(diào)用庫(kù)函數(shù)的單軸運(yùn)動(dòng)命令來實(shí)現(xiàn)運(yùn)控器的單軸運(yùn)動(dòng)。運(yùn)控器針對(duì)單軸運(yùn)動(dòng)提供了四種運(yùn)控模式:S-曲線模式、梯形曲線模式、速度控制模式、電子齒輪模式。在本次課程設(shè)計(jì)中會(huì)使用 S-曲線模式和梯形曲線模式。梯形曲線模式的速度曲線如圖3.1所示:圖3.1 梯形速度曲線第一階段,速度按照設(shè)定的加速度值從零加速到最大速度;第二階段,加速度為零,速度保持已達(dá)到的最大速度運(yùn)行到第三階段;第三階段,按設(shè)定的加速

11、度減速到零,此時(shí)達(dá)到要求的目標(biāo)位置。編程中,調(diào)用庫(kù)函數(shù)中 GT_PrflT()函數(shù)可以實(shí)現(xiàn)梯形曲線運(yùn)動(dòng)模式,另外還需進(jìn)行相應(yīng)的參數(shù)設(shè)置: GT_SetAcc() 設(shè)置當(dāng)前軸的加速度,GT_SetVel() 設(shè)置當(dāng)前軸的最大速度,GT_SetPos() 設(shè)置當(dāng)前軸的目標(biāo)位置。S形曲線模式的速度曲線如圖3.2所示:圖3.2 S-曲線模式速度、加速度、加加速度曲線用 GT_PrflS()函數(shù)設(shè)置當(dāng)前軸的運(yùn)動(dòng)模式為 S-曲線模式,其它必需函數(shù)以及函數(shù)功能如下:GT_SetJerk() 設(shè)置當(dāng)前軸的加加速度GT_SetMAcc() 設(shè)置當(dāng)前軸的最大加速度 GT_SetVel() 設(shè)置當(dāng)前軸的目標(biāo)速度 G

12、T_SetPos() 設(shè)置當(dāng)前軸的目標(biāo)位置這里,加速度的單位是 Pulse/ST 2,速度單位是 Pulse/ST,目標(biāo)位置單位是 Pulse,Pulse是脈沖數(shù)。其換算關(guān)系為:平臺(tái)向前運(yùn)動(dòng) 10000Pulse相當(dāng)于運(yùn)動(dòng) 4mm。 在對(duì)單軸的這些運(yùn)動(dòng)模式設(shè)置好后,使用 GT-Update()對(duì)參數(shù)進(jìn)行刷新后便可使單軸按照所定參數(shù)進(jìn)行運(yùn)動(dòng)了。3.3 多軸運(yùn)動(dòng)運(yùn)動(dòng)控制器可以實(shí)現(xiàn)兩種軌跡的雙軸協(xié)調(diào)運(yùn)動(dòng):直線插補(bǔ)、圓弧插補(bǔ)。在雙軸協(xié)動(dòng)之前,需對(duì)坐標(biāo)進(jìn)行映射,以實(shí)現(xiàn)坐標(biāo)系與軸的對(duì)應(yīng),實(shí)現(xiàn)軸的坐標(biāo)化。通過調(diào)用 GT_MapAxis() 命令可以將在坐標(biāo)系內(nèi)描述的運(yùn)動(dòng)通過映射關(guān)系映射到相應(yīng)的軸上。從而建立

13、各軸的運(yùn)動(dòng)和要求的運(yùn)動(dòng)軌跡之間的運(yùn)動(dòng)學(xué)傳遞關(guān)系。運(yùn)動(dòng)控制器根據(jù)坐標(biāo)映射關(guān)系,控制各軸運(yùn)動(dòng),實(shí)現(xiàn)要求的運(yùn)動(dòng)軌跡。調(diào)用 GT_MapAxis() 命令時(shí),所映射的各軸必須處于靜止?fàn)顟B(tài)。這種映射關(guān)系能夠簡(jiǎn)單地描述成下面的計(jì)算公式: Axis _ N = Cx × x + Cy × y + Cz × z + Ca × a + C 由于所用的運(yùn)動(dòng)控制系統(tǒng)僅限于兩軸,因此上式中 Cz,Ca為零。映射是雙軸聯(lián)動(dòng)的前提,雙軸運(yùn)動(dòng)實(shí)現(xiàn)還必須設(shè)置雙軸聯(lián)動(dòng)的合成速度和合成加速度。其合成速度和合成加速度的數(shù)學(xué)表達(dá)式如下:合成速度: V=Vx2+VY2+VZ2+VA2合成加速度:

14、 Acc=Accx2+AccY2+AccZ2+AccA2在 GT運(yùn)動(dòng)控制函數(shù)庫(kù)中可以通過調(diào)用 GT_SetSynVel(double Vel)來設(shè)置軌跡段的合成運(yùn)動(dòng)速度,調(diào)用 GT_SetSynAcc(double Accel)來設(shè)置坐標(biāo)系運(yùn)動(dòng)中軌跡段的合成加速度。雙軸映射和運(yùn)動(dòng)參數(shù)的設(shè)置是雙軸聯(lián)動(dòng)的基礎(chǔ)。GT運(yùn)動(dòng)控制器提供了兩種多軸聯(lián)動(dòng)的方式即多維直線插補(bǔ)運(yùn)動(dòng)和多平面圓弧插補(bǔ)運(yùn)動(dòng)。本次課程設(shè)計(jì)的共同運(yùn)動(dòng)控制器限于兩軸,因而直線插補(bǔ)僅為兩維直線插補(bǔ),圓弧插補(bǔ)僅為 XY平面圓弧插補(bǔ)。調(diào)用函數(shù)庫(kù)中 GT_LnXY()可以實(shí)現(xiàn)兩維直線插補(bǔ)(以終點(diǎn)為輸入?yún)?shù)),調(diào)用 GT_ArcXY()可以實(shí)現(xiàn) XY

15、平面圓弧插補(bǔ)(以圓心位置和角度為輸入?yún)?shù)),調(diào)用 GT_ArcXYP()可以實(shí)現(xiàn) XY平面圓弧插補(bǔ)(以終點(diǎn)位置和半徑為輸入?yún)?shù)),這樣便可實(shí)現(xiàn)雙軸聯(lián)動(dòng)下直線和圓弧的繪制。運(yùn)控器簡(jiǎn)單運(yùn)動(dòng)的控制只需要直接調(diào)用函數(shù)庫(kù)中函數(shù)即可,涉及到的程序設(shè)置還不是很多。3.4 圖像的二值化輪廓提取圖形輪廓提取是要從黑白的圖片中提取出運(yùn)動(dòng)控制器的運(yùn)動(dòng)軌跡 ,是可以脫離控制器單單由程序?qū)崿F(xiàn)的過程。在進(jìn)行圖形輪廓提取之前得先對(duì)圖形進(jìn)行二值化處理,使彩色的圖片變成僅有黑白兩種顏色的圖片,這里需要通過編寫程序來實(shí)現(xiàn)。在對(duì)彩色圖像的處理中,首先要對(duì)彩色位圖顏色值進(jìn)行分解。像素的顏色值(用 Col表示)是一個(gè)長(zhǎng)整形的數(shù)值,使用

16、四個(gè)字節(jié),最上位的字節(jié)為零,其他三個(gè)個(gè)下位字節(jié)依次為 B、G、R,值為 0-255。從 Col值分解出 R、G、B使用 AND運(yùn)算符,得出 R=COLAND&Hff G= (COLAND&Hff00)/256 B=(COLAND&Hff00)/(256*256) 分別是紅,綠,藍(lán)三種顏色值。此后,運(yùn)用三種顏色值,計(jì)算出灰度值,其算法為 rr=gg=bb=(R+G+B)/3,使彩色圖像生成灰度圖象。以方便后續(xù)的二值化處理。使灰度圖象二值化的方法很多,這里采取了一種比較簡(jiǎn)單的二值化方法。設(shè)定了一個(gè)顏色分界點(diǎn)的值,在提取每個(gè)像素點(diǎn)顏色值之后使其同這個(gè)值進(jìn)行比較,大于這個(gè)值則認(rèn)

17、為這個(gè)點(diǎn)是白色的,并將白色值 255賦給它,反之,認(rèn)為它是黑色的,同樣把黑色值 0賦給它。這樣灰度圖象便變成了黑白的二值圖像。在經(jīng)過多次的調(diào)試后可以得出比較滿意的分界值和效果比較好的黑白圖片。對(duì)圖形進(jìn)行二值化處理之后,便可以提取輪廓了。圖形輪廓提取的方法有很多種,如:四鄰域法、八鄰域法、全面檢測(cè)法等。在這三種提取輪廓的方法中,四鄰域法從本像素點(diǎn)出發(fā)從它的上、下、左、右四個(gè)方向?qū)ふ沂欠袢渴呛谏狞c(diǎn),如果是則認(rèn)為這個(gè)點(diǎn)在圖形的內(nèi)部,標(biāo)記后清除,這種方法雖然會(huì)丟失圖形輪廓上的一些點(diǎn),但它的算法比較簡(jiǎn)單,易于實(shí)現(xiàn)。本小組此次輪廓提取主要采用八鄰域法。圖像二值化以后,將所有位圖點(diǎn)的灰度二維矩陣記錄下來

18、,輪廓提取時(shí),逐點(diǎn)掃描灰度,當(dāng)遇到第一個(gè)黑點(diǎn)時(shí)停住,判斷該點(diǎn)周圍八點(diǎn)是否都為黑點(diǎn),若是,則該點(diǎn)不是輪廓點(diǎn),故設(shè)置其為白點(diǎn)。繼續(xù)掃描,重復(fù)判斷邊界最后即可得到位圖的輪廓。相比較四鄰域法而言,八鄰域法的優(yōu)點(diǎn)在于它不會(huì)丟失圖像輪廓上的點(diǎn),而且對(duì)于VC的算法編程上比較容易實(shí)現(xiàn)。經(jīng)過多次試驗(yàn),最終選用八鄰域法。下圖為原位圖(圖3.3)和輪廓提取后的位圖(圖3.4)比較: 圖3.3 原位圖圖3.4 輪廓提取后的位圖3.5 輪廓繪制圖像數(shù)據(jù)處理及在提取出圖形輪廓之后,進(jìn)行圖形繪制,在這個(gè)過程中同樣存在兩種方法,“四鄰域法”和“八鄰域法”第4章 設(shè)計(jì)方案及具體實(shí)施4.1 總體設(shè)計(jì)方案本次機(jī)電系統(tǒng)綜合設(shè)計(jì)所采用

19、的 GT運(yùn)動(dòng)控制器的硬件示意圖如圖 4.1所示: 圖4.1 采用GT系列運(yùn)動(dòng)控制器組成的控制系統(tǒng)框圖由于VC+可視化編程較為困難,因此本小組采用單界面的簡(jiǎn)易形式實(shí)現(xiàn)所有功能。下圖4.2為我們整個(gè)軟件的界面:圖4.2 軟件界面共分五個(gè)大區(qū)域,分別實(shí)現(xiàn)初始化、測(cè)試、直線插補(bǔ)、圓弧插補(bǔ)、輪廓化五大功能。4.2 運(yùn)動(dòng)控制的初始化以及測(cè)試4.2.1 運(yùn)動(dòng)控制的初始化下圖4.3為軟件的初始化區(qū)域圖4.3 初始化區(qū)域 “初始化(定義原點(diǎn))”按鈕按下以后,調(diào)用程序中的huiling()函數(shù),其中包括GT_Open()打開運(yùn)動(dòng)控制器設(shè)備,GT_Reset()復(fù)位運(yùn)動(dòng)控制器,GT_SetSmplTm(200)設(shè)置

20、控制周期為200ms,實(shí)現(xiàn)對(duì)運(yùn)控設(shè)備的初始化。此時(shí),運(yùn)控設(shè)備將會(huì)建立起以當(dāng)前位置為坐標(biāo)原點(diǎn)的XY坐標(biāo)系。 “關(guān)閉(回到原點(diǎn))”按下以后,分別對(duì)X、Y調(diào)用GT_SetPos(0)兩軸同時(shí)回到初始化時(shí)所定義的原點(diǎn)位置。詳細(xì)程序見源程序。4.2.2 運(yùn)動(dòng)測(cè)試下圖4.4為軟件測(cè)試區(qū)圖示圖4.4 軟件測(cè)試區(qū)測(cè)試區(qū)又分為三個(gè)部分:坐標(biāo)顯示區(qū)(上區(qū)域),參數(shù)設(shè)置區(qū)(左下區(qū)域),按鈕區(qū)(右下區(qū)域)。參數(shù)設(shè)置區(qū)用于設(shè)置參數(shù)單步移動(dòng)量(單位mm)和移動(dòng)速度(mm/s),坐標(biāo)顯示區(qū)用于顯示板卡當(dāng)前坐標(biāo),按鈕區(qū)用于控制所需操作。本區(qū)主要實(shí)現(xiàn)運(yùn)動(dòng)控制器的單軸運(yùn)動(dòng)。例如:設(shè)置好參數(shù)L=20、V=3,按下“X+”按鈕,則X

21、運(yùn)動(dòng)軸向正方向以3mm/s速度前進(jìn)20mm的距離。參數(shù)設(shè)置區(qū)靠動(dòng)態(tài)編輯框控件實(shí)現(xiàn),使用GetDlgItem(IDC_EDIT)->GetWindowText(*,10)語句得到所設(shè)置的參數(shù)L和V,用于實(shí)現(xiàn)單軸前進(jìn)。單軸運(yùn)動(dòng)功能的實(shí)現(xiàn)關(guān)鍵靠GT_SetPos()語句,通過設(shè)置位置達(dá)到令單軸前進(jìn)的目的。其中還有軸開啟GT_Axis(),打開軸驅(qū)動(dòng)使能GT_AxisOn()等語句。坐標(biāo)顯示區(qū)屬于本小組的一大特色功能,使用了VC+軟件提供的動(dòng)態(tài)編輯框控件,使用GetDlgItem(IDC_EDIT)->SetWindowText()語句,將計(jì)算得到的當(dāng)前軸位置顯示在動(dòng)態(tài)編輯框中,從而能夠清

22、楚地知道當(dāng)前點(diǎn)與初始點(diǎn)的距離。詳細(xì)程序見源程序。4.3 幾何圖形加工的程序?qū)崿F(xiàn)方法4.3.1 直線加工的程序?qū)崿F(xiàn)方法下圖4.5為軟件的直線插補(bǔ)功能區(qū)圖4.5 直線插補(bǔ)功能區(qū)本區(qū)主要實(shí)現(xiàn)兩軸聯(lián)動(dòng)的四象限直線插補(bǔ)運(yùn)動(dòng)。例如:設(shè)置參數(shù)X=30,Y=-20,則板卡將向第四象限(30,-20)的方向直線運(yùn)動(dòng)。參數(shù)設(shè)置功能實(shí)現(xiàn)方法同上文所述采用動(dòng)態(tài)編輯框。直線插補(bǔ)時(shí),程序通過cnt12=1000,0,cnt22=0,1000設(shè)置X,Y兩軸坐標(biāo)映射。經(jīng)實(shí)際測(cè)試,該設(shè)備1000個(gè)脈沖行進(jìn)的距離是1mm,故而采用上述語句。程序通過設(shè)備函數(shù)庫(kù)中的GT_LnXY(X,Y)直接實(shí)現(xiàn)直線插補(bǔ)。4.3.2 圓弧以及橢圓弧

23、加工的程序?qū)崿F(xiàn)方法下圖4.6為軟件的圓弧插補(bǔ)功能區(qū),集成橢圓弧加工功能。圖4.6 圓弧插補(bǔ)功能區(qū)本區(qū)主要實(shí)現(xiàn)以當(dāng)前點(diǎn)為圓心的各種圓弧的插補(bǔ)。X、Y為圓弧起點(diǎn)坐標(biāo),為角度(當(dāng)為正時(shí)畫逆圓,當(dāng)為負(fù)時(shí)畫正圓),a/b為橢圓的X軸長(zhǎng)和Y軸長(zhǎng)之比(當(dāng)a/b>1時(shí),X為長(zhǎng)軸,Y為短軸;當(dāng)a/b<1時(shí),X為短軸,Y為長(zhǎng)軸)。例如:設(shè)置參數(shù)X=10,Y=0,=-120,a/b=1,則將得到一個(gè)以(0,0)為圓心,起點(diǎn)為(10,0)的120度正圓??;設(shè)置參數(shù)X=20,Y=0,=60,a/b=2,則將得到一個(gè)以(0,0)為圓心,起點(diǎn)為(20,0)的60逆橢圓弧,X為長(zhǎng)軸,Y為短軸。功能的實(shí)現(xiàn)方法。首先

24、,進(jìn)行兩軸映射cnt12=1000,0,cnt22=0,1000/atoi(bili),bili即為a/b,用GT_LnXY(X,Y)進(jìn)行直線插補(bǔ)從原點(diǎn)走到起點(diǎn)位置,用GT_ArcXY(0,0,JD)進(jìn)行以(0,0)為原點(diǎn),JD為角度的圓弧插補(bǔ)。當(dāng)bili為1時(shí),X、Y兩軸坐標(biāo)映射相同,圓弧上的每一點(diǎn)到原點(diǎn)的距離相同,則得到圓?。划?dāng)bili不為1是,X、Y兩軸坐標(biāo)映射不同,圓弧上的每一點(diǎn)到原點(diǎn)的距離不同,則得到橢圓弧。4.4 圖形輪廓加工的程序?qū)崿F(xiàn)方法4.4.1 筆頭位置調(diào)整方法如圖4.7所示為筆頭控制區(qū):圖4.7 筆頭控制區(qū)運(yùn)動(dòng)控制器為用戶提供了一個(gè)通用數(shù)字輸入/輸出口。主機(jī)可以通過命令的方

25、式對(duì)該輸入/輸出口進(jìn)行操作。設(shè)備函數(shù)庫(kù)給出GT_ExOpt(),參數(shù)為十六進(jìn)制數(shù),用來對(duì)16個(gè)端口進(jìn)行賦值。經(jīng)過實(shí)際操作測(cè)試,本小組得到GT_ExOpt(0x0)為落筆指令,GT_ExOpt(0xF)為起筆指令。4.4.2 圖像二值化及輪廓提取方法如圖4.8所示為圖像二值化以及輪廓提取區(qū)圖4.8 圖像二值化及輪廓提取區(qū)本部分實(shí)現(xiàn)的功能是,在第一個(gè)框內(nèi)輸入原位圖文件名,第二個(gè)框內(nèi)輸入處理后另存的位圖文件名,(默認(rèn)的提取與存放路徑都是EXE程序所在的文件夾)T內(nèi)輸入灰度的閾值,點(diǎn)擊按鈕,就能得到輪廓提取以后的圖形。例如下兩圖4.9和4.10所示,閾值設(shè)定為254:圖4.9 原位圖圖4.10 處理后

26、位圖圖像二值化采用的基本原理同3.4節(jié)中提到的,采用逐點(diǎn)比較灰度的方法實(shí)現(xiàn)。位圖的結(jié)構(gòu)分為四部分,文件頭、信息頭、調(diào)色板和數(shù)據(jù)實(shí)體。編程時(shí),首先找到位圖的數(shù)據(jù)區(qū)的地址,再對(duì)每個(gè)位圖點(diǎn)進(jìn)行循環(huán)遍歷,到某點(diǎn)時(shí),將其灰度計(jì)算出來存入buff,再對(duì)其值大小做出判斷,若大于所設(shè)閾值,則令其為255(白),否則為0(黑),關(guān)鍵語句:buff=(buff>=t?ONE:ZERO)當(dāng)整個(gè)循環(huán)遍歷結(jié)束以后,我們就得到了二值化的位圖了。圖像的輪廓提取的基本原理同3.4節(jié),采用“八鄰域法”。編程關(guān)鍵在于,將二值化中所計(jì)算得到的二值化位圖的灰度矩陣存入一個(gè)二維數(shù)組,作為輪廓處理的一個(gè)依據(jù)。關(guān)鍵語句: if(n1

27、+n2+n3+n4+n5+n6+n7+n8=0) /n1n8為該位點(diǎn)周圍八個(gè)相鄰點(diǎn)的灰度值 shuchuji=255;/若周圍八點(diǎn)都為0,則該點(diǎn)為255 4.4.3 圖像數(shù)據(jù)處理及輪廓加工方法如3.5節(jié)所描述,輪廓加工方法主要采用四鄰域法,關(guān)鍵語句:for(c=-1;c<=1;c+)/雙循環(huán)for(d=-1;d<=1;d+)if(saomiaoa+cb+d=255)/判斷上下左右四點(diǎn)中掃描到第一個(gè)黑點(diǎn)a+=c;b+=d;saomiaoab=0;/修改讀取到的黑點(diǎn)為白goto f;/前往控制器運(yùn)動(dòng)區(qū)向所讀取的黑點(diǎn)前進(jìn)經(jīng)過多次試驗(yàn)以及理論證實(shí),“四鄰域法”繪制的圖形更為流暢,且產(chǎn)生的孤

28、點(diǎn)較少,且圖形完整,同時(shí),本小組也提出了處理孤點(diǎn)的方案及程序,如下所示for(c=-1;c<=1;c+) for(d=-1;d<=1;d+) if(c*d=0) if(saomiaoa+cb+d=255)/判斷上下左右是否有黑點(diǎn) goto jixu;/有黑點(diǎn),則不是孤點(diǎn),繼續(xù)運(yùn)行g(shù)oto Re;/沒有黑點(diǎn),是孤點(diǎn),則返回重新尋找落筆點(diǎn)第5章 設(shè)計(jì)結(jié)果與分析5.1 任務(wù)完成情況以及設(shè)計(jì)優(yōu)缺點(diǎn)整個(gè)軟件設(shè)計(jì)成功地完成了設(shè)備初始化、系統(tǒng)測(cè)試、直線插補(bǔ)、圓弧插補(bǔ)、二值化、輪廓提取與繪制等幾大功能,基本能達(dá)到老師所要求的功能,但是還存在不少缺陷,以下是軟件的優(yōu)缺點(diǎn)。5.1.1 優(yōu)點(diǎn)1、初始化區(qū)

29、的一鍵回零功能:關(guān)閉設(shè)備的同時(shí)能使X、Y軸回到初始定義的原點(diǎn)位置,簡(jiǎn)單便捷;2、使用測(cè)試區(qū)進(jìn)行單軸步進(jìn)時(shí),可以顯示兩軸當(dāng)前位置坐標(biāo);3、圓弧插補(bǔ)與橢圓弧插補(bǔ)功能集成,大大簡(jiǎn)化操作界面,全面而簡(jiǎn)潔;4、輪廓繪制中加入孤點(diǎn)去除程序,能夠自動(dòng)跳過孤點(diǎn),縮短加工時(shí)間,并且大大增加筆頭的壽命;5.1.2 缺點(diǎn)1、不能連續(xù)做直線插補(bǔ);2、圓弧插補(bǔ)的起筆落筆控制不佳,原點(diǎn)到起點(diǎn)之間會(huì)留下一條線;3、二值化中,對(duì)位圖畫布的比例有一定要求,如果比例不符合,會(huì)出現(xiàn)繪圖失敗。5.2 困難及解決困難一:圖像的二值化關(guān)于VC中對(duì)圖像的處理設(shè)計(jì)到相當(dāng)多的編程知識(shí),首先VC中對(duì)文件的輸入輸出、文件流的讀寫等等,所涉及到的V

30、C庫(kù)函數(shù)眾多而且參數(shù)復(fù)雜,需要查閱大量的編程指導(dǎo)書和進(jìn)行大量的才能真正掌握,算是一大難點(diǎn);其次,位圖文件結(jié)構(gòu)復(fù)雜,每一個(gè)位圖文件都有34部分組合而成,變量較多,易混淆;再次,文件跟位圖的知識(shí)結(jié)合點(diǎn)較多,更是增加難度。針對(duì)問題的復(fù)雜性,本組借閱了大量VC編程教程并且通過網(wǎng)絡(luò)獲取相關(guān)程序,最后經(jīng)過實(shí)際操作,最終得到了本次設(shè)計(jì)結(jié)果。困難二:VC中的界面設(shè)計(jì)以及控件使用VC環(huán)境下的程序設(shè)計(jì)不同于VB,可視化程度較低,因此帶來了不少困難,例如,最初對(duì)坐標(biāo)顯示區(qū)的編寫中對(duì)動(dòng)態(tài)編輯框控件的運(yùn)用,不知道如何才能設(shè)置所需要的參數(shù),即將數(shù)據(jù)通過界面?zhèn)鬏數(shù)匠绦蛑腥⑴c運(yùn)算。經(jīng)過翻閱書籍,本組最終找到了所需要的語句,成功地寫出了坐標(biāo)顯

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論