【《基于單片機(jī)的氣動三自由度機(jī)械手控制系統(tǒng)設(shè)計(jì)》18000字(論文)】_第1頁
【《基于單片機(jī)的氣動三自由度機(jī)械手控制系統(tǒng)設(shè)計(jì)》18000字(論文)】_第2頁
【《基于單片機(jī)的氣動三自由度機(jī)械手控制系統(tǒng)設(shè)計(jì)》18000字(論文)】_第3頁
【《基于單片機(jī)的氣動三自由度機(jī)械手控制系統(tǒng)設(shè)計(jì)》18000字(論文)】_第4頁
【《基于單片機(jī)的氣動三自由度機(jī)械手控制系統(tǒng)設(shè)計(jì)》18000字(論文)】_第5頁
已閱讀5頁,還剩52頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

②設(shè)備對周圍環(huán)境所造成的污染是一定要考慮的問題,噪音污染,材料污染,及機(jī)器的危險(xiǎn)性都在考慮范圍內(nèi)。要保證機(jī)器運(yùn)轉(zhuǎn)的時候噪音控制在法律法規(guī)允許的范圍內(nèi),保障工人的基本合法權(quán)益。(4)設(shè)備壽命方面:所有的工業(yè)產(chǎn)品都是要有一個壽命期限的,要保證設(shè)備在這個壽命期限內(nèi)能夠穩(wěn)定可靠的工作??煽慷萊是一個用來度量機(jī)械設(shè)備壽命可靠性的指標(biāo),要確保所設(shè)計(jì)的產(chǎn)品可靠度能夠達(dá)到國家標(biāo)準(zhǔn),必須從最基本的零部件的質(zhì)量能夠得到充分保障,尤其是在當(dāng)今機(jī)械設(shè)備的復(fù)雜性越來越高,集成度越來越高的情況下,機(jī)器出問題的概率也越來越大,更加務(wù)必保障可靠度在允許范圍內(nèi)。2.3機(jī)械手總體設(shè)計(jì)方案的確定2.3.1機(jī)械手工作運(yùn)轉(zhuǎn)路線的確定機(jī)械手最基本的功能要求就是要能夠做到將目標(biāo)物品從一個位置搬運(yùn)到另一個位置,接下來就要開始確定下來機(jī)械手進(jìn)行搬運(yùn)的工作順序。系統(tǒng)開始執(zhí)行任務(wù),假若當(dāng)系統(tǒng)開始工作時手爪并不在預(yù)先規(guī)定好的初始位置,那么此時伺服氣動機(jī)便會開始運(yùn)行(橫軸向手抓方向移動,豎軸向上移動)。歸位后首先橫軸氣缸推桿工作,橫軸前伸;前伸到位后,手爪氣缸帶動手爪伸縮;當(dāng)傳感器檢測到限位磁頭時,氣動機(jī)停止,氣動驅(qū)動的機(jī)械手在氣缸的帶動下,機(jī)械手張開;延時一段時間,豎軸氣缸推桿伸長,豎軸下降;下降到位后,電磁閥復(fù)位,機(jī)械手氣缸推桿伸長,手爪夾緊貨物;延時過后,豎軸上升,同時橫軸氣缸推桿縮回、底盤氣動機(jī)帶動底盤旋轉(zhuǎn);當(dāng)橫軸、豎軸、底盤都到位后,橫軸氣缸推桿伸長;然后豎軸下降,電磁閥動作,手爪張開;延時后豎軸上升復(fù)位,然后開始下一周期動。圖2-2機(jī)械臂手循環(huán)動作流程圖。圖2-2機(jī)械臂手循環(huán)動作流程圖2.3.2機(jī)械手驅(qū)動方式和坐標(biāo)形式的確定本次設(shè)計(jì)選擇設(shè)計(jì)一種通用類型的機(jī)械手。首先,根據(jù)工作條件,本次設(shè)計(jì)的機(jī)械手不是特別復(fù)雜的工作因此不用采用比較靈活的scara坐標(biāo)形式與關(guān)節(jié)坐標(biāo)。由于圓柱式坐標(biāo)形式較為穩(wěn)定并且便于操作能夠滿足本次設(shè)計(jì)的要求條件,因此選用圓柱坐標(biāo)形式來進(jìn)行本次設(shè)計(jì),機(jī)構(gòu)整體簡圖如下圖所示,有一個旋轉(zhuǎn)和兩個沿直線運(yùn)動,本次設(shè)計(jì)方案采用既有氣動又有電動,其中旋轉(zhuǎn)采用電機(jī)驅(qū)動方式,采用氣缸驅(qū)動直線行駛地機(jī)械手不僅有著較好的準(zhǔn)度,還相當(dāng)程度上縮小了成本。下圖2-3即為本次設(shè)計(jì)的機(jī)構(gòu)簡圖。圖2-3三自由度機(jī)械手整體結(jié)構(gòu)簡圖

