六自由度模塊化機器人實驗報告_第1頁
六自由度模塊化機器人實驗報告_第2頁
六自由度模塊化機器人實驗報告_第3頁
六自由度模塊化機器人實驗報告_第4頁
六自由度模塊化機器人實驗報告_第5頁
已閱讀5頁,還剩37頁未讀 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、 六自由度模塊化機器人實驗報告指導老師: 團隊成員: 六自由度模塊化機器人實驗報告緒論1、 實驗課程簡介六自由度工業(yè)機器人具有高度的靈活性和通用性,用途十分廣泛。本實驗是在開放的六自由度機器人系統(tǒng)上,采用嵌入式多軸運動控制器作為控制系統(tǒng)平臺,實現(xiàn)機器人的運動控制。通過示教程序完成機器人的系統(tǒng)標定。學習采用C+編程設計語言編寫機器人的基本控制程序,學習實現(xiàn)六自由度機器人的運動控制的基本方法。了解六自由度機器人在機械制造自動化系統(tǒng)中的應用。 二、實驗課性質、目的和任務性質:獨立設置的開放實驗。目的:通過六自由度機器人及其在機械自動化中的應用開放實驗,使學生能夠了解六自由度機器人的基本結構、工作原理

2、、控制系統(tǒng)組成等,掌握機器人傳動系統(tǒng)分析和運動學分析的基本方法,學習機器人控制編程,了解六自由度機器人在自動化制造系統(tǒng)中的應用。任務:(1)熟悉六自由度機器人系統(tǒng)基本組成;(2)實現(xiàn)機器人坐標回零和機器人示教;(3)完成機器人運動學分析和求解;(4)完成機器人本體部分三維建模和運動學仿真;(5)掌握機器人的單軸運動控制編程;(6)學習機器人運動軌跡規(guī)劃及其控制實現(xiàn)方法。三、 實驗課教學基本要求1通過該實驗課的學習,要求學生熟悉六自由度機器人的機械結構組成;2熟悉機器人傳動系統(tǒng)的特點,掌握機器人運動學分析的基本方法;3. 掌握機器人運動學仿真技術;4. 了解機器人控制系統(tǒng)的組成和控制原理;5.

3、掌握機器人基本的運動控制編程。實驗內容實驗一 對六自由度機器人機電和本實驗的基本了解實驗目的: 了解本實驗的基本要求;了解本實驗在本學期的基本安排;通過老師的講解和頻頻播放,理解在進行本實驗時需要補充的知識。實驗內容:1)老師給我們播放了一些關于機械人在機械工業(yè)當中應用的視頻; 2)老師解釋了創(chuàng)新思想在這方面的重要性,并舉出好多相關的現(xiàn)實例子,還推薦我們閱讀藍海風暴和第三次工業(yè)革命等有關書籍,以增強我們的創(chuàng)新意識。附:讀藍海戰(zhàn)略有感(一)看過藍海戰(zhàn)略這本書后,對如今的商場有了全新的認知,以前僅局限于事物的表面,一個企業(yè)只要能夠正常的運營就能得到相應的利潤,不會有多大的風險,看不到它潛在的危機。

4、現(xiàn)今遠不是這樣了,在這個世界經濟暴破的時代,只想求得一時的安逸,不去謀求長遠的發(fā)展,那是很難在如今的商場立足的,更何況現(xiàn)在的“商場如戰(zhàn)場”競爭是如此的激烈,沒有一個完善的戰(zhàn)略與認知,要想從商海中脫穎而出是不易的。翻開這本書,仿佛進入了一個全新的領域,作者引用了大量的事實和案例,闡述了“紅海”和“藍?!钡膬仍诼?lián)系,探求著“藍?!遍_創(chuàng)之路。作為一個技術研究人員,做技術是為了什么呢?上升到戰(zhàn)略層面的話,那就是開創(chuàng)“藍?!?。所以說藍海戰(zhàn)略拓展了我的視野,讓我對創(chuàng)新這個詞,有了更深的理解。首先,藍海戰(zhàn)略讓我對創(chuàng)新有了新的理解。創(chuàng)新不只是技術創(chuàng)新,更重要的是價值創(chuàng)新。創(chuàng)新的目標,不是去創(chuàng)新新奇的東西,而是

5、更好的滿足客戶的需要。在歷史上有很多企業(yè)都是獲得了技術創(chuàng)新而最后都虧本了,像著名的摩托羅拉銥星計劃最終失敗了,最主要的原因就是技術上的創(chuàng)新和價值的創(chuàng)新脫節(jié)。那么問題就是如何讓用先進的技術去賺錢?這恐怕是每一個技術人員在做技術的時候,必須要反復考慮的事情。新技術是價值創(chuàng)新的基礎,但不是價值創(chuàng)新的全部。以用戶需求為依托,以技術為基石,推出新產品,開拓新業(yè)務,才是我們創(chuàng)新的責任。其次,藍海戰(zhàn)略使我對競爭的概念又有了更新的理解。競爭,不僅僅包括和競爭對手在“紅?!敝械牟珰?,還應包括新產品,新市場領域的占領上。通信領域不僅僅是話費價格的競爭,更重要的是新產品,新業(yè)務的競爭?!皶r移則事易,因為之備”??蛻?/p>