第三章機(jī)械部分設(shè)計(jì)3.1伺服電機(jī)的選型設(shè)計(jì)3.1.1伺服電機(jī)負(fù)載轉(zhuǎn)矩與轉(zhuǎn)動慣量的確定上文已介紹到本次的設(shè)計(jì)在旋轉(zhuǎn)方面選擇取用伺服電機(jī),使用電力驅(qū)動,使用電力驅(qū)動扭矩更大。接下來對選用伺服電機(jī)的選型進(jìn)行一些計(jì)算。第一步要確認(rèn)下來伺服電機(jī)的有關(guān)數(shù)據(jù),轉(zhuǎn)矩表達(dá)式如下(3.1)式中,TM——電機(jī)產(chǎn)生的轉(zhuǎn)矩(N?mTL——單軸傳動系統(tǒng)的負(fù)載轉(zhuǎn)矩(N?mGD電機(jī)總轉(zhuǎn)動慣量的計(jì)算:(3.2)式中,JMj1——?dú)鈩訖C(jī)軸與中間傳動軸之間的速比,j1=jL——?dú)鈩訖C(jī)軸與生產(chǎn)機(jī)械軸之間的速比,jL=ωM下面對所選電機(jī)的功率進(jìn)行計(jì)算,為了能夠保證扭轉(zhuǎn)力矩的穩(wěn)定,所選的電機(jī)要有穩(wěn)定的額定定功率,具體計(jì)算內(nèi)容如下:根據(jù)旋轉(zhuǎn)部件的總質(zhì)量為20kg,然后其整體重物的旋轉(zhuǎn)半徑是200mm,物體的旋轉(zhuǎn)角速度為2π/s,然后根據(jù)做旋轉(zhuǎn)運(yùn)動的物體,的向心力的求導(dǎo)公示式中,m旋轉(zhuǎn)部件的質(zhì)量ω旋轉(zhuǎn)角速度r旋轉(zhuǎn)半徑將上述數(shù)值代入式子進(jìn)行計(jì)算,可得出向心力為130N,然后根據(jù)電機(jī)需提供的最小功率計(jì)算公式式中,T--為電機(jī)提供的理論扭轉(zhuǎn)力矩,T=F?r0(P——所選電機(jī)的功率n——重物的轉(zhuǎn)速把上述數(shù)值代入公式進(jìn)行計(jì)算,可得出的電機(jī)所需提供的最小理論功率為2.55kw所以本次設(shè)計(jì)所需要的電機(jī)功率值≥2.55kw,扭轉(zhuǎn)力矩≥1.3N/m第四章氣動部分設(shè)計(jì)4.1氣動技術(shù)4.1.1氣動回路主要特點(diǎn)1、氣動結(jié)構(gòu)相比較液動裝置十分輕便,后期維修也比較簡單,安全性能較高一些2、工作介質(zhì)是何時何地都能采集的空氣,工作介質(zhì)來源比較簡單。處理空氣的方法較為簡易,對環(huán)境影響小,然而比較耗電,轉(zhuǎn)換率比較低。所以后期的使用費(fèi)用相對較高。3、想要工作速度調(diào)整的話較為容易實(shí)現(xiàn),氣缸的工作速度范圍大致為五十至五百毫米每秒。然而由于是氣壓驅(qū)動,它工作起來的速度保持能力即穩(wěn)定性上有所欠缺。4、由于空氣是可被壓縮的,那么就可以被用來貯存能量,能夠在短時間內(nèi)發(fā)出能量,在間歇運(yùn)動中獲得高速響應(yīng)。能適應(yīng)沖擊負(fù)載和較強(qiáng)的過負(fù)載。在某些條件下,可以使得氣動裝置擁有自保持能力。4.1.2氣動回路主要元件分類油霧器在氣動流體傳動系統(tǒng)中,動力是由壓縮空氣在閉路中傳遞和控制的。當(dāng)空氣介質(zhì)需要潤滑時,油霧裝置用于向空氣流體中添加所需的潤滑劑?!?7】減壓閥減壓閥是一種利用自身能量將入口壓力調(diào)節(jié)到設(shè)定出口壓力并保持出口壓力穩(wěn)定的閥門。在流體力學(xué)來講,減壓閥是一種節(jié)流元件,它可以改變局部阻力,即通過改變節(jié)流面積,改變流體的動能和流速,導(dǎo)致壓力損失,從而達(dá)到減壓的目的。然后,根據(jù)調(diào)節(jié)和控制,平衡波動和彈簧反作用力,使閥后壓力在一定誤差范圍內(nèi)保持恒定?!?6】電磁閥電磁閥是一般用于控制磁性的工業(yè)設(shè)備,由電磁控制的部件。那是空氣氣壓和油壓電路都可以使用的致動器。在工業(yè)生產(chǎn)中,電磁閥可以調(diào)節(jié)介質(zhì)的方向、速度、流動和其他參數(shù)。螺線管閥能夠與不同的電路協(xié)調(diào)完成設(shè)定控制,能夠確保設(shè)定的穩(wěn)定性和精度。螺線管閥多種多樣。在不同的控制系統(tǒng)中,螺線管閥起著不同的作用。在工業(yè)生產(chǎn)中,單向閥、安全閥、方向控制閥、調(diào)速閥等最被使用。電磁閥有密封空洞。不同位置有通孔。每個孔都連接著別的管道??斩吹闹虚g有活塞,旁邊有兩個電磁鐵。哪個磁鐵線圈要電氣化。閥體立即被吸引到哪一側(cè)??刂崎y體的作用是用于開閉不同的油漏孔,但油入口孔始終開放,工作油進(jìn)入不同的油排出管,然后根據(jù)油的壓力按壓活塞?;钊?qū)動活塞桿,控制機(jī)械構(gòu)成要素。因此,通過控制電磁鐵電流的接通斷開,能夠完成預(yù)定的動作。【16】儲氣罐儲氣罐的作用是用來儲存氣體的氣動元件,而且它也起到使系統(tǒng)穩(wěn)壓的作用,按照儲氣罐所受壓力的不同將之分為高壓儲氣罐,低壓儲氣罐,常壓儲氣罐【15】4.2氣缸的選型設(shè)計(jì)與電磁閥選取4.2.1Y軸氣缸缸徑的確定本次所設(shè)計(jì)的機(jī)械手的Y軸方向的伸縮原動件選擇雙桿雙軸直動氣缸來進(jìn)行驅(qū)動,計(jì)算所需氣缸的工作參數(shù),并根據(jù)計(jì)算結(jié)果來選擇氣缸種類,這對于能否保證氣缸穩(wěn)定的工作是十分重要的。下面就雙桿雙軸氣缸的具體參數(shù)進(jìn)行計(jì)算:經(jīng)過機(jī)械設(shè)計(jì)手冊的查詢,可得普通雙作用氣缸的推力與理論輸出拉力計(jì)算公式為:氣缸的理論輸出推力:(3.3)氣缸的理論輸出拉力:(3.4)式中,F(xiàn)0F2D——?dú)飧椎幕钊讖絤d——?dú)飧椎幕钊麠U直徑m,估算時可取d=0.3Dρ——?dú)飧椎墓ぷ鲏毫a,大致估算得氣缸作用的零部件總體質(zhì)量估算值為5.5kg,氣缸行程100mm,工作時間為1s,氣缸工作氣壓0.4pa,根據(jù)作用點(diǎn)力矩平衡公式:(3.5)其中,L1L2G——為氣缸工作零部件總質(zhì)量5.5kgF0——把上述數(shù)據(jù)代入計(jì)算公式,可求出本次設(shè)計(jì)所要求的最小推力為:F0=氣缸平均速度v=mns=進(jìn)一步將以上數(shù)據(jù)帶入以下公式,可求得氣缸缸徑:所以理論的普通直動氣缸缸徑值范圍D≥25mm,綜合考量之下決定選擇DPZ-21-100雙桿雙軸直動氣缸作為Y軸方向的驅(qū)動件。4.2.2X軸氣缸缸徑的確定X軸方向的氣缸主要負(fù)責(zé)X軸的上下伸縮,輔助進(jìn)行物品的移動,上一部分早就確定此軸方向要選擇普通類型的伸縮氣缸。接下來進(jìn)行一些計(jì)算來確定一下此軸方向氣缸的類型。首先在計(jì)算X軸方向驅(qū)動氣缸的缸體直徑前,需要知道氣缸作用的零部件總質(zhì)量大約為12kg,移動距離110mm,工作時間1s,工作氣壓為0.4pa氣缸缸徑求取公式為:(3.6)式中:D——普通氣缸缸徑p——?dú)飧坠ぷ鳉鈮篎0把上述數(shù)值代進(jìn)公式即可求出在X軸方向的氣缸缸體直徑要求為D≥19.54mm,然后再考慮到成本和所選缸體本身的重量最后選取DNZ-20-110型號的氣缸。綜上所述,本次設(shè)計(jì)的機(jī)械手X軸和Y軸各自所選型號氣缸具體參數(shù)見表3-1表3-1X軸和Y軸機(jī)械臂單元各自氣缸參數(shù)氣缸類別氣缸型號活塞缸徑活塞直徑行程最大工作力Y軸雙桿雙軸氣桿DPZ-21-5021mm8mm100mm277.1NX軸普通直動氣缸DNZ-20-11020mm8mm110mm125.66N4.2.3電磁閥的選型設(shè)計(jì)電磁閥是電磁控制的工業(yè)設(shè)備,電磁閥的工作原理是通電后便能吸引閥門附近的磁鐵,便能左右閥體的位置,繼而讓排氣孔開啟或者關(guān)閉。如果按照功能特點(diǎn)進(jìn)行劃分可分為以下幾類:兩位兩通,兩位三通,兩位四通,兩位五通幾種。如果按照工作原理劃分則可分為直動式,分布式,先導(dǎo)式幾種。[1]本課題對驅(qū)動氣缸采用的控制閥是2位3通電磁閥。4.3氣動回路的設(shè)計(jì)下圖便是本次設(shè)計(jì)機(jī)械手的氣壓系統(tǒng)工作原理圖。它的氣源是由空壓機(jī)(排氣壓力大于0.4~0.6MPa)通過快換接頭進(jìn)入儲氣罐,經(jīng)分水過濾器、調(diào)壓閥、油霧器,進(jìn)入各并聯(lián)氣路上的電磁閥,以控制氣缸和手部動作[2]。圖3-1機(jī)械手氣壓傳動系統(tǒng)工作原理圖表3-1氣路元件圖序號型號規(guī)格名稱數(shù)量1QF-44手動截止閥12儲氣缸13QTY-20-S1分水濾氣器14QTY-20-S1減壓閥15QTY-20-S1油霧器16YJ-1壓力繼電器17~11YVPS2150二位五通電磁閥512~20QA-L6-WS單向節(jié)流閥920~23行程開關(guān)3本次設(shè)計(jì)氣壓系統(tǒng)總共需要控制3個氣缸,分別是手爪夾緊氣缸,伸縮氣缸,大臂升降氣缸。提升啟動速度并且可以對全程的速度都可以進(jìn)行調(diào)節(jié)是快速排氣閥的作用,因此選擇在伸縮氣缸旁邊設(shè)置數(shù)個快速排氣閥。本次設(shè)計(jì)選擇不用切換節(jié)流閥和行程節(jié)流閥的氣路阻尼元件,因?yàn)檫@樣可以在一定程度上對回路進(jìn)行一定的簡化。第五章本地控制系統(tǒng)硬件設(shè)計(jì)5.1本地控制系統(tǒng)方案5.1.1本地控制系統(tǒng)的工作原理此次研究的機(jī)械手是采用圓柱坐標(biāo)形式的,總共有三個自由度,分別是一個旋轉(zhuǎn)和兩個方向上的伸縮再加上終端有一個機(jī)械手爪,這些主要通過單片機(jī)輸出脈沖信號與方向信號給驅(qū)動器以此控制步進(jìn)電機(jī)和氣缸。圖3-1控制關(guān)系圖5.1.2控制要求本次設(shè)計(jì)中機(jī)械手有三種工作方式:手動工作方式、自動工作方式、單周期工作方式。【19】手動模式在選擇手動模式之后,機(jī)械手系統(tǒng)就會按照規(guī)定步驟進(jìn)行一系列操作。自動模式按下開始按鈕后,系統(tǒng)會自動按照預(yù)先設(shè)定的程序指令使機(jī)械手完成將工件從原始工作臺平移到目標(biāo)工作臺,整個的工作流程。單周期模式單周期模式:按下開始按鈕后,系統(tǒng)在完成一次工作周期后主動終止。本次設(shè)計(jì)的三自由度機(jī)械手的整體工作流程如下圖3-2所示。剛開始機(jī)械手處于起始位置,得到指令動作后先使伸縮臂伸出由限位開關(guān)控制到達(dá)工件位置后停止;然后夾持器得到指令夾緊要搬運(yùn)的貨物,夾持器再沿著升降臂上升到工作臺,Z軸旋轉(zhuǎn)的角度可以調(diào)整,在手爪到達(dá)目的地后,夾持器得到指令松開,伸縮臂縮回,待工件加工完,再次夾取工件移動一定距離將其放到傳送帶上。至此,整個工作流程基本結(jié)束,若無其它指令,機(jī)械手回到原始狀態(tài),等待下一次指令。圖3-2機(jī)械手流程圖5.2主要元器件的選型5.2.1單片機(jī)及I/O口本章節(jié)主要對三自由度機(jī)械手的控制系給出了具體的設(shè)計(jì)思考過程包括選擇單片機(jī)的型號,單片機(jī)的硬件設(shè)計(jì),外部端口的分配,以及單片機(jī)子程序的程序流程圖的繪制。鑒于本次設(shè)計(jì)機(jī)械手的性質(zhì),而且為了保證機(jī)械手的精確定位,本次方案選取單片機(jī)來對機(jī)械手進(jìn)行控制。主要是因?yàn)閱纹瑱C(jī)使用起來十分方便,并且體積非常的小,最重要的一點(diǎn)是單片機(jī)價格十分便宜,抗外界干擾能力十分強(qiáng)。還有一點(diǎn)就是通用性十分好,只需改變單片機(jī)程序,就可以改變機(jī)械手工作流程,使其通用性更強(qiáng)。單片機(jī)的選型在仔細(xì)研究本設(shè)計(jì)所需控制的對象后,決定選用ATMEL公司的AT89C51單片機(jī)機(jī)。