6、的需求隨著時代的發(fā)展在不斷變化,藍海戰(zhàn)略要求企業(yè)把目光從市場的供給一方轉移需求一方,也就是與其與競爭對手死拼,不如推出更能滿足客戶需要的產品??缭浆F(xiàn)有的競爭邊界看市場,將不同市場的買方價值元素篩選、重新排序,企業(yè)就有可能重建市場和產業(yè)邊界,開啟巨大的潛在需求,從而擺脫“紅?!币阎袌隹臻g的血腥競爭,開創(chuàng)“藍海 ”新的市場空間。一個公司必須堅持探索藍海,因為只有不斷發(fā)現(xiàn)藍海才能保證公司是滿足客戶的要求,才能不會被市場淘汰。只考慮紅海是不行的。假如諾基亞一直抱守紅海的話,可能它還是在做木材加工。但紅海是必須的,有了一套紅海的競爭能使你在發(fā)現(xiàn)藍海并迅速在藍海里確立你的地位,如果沒有紅海我想即使你找到

7、拉藍海你也不能迅速占領。藍海代表著亟待開發(fā)的市場空間,代表著創(chuàng)造新需求,代表著高利潤增長的機會。盡管有些藍海完全是在已有產業(yè)邊界以外創(chuàng)建的,但大多數(shù)藍海則是通過在紅海內部擴展已有產業(yè)邊界而開拓出來的。我們做這個實驗的時候也應該具備這方面的認知能力。(二)藍海戰(zhàn)略還闡述了另一個觀點:開創(chuàng)藍海的成功者和失敗者之間的分水嶺,不在于尖端技術,也不在于“進入市場的時機”。這些因素有時候會存在,但更多時候,它們并不存在。只有當企業(yè)把創(chuàng)新與效用、價格、成本整合一體時,才有價值創(chuàng)新。如果創(chuàng)新不能如此植根于價值之中,那么技術創(chuàng)新者和市場先驅者往往會落到為他人做嫁衣的下場。只重價值,不重創(chuàng)新,就容易使企業(yè)把精力放

8、在小步遞增的“價值創(chuàng)造”上。這種做法,也能改善價值,卻不足以使你在市場中出類拔萃。只重創(chuàng)新,不重價值,則易使創(chuàng)新僅為技術突破所驅動,或只注重市場先行,或一味追求新奇怪誕,結果是常常超過買方的心理接受能力和購買力。因此,很重要的一點就是要把價值創(chuàng)新與技術創(chuàng)新及市場先行區(qū)分開。正如藍海戰(zhàn)略這本書所提:“任何一家企業(yè)都不可能永葆卓越,正如任何一個行業(yè)都無法長盛不衰一樣。我們回顧走過的路時會發(fā)現(xiàn),自己和企業(yè)一樣,做了聰明的事和蠢事。為了更加成功,我們需要研究和認識造成積極變化的那些行為,以及如何才能系統(tǒng)性地復制此類正確的行為。這就是我們所說的聰明的戰(zhàn)略推動,并且我們發(fā)現(xiàn),起中心作用的戰(zhàn)略行為就是開創(chuàng)藍

9、海?!爆F(xiàn)今的市場從某一方面說,以達到了飽和的狀態(tài),大多數(shù)廠商為了市場份額而和競爭對手拼價格,使自己的利潤大大的下降,總是幻想占領市場后再提價格,但真正有多少人能做到這樣呢?我們希望用服務來彌補產品的不足,但你的服務再好也趕不上用戶需求的不斷提高。藍海戰(zhàn)略戰(zhàn)略給我們引入了全新的詞匯“藍?!保{海戰(zhàn)略要求企業(yè)突破傳統(tǒng)的血腥競爭所形成的“紅?!?,拓展新的非競爭性的市場空間。金和莫博涅教授用大量的事實和案例闡述了“紅?!迸c“藍?!钡膬仍陉P聯(lián)從而把“戰(zhàn)略”一詞闡述得那么通透、明了。 廠商太重視競爭對手,總是想盡辦法對抗,而忽視了創(chuàng)造,從而陷入了“紅?!?已知市場空間)戰(zhàn)略中。 藍海戰(zhàn)略要求企業(yè)把視線從市

10、場的供給一方移向需求一方,從關注并比超競爭對手的所作所為轉向為買方提供價值的飛躍。通過跨越現(xiàn)有競爭邊界看市場以及將不同市場的買方價值元素篩選與重新排序,企業(yè)就有可能重建市場和產業(yè)邊界,開啟巨大的潛在需求,從而擺脫“紅?!?已知市場空間-的血腥競爭,開創(chuàng)“藍?!?新的市場空間。如今要贏得明天,企業(yè)不能靠與對手競爭,而是要開創(chuàng)"藍海",即蘊含龐大需求的新市場空間,以走上增長之路。剛看到藍海戰(zhàn)略這本書時還不知道是關于什么的書,我很好奇就帶著一份好奇心讀下去,從書的前言部分直到整本書的結束,我都很驚訝.它讓我試目一新對于企業(yè)未來的發(fā)展有了全新的認知,對于個企業(yè)來說持續(xù)長久的生存那才

11、是關鍵性的,只某一時的利,那是長久不了的,現(xiàn)在是一個世界經濟暴破的時代,企業(yè)的發(fā)展不能緊跟原有的模式去發(fā)展,要以不變應萬變去應對未來的發(fā)展,更多的時候在別人還沒有著手的時候就開始改變,要不斷地創(chuàng)新,要有自己特有的別人沒有的那你才有在激烈的競爭中勝出,否則你只能尾隨其后眼看著別人飛速發(fā)展,甚至走上破產.企業(yè)的發(fā)展一般要經歷五個階段,一,成立:二立足:三,成長:四,擴張:五成熟.對于每一個階段的發(fā)展,它都需要做出相應的策略與計劃以謀求更長久的發(fā)展,對于每一階段所發(fā)生的問題會采取相應的措施與對策來維持企業(yè)的運營,特別是在這個商場競爭激烈的年代,要想立有一席之地沒有獨特的商品與戰(zhàn)略是很難立足的.從看到

12、<<藍海戰(zhàn)略>>這全書后,給人有太多的感觸,它對企業(yè)在未來的競爭市場中脫穎而出做了全面的分析,如何脫離紅海進入藍海。顛覆傳統(tǒng)的戰(zhàn)略思維的藍海戰(zhàn)略即在當前尚不存在的所有行業(yè)(未知的市場空間)開辟出新的市場空間。繞過競爭創(chuàng)造新的市場便成為其核心。在跨度達100多年,涉及30多個產業(yè)的150個戰(zhàn)略行動的研究中,提出要贏得明天企業(yè)不能與對手競爭,而是要開創(chuàng)藍海,即蘊含龐大需求的新的市場空間,以走上增長之路。我們可以從古埃·拉里伯特先生創(chuàng)造的馬戲團的藍海中看到,在競爭中獲勝的方法就是打消念頭,重建市場邊界,注重全局,超越現(xiàn)有競爭需求,遵循合理的戰(zhàn)略順序克服組織障礙并把戰(zhàn)

13、略的執(zhí)行建成戰(zhàn)略的一部分。而今我們看到的眾多企業(yè)都是處于紅海中(當前已存在的所有行業(yè),即已知的市場空間)。在過度擁擠的產業(yè)市場中,與對手爭搶日益縮減的利潤額。如,汽車行業(yè)在以往的市場中互相競爭取得更多的市場份額,但福特T型車的開發(fā)以及克萊斯勒迷你廂車的推出卻在不同層次上創(chuàng)出了自己的藍海。福特T型車市場份額從1908年的9%扶搖直上到1921年的61%,替代了馬車,成為美國首要的運輸方式。克萊斯勒的迷你廂車以外觀和更得的車內空間為眾多家庭所擁有。因此在汽車行業(yè)中繞過了紅海中血腥的競爭,開創(chuàng)了新的市場邊界。于此,我國的眾多行業(yè)也應在已有的紅海中勇于創(chuàng)新,開拓新的市場空間,以便在國際化中占有新的市場

14、。藍海的競爭有其獨特的一面:有自然形成的壟斷、價值創(chuàng)新的難度、專利與法律的許可、網絡外溢效應的強大、較好的口碑和擁戴者、模仿壁壘等的存在。因此,替代品的作用也被削減。對此我們在開拓藍海時不得不建立良好的情感導向,發(fā)展并創(chuàng)新自己擁有的雄厚技術力量,創(chuàng)立自己的國際性品牌,加強產品差異化建立等。讀第三次工業(yè)革命有感 按照團隊的安排,我們利用空余時間讀了第三次工業(yè)革命一書。作者杰里米·里夫金在書中把第三次工業(yè)革命概括為可再生能源與互聯(lián)網技術的結合,預測了未來世界的五個支柱:(1)向可再生能源轉型;(2)將每一大洲的建筑轉化為微型發(fā)電廠,就地收集可再生能源;(3)在建筑物中使用氫和其他存儲技術

15、存儲間歇能源;(4)利用互聯(lián)網技術將電力網轉化為能源共享網絡;(5)將運輸工具轉向插電式以及燃料電動車,所需電源來自上述電網。作者的構想對于我們當前實驗的進行具有較大的啟發(fā)意義,讀后體會很深。 細讀本書,可以發(fā)現(xiàn)作者提出的“能源互聯(lián)網”模式暗含“制造業(yè)數(shù)字化”的前提,建設分布化的可再生能源供給體系是為了保證能夠實現(xiàn)分散化、個性化生產。2008年金融危機之后,世界各國尤其是歐美國家都在尋求迅速走出金融危機陰霾的解決方法及重奪制造業(yè)發(fā)展制高點的機遇。以3D打印機為代表的新型生產設備的出現(xiàn),預示著“數(shù)字化制造”的工業(yè)發(fā)展趨勢正在逐漸明朗。通過信息技術和智能技術的融合來彌補制造業(yè)的勞動力成本劣勢,帶動