AT89C51是一種單片機(jī),它帶有4K字節(jié)閃爍可編程可擦除只讀存儲器的低電壓,高性能CMOS8位微處理器。【23】單片機(jī)的可擦除只讀存儲器可以反復(fù)擦除100次?!?2】該器件采用ATMEL高密度非易失存儲器制造技術(shù)制造,與工業(yè)標(biāo)準(zhǔn)的MCS-51指令集和輸出管腳相兼容?!?1】AT89C51單片機(jī)為很多嵌入式控制系統(tǒng)提供了一種靈活性高且價廉的方案【20】。AT89C51單片機(jī)有如下特性(1)與MCS-51兼容(2)4K字節(jié)可編程閃爍存儲器(3)壽命:1000寫/擦循環(huán)(4)數(shù)據(jù)保留時間:10年(5)全靜態(tài)工作:0Hz-24Hz(6)三級程序存儲器鎖定(7)128*8位內(nèi)部RAM(8)32可編程I/O線(9)兩個16位定時器/計(jì)數(shù)器(10)5個中斷源(11)可編程串行通道(12)低功耗的閑置和掉電模式(13)片內(nèi)振蕩器和時鐘電路單片機(jī)是控制系統(tǒng)的核心組成部分,如果用比較形象的話來描述,單片機(jī)就好像人的大腦,掌控全局。AT89C51單片機(jī)兼容于MCS-51系列單片機(jī),它是具有1000次可擦寫的4K字節(jié)FLASH存儲器的低電壓、高性能CMOS8位微處理器,具有32個可編程I/O口和可編程串行通道,便于系統(tǒng)的開發(fā)以及參數(shù)的修改,且各方面完全滿足系統(tǒng)的設(shè)計(jì)要求[5]。結(jié)構(gòu)圖如圖3-3所示。圖3-3AT89C51單片機(jī)AT89C51主要有以下幾個特點(diǎn),見表3-1所示表3-1AT89C51的特點(diǎn)與MCS-51兼容4K字節(jié)可編程閃爍存儲器1000寫/擦循環(huán)可編程串行通道全靜態(tài)工作:0Hz-24Hz三級程序存儲器鎖定128*8位內(nèi)部RAM32個可編程I/O線兩個16位定時器/計(jì)數(shù)器5個中斷源本次設(shè)計(jì)最少要有42個接線口,因?yàn)槊總€矩陣鍵盤要有16個I/O口,并且再要加上6個獨(dú)立的按鈕,20個指示燈,所以最少要有42個接線口。8255A是Intel系列的可編程并行接口芯片,擴(kuò)展一片可獲得3個8位的并行I/O口,是一種單片機(jī)與外設(shè)之間的接口電路[6],圖3-4為8255A的結(jié)構(gòu)。圖3-48255A8255A的特點(diǎn)見表5-2所示其特點(diǎn)是:表5-28255A的特點(diǎn)一個芯片可擴(kuò)展多個并行I/O口可用軟件改變接口的功能可直接與單片機(jī)連接,進(jìn)行并行數(shù)據(jù)傳送