16、大規(guī)模生產向柔性制造轉變,促使生產者更貼近消費市場,以適應市場快速反應與個性化服務的需求。如此一來,過去為追逐低勞動力成本而轉移到發(fā)展中國家的資本,很可能在不久的將來會回到發(fā)達國家中去。當前是一個不進則退的關鍵時刻,我們要趁著資源優(yōu)勢與勞動力優(yōu)勢尚未消失殆盡之時,破除路徑依賴,積極融入迎接第三次工業(yè)革命的籌劃,加快實現(xiàn)整體轉型升級。 書中指出,要建立以市場為導向的“產學研”結合的能源技術創(chuàng)新體系,增強自主創(chuàng)新能力,其實,這種精神對于我們做實驗有很大的幫助。實驗二六自由度機器人機電一體化系統(tǒng)學習實驗目的: 了解六自由度機器人的機械部分、控制部分、驅動執(zhí)行部分、傳感器與反饋部分。實驗要求: 通過實

17、驗教師的講解和現(xiàn)場教學,使學生了解六自由度機器人的機械部分、控制部分、驅動執(zhí)行部分、傳感器與反饋部分組成和原理。實驗內容: 實驗教師給學生介紹工業(yè)機器人的發(fā)展和應用情況,重點介紹在機械工業(yè)中的應用,學生結合GR600型六自由度機器人,學習六自由度機器人的機械本體部分、控制部分、驅動執(zhí)行部分、傳感器與反饋部分組成和原理。使用的主要儀器:六自由度工業(yè)機器人及其控制和執(zhí)行系統(tǒng)。實驗原理:六自由度機器人結構示意圖:六自由度機器人技術參數(shù)如下圖所示:自由度6負載能力0.5Kg動作范圍關節(jié)轉動-90° +90°關節(jié)轉動-45° +45°關節(jié)轉動-45° +

18、45°關節(jié)轉動-90° +90°關節(jié)轉動-45° +45°關節(jié)轉動-180° +180°最大速度關節(jié)轉動60o /s關節(jié)轉動60o /s關節(jié)轉動60o /s關節(jié)轉動60o /s關節(jié)轉動60o /s關節(jié)轉動60o /s本體重量10Kg操作方式示教再現(xiàn)/編程電源容量單相220V 50Hz 3A高度685mm驅動方式步進電機驅動重復定位精度-0.8mm+0.8mm機器人的組成部分:機器人的手操作系統(tǒng),作用是抓住一個工作對象使其按工作或作戰(zhàn)要求動作。機器人的眼感測系統(tǒng),作用是觀測工作對象及其周圍環(huán)境的信息,通過收集信息將其反饋給控制

19、中心,作為對機器人行為控制和協(xié)調的依據(jù)。機器人神經系統(tǒng)信息傳輸系統(tǒng),作用是將傳感器和觀測器獲得的各種信息下傳上達,交給各執(zhí)行及其附屬設備。機器人的心臟動力系統(tǒng),作用是負責向機器人提供動力,主要設備有各種發(fā)動機,發(fā)電機及其附屬設備。機器人的大腦指揮控制系統(tǒng)。作用是加工處理各種信息,指揮、控制機器人的各種行動。實驗三六自由度機器人的拆裝實驗實驗目的: 通過現(xiàn)場教學和實際拆裝,掌握六自由度機器人的機械本體部分結構組成和傳動系統(tǒng)?;疽螅?在實驗教師的指導下,使學生能夠熟悉六自由度機器人的機械本體結構和傳動系統(tǒng)組成,了解六自由度機器人各個關節(jié)采用的減速器及其減速比,了解六自由度機器人各關節(jié)的聯(lián)動關系

20、。實驗內容: 針對六自由度工業(yè)機器人,通過現(xiàn)場教學和實際拆裝,學生掌握六自由度機器人的基本操作,學習六自由度機器人本體的機械結構組成及工作原理,熟悉各關節(jié)的傳動關系和減速器特點。使用的主要儀器:六自由度工業(yè)機器人本體實驗原理:機器人機械系統(tǒng)主要由以下幾大部分組成:原動部件、傳動部件、執(zhí)行部件。基本機械結構連接方式為原動部件傳動部件執(zhí)行部件。機器人的傳動簡圖如下圖所示。關節(jié)傳動鏈主要由伺服電機、減速器構成。關節(jié)傳動鏈主要由伺服電機、減速器構成。關節(jié)傳動鏈主要由步進電機、同步帶、減速器構成。關節(jié)傳動鏈主要由步進電機、減速器構成。關節(jié)傳動鏈主要由步進電機、同步帶、減速器構成。關節(jié)傳動鏈主要由步進電機

21、、同步帶、減速器構成。實驗四六自由度機器人的建模實驗實驗目的:對六自由度機器人的一個關節(jié)進行簡單的建模。實驗要求: 在實驗教師的指導下,利用上次拆裝六自由度機器人的經驗,對其重要零件利用測量器材測量出其各個的量,然后利用計算機進行簡單的建模。實驗內容: 通過拆裝六自由度機器人,測量出其主要的參數(shù),進行簡單的建模。使用的主要儀器:六自由度工業(yè)機器人本體具體的見附錄實驗五 六自由度機器人運動學分析和各關節(jié)坐標回零與示教練習實驗目的: 通過實際操作六自由度機器人,學習六自由度機器人運動學分析基本方法,理解機器人各關節(jié)坐標回零的含義,掌握機器人系統(tǒng)各關節(jié)坐標回零的方法,掌握機器人示教的基本方法。實驗要

22、求: 在實驗教師的指導下,要求學生掌握六自由度機器人運動學分析的基本方法,通過現(xiàn)場實際操作,熟悉六自由度機器人的各關節(jié)坐標回零和機器人示教的基本方法。實驗內容: 針對六自由度機器人,掌握基本的機器人運動學分析方法,完成基本的運動學正解和反解,學生通過實際操作熟練掌握六自由度的各關節(jié)坐標回零,掌握以機器人的關節(jié)坐標和直角坐標方法進行機器人示教的方法。通過實驗操作理解機器人直角坐標和關節(jié)坐標的關系。使用的主要儀器:六自由度工業(yè)機器人本體及其控制系統(tǒng)。實驗操作:1、 連接好氣路,啟動氣泵到預定壓力;2、 啟動計算機,運行機器人軟件;3、 接通控制柜電源,按下“啟動”按鈕;4、 點擊主界面“機器人復位

23、”按鈕,機器人進行回零運動。觀察機器人的運動,六個關節(jié)全部運動完成后,機器人處于零點位置;5、 點擊“關節(jié)示教”按鈕,出現(xiàn)如圖1-4所示界面,按下“打開”按鈕,在機器人軟件安裝目錄下選擇示教文件BANYUN.RBT6,示教數(shù)據(jù)會在示教列表中顯示;6、 裝配操作演示,在2個支架的相應位置上分別放置軸和軸套,然后按下“再現(xiàn)”按鈕,機器人實現(xiàn)裝配動作;7、 運動完畢后,按下“復位”按鈕,機器人回到零點位置,關閉對話框;8、 如果想再做一次裝配動作,把軸放回相應位置,按下“再現(xiàn)”按鈕即可;9、 點擊“機器人復位”按鈕,使機器人回到零點位置;10、 按下控制柜上的“停止”按鈕,斷開控制柜電源;11、 退

24、出機器人軟件,關閉計算機。注意事項:1、在老師的指導下進行實驗;2、機器人通電后,身體的任何部位不要進入機器人運動可達范圍之內;3、機器人運動不正常時,及時按下控制柜的急停開關。實驗五 六自由度機器人基本的運動軌跡規(guī)劃和基本的控制編程實驗目的: 學習六自由度機器人基本的運動軌跡規(guī)劃方法,學習基本的運動控制編程。實驗要求: 掌握單關節(jié)(單軸)運動和多關節(jié)(多軸)順序運動規(guī)劃,能夠采用VC+編寫單軸運動控制程序和多軸運動順序控制程序。實驗內容: 在實驗教師指導下,學生采用運動控制開發(fā)平臺,學習掌握單關節(jié)(單軸)運動和多關節(jié)(多軸)順序運動規(guī)劃,學習采用VC+編寫單軸運動控制程序和多軸運動順序控制程

25、序。使用的主要儀器:六自由度工業(yè)機器人、運動控制開發(fā)平臺。實驗步驟1、 建立新工程1)、打開Visual C+ 6.0; 2)、在菜單中選擇New Project項目; 3)、選擇MFC Appwizard exe項; 4)、選擇工程保存路徑,如D:; 5)、輸入工程名Example6s,單擊OK,如圖9-2所示。圖9-2 New Project創(chuàng)建界面在后面彈出的窗體中選擇Dialog based項,其它按默認設置,單擊“Finish”按鈕。出現(xiàn)下一層窗體后,直接再單擊OK。創(chuàng)建完成Example6s工程。1、 首先將配套光盤中的s6s1文件夾下的動態(tài)鏈接庫文件s6s1v100.dll、s6

26、s1.h、s6s1v100.lib、mac2sspv102.dll、mac2ssp2v101.dll 和s6s1cfg.ini六個文件拷貝到剛剛建立的Example6s工程的工程文件夾下。2、 導入鏈接庫選擇“菜單ProjectSettings”項,在Project Settings對話框中選擇Link選項卡,在Object/library modules欄下面的輸入框中加入s6s1v100.lib,單擊OK完成動態(tài)鏈接庫的鏈接。圖9-3 Project Settings對話框3、 用戶界面設計首先修改對話框標題為“模塊化教學機器人實例程式”。圖9-4單擊窗體外框。拖拽窗體到合適大小。以圖9-