5.3機(jī)械手單片機(jī)接線原理圖的設(shè)計(jì)本次設(shè)計(jì)的基于單片機(jī)的氣動三自由度機(jī)械手的控制部分單片機(jī)接線原理圖設(shè)計(jì)中,選擇型號為AT89C51的單片機(jī)來控制,驅(qū)動器選擇型號是3ND2283。機(jī)械手控制裝置主要包括單片機(jī),供電、程序下載、串口通信三合一電路,復(fù)位電路,時鐘電路和拓展電路。5.3.1供電、程序下載、串口通信三合一電路圖3-6為單片機(jī)的供電、程序下載、串口通信三合一電路設(shè)計(jì)。圖5-6供電&下載&串口模塊通信5.3.2復(fù)位電路復(fù)位電路的基本功能是:系統(tǒng)上電時提供復(fù)位信號,直至系統(tǒng)電源穩(wěn)定后,撤銷復(fù)位信號[7]。復(fù)位電路設(shè)計(jì)如圖3-7所示。采用的復(fù)位電路為按鍵電平復(fù)位電路,通過RST端經(jīng)電阻與電源VCC接通來實(shí)現(xiàn)的[8]。圖3-7復(fù)位電路5.3.3時鐘電路時鐘電路的組成部分主要有電容、晶體振蕩器、晶振控制芯片。本次設(shè)計(jì)中的時鐘電路具體線路如下圖所示圖3-8時鐘電路5.3.4單片機(jī)最小系統(tǒng)組成單片機(jī)的最小系統(tǒng)組成如圖3-9所示。圖5-9單片機(jī)最小系統(tǒng)5.3.5擴(kuò)展電路為滿足設(shè)計(jì)需求而進(jìn)行添加額外的I/O口就是在擴(kuò)展I/O口,具體的電路設(shè)計(jì)如下圖5-10所示。圖5-10擴(kuò)展I/O口電路5.3.6矩陣鍵盤就單片機(jī)應(yīng)用系統(tǒng)中的鍵盤而言,通常情況下只有有獨(dú)立式和行列式兩種[9]。獨(dú)立式鍵盤中,每個鍵占用一根I/O口線,每個按鍵工作狀態(tài)不會影響其它I/O口線上的狀態(tài)相對獨(dú)立[10]。由于按鈕的數(shù)量是比較多的,那么都用獨(dú)立鍵盤的話,不僅僅會使整體的一個結(jié)構(gòu)混亂,最重要的是不方便進(jìn)行電路的連接,把按鈕設(shè)計(jì)為行列式鍵盤正是考慮到了這些問題,如圖5-11所示。[11]圖5-11矩陣鍵盤5.3.7指示燈指示燈采用的是獨(dú)立式結(jié)構(gòu),即每個I/O對應(yīng)一個LED線路,具體電路如圖5-12所示。圖5-12指示燈電路圖5.3.8外部驅(qū)動器與電機(jī)連接圖驅(qū)動器輸出的方向信號控制電機(jī)的正向、反向轉(zhuǎn)動帶動機(jī)械手逆時針、順時針運(yùn)動,電機(jī)的轉(zhuǎn)動速度決定著機(jī)械手轉(zhuǎn)動的快慢,而電機(jī)轉(zhuǎn)動速度是由驅(qū)動器輸出的脈沖信號來控制的。因?yàn)橹挥衂軸方向轉(zhuǎn)動由電機(jī)驅(qū)動,所以只有一個步進(jìn)電機(jī)控制就夠了,對應(yīng)有一個驅(qū)動器,具體接線圖如圖3-13所示。圖5-13驅(qū)動器接線圖5.3.9接線原理圖將各部分電路整合在一起,可得整體的接線原理圖如圖3-14所示。圖5-14接線原理圖第六章本地控制系統(tǒng)軟件設(shè)計(jì)6.1軟件介紹TA\s"本次設(shè)計(jì)中用的編程軟件是KeilμVision4。不管是用匯編語言還是C語言編程,都要使用編譯器,以便把寫好的程序編譯為機(jī)器碼,才能把HEX可執(zhí)行文件寫入單片機(jī)內(nèi)。KeilμVision4是眾多單片機(jī)應(yīng)用開發(fā)軟件中最優(yōu)秀的軟件之一,它支持眾多不同公司的MCS-51架構(gòu)的單片機(jī),甚至ARM,它集編輯、編譯、仿真等于一體,它的界面和常用的VC++軟件的界面相似,界面友好,易學(xué)易用,在調(diào)試程序,軟件仿真方面也有很強(qiáng)大的功能。因此很多開發(fā)51應(yīng)用的工程師或普通的單片機(jī)愛好者,都對它十分喜歡。"\c1軟件產(chǎn)業(yè)和機(jī)械產(chǎn)業(yè)已經(jīng)成為航空工業(yè)和電子信息產(chǎn)業(yè)不可缺少的一部分。在實(shí)際應(yīng)用中,控制軟件也并不是完全孤立存在,而是為了發(fā)揮其應(yīng)有強(qiáng)有效的功能,控制軟件設(shè)計(jì)的質(zhì)量與機(jī)械手控制系統(tǒng)等軟件也是十分相似。好的軟件應(yīng)該具有應(yīng)用范圍廣、靈活性高、使用方便、操作速度快的優(yōu)點(diǎn),同時還應(yīng)該具有一定的準(zhǔn)確性和穩(wěn)定性。軟件設(shè)計(jì)和硬件設(shè)計(jì)是一個有趣的問題。軟件的誕生遠(yuǎn)遠(yuǎn)晚于硬件,誕生軟件被用來控制硬件而不是人為控制。因此,只能是在硬件基礎(chǔ)上構(gòu)建和開發(fā)它們,才能更好地進(jìn)行軟件設(shè)計(jì)。一個強(qiáng)有效的硬件是軟件開發(fā)的必備品。硬件和軟件的結(jié)合是產(chǎn)品質(zhì)量的有力保證。由軟件控制的硬件行為更加精確。軟件是用來對硬件進(jìn)行控制的過程:程序員通過編寫軟件來對硬件進(jìn)行操控。軟件跟硬件兩者是相互促進(jìn),缺一不可的。在今后的幾十年當(dāng)中,人們主要的精力將會是讓兩者更好地相互依存,也只有做到這一點(diǎn),計(jì)算機(jī)的發(fā)展才會變得更加的迅速,未來的科技發(fā)展才會更加的美好。KeilμVision4是于二零零九年面世的,它的最大的更新在于更加注重用戶體驗(yàn),用戶在操作界面會十分便于操作,相對于前兩代在界面友好程度上有了質(zhì)的提升,給用戶提供了一個相當(dāng)舒適整潔的軟件環(huán)境來進(jìn)行程序的編制。6.2子程序流程圖(1)手爪夾緊放松:Y軸伸出縮回:x軸方向上升下降:6.3程序設(shè)計(jì)6.3.1程序結(jié)構(gòu)這個部分的程序大致有三個小部分。編程思路如圖6-1所示。其中如何正確確認(rèn)出矩陣鍵盤的輸入鍵值是這之中難度最高的部分。矩陣鍵盤的工作原理是:對4×4的矩陣鍵盤,一般行線為輸出,列線為輸入,初始將單片機(jī)行線全部輸出為低電平,然后讀入列線數(shù)據(jù),若列線全為高電平,則沒有按鍵按下[28];若列線有低電平調(diào)用延時程序來去除按鍵抖動,延時完成后再判斷是否有低電平,要是此刻讀入列線數(shù)據(jù)仍有低電平,則說明確實(shí)有按鍵按下,進(jìn)而確定鍵值[28]。每個按鍵代表不同的功能,檢測到有按鍵按下時會有對應(yīng)的指示燈亮起。圖6-1設(shè)計(jì)流程6.3.2各部分程序詳情判斷矩陣鍵盤鍵值程序根據(jù)不同的鍵盤對應(yīng)唯一一個鍵值來判斷按下的鍵盤位置,編程如下所示。#defineuintunsignedint#defineucharunsignedcharunsignedcodetable[4]={OxFE,OxFD,OxFB,OxF7};ucharscan(){ ucharTemp=0; ucharnum=0,i=0; for(i=0;i<4;i++) { PA=table[i]; Temp=PA&OxF0; if(Temp!=OxF0) { switch(Temp) {Temp=PA; caseOxF0:num=0;break;caseOxD0:num=1;break;caseOxB0:num=2;break; caseOx70:num=3;break; default:num=50;break; } break; } } returnnum+4*i+1;}確定矩陣鍵盤的鍵值相應(yīng)指示燈點(diǎn)亮一個功能指令對應(yīng)一個指示燈,根據(jù)輸入的不同指令即鍵值點(diǎn)亮指示燈,程序如下所示。voiddisplay(ucharnum1){ switch(num1) {case1:P1=Oxfe;PC=Oxff;break;//手動燈亮case2:P1=Oxfd;PC=Oxff;break;//自動燈亮case3:P1=Oxfb;PC=Oxff;break;//單周期燈亮case4:P1=Oxf7;PC=Oxff;break;//回原點(diǎn)燈亮case5:P1=Oxef;PC=Oxff;break;//縮回?zé)袅羉ase6:P1=Oxdf;PC=Oxff;break;//伸出燈亮case7:P1=Oxbf;PC=Oxff;break;//停止燈亮case8:P1=Ox7f;PC=Oxff;break;//開始燈亮case9:P1=Oxff;PC=Oxfe;break;//上升燈亮case10:P1=Oxff;PC=Oxfd;break;//下降燈亮case11:P1=Oxff;PC=Oxfb;break;//右轉(zhuǎn)燈亮case12:P1=Oxff;PC=Oxf7;break;//左轉(zhuǎn)燈亮case13:P1=Oxff;PC=Oxef;break;//后限位燈亮case14:P1=Oxff;PC=Oxdf;break;//前限位燈亮case15:P1=Oxff;PC=Oxbf;break;//松開燈亮case16:P1=Oxff;PC=Ox7f;break;//夾緊燈亮 default:break; }}執(zhí)行指令動作程序根據(jù)按下的鍵盤,執(zhí)行對應(yīng)的動作,程序如下所示。voidmain(voidTime1Config){ unsignedcharkeyNum=0; unsignedcharPWM_time1=0,PWM_time2=0,PWM_time3=0; Time1Config(); //定時器初始化設(shè)置while(1) { keyNum=Key_Scan(); //按鍵掃描檢測 switch(keyNum) //動作命令 { case(0x14): //上升 PWM_time1=100; DIR1=1; break; case(0x24): //下降 PWM_time1=100; DIR1=0; break; case(0x44): //右轉(zhuǎn) PWM_time2=100; DIR2=1; break; case(0x84): //左轉(zhuǎn) PWM_time2=100; DIR2=0; break; case(0x18): //夾緊 PWM_time3=100; DIR3=1; break; case(0x28): //松開 PWM_time3=100; DIR3=0; break; default: break; }

第七章遠(yuǎn)程控制7.1通信協(xié)議7.1.1通信協(xié)議簡介交換信息的雙方對信息交流數(shù)據(jù)的一種類似于密碼的約定。是雙方都要遵守的一種約定,這里面包含有對傳輸數(shù)據(jù)的速度,如何進(jìn)行傳輸,選擇何種的傳輸方式,以及如何進(jìn)行糾錯等等都做了規(guī)定。7.1.2RS485支持的通信協(xié)議實(shí)際上在RS485之前RS232就已經(jīng)誕生,但是RS232有幾處不足的地方如表7-1:RS232的不足之處1、接口的信號電平值較高,達(dá)到十幾V,容易損壞接口電路的芯片,而且和TTL電平不兼容,因此和單片機(jī)電路接起來的話必須加轉(zhuǎn)換電路。2、傳輸速率有局限,不可以過高,一般到幾十Kb/s就到極限了。3、接口使用信號線和GND與其他設(shè)備形成共地模式的通信,這種共地模式傳輸容易產(chǎn)生干擾,并且抗干擾性能也比較弱。4、傳輸距離有限,最多只能通信幾十米。5、通信的時候只能兩點(diǎn)之間進(jìn)行通信,不能夠?qū)崿F(xiàn)多機(jī)聯(lián)網(wǎng)通信。表7-1RS485接口標(biāo)準(zhǔn)的特點(diǎn)1.邏輯“1”以兩線間的電壓差為+(2—6)V表示;邏輯“0”以兩線間的電壓差為-(2—6)V表示。接口信號電平比RS232C降低了,就不易損壞電路的芯片,且該電平與TTL電平兼容,可方便與TTL電路連接。2.RS485通信速度快,數(shù)據(jù)最高傳輸速率為10Mbps以上3.RS485內(nèi)部的物理結(jié)構(gòu),采用的是平衡驅(qū)動器和查分接收器的組合,抗干擾能力大大增加。4.傳輸速率最遠(yuǎn)可達(dá)到1200米左右,但是他的傳輸速率和傳輸距離是成反比的,只有在100KB/s以下的傳輸速率,才能達(dá)到最大的通信距離,如果需要傳輸更遠(yuǎn)距離可以使用中繼。5.可以在總線上進(jìn)行聯(lián)網(wǎng)實(shí)現(xiàn)多機(jī)通信,總線上允許掛多個收發(fā)器,從現(xiàn)有的RS485芯片來看,有可以掛32、64、128、256等不同個設(shè)備的驅(qū)動器。表7-2RS-485跟RS-232一樣,都是一種形式的串行通信,是一種平常的接口。它的作用在于不僅僅可以設(shè)備之間的傳輸,這樣就可以進(jìn)行許多設(shè)備之間的連接與傳輸。還可以進(jìn)行一個通信總線的傳輸。與RS-232相比最大的進(jìn)步就是擴(kuò)大了傳輸范圍,應(yīng)用更加廣泛,RS-485最大的特點(diǎn)是可以在一個系統(tǒng)上連接多達(dá)32個設(shè)備。RS-232一次只能處理一個。而且RS485電纜的長度一般都是1000~1200米之間,傳輸功率一般為100MW。RS-485不存在噪音問題,這樣就不會因?yàn)樵胍舳鸶鞣N各樣的問題。通常來說,RS485就是一種受到大眾流行跟喜愛而且使用也非常廣泛的串行通信形式。7.1.3Modbus通信協(xié)議Modbus協(xié)議是一種用于電子控制設(shè)備的通用語言。如果通過該協(xié)議進(jìn)行數(shù)據(jù)交換,控制器與各個被控設(shè)備進(jìn)行數(shù)據(jù)交換和通信時就可以做到無障礙。現(xiàn)在業(yè)內(nèi)一般將Modbus協(xié)議默認(rèn)為通用標(biāo)準(zhǔn)。它可以允許來自不同制造商的控制連接到一個工業(yè)網(wǎng)絡(luò),在那里可以進(jìn)行集中監(jiān)控[8]。下面簡單給出一些Modbus協(xié)議一些優(yōu)點(diǎn)和簡介:

(1)使用Modbus協(xié)議不需要繳納比如專利費(fèi)的任何的費(fèi)用,是真正免費(fèi)的。

(2)Modbus可以接許多種類的接口,比如:RS-232、RS-485

(3)Modbus協(xié)議的幀相比較其他協(xié)議格式要更為簡單一些、更為簡明一些。既方便了用戶也方便了廠商。Modbus協(xié)議有兩種信息傳輸模式,分別是美國信息交換碼和和遠(yuǎn)程終端設(shè)備,他們是在RTU模式下通信的控制器[35]。消息設(shè)置在Modbus網(wǎng)絡(luò)上,每個字節(jié)按照原值傳輸8位,未經(jīng)處理的,如63H,RTU將被直接發(fā)送到01100011.這種方法的主要優(yōu)點(diǎn)是:有時一樣的波特率數(shù)據(jù)傳輸下傳輸密度大于ASCII更高更快的數(shù)據(jù)幀之間沒有間隙。[35]與Modbus協(xié)議–RTU方式相兼容的傳輸方式規(guī)則如下:(1)數(shù)據(jù)幀格式如表7-3所示。表7-3數(shù)據(jù)幀格式AddressFunctionDataCheck8-Bits8-BitsNx8-Bits16-Bits(2)功能域碼的意義如表7-4所示。表7-4功能域碼代碼意義行為03讀數(shù)據(jù)寄存器獲得一個或多個寄存器的當(dāng)前二進(jìn)制值16預(yù)置多寄存器設(shè)定二進(jìn)制值到一系列多寄存器中7.2VC++的介紹7.2.1VC++特點(diǎn)由世界上最大的互聯(lián)網(wǎng)軟件公司微軟開發(fā)的VC++6.0不光光是一個C++編譯器,它還是一個以微軟自家公司的操作系統(tǒng)Windows為依托和基礎(chǔ)的可視化的集成的開發(fā)環(huán)境。VC++是所有的在對下層的處理中表現(xiàn)最優(yōu)秀的,所以一般來講VC++的功能是會比VB和VC的功能更全面更系統(tǒng),并且編譯效率相對于其他兩個也是最高的。VB是面向?qū)ο蟮木幊陶Z言,VC+的初衷是因?yàn)槊枋稣Z言的實(shí)際關(guān)系,能夠讓學(xué)習(xí)變得容易一些。VB可以使用非常容易使用的鼠標(biāo)的圖形界面簡單地繪制,過程相對簡單,易于理解。使用VC+編程時,只要充分使用API函數(shù),就可以進(jìn)行此操作。當(dāng)然,提供VC+MFC程序可以幫助構(gòu)建Windows接口,但它還沒有相關(guān)的代碼屏蔽。VC+需要有助于大規(guī)模和復(fù)雜的商業(yè)軟件的高效和偏差計(jì)算。VB適合較少的投資和較少的功能要求。這個程序的最初意圖是個人用的。7.3遠(yuǎn)程控制系統(tǒng)的實(shí)現(xiàn)7.3.1上位機(jī)控制軟件的目標(biāo)當(dāng)今的時代是一個現(xiàn)代化信息時代,特別體現(xiàn)在現(xiàn)代控制系統(tǒng)領(lǐng)域,由上位機(jī)軟件控制著下位機(jī)在其中有無與倫比的重要作用與意義。并且,使用軟件來進(jìn)行設(shè)計(jì)是因?yàn)檫@樣有著十分突出的優(yōu)點(diǎn),不僅能很好的滿足生產(chǎn)要求,并且如果需要進(jìn)行改動也是十分分方便的,使用軟件進(jìn)行設(shè)計(jì)這是發(fā)展趨勢。結(jié)合機(jī)械手未來的應(yīng)用場合,應(yīng)用上的要求,上位機(jī)應(yīng)當(dāng)滿足以下要求:(1)數(shù)據(jù)顯示:數(shù)據(jù)顯示主要是用來顯示轉(zhuǎn)臺系統(tǒng)重要的參數(shù),本課題的沙城風(fēng)洞轉(zhuǎn)臺系統(tǒng)主要來顯示需要顯示的實(shí)際角度和該系統(tǒng)的實(shí)際的頻率。(2)狀態(tài)顯示:用來顯示轉(zhuǎn)臺的有關(guān)零部件部分的工作運(yùn)行的狀態(tài),用來指示。比如指示燈。(3)遠(yuǎn)程控制軟件應(yīng)該具有一定的提示功能,對用戶的錯誤操縱進(jìn)行提醒。(4)控制模式:本系統(tǒng)提供了本地控制、遠(yuǎn)程控制兩種控制模式。根據(jù)不一樣的應(yīng)用場合提供不一樣的用戶界面與系統(tǒng)參數(shù)。7.3.2機(jī)械手遠(yuǎn)程控制系統(tǒng)的使用說明(1)登陸的界面打開本軟件后首先映入眼簾的是圖7-1所示的一個登陸界面,在該登錄界面把賬號和密碼輸入進(jìn)去以后,進(jìn)入到軟件,如果提示賬號或密碼輸入錯誤可以點(diǎn)擊提示按鈕找獲取提示之后重新輸入賬號密碼。圖7-1登陸界面(2)主界面從登陸的界面進(jìn)去以后的主界面就如下圖所展示的樣子,打開串口、區(qū)控制區(qū),設(shè)定區(qū)、關(guān)閉串口和退出這些按鈕共同組成了下圖所示的主頁面。圖7-2主界面(3)打開串行接口使用上位機(jī)控制三自由度氣動機(jī)械手的步驟:首先單機(jī)打開串口按鈕,假如成功打開串口,系統(tǒng)將會提示串口打開成功。然后屏幕上就會顯示如下圖7-4所示的界面,此時打開串口按鈕會變成不可使用狀態(tài);而如果關(guān)掉串口按鈕和其他按鈕將會變得可以使用。圖7-3成功打開串口界面圖7-4串口打開界面(4)關(guān)閉串口界面單擊關(guān)閉串口的按鈕會迅速關(guān)閉串口的通信,即斷開上位機(jī)控制三自由度氣動機(jī)械手的遠(yuǎn)程操作,它的界面和主界面是一樣的,那么此時系統(tǒng)就處于不可操作狀態(tài),如圖7-5所示。圖7-5關(guān)閉串口界面系統(tǒng)控制及操作在串行端口正常打開之后,根據(jù)軟件,已知次系統(tǒng)的主要部件是控制區(qū)域、顯示區(qū)域和設(shè)置區(qū)域,并且總共有三部分。各部分的具體功能和操作方法簡述如下:主接口包括數(shù)據(jù)顯示區(qū)域、控制區(qū)域、顯示區(qū)域和參數(shù)設(shè)定。數(shù)據(jù)顯示區(qū)域用于顯示工作中的轉(zhuǎn)盤表的相關(guān)參數(shù),例如角度和頻率。當(dāng)顯示區(qū)域正在移動時,用于顯示機(jī)器人的執(zhí)行狀態(tài)的參數(shù)設(shè)定區(qū)域被用于輸入介質(zhì)速度、低速頻率、最小頻率、感測角、旋轉(zhuǎn)角度、允許誤差、微動頻率和連續(xù)頻率。此時,系統(tǒng)處于無法操作的狀態(tài)。1)顯示區(qū)指示燈顯示區(qū)主要由16個指示燈組成,對應(yīng)于現(xiàn)場控制柜上的狀態(tài)指示燈,具體狀態(tài)可看指示燈下面的文字說明。指示燈位綠色時(圖7-6所示的顏色)表示系統(tǒng)不在此狀態(tài),當(dāng)系統(tǒng)達(dá)到某種狀態(tài)時,相應(yīng)的指示燈會變成黃色。圖7-6顯示區(qū)2)設(shè)定區(qū)數(shù)據(jù)顯示主要用來顯示系統(tǒng)的重要參數(shù),本系統(tǒng)主要和單片機(jī)控制進(jìn)行數(shù)據(jù)傳遞,來顯示系統(tǒng)的轉(zhuǎn)動角度、轉(zhuǎn)動速度、上升速度、上升位移、橫向速度、橫向位移等數(shù)值。參數(shù)設(shè)定主要用來設(shè)定三自由度氣動機(jī)械手系統(tǒng)的轉(zhuǎn)動角度、轉(zhuǎn)動速度、上升速度、上升位移、橫向速度、橫向位移等數(shù)值,參數(shù)設(shè)定的方法:在相應(yīng)的編輯框輸入需要設(shè)定的數(shù)值,然后點(diǎn)擊左邊對應(yīng)的按鈕即可完成對參數(shù)的設(shè)定。以設(shè)定系統(tǒng)轉(zhuǎn)動角度為例,如果需要設(shè)定轉(zhuǎn)動角度為20度,只需在轉(zhuǎn)動角度按鈕右邊的編輯框輸入20,然后點(diǎn)擊轉(zhuǎn)動角度按鈕即可,如圖7-7所示。圖7-7參數(shù)設(shè)定以下具體敘述一下每個參數(shù)的意義:轉(zhuǎn)動角度:三自由度氣動機(jī)械手繞工件轉(zhuǎn)動角度,然后到達(dá)正確的工作位置。正確的轉(zhuǎn)動角度在0-360內(nèi)超過系統(tǒng)將會提示Pleaseenteranintegerbetween0and360。轉(zhuǎn)動速度:三自由度氣動機(jī)械手繞工件的轉(zhuǎn)動速度,轉(zhuǎn)動速度可以更具工況區(qū)確定,如果工況好,速度可以調(diào)整較快,否則,速度設(shè)定為低速。上升速度:三自由度氣動機(jī)械手隨著工件上下運(yùn)行的速度,設(shè)定為正時代表向上運(yùn)動,設(shè)定為負(fù)時代表向下運(yùn)動。具體的速度值可以參考工況情況和三自由度氣動機(jī)械手機(jī)器說明書去設(shè)定。上升位移:三自由度氣動機(jī)械手隨著工件上下運(yùn)行的距離,設(shè)定為正時,代表向上運(yùn)動多少距離;設(shè)定為負(fù)時,代表向下運(yùn)行多少距離。具體的數(shù)值可以參考工件類型和工況。橫向速度:三自由度氣動機(jī)械手繞著工件橫向運(yùn)動的速度設(shè)定為正時,代表想右運(yùn)動,反之。橫向位移:三自由度氣動機(jī)械手繞著工件橫向運(yùn)動的位移,設(shè)定為正時,向右,反之。表7-53)控制區(qū)控制區(qū)主要由遠(yuǎn)程、本地、手動、自動、停止、啟動、復(fù)位、正轉(zhuǎn)、反轉(zhuǎn)、上升、下降、右運(yùn)動、左運(yùn)動、手爪開、手爪合等按鈕組成,對應(yīng)于現(xiàn)場控制柜上面的按鈕。如圖7-8所示。圖5-8控制區(qū)當(dāng)選擇工作形式為本地形式為如圖7-9所示,將直接控制控制柜來控制三自由度氣動機(jī)械手工作。圖7-9本地工作模式當(dāng)選擇工作模式為遠(yuǎn)程工作時如圖5-10所示,將有兩種方法來進(jìn)行控制,分別為自動控制和手動控制。進(jìn)而區(qū)控制三自由度氣動機(jī)械手進(jìn)行工作。圖7-10遠(yuǎn)程控制模式當(dāng)切換模式為自動模式時,直接控制啟動和停止按鈕區(qū)控制。如圖7-11所示。圖7-11自動控制當(dāng)選擇為手動模式進(jìn)行工作時,將控制停止和另外八個控制功能,如圖5-12和5-13所示。圖7-12手動控制圖7-13手動控制停止工作接下來具體敘述一下各個按鈕的功能如表7-6:①遠(yuǎn)程按鈕遠(yuǎn)程按鈕主要用來實(shí)現(xiàn)遠(yuǎn)程控制,點(diǎn)擊此按鈕可以對三自由度氣動機(jī)械手遠(yuǎn)程控制。②本地按鈕本地按鈕上升按鈕主要用來實(shí)現(xiàn)本地控制,點(diǎn)擊此按鈕可以對三自由度氣動機(jī)械手本地控制。③手動按鈕手動按鈕主要作用是實(shí)現(xiàn)三自由度氣動機(jī)械手的手動操作,點(diǎn)擊手動按鈕后,需要手動操作使三自由度氣動機(jī)械手進(jìn)行工作。④自動按鈕自動按鈕主要作用是讓實(shí)現(xiàn)三自由度氣動機(jī)械手的自動操作,點(diǎn)擊自動按鈕后,三自由度氣動機(jī)械手會自動進(jìn)行工作。⑤啟動按鈕在遠(yuǎn)程控制下選擇自動模式,啟動按鈕的作用是啟動三自由度氣動機(jī)械手的啟動,直到按下停止按鈕。⑥停止按鈕停止按鈕的作用是停止系統(tǒng)當(dāng)前運(yùn)行的狀態(tài)。⑦復(fù)位按鈕使系統(tǒng)的工作狀態(tài)調(diào)整為初始狀態(tài)。⑧正轉(zhuǎn)按鈕在遠(yuǎn)程控制下選擇手動控制模式,正轉(zhuǎn)按鈕時控制機(jī)械手繞工件正向轉(zhuǎn)動。⑨反轉(zhuǎn)按鈕在遠(yuǎn)程控制下選擇手動控制模式,正轉(zhuǎn)按鈕時控制機(jī)械手繞工件正向轉(zhuǎn)動。⑩上升按鈕在遠(yuǎn)程控制下選擇手動控制模式,上升按鈕時控制機(jī)械手繞工件向上運(yùn)動。?下降按鈕在遠(yuǎn)程控制下選擇手動控制模式,下降按鈕時控制機(jī)械手繞工件向下運(yùn)動。?右運(yùn)動按鈕在遠(yuǎn)程控制下選擇手動控制模式,右運(yùn)動按鈕時控制機(jī)械手繞工件向右運(yùn)動。?左運(yùn)動按鈕在遠(yuǎn)程控制下選擇手動控制模式,左運(yùn)動按鈕時控制機(jī)械手繞工件向左運(yùn)動。?手爪開在遠(yuǎn)程控制下選擇手動控制模式,開抓按鈕時控制手爪松開工件。?手爪合在遠(yuǎn)程控制下選擇手動控制模式,開抓按鈕時控制手爪抓緊工件。表7-6(6)使用步驟按下現(xiàn)場控制柜上的“電源開關(guān)”,控制柜上電運(yùn)行。將“本地/遠(yuǎn)程切換開關(guān)”切換到“遠(yuǎn)程”。打開此系統(tǒng),點(diǎn)擊打開串口按鈕,使此系統(tǒng)與現(xiàn)場控制器通信。在界面上控制遠(yuǎn)程和本地按鈕來選擇控制形式。選到遠(yuǎn)程按鈕,可以選擇手動和自動的形式來控制三自由度氣動機(jī)械手。選擇本地按鈕,只能在現(xiàn)場控制柜上控制三自由度氣動機(jī)械手。然后利用三自由度氣動機(jī)械手遠(yuǎn)程控制系統(tǒng)去控制機(jī)械手到達(dá)工作位時,機(jī)械爪將會夾緊工件,然后進(jìn)行工作。實(shí)驗(yàn)完畢后,使機(jī)械爪松開工件,然后機(jī)械手離開工作位。接著按界面上的停止按鈕停止系統(tǒng),然后按下界面上的關(guān)閉串口按鈕,切斷此系統(tǒng)與現(xiàn)場控制器的聯(lián)系,并退出系統(tǒng),最后彈出現(xiàn)場控制柜上的電源按鈕,切斷電源。

按下現(xiàn)場控制柜上的“電源開關(guān)”,控制柜上電運(yùn)行。將“本地/遠(yuǎn)程切換開關(guān)”切換到“遠(yuǎn)程”。打開此系統(tǒng),點(diǎn)擊打開串口按鈕,使此系統(tǒng)與現(xiàn)場控制器通信。在界面上控制遠(yuǎn)程和本地按鈕來選擇控制形式。選到遠(yuǎn)程按鈕,可以選擇手動和自動的形式來控制三自由度氣動機(jī)械手。選擇本地按鈕,只能在現(xiàn)場控制柜上控制三自由度氣動機(jī)械手。然后利用三自由度氣動機(jī)械手遠(yuǎn)程控制系統(tǒng)去控制機(jī)械手到達(dá)工作位時,機(jī)械爪將會夾緊工件,然后進(jìn)行工作。實(shí)驗(yàn)完畢后,使機(jī)械爪松開工件,然后機(jī)械手離開工作位。接著按界面上的停止按鈕停止系統(tǒng),然后按下界面上的關(guān)閉串口按鈕,切斷此系統(tǒng)與現(xiàn)場控制器的聯(lián)系,并退出系統(tǒng),最后彈出現(xiàn)場控制柜上的電源按鈕,切斷電源。參考文獻(xiàn)[1] 吳振彪.工業(yè)機(jī)器人.武漢:華中理工大學(xué)出版社,1997[2] 郭洪紅.工業(yè)機(jī)器人技術(shù).西安:西安電子科技大學(xué)出版社,2006.3[3] 王天然.機(jī)器人.北京:化學(xué)工業(yè)出版社,2002[4] 白井良明[日].機(jī)器人工程.北京:科學(xué)出版社,2001[5] 大熊繁[日].機(jī)器人控制.北京:科學(xué)出版社,2002[6] 陸鑫盛,周洪.氣動自動化系統(tǒng)的優(yōu)化設(shè)計(jì)[M].上海:上??茖W(xué)技術(shù)文獻(xiàn)出版社,2000.5[7] SMC(中國)有限公司.現(xiàn)代實(shí)用氣動技術(shù).第二版.北京:機(jī)械工業(yè)出版社,2003.10[8] 鄭洪生.氣壓傳動及控制,第二版[M].北京:機(jī)械工業(yè)出版社,1992[9] 林文坡.氣壓傳動與控制[M].西安:西安交通大學(xué)出版社,1992[10] 成大先.機(jī)械設(shè)計(jì)手冊.第五卷.第四版[M].北京:化學(xué)工業(yè)出版社,2002[11] 機(jī)械設(shè)計(jì)手冊編委會.機(jī)械設(shè)計(jì)手冊.氣壓傳動與控制.北京:機(jī)械工業(yè)出版社,2007.2[12] 氣動工程手冊編委會.氣動工程手冊[M].北京:國防工業(yè)出版社,1995[13] 王積偉,章宏甲,黃誼.液壓與氣壓傳動.第二版.北京:機(jī)械工業(yè)出版社,2005[14] 吳宗澤,羅圣國.機(jī)械設(shè)計(jì)課程設(shè)計(jì)手冊.北京:高等教育出版社,2006.5[15] 何銘新,錢可強(qiáng).機(jī)械制圖.北京:高等教育出版社,2004.1[16] 張建明等.機(jī)電一體化系統(tǒng)設(shè)計(jì).第二版.北京:北京理工大學(xué)出版社,2008.6[17] 王信義.機(jī)電一體化技術(shù)手冊.第二版.北京:機(jī)械工業(yè)出版社,2000[18] 張建民.機(jī)電一體化原理和應(yīng)用.北京:國防工業(yè)出版社,1992[19] 高鐘毓.機(jī)電控制工程.北京:清華大學(xué)出版社,1994[20] 張毅剛主編.單片機(jī)原理及應(yīng)用.北京:高等教育出版社[21] 王惠忠,王強(qiáng),李策編.微機(jī)原理及接口技術(shù).北京:機(jī)械工業(yè)出版社,2008.3[22] YuanShihua,HuJibin.Theresearchontheefficiencyofmultirangehydro-mechanicaltransmission[J].JournalofBeijingInstituteofTechnology,1998[23] GooBongChungandByung-JuYietl.Designandanalysisofaspatial3_DOFMicromanipulatorfortele-operation[A].Proceed-ingsoftheIEEE/RSTInternationalconferenceonInellligentRobotsandSystem[C].USA,2001[24] TimKingandMichelePozziandAngeloMannara,Piezoactuatorsforreal-worldapplications[J].PowerEngineeringJournal,2000