27、12為樣本制作用戶界面,并按下面步驟修改相應ID和標題。1)、添加單選按鈕控件首先添加一個單選按鈕到窗體,右鍵單擊新加入的控件,在彈出菜單里單擊Properties項,如圖9-5所示。圖9-5將ID改為IDC_XMOTOR,Caption改為“模塊1”,選中Group復選框,如圖9-6圖9-6關閉Radio Button Properties對話框。同樣方法再添加11個單選按鈕,ID和控件標題按下表修改,未注明Group選擇的不勾選Group項目??丶蘒D控件標題標注IDC_XMOTOR模塊1Group選擇有效IDC_YMOTOR模塊2IDC_ZMOTOR模塊3IDC_UMOTOR模塊4IDC

28、_VMOTOR模塊5IDC_WMOTOR模塊6IDC_SPEED速度模式Group選擇有效IDC_POSITION位置模式IDC_PDIR正向Group選擇有效IDC_NDIR負向IDC_RADIO11勻速Group選擇有效IDC_RADIO12加速2)、添加靜態(tài)文本控件 添加靜態(tài)文本控件,在右鍵彈出菜單中單擊Properties項,Caption標題改為“運行速度”,如圖9-7所示。圖9-7再添加三個靜態(tài)文本控件到窗體中,標題分別改為“目標位置”,“度/秒”,“度”,修改后窗體如圖9-8所示。圖9-83)、添加編輯框控件添加兩個編輯框控件到窗體,將ID分別改為IDC_FH和IDC_TRANS

29、,如下表所示??丶蘒D控件標題標注IDC_FH對應運行速度IDC_TRANS對應目標位置4)、添加一個復選框按鈕,在右鍵彈出菜單中單擊Properties項,修改ID為IDC_CHECK_HAND,標題修改為“手爪張開”, 如圖9-9所示。控件ID控件標題標注IDC_CHECK_HAND手爪張開屬性中Styles選項卡下Push-link項選中圖9-9單擊Styles選項卡,勾選Push-like控件,如圖9-10所示。圖9-105)、將原有的確定按鈕ID改為IDC_TRANS_START,標題改為“啟動”,再添加一個按鈕,修改ID為IDC_SUDDEN_STOP,標題為“立即停止”,如下表所

30、示??丶蘒D控件標題標注IDC_TRANS_START啟動IDC_SUDDEN_STOP立即停止IDCANCEL退出所有控件添加完成之后,逐步調整控件大小及位置,如圖9-11所示。圖9-116) 、添加組框6個,修改ID和標題如下表所示??丶蘒D控件標題標注IDC_STATIC關節(jié)選擇IDC_STATIC運動方式IDC_STATIC運行參數(shù)IDC_STATIC運動方向IDC_STATIC啟動方式IDC_STATIC運動測試最終窗體如圖9-12所示。圖9-127)、添加成員變量 選擇“菜單ViewClassWizard”,在彈出的對話框中選擇“Member Variables”選項卡,按下表所示

31、為控件添加成員變量??丶蘒D變量類型變量名稱IDC_XMOTORIntm_axisIDC_SPEEDIntm_runmodIDC_CHECK_HANDBOOLm_handIDC_TRANSDoublem_transIDC_FHDoublem_fhIDC_PDIRIntm_dirIDC_RADIO11Intm_acc4、 代碼添加1)、雙擊窗體進入代碼區(qū),將構造函數(shù)中成員變量的默認值修改為:m_axis = 0;m_hand = FALSE;m_fh = 5.0;m_trans = 15.0;m_runmod = 0;m_dir = 0;m_acc = 0;2)、在源程序開始部分加入對動態(tài)鏈接庫

32、頭文件的引用,代碼如下:#include “s6s1.h”3)、找到OnInitDialog()函數(shù),在/ TODO: Add extra initialization here后添加如下代碼:BOOL CExample6sDlg:OnInitDialog() / TODO: Add extra initialization heres6s1_set_critical(NULL);/系統(tǒng)內部會創(chuàng)建一個臨界段對象維護線程安全s6s1_init(1,NULL,true);/初始化s6s1_select(1);/選擇1 return TRUE; / return TRUE unless you se

33、t the focus to a control 4)、雙擊“手爪張開” 復選按鈕,建立單擊響應函數(shù)(默認函數(shù)名),并添加代碼: void CExample6sDlg:OnCheckHand() / TODO: Add your control notification handler code here if(!UpdateData(true) return;if(m_hand) s6s1_hand(1);/張開 GetDlgItem(IDC_CHECK_HAND)->SetWindowText("手爪張開"); else s6s1_hand(0);/閉合 GetD

34、lgItem(IDC_CHECK_HAND)->SetWindowText("手爪閉合"); 5)、 雙擊“啟動”按鈕,建立單擊響應函數(shù)(默認函數(shù)名),并添加代碼: void CExample6sDlg:OnTransStart() / TODO: Add your control notification handler code hereif(!UpdateData(true) return;double spd=m_fh; /定義m軸的運動速度if(spd<0)spd=-1*spd;if(m_runmod=0)/速度模式if(m_dir=1)spd=spd

35、*(-1);s6s1_moveone(m_axis,m_trans,spd,true,m_acc=1);/加速移動m軸elses6s1_moveone(m_axis,m_trans,spd,false,m_acc=1);/以指定速度運行m軸 6) 、雙擊“立即停止”按鈕,在代碼區(qū)添加以下代碼: void CExample6sDlg:OnSuddenStop() / TODO: Add your control notification handler code hereif(!UpdateData(true) return;/如果控件顯示中的數(shù)據(jù)不在變量范圍之內,更新顯示數(shù)據(jù)到變量成功,返回,

36、 s6s1_stop_axis(m_axis);/停止m軸的運動7) 、雙擊“退出”按鈕,在代碼區(qū)添加以下代碼:void CExample6sDlg:OnCancel() / TODO: Add extra cleanup heres6s1_close();/關閉CDialog:OnCancel();控制卡鏈接庫VC編程:1、 建立新工程1)、打開Visual C+ 6.0; 2)、在菜單中選擇New Project項目; 3)、選擇MFC Appwizard exe項; 4)、選擇工程保存路徑,如D:; 5)、輸入工程名ExampleVC,單擊OK;6)、在后面彈出的窗體中選擇Dialog

37、based項,其它按默認設置,單擊Finish。出現(xiàn)下一層窗體后,直接單擊OK。至此ExampleVC工程創(chuàng)建完成。2、 將配套光盤中的s6s1文件夾下的動態(tài)鏈接庫文件mac2ssp2v101.dll、mac2ssp2v101.lib、MAC2SSP2v101.h、mac2sspv102.dll、mac2sspv102.lib和MAC2SSPv102.h六個文件拷貝到剛剛建立的ExampleVC工程的工程文件夾下。3、 導入鏈接庫 選擇“菜單ProjectSettings”項,在Project Settings對話框中選擇Link選項卡,在Object/library modules欄下面的輸

38、入框中輸入“mac2ssp2v101.lib mac2sspv102.lib”,單擊OK,將鏈接庫導入到ExampleVC工程中。圖 10-1 Project Settings對話框2、 用戶界面設計首先修改對話框標題為“模塊化教學機器人實例程式”,單擊窗體外框。拖拽窗體到合適大小。以圖10-9為樣本制作用戶界面,并按下面步驟修改相應ID和標題。1)、 添加單選按鈕控件首先添加一個單選按鈕到窗體,右鍵單擊新加入的控件,在彈出菜單里單擊Properties項。圖 10-2將ID改為IDC_XMOTOR,Caption改為“模塊1”,選中Group復選框,如圖10-3所示。圖 10-3關閉Radi

39、o Button Properties對話框。同樣方法再添加11個單選按鈕,ID和控件標題按下表修改,未注明Group選擇的不勾選??丶蘒D控件標題 標注IDC_XMOTOR模塊1Group選擇有效IDC_YMOTOR模塊2IDC_ZMOTOR模塊3IDC_UMOTOR模塊4IDC_VMOTOR模塊5IDC_WMOTOR模塊6IDC_SPEED速度模式Group選擇有效IDC_POSITION位置模式IDC_PDIR正向Group選擇有效IDC_NDIR負向IDC_RADIO11勻速Group選擇有效IDC_RADIO12加速2)、添加靜態(tài)文本控件 添加靜態(tài)文本控件,在右鍵彈出菜單中單擊Pro

40、perties項,Caption標題改為“運行速度”,如圖10-4所示。圖 10-4再添加三個靜態(tài)文本控件到窗體中,標題分別改為“目標位置”,“度/秒”,“度”。修改后窗體如圖10-5所示。圖 10-53)、添加編輯框控件添加兩個編輯框控件到窗體,將ID分別改為IDC_FH和IDC_TRANS,如下表所示??丶蘒D控件標題標注IDC_FH對應運行速度IDC_TRANS對應目標位置4)、添加一個復選框控件,在右鍵彈出菜單中單擊Properties項,修改ID為IDC_CHECK_HAND,標題修改為“手爪張開”,如圖10-6所示??丶蘒D控件標題標注IDC_CHECK_HAND手爪張開屬性中St

41、yles選項卡下Push-link項選中圖 10-6單擊Styles選項卡,勾選Push-like控件,如圖10-7所示。圖 10-75)、將原有的確定按鈕ID改為IDC_TRANS_START,標題改為“啟動”。再添加一個按鈕,修改ID為IDC_SUDDEN_STOP,標題為“立即停止”,如下表所示。控件ID控件標題標注IDC_TRANS_START啟動IDC_SUDDEN_STOP立即停止IDCANCEL退出所有控件添加完成之后,逐步調整控件大小及位置如圖10-8所示。圖 10-86)、添加成組框控件6個,修改ID和標題如下表所示??丶蘒D控件標題標注IDC_STATIC模塊選擇IDC_S