附錄(1)本地機(jī)控制的源程序#include<reg51.h>#defineuintunsignedint#defineucharunsignedcharunsignedcodetable[4]={OxFE,OxFD,OxFB,OxF7};ucharscan(){ ucharTemp=0; ucharnum=0,i=0; for(i=0;i<4;i++) { PA=table[i]; Temp=PA&OxF0; if(Temp!=OxF0) { switch(Temp) {Temp=PA; caseOxF0:num=0;break;caseOxD0:num=1;break;caseOxB0:num=2;break; caseOx70:num=3;break; default:num=50;break; } break; } } returnnum+4*i+1;}voiddisplay(ucharnum1){ switch(num1) { case1:P1=Oxfe;PC=Oxff;break;//手動燈亮case2:P1=Oxfd;PC=Oxff;break;//自動燈亮case3:P1=Oxfb;PC=Oxff;break;//單周期燈亮 case4:P1=Oxf7;PC=Oxff;break;//回原點(diǎn)燈亮case5:P1=Oxef;PC=Oxff;break;//縮回?zé)袅?case6:P1=Oxdf;PC=Oxff;break;//伸出燈亮case7:P1=Oxbf;PC=Oxff;break;//停止燈亮 case8:P1=Ox7f;PC=Oxff;break;//開始燈亮 case9:P1=Oxff;PC=Oxfe;break;//上升燈亮case10:P1=Oxff;PC=Oxfd;break;//下降燈亮case11:P1=Oxff;PC=Oxfb;break;//右轉(zhuǎn)燈亮case12:P1=Oxff;PC=Oxf7;break;//左轉(zhuǎn)燈亮case13:P1=Oxff;PC=Oxef;break;//后限位燈亮case14:P1=Oxff;PC=Oxdf;break;//前限位燈亮case15:P1=Oxff;PC=Oxbf;break;//松開燈亮case16:P1=Oxff;PC=Ox7f;break;//夾緊燈亮 default:break; }}voidmain(){charnum1;while(1){ num1=scan(); display(num1);}}voiddelay_ms(uint);sbitled0=P2^6;sbitled1=P2^7;sbitled0=PB6;sbitled0=PB7;sbitkey1=PB0;sbitkey2=PB1;sbitkey3=PB2;sbitkey4=PB3;voidmain(){ uchari=0; ucharj=0; ucharm=0; ucharn=0; while(1) { if(key1==0) { delay_ms(10); if(key1==0) { i++; i=i%2; switch(i) { case0:led0=1;break; case1:led0=0;break;//上限位燈亮 default:break; } } while(!key1); } if(key2==0) { delay_ms(10); if(key2==0) { j++; j=j%2; switch(j) { case0:led0=1;break; case1:led0=0;break;//下限位燈亮 default:break; } } while(!key2); } if(key3==0) { delay_ms(10); if(key3==0) { m++; m=m%2; switch(m) { case0:led0=1;break; case1:led0=0;break;//右限位燈亮 default:break; } } while(!key3); } if(key4==0) { delay_ms(10); if(key4==0) { n++; n=n%2; switch(n) { case0:led0=1;break; case1:led0=0;break;//左限位燈亮 default:break; } } while(!key4); } }}voidTime1Config() //定時器初始化函數(shù){ TMOD|=0x10;//設(shè)置定時計(jì)數(shù)器工作方式1為定時器 //--定時器賦初始值,12MHZ下定時0.5ms--// TH1 =0xFE; TL1 =0x0C; ET1 =1; //開啟定時器1中斷 EA =1; TR1 =1; //開啟定時器 }sbitPWM1=P2^0; //脈沖信號1sbitPWM2=P2^1; //脈沖信號2sbitPWM3=P2^2; //脈沖信號3sbitDIR1=P2^3; //方向信號1sbitDIR2=P2^4; //方向信號2sbitDIR3=P2^5; //方向信號3voidact(voidTime1Config){ unsignedcharkeyNum=0; unsignedcharPWM_time1=0,PWM_time2=0,PWM_time3=0; Time1Config(); //定時器初始化設(shè)置while(1) { keyNum=Key_Scan(); //按鍵掃描檢測 switch(keyNum) //動作命令 { case(0x14): //上升 PWM_time1=100; DIR1=1; break; case(0x24): //下降 PWM_time1=100; DIR1=0; break; case(0x44): //右轉(zhuǎn) PWM_time2=100; DIR2=1; break; case(0x84): //左轉(zhuǎn) PWM_time2=100; DIR2=0; break; case(0x18): //夾緊 PWM_time3=100; DIR3=1; break; case(0x28): //松開 PWM_time3=100; DIR3=0; break; default: break; } if(timer1>100) //PWM周期為100*0.5ms { timer1=0; } if(timer1<PWM_time1) //改變PWM_time1這個值可以改變直流電機(jī)1的速度 { PWM1=1; } else { PWM1=0; } }}voiddelay_ms(unitz)//延時子程序{ uintx,y; for(x=z;x>0;x--) for(y=110;y>0;y--);}(2)遠(yuǎn)程控制源程序//TDFDlg.cpp:implementationfile//#include"stdafx.h"#include"TDF.h"#include"TDFDlg.h"#include"afxmt.h"#ifdef_DEBUG#definenewDEBUG_NEW#undefTHIS_FILEstaticcharTHIS_FILE[]=__FILE__;#endif#defineINTERVAL_TIME40//定時時間40也可以HANDLEhCom;//串口句柄HANDLEhThreadEvent;//讀寫事件線程句柄HANDLEhThreadEventWrite2;//發(fā)送讀單片機(jī)輸出狀態(tài)命令事件線程句柄HANDLEhThreadReadVW0Event;//發(fā)送讀單片機(jī)保持寄存器值事件線程句柄DWORDThreadProcEvent(LPVOIDpParam);//事件響應(yīng)函數(shù)DWORDThreadProcEventWriteOut(LPVOIDpParam);//發(fā)送讀單片機(jī)輸出狀態(tài)命令事件線程函數(shù)DWORDThreadProcEventReadVW0(LPVOIDpParam);//發(fā)送讀單片機(jī)保持寄存器值事件線程函數(shù)bool fEventRun;//事件線程函數(shù)執(zhí)行標(biāo)志HWND hWnd;//窗口句柄DWORD dwThreadID;//事件線程IDDWORDdwThreadWrID2;//發(fā)送讀單片機(jī)輸出狀態(tài)命令事件線程IDDWORD dwThreadWrVID;//發(fā)送讀單片機(jī)保持寄存器值事件線程IDOVERLAPPEDEol={0};//事件線程使用的OVERLAPPED結(jié)構(gòu)OVERLAPPEDWol2={0};//寫線程使用的OVERLAPPED結(jié)構(gòu)OVERLAPPEDWol3={0};OVERLAPPEDRol={0};//讀線程使用的OVERLAPPED結(jié)構(gòu)bool fStopMsg;//停止事件線程向主線程發(fā)送消息標(biāo)志boolterminated;//向單片機(jī)發(fā)送讀輸出狀態(tài)請求標(biāo)志boolterminated2;//向單片機(jī)發(fā)送讀保持寄存器請求標(biāo)志CCriticalSection critical_section;//臨界區(qū)類,申明線程同步對象,用于調(diào)用線程同步函數(shù) if(m_login.DoModal()!=IDOK) { OnOK(); } m_opencom.EnableWindow(true); m_closecom.EnableWindow(false); m_display.EnableWindow(false); m_set.EnableWindow(false); m_control.EnableWindow(false); returnTRUE;//returnTRUEunlessyousetthefocustoacontrol}voidCTDFDlg::OnBUTTONcontrol(){ //TODO:Addyourcontrolnotificationhandlercodehere if(!IsWindow(m_kongzDlg->m_hWnd)) { m_kongzDlg->Create(IDD_DIALOG_kongzhi); //********按鈕初始化************* m_kongzDlg->m_yuancheng.EnableWindow(true); m_kongzDlg->m_bendi.EnableWindow(true); m_kongzDlg->m_zidong.EnableWindow(false); m_kongzDlg->m_shoudong.EnableWindow(false); m_kongzDlg->m_qidong.EnableWindow(false); m_kongzDlg->m_tingzhi.EnableWindow(false); m_kongzDlg->m_fuwei.EnableWindow(false); m_kongzDlg->m_zhengzhuan.EnableWindow(false); m_kongzDlg->m_fanzhuan.EnableWindow(false); m_kongzDlg->m_shangsheng.EnableWindow(false); m_kongzDlg->m_xiajiang.EnableWindow(false); m_kongzDlg->m_youyund.EnableWindow(false); m_kongzDlg->m_zuoyund.EnableWindow(false); m_kongzDlg->m_shouzhuak.EnableWindow(false); m_kongzDlg->m_shouzhuah.EnableWindow(false); } m_kongzDlg->ShowWindow(SW_SHOW);}voidCTDFDlg::OnBUTTONset(){ //TODO:Addyourcontrolnotificationhandlercodehere if(!IsWindow(m_shedDlg->m_hWnd)) { m_shedDlg->Create(IDD_DIALOG_sheding); //********參數(shù)初始化*************m_shedDlg->m_zhuandongjd.EnableWindow(true); m_shedDlg->m_zhuandongsd.EnableWindow(true); m_shedDlg->m_shangshengsd.EnableWindow(true); m_shedDlg->m_shangshengwy.EnableWindow(true); m_shedDlg->m_hengxiangsd.EnableWindow(true); m_shedDlg->m_hengxiangwy.EnableWindow(true); m_shedDlg->m_Cxszdjd.EnableWindow(false); m_shedDlg->m_Cxszdsd.EnableWindow(false); m_shedDlg->m_Cxssssd.EnableWindow(false); m_shedDlg->m_Cxssswy.EnableWindow(false); m_shedDlg->m_Cxshxsd.EnableWindow(false); m_shedDlg->m_Cxshxwy.EnableWindow(false); m_shedDlg->m_Czdjd.EnableWindow(true); m_shedDlg->m_Czdsd.EnableWindow(true); m_shedDlg->m_Csssd.EnableWindow(true); m_shedDlg->m_Csswy.EnableWindow(true); m_shedDlg->m_Chxsd.EnableWindow(true); m_shedDlg->m_Chxwy.EnableWindow(true); } m_shedDlg->ShowWindow(SW_SHOW); }voidCTDFDlg::OnBUTTONdisplay(){ //TODO:Addyourcontrolnotificationhandlercodehere if(!IsWindow(m_xiansDlg->m_hWnd)) { m_xiansDlg->Create(IDD_DIALOG_xianshi); //********指示燈初始化************* m_xiansDlg->m_bendioff.ShowWindow(true); m_xiansDlg->m_bendion.ShowWindow(false); m_xiansDlg->m_yuanchengoff.ShowWindow(true); m_xiansDlg->m_yuanchengon.ShowWindow(false); m_xiansDlg->m_zidongoff.ShowWindow(true); m_xiansDlg->m_zidongon.ShowWindow(false); m_xiansDlg->m_shoudongoff.ShowWindow(true); m_xiansDlg->m_shoudongon.ShowWindow(false); m_xiansDlg->m_qidongoff.ShowWindow(true); m_xiansDlg->m_qidongon.ShowWindow(false); m_xiansDlg->m_tingzhioff.ShowWindow(true); m_xiansDlg->m_tingzhion.ShowWindow(false); m_xiansDlg->m_fuweioff.ShowWindow(true); m_xiansDlg->m_fuweion.ShowWindow(false); m_xiansDlg->m_kaizhuaoff.ShowWindow(true); m_xiansDlg->m_kaizhuaon.ShowWindow(false); m_xiansDlg->m_hezhuaoff.ShowWindow(true); m_xiansDlg->m_hezhuaon.ShowWindow(false); m_xiansDlg->m_zhengzhuanzsoff.ShowWindow(true); m_xiansDlg->m_zhengzhuanzson.ShowWindow(false); m_xiansDlg->m_fanzhuanzsoff.ShowWindow(true); m_xiansDlg->m_fanzhuanzson.ShowWindow(false); m_xiansDlg->m_zhuandongdwoff.ShowWindow(true); m_xiansDlg->m_zhuandongdwon.ShowWindow(false); m_xiansDlg->m_shangshengzsoff.ShowWindow(true); m_xiansDlg->m_shangshengzson.ShowWindow(false); m_xiansDlg->m_shangshengdwoff.ShowWindow(true); m_xiansDlg->m_shangshengdwon.ShowWindow(false); m_xiansDlg->m_hengxiangzsoff.ShowWindow(true); m_xiansDlg->m_hengxiangzson.ShowWindow(false); m_xiansDlg->m_hengxiangdwoff.ShowWindow(true); m_xiansDlg->m_hengxiangdwon.ShowWindow(false); } m_xiansDlg->ShowWindow(SW_SHOW);}DWORDThreadProcEvent(LPVOIDpParam){ DWORDdwEvtMask,dwRes; Eol.hEvent=CreateEvent(NULL,TRUE,FALSE,NULL);//設(shè)置Eol.hEvent成員為無信號狀態(tài) while(fEventRun) { WaitCommEvent(hCom,//監(jiān)視串口事件 &dwEvtMask,//存放事件掩碼組合值 &Eol); dwRes=WaitForSingleObject(Eol.hEvent,100);//等待的事件對象句柄,100為超時時間 switch(dwRes) { caseWAIT_OBJEC

溫馨提示

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

最新文檔

評論

0/150

提交評論