42、TATIC運動方式IDC_STATIC運行參數(shù)IDC_STATIC運動方向IDC_STATIC啟動方式IDC_STATIC運動測試最終窗體如圖10-9所示。圖 10-97)、添加成員變量 選擇“菜單ViewClassWizard”,在彈出的對話框中選擇“Member Variables”選項卡,按下表所示為控件添加變量??丶蘒D變量類型變量名稱IDC_XMOTORintm_axisIDC_SPEEDintm_runmodIDC_CHECK_HANDBOOLm_handIDC_TRANSdoublem_transIDC_FHdoublem_fhIDC_PDIRintm_dirIDC_RADIO1

43、1intm_acc3、 代碼添加1)、雙擊窗體進入代碼區(qū),將構造函數(shù)中成員變量的默認值由以下數(shù)據(jù)改為:m_axis = 0;m_hand = FALSE;m_fh = 5.0;m_trans = 15.0;m_runmod = 0;m_dir = 0;m_acc = 0;2)、在源文件開始部分加入對動態(tài)鏈接庫頭文件的引用,代碼如下:#include "MAC2SSP2v101.h"#include "MAC2SSPv102.h"#define MAC3002SSP4 1#define MAC3002SSP2 2#define RADIOX (25600/

44、9)#define RADIOY (25600/9)#define RADIOZ (40960/9)#define RADIOU (12800/9)#define RADIOV (107200/9)#define RADIOW (960/9)bool ssp2_init=false;bool ssp4_init=false;int card_type6=2, 2, 1, 1, 1, 1;/卡類型1:MAC3002SSP4,2:MAC3002SSP2int card_numb6=-1;/-1默認卡號int axis_numb6=0, 1, 0, 1, 2, 3;/各軸對應的軸號int out_c

45、ard_type=2;/通用IO在MAC3002SSP2卡int out_card_numb=-1;/-1默認卡號int svn_log6=0, 0, 1, 1, 1, 1;/伺服邏輯int alm_log6=1, 1, 1, 1, 1, 1;/報警邏輯int out_mode6=0, 0, 2, 0, 0, 0;/輸出模式int run_ratio6=20, 20, 20, 20, 20, 20;/速度倍率3)、找到OnInitDialog()函數(shù),在/ TODO: Add extra initialization here后添加如下代碼:BOOL CExample6sDlg:OnInitD

46、ialog()/ TODO: Add extra initialization hereCString str;for (int i=0;i<6;i+)if(card_typei=MAC3002SSP4 && !ssp4_init)int re=ssp2_initial();/初始化控制卡ssp4_init=true;if (re=0) str.Format("初始化MAC3002SSP4卡失敗,錯誤碼:%d.",re);AfxMessageBox(str);if(card_typei=MAC3002SSP2 && !ssp2_init

47、)int re=ssp22_initial();/初始化控制卡ssp2_init=true;if (re=0) str.Format("初始化MAC3002SSP2卡失敗,錯誤碼:%d.",re);AfxMessageBox(str);switch(card_typei)case MAC3002SSP4:if(-1!=card_numbi)ssp2_set_current_card(card_numbi);/設置當前卡ssp2_set_svon(axis_numbi, svn_logi);/伺服啟動ssp2_set_move_ratio(axis_numbi, run_ra

48、tioi);/速度倍率ssp2_set_out_mode (axis_numbi, out_modei);/設置輸出模式ssp2_set_alm(axis_numbi, alm_logi, 0);/設置報警邏輯break;case MAC3002SSP2:if(-1!=card_numbi)ssp22_set_current_card(card_numbi);/設置當前卡ssp22_set_svon(axis_numbi, svn_logi);/伺服啟動ssp22_set_move_ratio(axis_numbi, run_ratioi);/速度倍率ssp22_set_out_mode (a

49、xis_numbi,out_modei);/設置輸出模式ssp22_set_alm(axis_numbi, alm_logi, 0);/設置報警邏輯break;return TRUE; / return TRUE unless you set the focus to a control4)、雙擊“手爪張開”復選按鈕,建立單擊響應函數(shù)(默認函數(shù)名),并添加代碼:void CExample6sDlg:OnCheckHand() / TODO: Add your control notification handler code hereif(!UpdateData(true) return;if

50、 (-1!=out_card_numb)/手爪使用MAC3002SSP2卡的IO位ssp22_set_current_card(out_card_numb);if(m_hand)ssp22_set_general_io(0x10);/手爪電磁閥使用IO位的第4位GetDlgItem(IDC_CHECK_HAND)->SetWindowText("手爪張開");elsessp22_set_general_io(0x00);GetDlgItem(IDC_CHECK_HAND)->SetWindowText("手爪閉合"); 5)、雙擊“啟動”按鈕

51、,建立單擊響應函數(shù)(默認函數(shù)名),并添加代碼: void CExample6sDlg:OnTransStart() / TODO: Add your control notification handler code hereif(!UpdateData(true) return;int axis=m_axis;int pulse=0;int spd=0;switch(axis)case 0:pulse = int(RADIOX*m_trans);spd = int(RADIOX*m_fh/run_ratioaxis);break;case 1:pulse = int(RADIOY*m_trans);spd = int(RADIOY*m_fh/run_ratioaxis);break;case 2:pulse = int(RADIOZ*m_trans);spd = in

溫馨提示

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

評論

0/150

提交評論