




版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
492186520更多論文請(qǐng)加QQ1634189238第一章緒論4921865201.1工業(yè)機(jī)器人的發(fā)展及分類(lèi)1.1.1工業(yè)機(jī)器人的發(fā)展工業(yè)機(jī)器人的發(fā)展通??梢?guī)劃分為三代:第一代工業(yè)機(jī)器人:通常是指目前國(guó)際上商品化與使用化的“可編程的工業(yè)機(jī)器人”,又稱(chēng)“示教再現(xiàn)工業(yè)機(jī)器人”即為了讓工業(yè)機(jī)器人完成某項(xiàng)作業(yè),首先由操作者將完成該作業(yè)所需要的各種知識(shí)(如運(yùn)動(dòng)軌跡、作業(yè)條件、作業(yè)順序和作業(yè)時(shí)間等),通過(guò)直接或間接手段,對(duì)工業(yè)機(jī)器人進(jìn)行“示教”工業(yè)機(jī)器人將這些知識(shí)記憶下來(lái)后,即可根據(jù)“再現(xiàn)”指令,在一定精度范圍內(nèi),忠實(shí)的重復(fù)再現(xiàn)各種被示教的動(dòng)作。1962年美國(guó)萬(wàn)能自動(dòng)化公司的第一臺(tái)Unimate工業(yè)機(jī)器人在美國(guó)通用汽車(chē)公司投入使用,標(biāo)志著第一代工業(yè)機(jī)器人的誕生。第二代工業(yè)機(jī)器人:通常是指具有某種智能(如觸覺(jué)、力覺(jué)、視覺(jué)等)功能的“智能機(jī)器人”。即有傳感器得到觸覺(jué)、力覺(jué)和視覺(jué)等信息計(jì)算機(jī)處理后,控制機(jī)器人的操作機(jī)完成相應(yīng)的適當(dāng)操作。1982年美國(guó)通用汽車(chē)在裝配線上為工業(yè)機(jī)器人裝備了視覺(jué)系統(tǒng),從而宣布了新一代智能工業(yè)機(jī)器人的問(wèn)世。第三代工業(yè)機(jī)器人:即所謂的“只治式工業(yè)機(jī)器人”。它不僅具有感知功能,而且還有一定的決策及規(guī)劃能力。第一代工業(yè)機(jī)器人目前仍處在實(shí)驗(yàn)室研究階段。工業(yè)機(jī)器人經(jīng)歷了誕生---成長(zhǎng)---成熟期后,已成為制造業(yè)中不可缺少的核心裝備,世界上有約75萬(wàn)臺(tái)工業(yè)機(jī)器人正與工人朋友并肩戰(zhàn)斗在個(gè)條生產(chǎn)線上,特種機(jī)器人作為機(jī)器人家族的后起之秀,由于其用途廣泛而大有后來(lái)居上之勢(shì),仿人機(jī)器人、農(nóng)業(yè)機(jī)器人、服務(wù)機(jī)器人、水下機(jī)器人、醫(yī)療機(jī)器人、軍用機(jī)器人、娛樂(lè)機(jī)器人等各種用途發(fā)特種機(jī)器人紛紛面世,而且正以飛快的速度向?qū)嵱没~進(jìn)。我國(guó)的工業(yè)機(jī)器人從80年代“七五”科技攻關(guān)開(kāi)始起步,在國(guó)家的支持下,通過(guò)“七五”、“八五”科技攻關(guān),目前已基本掌握了機(jī)器人的操作機(jī)的設(shè)計(jì)制造技術(shù)、控制系統(tǒng)硬件和軟件設(shè)計(jì)技術(shù)、運(yùn)動(dòng)學(xué)和軌跡規(guī)劃技術(shù)、生產(chǎn)了部分機(jī)器人的關(guān)鍵元器件,開(kāi)發(fā)出噴漆、焊弧、點(diǎn)焊、裝配、搬運(yùn)等機(jī)器人;其中有130多臺(tái)配套噴漆機(jī)器人在二十與家企業(yè)的近30條自動(dòng)噴漆生產(chǎn)線上獲得規(guī)模應(yīng)用,弧焊機(jī)器人已應(yīng)用在汽車(chē)制造廠的焊裝線上。但總的來(lái)看,我國(guó)的工業(yè)機(jī)器人技術(shù)及其工程應(yīng)用水平和國(guó)外比還有一定的距離,如:可靠性低于國(guó)外產(chǎn)品;機(jī)器人應(yīng)工程起步較晚,應(yīng)用領(lǐng)域窄,生產(chǎn)線系統(tǒng)技術(shù)與國(guó)外比有差距;在應(yīng)用規(guī)模上,我國(guó)已安裝的國(guó)產(chǎn)工業(yè)機(jī)器人約200臺(tái),約占全球已安裝臺(tái)數(shù)的萬(wàn)分之四。以上原因主要是沒(méi)有形成機(jī)器人產(chǎn)業(yè),當(dāng)前我國(guó)的機(jī)器人生產(chǎn)都是應(yīng)用戶的要求,“一客戶,一次重新設(shè)計(jì)”,品種規(guī)格多、批量小、零部件通用化程度低、供貨周期長(zhǎng)、成本也不低,而且質(zhì)量、可靠性不穩(wěn)定。因此迫切需要解決產(chǎn)業(yè)化前期的關(guān)鍵技術(shù),對(duì)產(chǎn)品進(jìn)行全面規(guī)劃,搞好系列化、通用化、?;O(shè)計(jì),積極推進(jìn)產(chǎn)業(yè)化進(jìn)程。1.1.2工業(yè)機(jī)器人的分類(lèi)工業(yè)機(jī)器人按不同的方法可分下述類(lèi)型工業(yè)機(jī)器人按操作機(jī)坐標(biāo)形式分以下幾類(lèi):(坐標(biāo)形式是指操作機(jī)的手臂在運(yùn)動(dòng)時(shí)所取的參考坐標(biāo)系的形式。)(1)直角坐標(biāo)型工業(yè)機(jī)器人其運(yùn)動(dòng)部分由三個(gè)相互垂直的直線移動(dòng)(即PPP)組成,其工作空間圖形為長(zhǎng)方形。它在各個(gè)軸向的移動(dòng)距離,可在各個(gè)坐標(biāo)軸上直接讀出,直觀性強(qiáng),易于位置和姿態(tài)的編程計(jì)算,定位精度高,控制無(wú)耦合,結(jié)構(gòu)簡(jiǎn)單,但機(jī)體所占空間體積大,動(dòng)作范圍小,靈活性差,難與其他工業(yè)機(jī)器人協(xié)調(diào)工作。(2)圓柱坐標(biāo)型工業(yè)機(jī)器人其運(yùn)動(dòng)形式是通過(guò)一個(gè)轉(zhuǎn)動(dòng)和兩個(gè)移動(dòng)組成的運(yùn)動(dòng)系統(tǒng)來(lái)實(shí)現(xiàn)的,其工作空間圖形為圓柱,與直角坐標(biāo)型工業(yè)機(jī)器人相比,在相同的工作空間條件下,機(jī)體所占體積小,而運(yùn)動(dòng)范圍大,其位置精度僅次于直角坐標(biāo)型機(jī)器人,難與其他工業(yè)機(jī)器人協(xié)調(diào)工作。(3)球坐標(biāo)型工業(yè)機(jī)器人又稱(chēng)極坐標(biāo)型工業(yè)機(jī)器人,其手臂的運(yùn)動(dòng)由兩個(gè)轉(zhuǎn)動(dòng)和一個(gè)直線移動(dòng)(即RRP,一個(gè)回轉(zhuǎn),一個(gè)俯仰和一個(gè)伸縮運(yùn)動(dòng))所組成,其工作空間為一球體,它可以作上下俯仰動(dòng)作并能抓取地面上或教低位置的協(xié)調(diào)工件,其位置精度高,位置誤差與臂長(zhǎng)成正比。(4)多關(guān)節(jié)型工業(yè)機(jī)器人又稱(chēng)回轉(zhuǎn)坐標(biāo)型工業(yè)機(jī)器人,這種工業(yè)機(jī)器人的手臂與人一體上肢類(lèi)似,其前三個(gè)關(guān)節(jié)是回轉(zhuǎn)副(即RRR),該工業(yè)機(jī)器人一般由立柱和大小臂組成,立柱與大臂見(jiàn)形成肩關(guān)節(jié),大臂和小臂間形成肘關(guān)節(jié),可使大臂做回轉(zhuǎn)運(yùn)動(dòng)和俯仰擺動(dòng),小臂做仰俯擺動(dòng)。其結(jié)構(gòu)最緊湊,靈活性大,占地面積最小,能與其他工業(yè)機(jī)器人協(xié)調(diào)工作,但位置精度教低,有平衡問(wèn)題,控制耦合,這種工業(yè)機(jī)器人應(yīng)用越來(lái)越廣泛。(5)平面關(guān)節(jié)型工業(yè)機(jī)器人它采用一個(gè)移動(dòng)關(guān)節(jié)和兩個(gè)回轉(zhuǎn)關(guān)節(jié)(即PRR),移動(dòng)關(guān)節(jié)實(shí)現(xiàn)上下運(yùn)動(dòng),而兩個(gè)回轉(zhuǎn)關(guān)節(jié)則控制前后、左右運(yùn)動(dòng)。這種形式的工業(yè)機(jī)器人又稱(chēng)(SCARA(SeletiveComplianceAssemblyRobotArm)裝配機(jī)器人。在水平方向則具有柔順性,而在垂直方向則有教大的剛性。它結(jié)構(gòu)簡(jiǎn)單,動(dòng)作靈活,多用于裝配作業(yè)中,特別適合小規(guī)格零件的插接裝配,如在電子工業(yè)的插接、裝配中應(yīng)用廣泛。工業(yè)機(jī)器人按驅(qū)動(dòng)方式分以下幾類(lèi):(1)氣動(dòng)式工業(yè)機(jī)器人這類(lèi)工業(yè)機(jī)器人以壓縮空氣來(lái)驅(qū)動(dòng)操作機(jī),其優(yōu)點(diǎn)是空氣來(lái)源方便,動(dòng)作迅速,結(jié)構(gòu)簡(jiǎn)單造價(jià)低,無(wú)污染,缺點(diǎn)是空氣具有可壓縮性,導(dǎo)致工作速度的穩(wěn)定性較差,又因氣源壓力一般只有6kPa左右,所以這類(lèi)工業(yè)機(jī)器人抓舉力較小,一般只有幾十牛頓,最大百余牛頓。(2)液壓式工業(yè)機(jī)器人液壓壓力比氣壓壓力高得多,一般為70kPa左右,故液壓傳動(dòng)工業(yè)機(jī)器人具有較大的抓舉能力,可達(dá)上千牛頓。這類(lèi)工業(yè)機(jī)器人結(jié)構(gòu)緊湊,傳動(dòng)平穩(wěn),動(dòng)作靈敏,但對(duì)密封要求較高,且不宜在高溫或低溫環(huán)境下工作。(3)電動(dòng)式工業(yè)機(jī)器人這是目前用得最多的一類(lèi)工業(yè)機(jī)器人,不僅因?yàn)殡妱?dòng)機(jī)品種眾多,為工業(yè)機(jī)器人設(shè)計(jì)提供了多種選擇,也因?yàn)樗鼈兛梢赃\(yùn)用多種靈活控制的方法。早期多采用步進(jìn)電機(jī)驅(qū)動(dòng),后來(lái)發(fā)展了直流伺服驅(qū)動(dòng)單元,目前交流伺服驅(qū)動(dòng)單元也在迅速發(fā)展。這些驅(qū)動(dòng)單元或是直接驅(qū)動(dòng)操作機(jī),或是通過(guò)諸如諧波減速器的裝置來(lái)減速后驅(qū)動(dòng),結(jié)構(gòu)十分緊湊、簡(jiǎn)單。1.2工業(yè)機(jī)器人控制系統(tǒng)1.2.1工業(yè)機(jī)器人控制系統(tǒng)的特點(diǎn)工業(yè)機(jī)器人的控制技術(shù)是在傳統(tǒng)機(jī)械系統(tǒng)的控制技術(shù)的基礎(chǔ)上發(fā)展起來(lái)的,因此兩者之間并無(wú)根本的不同但工業(yè)機(jī)器人控制系統(tǒng)也有許多特殊之處。其特點(diǎn)如下:(1)工業(yè)機(jī)器人有若干個(gè)關(guān)節(jié),典型工業(yè)機(jī)器人有五六個(gè)關(guān)節(jié),每個(gè)關(guān)節(jié)由一個(gè)伺服系統(tǒng)控制,多個(gè)關(guān)節(jié)的運(yùn)動(dòng)要求各個(gè)伺服系統(tǒng)協(xié)同工作。(2)工業(yè)機(jī)器人的工作任務(wù)是要求操作機(jī)的手部進(jìn)行空間點(diǎn)位運(yùn)動(dòng)或連續(xù)軌跡運(yùn)動(dòng),對(duì)工業(yè)機(jī)器人的運(yùn)動(dòng)控制,需要進(jìn)行復(fù)雜的坐標(biāo)變換運(yùn)算,以及矩陣函數(shù)的逆運(yùn)算。(3)工業(yè)機(jī)器人的數(shù)學(xué)模型是一個(gè)多變量、非線性和變參數(shù)的復(fù)雜模型,各變量之間還存在著耦合,因此工業(yè)機(jī)器人的控制中經(jīng)常使用前饋、補(bǔ)償、解耦和自適應(yīng)等復(fù)雜控制技術(shù)。(4)較高級(jí)的工業(yè)機(jī)器人要求對(duì)環(huán)境條件、控制指令進(jìn)行測(cè)定和分析,采用計(jì)算機(jī)建立龐大的信息庫(kù),用人工智能的方法進(jìn)行控制、決策、管理和操作,按照給定的要求,自動(dòng)選擇最佳控制規(guī)律。工業(yè)機(jī)器人的控制系統(tǒng)發(fā)基本要求有:(1)實(shí)現(xiàn)對(duì)工業(yè)機(jī)器人的位置、速度、加速度等控制功能,對(duì)于連續(xù)軌跡運(yùn)動(dòng)的工業(yè)機(jī)器人還必須具有軌跡的規(guī)劃與控制功能。(2)方便的人---機(jī)交互功能,操作人員采用直接指令代碼對(duì)工業(yè)機(jī)器人進(jìn)行作用指示。使用工業(yè)機(jī)器人具有作業(yè)知識(shí)的記憶、修正和工作程序的跳轉(zhuǎn)功能。(3)具有對(duì)外部環(huán)境(包括作業(yè)條件)的檢測(cè)和感覺(jué)功能。為使工業(yè)機(jī)器人具有對(duì)外部狀態(tài)變化的適應(yīng)能力,工業(yè)機(jī)器人應(yīng)能對(duì)諸如視覺(jué)、力覺(jué)、觸覺(jué)等有關(guān)信息進(jìn)行測(cè)量、識(shí)別、判斷、理解等功能。在自動(dòng)化生產(chǎn)線中,工業(yè)機(jī)器人應(yīng)用與其它設(shè)備交換信息,協(xié)調(diào)工作的能力。1.2.2工業(yè)機(jī)器人控制系統(tǒng)的分類(lèi):工業(yè)機(jī)器人控制系統(tǒng)可以從不同角度分類(lèi),如控制運(yùn)動(dòng)的方式不同,可為關(guān)節(jié)控制、笛卡爾空間運(yùn)動(dòng)控制和自適應(yīng)控制;按軌跡控制方式的不同,可分為點(diǎn)位控制和連續(xù)軌跡控制;按速度控制方式的不同,可分為速度控制、加速度控制、力控制。程序控制系統(tǒng):給每個(gè)自由度施加一定規(guī)律的控制作用,機(jī)器人就可實(shí)現(xiàn)要求的空間軌跡。自適應(yīng)控制系統(tǒng):當(dāng)外界條件變化時(shí),為保證所要求的品質(zhì)或?yàn)榱穗S著經(jīng)驗(yàn)的積累而自行改善控制品質(zhì),其過(guò)程是基于操作機(jī)的狀態(tài)和伺服誤差的觀察,再調(diào)整非線性模型的參數(shù),一直到誤差消失為止。這種系統(tǒng)的結(jié)構(gòu)和參數(shù)能隨時(shí)間和條件自動(dòng)改變。人工智能系統(tǒng):事先無(wú)法編制運(yùn)動(dòng)程序,而是要求在運(yùn)動(dòng)過(guò)程中根據(jù)所獲得的周?chē)鸂顟B(tài)信息,實(shí)時(shí)確定控制作用。當(dāng)外界條件變化時(shí),為保證所要求的品質(zhì)或?yàn)榱穗S著經(jīng)驗(yàn)的積累而自行改善控制品質(zhì),其過(guò)程是基于操作機(jī)的狀態(tài)和伺服誤差的觀察,再調(diào)整非線性模型的參數(shù),一直到誤差消失為止。這種系統(tǒng)的結(jié)構(gòu)和參數(shù)能隨時(shí)間和條件自動(dòng)改變。因而本系統(tǒng)是一種自適應(yīng)控制系統(tǒng)。第二章基于運(yùn)動(dòng)卡的控制系統(tǒng)的建立2.1總體系統(tǒng)的構(gòu)建2.1.1總體方案的確定機(jī)器人控制系統(tǒng)是一種典型的多軸實(shí)時(shí)運(yùn)動(dòng)控制系統(tǒng)。傳統(tǒng)的機(jī)器人控制系統(tǒng)基本上是設(shè)計(jì)者基于自己的獨(dú)立結(jié)構(gòu)和生產(chǎn)目的而開(kāi)發(fā),它采用了專(zhuān)用計(jì)算機(jī)、專(zhuān)用機(jī)器人語(yǔ)言、專(zhuān)用微處理器的封閉式體系結(jié)構(gòu)。這種結(jié)構(gòu)的控制器存在制造和使用成本高,開(kāi)發(fā)周期長(zhǎng),升級(jí)換代困難,無(wú)法添加系統(tǒng)的新功能等一系列缺點(diǎn)。該系統(tǒng)基于TRIO運(yùn)動(dòng)控制卡的開(kāi)放式結(jié)構(gòu)機(jī)器人控制系統(tǒng),采用IPC+DSP的結(jié)構(gòu)來(lái)實(shí)現(xiàn)機(jī)器人的控制。這種機(jī)器人控制系統(tǒng)采用開(kāi)放式硬件、軟件結(jié)構(gòu),可以根據(jù)需要方便地?cái)U(kuò)展功能,具有良好的開(kāi)放性和擴(kuò)展性,能適應(yīng)于不同類(lèi)型機(jī)器人或機(jī)器人自動(dòng)生產(chǎn)線。通過(guò)運(yùn)動(dòng)控制卡在工業(yè)機(jī)器人控制系統(tǒng)中的應(yīng)用,根據(jù)運(yùn)動(dòng)控制的相關(guān)理論和直流伺服電機(jī)的具有不易受干擾、易于用微機(jī)實(shí)現(xiàn)數(shù)字控制、無(wú)積累誤差等特性以及其動(dòng)作迅速、反映快、維護(hù)簡(jiǎn)單、可實(shí)現(xiàn)過(guò)載自動(dòng)保護(hù)等特點(diǎn)作為相關(guān)背景的基礎(chǔ)之上提出了基于TRIO運(yùn)動(dòng)控制卡的自動(dòng)化程度和定位精度均較高的工業(yè)機(jī)器人控制系統(tǒng)。這種機(jī)器人控制系統(tǒng)的重要特點(diǎn)在于它采用通用個(gè)人計(jì)算機(jī)加DSP-多控制回路的開(kāi)放式體系結(jié)構(gòu)以及它的網(wǎng)絡(luò)控制特性。2.1.2可行性論證目前,由于高起動(dòng)轉(zhuǎn)矩、大轉(zhuǎn)矩、低慣量的交、直流伺服電動(dòng)機(jī)在工業(yè)機(jī)器人中得到廣泛應(yīng)用一般負(fù)載1000N(相當(dāng)100kgf)以下的工業(yè)機(jī)器人大多采用電伺服驅(qū)動(dòng)系統(tǒng)。所采用的關(guān)節(jié)驅(qū)動(dòng)電動(dòng)機(jī)主要是AC伺服電動(dòng)機(jī)。其中,交流伺服電動(dòng)機(jī)、直流伺服電動(dòng)機(jī)、直流驅(qū)動(dòng)電動(dòng)機(jī)(DD)均采用位置閉環(huán)控制,一般應(yīng)用于高精度、高速度的機(jī)器人驅(qū)動(dòng)系統(tǒng)中。利用運(yùn)動(dòng)控制卡(運(yùn)動(dòng)控制和邏輯算法有機(jī)的結(jié)合,輕松實(shí)現(xiàn)多種運(yùn)動(dòng)形式的運(yùn)動(dòng)控制器)對(duì)機(jī)器人驅(qū)動(dòng)系統(tǒng)進(jìn)行控制能夠有效地提高整個(gè)機(jī)器人系統(tǒng)的性能及開(kāi)發(fā)效率。由于機(jī)器人需要精確的控制和精準(zhǔn)的定位,采用合適的直流電機(jī)調(diào)速器和光電軸角編碼器即能滿足要求。PCI—208是TrioMotion公司的一款基于PC的PCI總線控制的數(shù)字運(yùn)動(dòng)控制卡,該控制卡采用了獨(dú)立的120MHZ大DSP微處理器技術(shù),提高了電機(jī)運(yùn)動(dòng)和計(jì)算速度。該控制卡可以控制2—8軸的伺服電機(jī)或步進(jìn)電機(jī)或者二者的任意結(jié)合;32-bit的33MZ,2.2版本的PCI總線。采用100-pin的高精度屏蔽電纜與外部轉(zhuǎn)接板模塊連接,提高了設(shè)備的抗干擾信號(hào)的能力。提供ActiveX可以用VB、VC、C/C++等高級(jí)語(yǔ)言根據(jù)設(shè)備的需要進(jìn)行二次開(kāi)發(fā),還有CAN總線口,可以根據(jù)設(shè)備的需要對(duì)I/O和摸擬輸入口進(jìn)行擴(kuò)展,能夠滿足要求。由于所選用的硬件設(shè)備都是市場(chǎng)上成熟的,綜上所述,本設(shè)計(jì)題目的理論基礎(chǔ)、整體的構(gòu)想和所實(shí)施的方案是切實(shí)可行的,在老師的指導(dǎo)下,借鑒相關(guān)書(shū)籍,通過(guò)通過(guò)自己的學(xué)習(xí),能夠達(dá)到本次設(shè)計(jì)的要求。2.1.3系統(tǒng)的構(gòu)成該系統(tǒng)主要由個(gè)人PC、PCI—208系列TRIO運(yùn)動(dòng)控制卡、運(yùn)動(dòng)卡外接線板、ZK4系列直流電機(jī)調(diào)速器、光電軸角編碼器、系統(tǒng)工作狀態(tài)檢測(cè)輸入行程開(kāi)關(guān)等組成。TRIO運(yùn)動(dòng)控制卡通過(guò)對(duì)直流電機(jī)調(diào)速器發(fā)出模擬電壓信號(hào)對(duì)直流伺服電動(dòng)機(jī)的轉(zhuǎn)上速、角位移、正、反轉(zhuǎn)等進(jìn)行控制,從而外控制輸出電機(jī)驅(qū)動(dòng);且還在系統(tǒng)中采用光電軸角編碼器對(duì)電機(jī)的參數(shù)運(yùn)行狀態(tài)以及程序的運(yùn)行狀態(tài)進(jìn)行反饋;另外還設(shè)置行程開(kāi)關(guān)對(duì)電機(jī)的行程位置進(jìn)行控制。2.1.4機(jī)器人控制工作原理機(jī)器人具有三個(gè)自由度(即:RRP一大臂回旋、仰角、小臂伸縮三個(gè)運(yùn)動(dòng))和一個(gè)爪開(kāi)合動(dòng)作,采用全電機(jī)驅(qū)動(dòng)控制。機(jī)器人本體由機(jī)身、大臂、小臂、手找等組成。機(jī)身固定在機(jī)械小車(chē)上;大臂可以繞著機(jī)身在水平面內(nèi)和垂直面內(nèi)旋轉(zhuǎn);小臂在絲桿的傳動(dòng)下,可以前后進(jìn)行伸縮。在大臂和小臂的共同作用下,機(jī)械手的手爪能夠接近要抓的物體。當(dāng)物體被控制在手爪的控制范圍內(nèi)時(shí),手爪夾緊物體,然后通過(guò)大臂的旋轉(zhuǎn)和小臂的伸縮運(yùn)動(dòng),最終將物體置于規(guī)定的位置。機(jī)器人大臂回旋運(yùn)動(dòng)和大臂仰角運(yùn)動(dòng)均采用直流電動(dòng)機(jī)、諧波減速器傳動(dòng),PWM脈寬調(diào)速器控制,可實(shí)現(xiàn)20—2000mm/Min無(wú)級(jí)調(diào)速控制。機(jī)器人本體結(jié)構(gòu)如下圖:1—機(jī)械手爪2一機(jī)械手小臂3一機(jī)械手大臂4一機(jī)身手爪開(kāi)合采用連桿及螺旋機(jī)構(gòu),同步電機(jī)驅(qū)動(dòng),其結(jié)構(gòu)簡(jiǎn)單,無(wú)調(diào)速器,電路控制方便。由于在機(jī)械結(jié)構(gòu)設(shè)計(jì)中采用了諧波減速器、滾珠絲桿、滾珠直線導(dǎo)軌等精密傳動(dòng)裝置,機(jī)器人手爪定位可達(dá)到較高的精度??刂葡到y(tǒng)電氣原理圖如圖,其工作原理如下:機(jī)器人大臂回旋運(yùn)動(dòng)和大臂仰角運(yùn)動(dòng)均采用直流電動(dòng)機(jī)M1和M2控制,小臂伸縮采用直流電動(dòng)機(jī)M3控制,手爪的開(kāi)合由單相交流電動(dòng)機(jī)M4控制,每個(gè)電動(dòng)機(jī)均由兩個(gè)中間繼電器控制其正、反轉(zhuǎn)。首先是各運(yùn)動(dòng)軸分別復(fù)位,電動(dòng)機(jī)m1、m2、m3反轉(zhuǎn)輸出端口OUT11、OUT13、OUT15輸出24V電壓各軸正向運(yùn)動(dòng)。當(dāng)它們踏上了各自的行程開(kāi)關(guān)時(shí)外接24V分別輸入到INPUT0、INPUT1、INPUT2的輸入端口由運(yùn)動(dòng)控制卡進(jìn)行判斷并作為運(yùn)動(dòng)的原點(diǎn)。然后,當(dāng)運(yùn)動(dòng)控制卡的24V電壓輸出端口OUT11輸出指令時(shí),接通繼電器KA4,電動(dòng)機(jī)M1得點(diǎn)正轉(zhuǎn),機(jī)器人大臂向上仰運(yùn)動(dòng),到達(dá)極限位置時(shí)撞下前限位開(kāi)關(guān)ST1,繼電器KA4線圈斷電機(jī)停止運(yùn)轉(zhuǎn)。當(dāng)運(yùn)動(dòng)控制卡電壓輸出端口OUT12輸出指令時(shí),繼電器KA5線圈得電,電動(dòng)機(jī)M1得電反轉(zhuǎn)機(jī)器人大臂向下仰運(yùn)動(dòng),到達(dá)極限位置時(shí)撞下后限位開(kāi)光ST2,繼電器KA5斷電,電機(jī)停止運(yùn)轉(zhuǎn)。電動(dòng)機(jī)M1的運(yùn)動(dòng)控制由運(yùn)動(dòng)控制卡的+10/-10V模擬電壓輸出端口OUT0輸出的指令控制。當(dāng)運(yùn)動(dòng)控制卡電壓輸出端口OUT13輸出指令時(shí),繼電器KA6線圈得電,電動(dòng)機(jī)M2得電正轉(zhuǎn),機(jī)器人大臂向左旋運(yùn)動(dòng),到達(dá)極限位置時(shí)撞下前限位開(kāi)關(guān)ST3,繼電器KA6斷電,電
機(jī)停止運(yùn)轉(zhuǎn)。當(dāng)運(yùn)動(dòng)控制卡電壓輸出端口OUT14輸出指令時(shí),繼電器KA7線圈得電,電動(dòng)機(jī)M2得電反轉(zhuǎn),機(jī)器人大臂向右旋運(yùn)動(dòng),到達(dá)極限位置時(shí)撞下后限位開(kāi)關(guān)ST4,繼電器KA7斷電,電機(jī)停止運(yùn)轉(zhuǎn),電動(dòng)機(jī)M2的運(yùn)轉(zhuǎn)速度由運(yùn)動(dòng)控制卡+10/-10V模擬電壓輸出端口OUT1發(fā)出指令控制。當(dāng)運(yùn)動(dòng)控制卡電壓輸出端口OUT15輸出指令時(shí),繼電器KA8線圈得電,電動(dòng)機(jī)M3得電正轉(zhuǎn),機(jī)器人小臂向前伸運(yùn)動(dòng),到達(dá)極限位置時(shí)撞下前限位開(kāi)關(guān)ST5,繼電器KA8線圈斷電,電機(jī)停止運(yùn)轉(zhuǎn),當(dāng)運(yùn)動(dòng)控制卡輸出斷口OUT16輸出指令時(shí)繼電器KA9線圈得電,電動(dòng)機(jī)M3得電反轉(zhuǎn),機(jī)器人小臂向后縮運(yùn)動(dòng)到過(guò)極限位置時(shí)撞下后限位開(kāi)關(guān)ST6,繼電器KA9斷電,電機(jī)停止運(yùn)動(dòng),電動(dòng)機(jī)M3運(yùn)轉(zhuǎn)速度由運(yùn)動(dòng)控制卡+10/-10V模擬電壓輸出端口OUT2發(fā)出指令控制。繼電器KA1和KA2分別控制機(jī)器人手爪的開(kāi)合當(dāng)向前伸時(shí)OUTPUT8輸出24V,撞到前限位開(kāi)關(guān)停止運(yùn)動(dòng);當(dāng)OUTPUT9輸出時(shí)向后伸縮撞到后限位開(kāi)關(guān)停止運(yùn)動(dòng)。光電軸角編碼器由三個(gè)編碼器輸入端口反饋回各軸的實(shí)際運(yùn)動(dòng)位置給運(yùn)動(dòng)控制卡。2.2軟件介紹2.2.1軟件編程語(yǔ)言的特點(diǎn)TRIOBasic一種類(lèi)似欲BASIC的語(yǔ)言,簡(jiǎn)單明了,易學(xué)易用。OCXComponent在VB、VC、Delphi、C++Builder中,直接調(diào)用運(yùn)動(dòng)函數(shù)PCI—208的安裝運(yùn)行Install_TrioPCMotion_1_2_3.exe程序。該程序?qū))自動(dòng)將PCI208的設(shè)備驅(qū)動(dòng)文件TrioPCI.sys安裝到c:\windows\system32\driver\目錄下;b)自動(dòng)將Active控件TrioPC.ocx及其幫助文件TrioPcMotionActiveX.chm安裝到C:\ProgramFiles\TrioMotion\TrioPCMotion\目錄下。安裝成功后,在“設(shè)備管理器”中可查看有關(guān)PCI208的相關(guān)信息,如下圖示譯環(huán)境中,直接運(yùn)行(F5),
程序操作畫(huà)面及介紹如下:譯環(huán)境中,直接運(yùn)行(F5),歡迎使用PCI20815動(dòng)控制界面進(jìn)入首先進(jìn)入Forml顯示“歡迎使用PCI208運(yùn)動(dòng)控制操作界面”,單擊進(jìn)入按扭便進(jìn)入Form2程序界面。如果單擊打開(kāi)按扭TRIOPCI由紅色小方塊變?yōu)榫G色小方框,表明PCI208和OCX之間已成功建立連接。如果仍然為紅色表明PCI208和OCX之間的連接未成功建立。在此程序中,可進(jìn)行運(yùn)動(dòng)控制和軸位置及I/O狀態(tài)顯示等功能。運(yùn)動(dòng)控制主要是OUTPUT8-17的輸出的開(kāi)關(guān)控制,還有INPUT33-35的原點(diǎn)檢測(cè)控制,及運(yùn)動(dòng)距離輸出控制等方面。其中關(guān)閉按扭是關(guān)閉trio軟件的連接;運(yùn)動(dòng)按扭是根據(jù)輸入的距離值進(jìn)行運(yùn)動(dòng);復(fù)位按扭是進(jìn)行各軸的原點(diǎn)復(fù)位運(yùn)動(dòng);單擊退出操作便結(jié)束程序的執(zhí)行。2.2.2OCXComponent向工程中添加TrioPCOCX控件如圖A田IUiJ&>A田IUiJ&>■I國(guó)工程1-FoebI工程1-FoebI(Foim)女件(I)編輯(I)祖圖成)工程(1)格式伯調(diào)試(1)運(yùn)行?查詢(xún)(?圖表匚)工度:(;)外摟程序⑥案匚如幫戢0,[封、宜滲吁苫晤?hec.11.恩曾明替燧國(guó)盅A團(tuán)i□-I|78』±J§&曰_|?程序框圖界面:
0,[頊牛Lsfiiu..!iDPil-."f?.IL:r.?lJ.士行.L.JA.rlu.nt.11Iq!■.■.-|」闿滬0.V!.■.!?flrIII.貝?-白-狠囹若甘癸■0頊牛Lsfiiu..!iDPil-."f?.IL:r.?lJ.士行.L.JA.rlu.nt.11Iq!■.■.-|」闿滬0.V!.■.!?flrIII.貝?-白-狠囹若甘癸■0JJ]I■■■H..:AFl,C]IJjhlTEILHb?L]3FqzkI0a_iPiou.tpu.tL3ou.tpu.tL-1LHb*L]EFan2fT3VktBSul-CE41BU1.-1L_C11■:>QDLr?Lap?nXxBaal■wTi3aTCI}|aLiA.ddr?xi=fvil1KdxLAddra-ikIriaTCI.Ilom-d.=fk_jiD*?jlLtEg日口u■!bop4ii=7±l■:>BCI.Cip?jiijXjLDifijiilthink,d£_Ji|i白fwaliHoddlCiQlUpd4t(lSii11qt£I.A14iH女血女擊ETidSobcTriv^liSulCmwBtn.d2Click0~IEIriflTCIIsOpiTiCik_D.dtfsraltN<ide)Then.TrioTCr.C103tL比_nd我m1圳詞由)EndIfCkllUpda-Li-B*xkt-3TSLkt?i.Ei-£ri-xhEndSubva14SubCc-fuiiihIl-13_C1j-k0C£lL1InitAjL?5ItlxitiJCI.I^Op-aiiij£>_ad^fdu!dl-id?jTh皿C£illjutr況歸白皿EndIf~ErijS~ob■PrivateSul-Cm*?tH_ClickOTin.hci-■ArIrit?ctrDLr?LakMBedJ?noi.DLradr??dbiQXxDnu.*bJ.-iIETr3aFCI(^k_D■日■EvulEflv日■]Than.thmmiLcr?=TrueIt£_l±"ini£LLlL£fell07£:Di4DlPearJuzii=0To£Uk=TriofCL.flpi;l£+2*:心“/l¥:lACCEL:指定軸加速度DATUM_IN:指定原點(diǎn)輸入點(diǎn)MPOS:讀取實(shí)際位置DAC:設(shè)置模擬量輸出FHOLD_IN:設(shè)置進(jìn)給保持輸入點(diǎn)運(yùn)動(dòng)指令MOVE:相對(duì)運(yùn)動(dòng)FORWARD:恒速正向運(yùn)動(dòng)RAPIDSTOP:停止MOVEMODIFY:運(yùn)動(dòng)中改變目標(biāo)位置DECEL:指定軸減速度OFFPOS:位置偏置DPOS:讀取指令位置AIN:讀取模擬量輸入FHSPEED:設(shè)置進(jìn)給保持速度MOVEABS:絕對(duì)運(yùn)動(dòng)REVERSE:恒速負(fù)向運(yùn)動(dòng)DATUM:回原點(diǎn)DEFPOS:重新定義當(dāng)前位置ADD_DAC:全閉環(huán)控制輸入、輸出指令A(yù)IN:讀取模擬量輸入IN:讀取開(kāi)關(guān)量輸入PSWITCH:位置比較輸出程序流程控制IF……THEN-.ELSE-.ENDIF:條件判斷GOTO:無(wú)條件跳轉(zhuǎn)ON-GOTO:條件跳轉(zhuǎn)REPEAT..UNTIL:重復(fù)執(zhí)行控制WAITIDLE:等待運(yùn)動(dòng)結(jié)束WA:延時(shí)WDOG:輸出使能DAC:設(shè)置模擬量輸出OP:設(shè)置開(kāi)關(guān)量輸出PRINT:顯示FOR-TO..STEP-NEXT:循環(huán)控制GOTOSUB:調(diào)用子程序ON..GOTOSUB:條件調(diào)用子程序WHILE:條件判斷WAITUNTIL:等待運(yùn)算處理指令1、算術(shù)運(yùn)算:+、-、*、/、SQR、EXP2、邏輯運(yùn)算:=、<>、>、<、>=、<=、AND、NOT、OR、XOR2.2.4運(yùn)動(dòng)控制程序如下:PrivateSubCommand1_Click()Form2.ShowUnloadForm1EndSubPrivateSubForm_Load()Label1.Caption=”歡迎使用PCI208運(yùn)動(dòng)控制界面”Label1.FontSize=18Label1.Font=楷體_GB2312Form1.BackColor=&HFFFF80EndSubOptionExplicitDimg_brunningIOAsBooleanDimg_brunningMoveAsBooleanDimg_nIOCountAsIntegerDimg_nMoveNoAsIntegerConstgk_sDefaultHostAddressAsString="50”Constgk_nDefaultPciBoardAsInteger=0Constgk_nDefaultLinkAsInteger=0Constgk_ndefaultModeAsInteger=0Constgk_nMaxAxesAsInteger=8Constgk_nAxesInUseAsInteger=3PrivateSubCommand1_Click()DimbopenAsBooleanTrioPCI.HostAddress=gk_sDefaultHostAddressTrioPCI.Board=gk_nDefaultPciBoardbopen=TrioPCI.Open(gk_nDefaultLink,gk_ndefaultMode)CallUpdateButtonStatesRefreshEndSubPrivateSubCommand2_Click()IfTrioPCI.IsOpen(gk_ndefaultMode)ThenTrioPCI.Close(gk_ndefaultMode)EndIfCallUpdateButtonStatesRefreshEndSubPrivateSubCommand3_Click()CallInitAxesIfTrioPCI.IsOpen(gk_ndefaultMode)ThenCallproccessStateRunEndIfEndSubPrivateSubCommand4_Click()DimAxisAsIntegerDimbokAsBooleanDimdreadvalAsDoubleIfTrioPCI.IsOpen(gk_ndefaultMode)Theng_brunningMove=TrueIfg_brunningMoveThenForAxis=0To2bok=TrioPCI.Op(12+2*Axis,1#)DoUntilLabel(33+Axis).Caption="onCallreadIOLoopIfLabel(33+Axis).Caption="on"Then
bok=TrioPCI.Op(12+2*Axis,0#)EndIfCallReadAxisPostionsNextnAxisg_brunningMove=FalseCallUpdateButtonStatesEndIfEndIfEndSubPrivateSubCommand5_Click()EndEndSubPrivateSubForm2_Load()g_brunningIO=Falseg_brunningMove=FalsetimUpdate.Enabled=Trueg_nIOCount=0g_nMoveNo=0UpdateButtonStateEndSubPrivateSubForm_Load()Label27.Caption="運(yùn)動(dòng)距離的輸入:"Label27.FontSize=15Label31.Caption="軸位置顯示:"Label31.FontSize=15Label32.Caption="I/O狀態(tài)顯示:"Label32.FontSize=15Form2.BackColor=&HC0FFC0EndSubPrivateSubForm_Unload(CancelAsInteger)IfTrioPCI.IsOpen(gk_ndefaultMode)Then
axTrioPC.Close(gk_ndefaultMode)EndIfEndSubOptionExplicitPrivateSubInitAxes()DimbokAsBooleanDimnAxiseAsIntegerDimnBases(gk_nAxesInUse)AsIntegerDimdreadvalAsDoubleIfTrioPCI.IsOpen(gk_ndefaultMode)Thenbok=TrioPCI.GetVariable("WDOG”,dreadval)Ifdreadval>0.5Thenbok=TrioPCI.SetVariable("WDOG”,0#)EndIfFornAxis=0Togk_nAxesInUse-1nBases(0)=nAxisbok=TrioPCI.Base(1,nBases)IfbokThenbok=TrioPCI.SetVariable("SERVO”,0#)EndIfIfbokThenbok=TrioPCI.SetVariable("ATYPE”,0#)EndIfIfbokThenbok=TrioPCI.SetVariable("UNITS”,100#)EndIfIfbokThenbok=TrioPCI.SetVariable("REPDIST”,1#)EndIfIfbokThenbok=TrioPCI.SetVariable("SPEED”,100#)EndIfIfbokThenbok=TrioPCI.SetVariable("ACCEL”,100#)EndIfIfbokThenbok=TrioPCI.SetVariable("DECEL”,100#)EndIfIfbokThenbok=TrioPCI.SetVariable("FELIMIT",1000#)EndIfIfbokThenbok=TrioPCI.SetVariable("SERVO”,1#)EndIfNextnAxisbok=TrioPCI.SetViriable(”WDOG”,1#)EndIfEndSubPrivateSubUpdateButtonStates()DimbopenAsBooleanbopen=TrioPCI.IsOpen(0)Command1.Enabled=NotbopenCommand2.Enabled=bopenAndNot(g_brunningIOOrg_brunningMove)Command3.Enabled=bopenAndNot(g_brunningIOAndg_brunningMove)EndSubPrivateSubReadAxisPostions()DimnAxisAsIntegerDimnAxes(gk_nMaxAxes)AsIntegerDimdpositionAsDoubleDimnMBRAsIntegerDimbokAsBooleanIfTrioPCI.IsOpen(gk_ndefaultMode)ThenFornAxis=0Togk_nAxesInUse-1nAxes(0)=nAxisIfTrioPCI.Base(1,nAxes)Thenbok=TrioPCI.GetVariable("DPOS”,dposition)IfbokThenLabel(nAxis+1).Caption=Int(dposition)Label(nAxis+1).RefreshElsenMBR=MsgBox("errorreadingaxispositon")nAxis=gk_nAxesInUseEndIfElsenMBR=MsgBox("errorsettingbaseforreadingaxisposition")nAxis=gk_nAxesInUseNextnAxisElsenMBR=MsgBox("connectionnotopen")EndIfEndSubPrivateSubproccessStateRun()DimbokAsBooleanDimnAxisAsIntegerDimdreadvalAsDoubleDimnIOAsIntegerg_brunningIO=TrueIfg_brunningIOThennIO=0CallReadAxisPostionsFornIO=0To2CallreadIOIfVal(Text(nIO+1).Text)>50ThenMsgBox(”數(shù)據(jù)過(guò)大”)Elsebok=TrioPCI.Op(12+2*nIO,1#)bok=TrioPCI.MoveAbs(3,Val(Text(nIO+1).Text),nIO)CallReadAxisPostionsbok=TrioPCI.Op(11+2*nIO,0#)nIO=nIO+1EndIfNextnIOg_brunningIO=FalseCallUpdateButtonStatesEndIfEndSubPrivateSubreadIO()DimIIOAsLongDimnBitAsIntegerDimnMBRAsIntegerDimIBitAsIntegerDimInptAsLongIfTrioPCI.IsOpen(gk_ndefaultMode)ThenIfTrioPCI.In(8,17,IIO)ThenFornBit=7To16IfIIO<>0ThenLabel(nBit).Caption="on"Label(nBit).ForeColor=vbBlueElseLabel(nBit).Caption="off"Label(nBit).ForeColor=vbRedEndIfLabel(nBit).RefreshNextnBitElsenMBR=MsgBox("errorreadingIO")EndIfIfTrioPCI.In(0,2,Inpt)ThenForIBit=33To35IfInpt<>0ThenLabel(IBit).Caption="on"Label(nBit).ForeColor=vbBlueElseLabel(nBit).Caption="off"Label(nBit).ForeColor=vbRedEndIfLabel(IBit).RefreshNextnBitElsenMBR=MsgBox("errorreadingIO")EndIfElsenMBR=MsgBox("connectionnotopen")EndIfEndSub2.2.5運(yùn)動(dòng)控制程序運(yùn)行過(guò)程的簡(jiǎn)介:當(dāng)程序運(yùn)行時(shí),自動(dòng)進(jìn)入窗體一(Forml)點(diǎn)擊進(jìn)入按扭通過(guò)調(diào)用窗體顯示程序進(jìn)入窗體二(Form2)。進(jìn)入后首先應(yīng)該通過(guò)控件打開(kāi)VB與MotionPerfect軟件的連接,這個(gè)可通過(guò)界面的打開(kāi)按扭運(yùn)用OPEN命令即可打開(kāi)與軟件的連接,并通過(guò)調(diào)用子程序UpdateButtonStates更新其狀態(tài)。打開(kāi)了軟件連接后,機(jī)器人各軸的位置應(yīng)該回到初始狀態(tài),這個(gè)功能的實(shí)現(xiàn)了是通過(guò)復(fù)位程序來(lái)實(shí)現(xiàn)的。當(dāng)點(diǎn)擊復(fù)位按扭時(shí)就運(yùn)行復(fù)位程序復(fù)位,在程序運(yùn)行之前還要通過(guò)子程序InitAxes()進(jìn)行各軸的參數(shù)進(jìn)行設(shè)置,而設(shè)置參數(shù)是通過(guò)連接命令SetVariable來(lái)分別進(jìn)行設(shè)置的。設(shè)置完后而復(fù)位過(guò)程就通過(guò)循環(huán)來(lái)復(fù)位,即當(dāng)各軸進(jìn)行復(fù)位時(shí)分別通過(guò)控件連接的命令OP(即OUTPUT)輸出電動(dòng)機(jī)的反轉(zhuǎn)電信號(hào)(24V電壓)這時(shí)在軟件中相應(yīng)的輸出角狀態(tài)變?yōu)镺N。在各軸的復(fù)位運(yùn)行過(guò)程中通過(guò)子程序readIO分別循環(huán)檢測(cè)各軸的原點(diǎn)開(kāi)關(guān)輸入信號(hào)(24V電壓)的狀態(tài)是否為ON并顯示各輸入輸出的狀態(tài),而該狀態(tài)的讀取是通過(guò)控件連接命令I(lǐng)N輸入的。如果為該狀態(tài)就退出循環(huán)通過(guò)OP命令來(lái)輸出OFF來(lái)關(guān)斷反轉(zhuǎn)電信號(hào)即該軸就回到了原點(diǎn),隨后再通過(guò)子程序ReadAxisPostions顯示編碼器反饋回的各軸的位置,該數(shù)據(jù)的讀取是讀取軸參數(shù)DPOS的值并通過(guò)連接命令GetVariable進(jìn)行獲取到變量postions通過(guò)賦值顯示并把該位置做為一個(gè)相對(duì)原點(diǎn)坐標(biāo)這樣整個(gè)復(fù)位程序運(yùn)行完成了。各軸復(fù)位完成以后,我們要進(jìn)行運(yùn)動(dòng)數(shù)據(jù)的輸入,即該軸要運(yùn)動(dòng)的距離。由于各軸運(yùn)動(dòng)的距離有限,所以在每次運(yùn)行時(shí)都要進(jìn)行文本框距離數(shù)據(jù)的判斷,假如距離值超過(guò)了設(shè)定值即要顯示一個(gè)對(duì)話框顯示數(shù)據(jù)過(guò)大。如果數(shù)據(jù)在正常的范圍之內(nèi),就通過(guò)控件OP命令分別輸出各電動(dòng)機(jī)的正轉(zhuǎn)運(yùn)動(dòng)信號(hào),并通過(guò)控件連接命令MoveAbs相對(duì)與反饋位置點(diǎn)運(yùn)動(dòng)一斷相對(duì)距離,運(yùn)動(dòng)完成后再通過(guò)ReadAxisPostions子程序進(jìn)行位置顯示和readIO子程序進(jìn)行輸出狀態(tài)顯示,同樣通過(guò)GetVariable命令來(lái)獲取反饋值之后再通過(guò)OP輸出OFF關(guān)閉各軸的運(yùn)動(dòng)電信號(hào),這些運(yùn)動(dòng)的實(shí)現(xiàn)是在子程序proccessStateRun()完成的。當(dāng)點(diǎn)擊運(yùn)動(dòng)按扭時(shí)就調(diào)用該子程序?qū)崿F(xiàn)整個(gè)運(yùn)動(dòng)的過(guò)程。這樣各軸的運(yùn)動(dòng)距離通過(guò)循環(huán)運(yùn)行子程序就到了預(yù)定的運(yùn)動(dòng)位置。最后在運(yùn)動(dòng)過(guò)程完成以后就要通過(guò)控件連接命令Close關(guān)閉與軟件的連接,并調(diào)用子程序UpdateButtonStates刷新按扭的狀態(tài),通過(guò)點(diǎn)擊退出按扭便退出操作就這樣整個(gè)程序的循環(huán)與檢測(cè)再運(yùn)行過(guò)程就結(jié)束了。第三章TRIOBASIC指令系統(tǒng)編程3.1運(yùn)動(dòng)及軸命令說(shuō)明或編程ACC類(lèi)型:軸指令語(yǔ)法:ACC(acc率)注意:這個(gè)指令用來(lái)和舊的Trio控制器兼容。加速度率和減速度率可用ACCEL和DECEL軸參數(shù)設(shè)定。說(shuō)明:同時(shí)設(shè)定加速度率和減速度率參數(shù):acc率:參數(shù)單位決定于單位軸參數(shù)。加速度因子從UNITS/SEC/SEC輸入。應(yīng)用:ACC(100)AXIS類(lèi)型:修改指令語(yǔ)法:AXIS(軸數(shù))說(shuō)明:AXIS修改設(shè)置單軸運(yùn)動(dòng)指令或單軸參數(shù)讀寫(xiě)。AXIS參數(shù)在命令行或程序行特別有效。使用BASE指令改變基本軸。參數(shù):軸數(shù)任何有效的BASIC表達(dá)式特定軸數(shù)。注意:AXIS指令可用于修改以下指令的軸參數(shù):ADDAX,CAM,CAMBOX,CANCEL,CONNECT,DATUM,DEFPOS,F(xiàn)ORWARD,MOVEABS,MOVECIRC,MOVELINK,MOVE,MOVEMODIFY,REVERSE,REGIST,WAITIDLEWAITLOADED。參閱:BASE()應(yīng)用:例子1PRINTMPOSAXIS(3)例子2MOVE(300)AXIS(2)例子3REPDISTAXIS(3)=100BASE類(lèi)型:運(yùn)動(dòng)控制指令語(yǔ)法:BASE(軸1,軸2,軸3)BASE參數(shù):BA(軸1,軸2,軸3)BA說(shuō)明:BASE指令用于導(dǎo)向下一個(gè)運(yùn)動(dòng)指令軸的參數(shù)讀/寫(xiě)入特定軸或軸組,設(shè)置的缺省值
依次為:0,1,2...每一個(gè)過(guò)程有其自己的BASE基本軸組,每個(gè)程序能單獨(dú)賦值。TrioBasic程序與控制軸運(yùn)動(dòng)的運(yùn)動(dòng)發(fā)生器分開(kāi)。每個(gè)軸的運(yùn)動(dòng)發(fā)生器有其獨(dú)立的功能,,因此每個(gè)軸能以自己的速度、加速度等進(jìn)行編程,單獨(dú)運(yùn)動(dòng),或者通過(guò)插補(bǔ)或鏈接運(yùn)動(dòng)鏈接在一起。AXIS()命令只要應(yīng)用正在進(jìn)行的單命令可以重新導(dǎo)向不同的軸。而B(niǎo)ASE()指令除非規(guī)定軸號(hào),否則導(dǎo)向接下來(lái)的所有指令。參數(shù):軸號(hào):軸號(hào)或軸組號(hào)成為新的基準(zhǔn)軸排列,即軸號(hào)或軸組發(fā)送運(yùn)動(dòng)指令給多軸指令里的第一個(gè)軸。基本軸的軸數(shù)和順序軸在軸組用于多軸運(yùn)動(dòng)。應(yīng)用:例子1BASE(BASE(1)UNITS=2000SPEED=100ACCEL=5000BASE(2)UNITS=2000SPEED=125ACCEL=10000‘設(shè)置軸1的轉(zhuǎn)換因子。‘設(shè)置軸1的速度‘設(shè)置軸1的加速度‘設(shè)置軸2的轉(zhuǎn)換因子‘設(shè)置軸2的速度‘設(shè)置軸2的加速度CANCEL類(lèi)型:運(yùn)動(dòng)控制指令語(yǔ)法:CANCEL/CANCEL(1)備選:CA說(shuō)明:CANCEL指令取消軸插補(bǔ)軸組的當(dāng)前運(yùn)動(dòng)。速度軌跡(FORWARD,REVERSE,MOVE,MOVEABS,MOVECIRC)將會(huì)以DECEL參數(shù)減速直到停止。其它運(yùn)動(dòng)會(huì)立即停止。CANCEL(1)指令取消已緩存的運(yùn)動(dòng)而不影響正在執(zhí)行的運(yùn)動(dòng),CANCEL工作在缺省軸,除非使用AXIS參數(shù)定義臨時(shí)基本軸。注意:1.CANCEL只能取消當(dāng)前執(zhí)行的運(yùn)動(dòng)。如果在緩存中還有運(yùn)動(dòng),它會(huì)繼續(xù)被加載。在當(dāng)前運(yùn)動(dòng)的減速過(guò)程中,另外的CANCELS會(huì)被忽略。CANCEL(1)只取消當(dāng)前緩存中的運(yùn)動(dòng)。存儲(chǔ)在任務(wù)緩存中的運(yùn)動(dòng)由PMOVE參數(shù)定義,可以被加載到緩存一旦緩存運(yùn)動(dòng)被取消。參閱:AXIS,MTYPE,NTYPE,PMOVE,RAPIDSTOP應(yīng)用:例子1FORWARDWA(10000)CANCEL例子2MOVE(1000)MOVEABS(3000)CANCEL取消運(yùn)動(dòng)到3000,而運(yùn)動(dòng)到4000。MOVEABS(4000)注意MOVEMODIFY是修改運(yùn)動(dòng)結(jié)束點(diǎn)最好方法。DATUMDATUM原點(diǎn)搜尋類(lèi)型:運(yùn)動(dòng)控制指令語(yǔ)法:DATUM(sequence)說(shuō)明:DATUM指令執(zhí)行6種方法中的一種搜尋原點(diǎn)位置,其為絕對(duì)位置同時(shí)可以重置跟隨誤差。伺服驅(qū)動(dòng)器機(jī)構(gòu)原點(diǎn)搜尋用于軸0。軸1用于MC控制單元機(jī)構(gòu)。DATUM使用CREEP速度和目標(biāo)速度用于原點(diǎn)搜尋。伺服驅(qū)動(dòng)器用于軸0。爬行速度用CREEP參數(shù)設(shè)定。目標(biāo)速度用SPEED參數(shù)設(shè)定。原點(diǎn)搜尋輸入數(shù)由DATUM_IN參數(shù)決定,用于3或7中。DATUM(0)用于軸出錯(cuò)時(shí)重新啟動(dòng)系統(tǒng),位置不變。。參數(shù):sequence0DATUM(0)指令清除跟隨誤差。將當(dāng)前位置設(shè)定為目標(biāo)位置同時(shí)AXISSTATUS狀態(tài)會(huì)被清除。注如果產(chǎn)生錯(cuò)誤的問(wèn)題仍然存在,誤差不能被清除。1軸以爬行速度(CREEP)正向運(yùn)行直到發(fā)現(xiàn)Z信號(hào)。目標(biāo)位置重置為0同時(shí)糾正測(cè)量位置,維持跟隨誤差。2軸以爬行速度(CREEP)反向運(yùn)行直到發(fā)現(xiàn)Z信號(hào)。目標(biāo)位置重置為0同時(shí)糾正測(cè)量位置,維持跟隨誤差。3軸以目標(biāo)速度(SPEED)正向運(yùn)行,直到碰到原點(diǎn)開(kāi)關(guān)。隨后軸以爬行速度正向運(yùn)動(dòng)直到原點(diǎn)開(kāi)關(guān)復(fù)位。目標(biāo)位置重置為0同時(shí)糾正測(cè)量位置,維持跟隨誤差。4軸以目標(biāo)速度(SPEED)反向運(yùn)行,直到碰到原點(diǎn)開(kāi)關(guān)。隨后軸以爬行速度正向運(yùn)動(dòng)直到原點(diǎn)開(kāi)關(guān)復(fù)位。目標(biāo)位置重置為0同時(shí)糾正測(cè)量位置,維持跟隨誤差。5軸以目標(biāo)速度(SPEED)正向運(yùn)行,直到碰到原點(diǎn)開(kāi)關(guān)。隨后軸以爬行速度正向運(yùn)動(dòng)直到碰到Z信號(hào)。目標(biāo)位置重置為0同時(shí)糾正測(cè)量位置,維持跟隨誤差。6軸以目標(biāo)速度(SPEED)反向運(yùn)行,直到碰到原點(diǎn)開(kāi)關(guān)。隨后軸以爬行速度正向運(yùn)動(dòng)直到碰到Z信號(hào)。目標(biāo)位置重置為0同時(shí)糾正測(cè)量位置,維持跟隨誤差。注意:原點(diǎn)輸入低電平有效。當(dāng)輸入OFF時(shí)設(shè)置原點(diǎn)開(kāi)關(guān)。feedhold,reversejog,forwardjog,forward,reverselimitinputs均是低電平有效。低電平輸入用于使能自動(dòng)防護(hù)接線。例子:DATUyIN=10DATUM(5)MOVE類(lèi)型:運(yùn)動(dòng)控制指令語(yǔ)法:MOVE(dist_1[,dist_2[,dist_3]])
備選:MO(dist_1[,dist_2[,dist_3]])說(shuō)明:MOVE指令使一軸或多軸在目標(biāo)速度,加速度和減速度下以增量的方式運(yùn)動(dòng)到特定位置。在多軸運(yùn)動(dòng)中,速度,加速度,減速度是基于基本軸的插補(bǔ)運(yùn)動(dòng)。特定長(zhǎng)度的比例由轉(zhuǎn)換因子UNITS參數(shù)設(shè)定。例如,一軸編碼器是4000edges/mm,于是軸的單元數(shù)設(shè)為4000,MOVE(12.5)將會(huì)移動(dòng)12.5毫米。MOVE工作在缺省軸,除非AXIS定義臨時(shí)基本軸。參數(shù)dist_1定義為缺省軸,dist_2作為另一個(gè)軸等等。通過(guò)改變軸在獨(dú)立運(yùn)動(dòng),非插補(bǔ),非同步可以獲得多軸運(yùn)動(dòng)。增量運(yùn)動(dòng)可以合并成連續(xù)運(yùn)動(dòng)軌跡,通過(guò)設(shè)置MERGE=ON。考慮兩軸運(yùn)動(dòng),每軸速度可以由以下等式計(jì)算得到。指令MOVE(x1,x2)和速度Vp由SPEED,22£=中[十叼.ACCEL和DECEL參數(shù)計(jì)算得到。多軸運(yùn)動(dòng)距離L。每軸任何時(shí)候的獨(dú)立速度計(jì)算如下:軸i任何時(shí)刻的分速度vi由以下公式計(jì)算參數(shù):dist_IX■V
.=V-任意軸I的運(yùn)動(dòng)距離,從用戶定義的基本軸開(kāi)始。參閱:AXIS,MOVEABS,UNITS應(yīng)用:例子1系統(tǒng)轉(zhuǎn)換因子為1和1000線的編碼器。因此,需要如下指令使電機(jī)運(yùn)動(dòng)10圈。(1000線編碼器給出4000edges/turn)。MOVE(10)AXIS(0)MOVE(10)AXIS(1)MOVE(10)AXIS(2),例子2在這個(gè)例子中參數(shù)運(yùn)動(dòng)。MOVE(40000)軸0,1,2獨(dú)立運(yùn)動(dòng)(沒(méi)有插補(bǔ))。每軸會(huì)以程序的速度和其它例子3X-Y平面在工作范圍內(nèi)可以在任意位置寫(xiě)文本。獨(dú)立運(yùn)動(dòng)可以被定義成相對(duì)與起始點(diǎn)相對(duì)運(yùn)動(dòng)。因此在任何位置都可以使用相同的指令。字母”m”的子程序如下:,例子2在這個(gè)例子中參數(shù)運(yùn)動(dòng)。M:Move(0,12)‘A->BMove(3,-6)‘A->CMove(3,6)‘C->DMove(0,-12)‘D->EMOVEABS類(lèi)型:運(yùn)動(dòng)控制指令語(yǔ)法:MOVEABS(pos_1[,pos_2[,pos_3]])備選:MA(pos_1[,pos_2[,pos_3]])說(shuō)明:MOVEABS指令使一軸或多軸在目標(biāo)速度,加速度和減速度下以絕對(duì)的方式運(yùn)動(dòng)到特定位置。在多軸運(yùn)動(dòng)中,速度,加速度,減速度是基于基本軸的插補(bǔ)運(yùn)動(dòng)。特定長(zhǎng)度的比例由轉(zhuǎn)換因子UNITS參數(shù)設(shè)定。例如,一軸編碼器是4000edges/mm,于是軸的單元數(shù)設(shè)為4000,MOVEABS(12.5)將會(huì)從起始點(diǎn)移動(dòng)12.5毫米。MOVEABS工作在缺省軸除非AXIS定義臨時(shí)基本軸。參數(shù)dist_1定義為缺省軸,dist_2作為另一個(gè)軸等等。通過(guò)改變軸在獨(dú)立運(yùn)動(dòng),非插補(bǔ),非同步可以獲得多軸運(yùn)動(dòng)。增量運(yùn)動(dòng)可以合并成連續(xù)運(yùn)動(dòng)軌跡,通過(guò)設(shè)置MERGE=ON。考慮兩軸運(yùn)動(dòng),每軸速度可以由以下等式計(jì)算得到。指令MOVE(ax1,ax2)和當(dāng)前位置(ay1,ay2),速度Vp由SPEED,ACCEL和DECEL參數(shù)計(jì)算得到。多/.=J一「+=山&―"」]軸運(yùn)動(dòng)距離L。每軸任何時(shí)候的獨(dú)立速度計(jì)算如下:參數(shù):pos_i任意軸I的運(yùn)動(dòng)距離,從用戶定義的基本軸開(kāi)始。參閱:AXIS,MOVE,UNITS應(yīng)用:例子1X-Y平面有一個(gè)筆,圓盤(pán)的位置相對(duì)與起始點(diǎn)固定。改變筆的位置,當(dāng)指令執(zhí)行時(shí),圓盤(pán)的絕對(duì)運(yùn)動(dòng)與平面位置不相關(guān)。MOVEABS(20,350)例子2一個(gè)貨盤(pán)由小格組成,容器離包裝機(jī)器85毫米。從固定點(diǎn)取容器,貨盤(pán)的開(kāi)始位置用DEFPOS指令定義成原點(diǎn)(0,0)。到容器的一部分程序如下:xloop:forx=0to5yloop:fory=0to7MOVEABS(-340,-516.5)‘運(yùn)動(dòng)到撿起點(diǎn)GOSUBpick‘跳轉(zhuǎn)到撿起子程序PRINT“MOVETOPOSITION:“;X*6+Y+1MOVEABS(x*85,y*85)GOSUBplace‘轉(zhuǎn)到place子程序NEXTyNEXTxREVERSE類(lèi)型:運(yùn)動(dòng)控制指令語(yǔ)法:REVERSE備選:RE說(shuō)明:REVERSE反向連續(xù)運(yùn)動(dòng),速度由SPEED參數(shù)設(shè)置。加速率由ACCEL參數(shù)設(shè)置。REVERSE工作在缺省基本軸,除非AXIS定義臨時(shí)基本軸。注意:反向運(yùn)動(dòng)可以被CANCEL或RAPIDSTOP指令停止。或到達(dá)反向限位,禁止或原點(diǎn)返回。參閱:AXIS,CANCEL,F(xiàn)ORWARD,RAPIDSTOP應(yīng)用:back:REVERSEWAITUNTILIN(0)=ON‘等待停止信號(hào)CANCEL3.2輸入/輸出指令說(shuō)明或編程AIN類(lèi)型:系統(tǒng)參數(shù)語(yǔ)法:AIN(模擬通道)說(shuō)明:從模擬輸入口讀取數(shù)值,各種模擬輸入模塊可與運(yùn)動(dòng)控制器連接。有的運(yùn)動(dòng)控制器本身具有1至2個(gè)模擬輸入。返回的值是十進(jìn)位的,與讀自A至D轉(zhuǎn)換器的二進(jìn)制數(shù)字相等。參數(shù):模擬輸入通道0...710...31P325CAN模擬輸入通道31.39運(yùn)動(dòng)控制器本身模擬輸入通道40...71P225模擬輸入子板AIN2通道的S_RATE參數(shù)可每分鐘將數(shù)據(jù)轉(zhuǎn)換成接近的值。對(duì)于AIN1和AIN3通道,T_RATE參數(shù)可將數(shù)據(jù)轉(zhuǎn)換成扭矩的百分率。附錄:IN,S_RATE,T_RATE應(yīng)用:生產(chǎn)線的速度由材料供給的速率決定。材料供給通過(guò)安裝有超聲傳感器裝置上松散的環(huán)安排。超聲傳感器輸出范圍在0V—4V,4V時(shí)環(huán)最長(zhǎng)。MOVE(-50Q0)REPEATa=AIN(l)IFa<0THENa=0SPEEDF0.25UNTILMTYPE=0模擬輸入值盡管應(yīng)為正的值但也需檢查確保大于0。當(dāng)值為負(fù)時(shí)進(jìn)來(lái)的信號(hào)有噪音,由于除FORWARD或REVERSE外負(fù)速對(duì)與任一類(lèi)型運(yùn)動(dòng)無(wú)效而引起錯(cuò)誤。注意:模擬反應(yīng)速度取決于所發(fā)生的模塊。P324以10msec更新,P225以SERVO_PERIOD更新,內(nèi)置的模擬端口以1msec更新。如果未安裝P325總線模塊,AIN(0)和AIN(1)將讀取內(nèi)置的通道以保持與老版本的兼容。HEX類(lèi)型:指令說(shuō)明:HEX指令用于打印語(yǔ)句,輸出一個(gè)十六進(jìn)制格式的數(shù)。HEX指令不用在MC202或MC216應(yīng)用:PRINT#5,HEX(IN(8,16))IN()IN類(lèi)型:I/O功能語(yǔ)法:IN(input_number[,final_input_number])/ININ說(shuō)明:IN功能返回?cái)?shù)字輸入的值。IN(input_number,final_input_number)將會(huì)返回輸入的二進(jìn)制。兩個(gè)參數(shù)必須小于24分隔。IN(input_number)包括輸入值小于32將會(huì)返回特定通道的值。IN(withoutarguments)將會(huì)返回前24個(gè)輸入的二進(jìn)制。(IN(0,23))。參考3-3-2參數(shù):input_number輸入返回的值。值是在0到31的整數(shù)。Final_input_number最后輸入返回的值。值是在0到31的整數(shù)。應(yīng)用:例子1下行可用于運(yùn)動(dòng)手輪與因子乘積的位置。手輪與輸入4,5,6,7連結(jié),輸出BCD。Moveloop:Moveabs(IN(4,7)*1.5467)WaitidleGotomoveloopOP類(lèi)型:I/O功能/指令語(yǔ)法:OP[([outputno,]value)]說(shuō)明:OP指令設(shè)置一個(gè)或多個(gè)輸出或返回前24個(gè)輸出狀態(tài)。OP有三種不同形式?jīng)Q定于參數(shù)。指令OP(output_number,value)設(shè)置單輸出通道。output_number的范圍[8,17]。值為0或1。指令OP(binary_pattern)依據(jù)binary_pattern的值設(shè)置24個(gè)輸出的二進(jìn)制形式。?功能OP返回24個(gè)輸出的狀態(tài)。這就允許多輸出設(shè)置而不需要改變其它不需要改變的。參考3-3-2說(shuō)明:前8個(gè)輸出(0-7),在MC控制單元中不實(shí)際存在,他們不能被寫(xiě)入,并返回零。參數(shù):outputno設(shè)置輸出數(shù)value被輸出的值,OFF或ON。所有非零值被看作ON。參閱:IN應(yīng)用:例子1以下兩行等價(jià)。OP(44,1)OP(44,ON)PRINT類(lèi)型:指令語(yǔ)法:PRINT指令讓TrioBasic輸出一系列字符串到串口,或合適的光纖端口。PRINT指令可以輸出參數(shù),固定ascii串,單個(gè)ascii字符串。只要多個(gè)項(xiàng)目用逗號(hào),或分號(hào)分隔,都可以通過(guò)單個(gè)PRINT語(yǔ)句打印。逗號(hào),分號(hào)控制輸出字串的格式。應(yīng)用:PRINT"CAPITALSandlowercaseCANBEPRINTED"3.3程序循環(huán)和結(jié)構(gòu)編程IF..THEN..ELSE..ENDIF類(lèi)型:結(jié)構(gòu)指令語(yǔ)法:IFconditionTHEN<commands>[else<commands>]ENDIFIFconditonTHEN<commands>說(shuō)明:IF...THEN...ELSE...ENDIF結(jié)構(gòu)依據(jù)條件結(jié)果控制程序流程。如果條件真,接下來(lái)的THEN到ELSE將會(huì)執(zhí)行。如果條件假,ELSE將會(huì)執(zhí)行或程序會(huì)跳到ENDIF如果沒(méi)有ELSE。ENDIF用于標(biāo)記條件段的結(jié)束。注意:IF...THEN[ELSE]ENDIF過(guò)程可以沒(méi)有限制的嵌套。對(duì)于多行IF...THEN結(jié)構(gòu),在THEN后沒(méi)有任何陳述。單結(jié)構(gòu)不用ENDIF。參數(shù):cindition任何有效的邏輯表達(dá)式。commands任何有效的邏輯表達(dá)式。應(yīng)用:例子1IFMPOS>(0。22*VR(0))THENGOTOexceeds_length例子2IFIN(0)=ONThenCount=count+1PRINT“COUNTS="countFail=0ElseFail=fail+1EndifFOR..TO..STEP..NEXT類(lèi)型:循環(huán)和條件結(jié)構(gòu)指令語(yǔ)法:FORvariable=starttoend[stepincrement]<commands>nextvariable說(shuō)明:FOR.NEXT允許將FOR和NEXT之間的部分重復(fù)執(zhí)行多次。進(jìn)入這個(gè)循環(huán),變量初始化成start同時(shí)指令部分開(kāi)始執(zhí)行,直到執(zhí)行到NEXT指令。variable以增量方式增加。直到step值,step值可正可負(fù)。如果省略認(rèn)為是1。當(dāng)variable小于或等于end時(shí)。重復(fù)執(zhí)行指令區(qū),直到variable大于end。在next之后的程序繼續(xù)執(zhí)行。注意:FOR.NEXT在BASIC程序中可以嵌套8個(gè)指令。參數(shù):variable任何有效的BASIC表達(dá)式。既可以是一個(gè)環(huán)形變量或者是一個(gè)本地變量start任何有效的BASIC表達(dá)式end任何有效的BASIC表達(dá)式increment任何有效的BASIC表達(dá)式(可選)參閱:REPEAT,WHILE應(yīng)用:例子1以下例子將輸出10到18置ONFORopnum=10to18OP(opnum,on)NEXTOPNUMON..GOSUB類(lèi)型:結(jié)構(gòu)指令語(yǔ)法:ONexpressionGOSUBlabel{,label}說(shuō)明:ON...GOSUB結(jié)構(gòu)使能條件跳轉(zhuǎn)。整數(shù)表達(dá)式用于從列表中選擇label。如果表達(dá)式的值是1,使用第一個(gè)label,對(duì)于值2使用第二個(gè)label,以此類(lèi)推。依據(jù)GOSUB指令執(zhí)行子程序或跳轉(zhuǎn)。注意:如果表達(dá)式無(wú)效,不會(huì)執(zhí)行跳轉(zhuǎn)。參數(shù):expression任何有效的BASIC表達(dá)式。Label程序中任何有效的標(biāo)志。參閱:GOSUB,GOTO應(yīng)用:REPEATGET#5,charUNTIL1<=charandchar<=3OncharGOSUBmover,stopper,changeON..GOTO類(lèi)型:結(jié)構(gòu)指令語(yǔ)法:ONexpressionGOSUBlabel{,label}說(shuō)明:ON.GOTO結(jié)構(gòu)使能條件跳轉(zhuǎn)。整數(shù)表達(dá)式用于從列表中選擇label。如果表達(dá)式的值是1,使用第一個(gè)label,對(duì)于值2使用第二個(gè)label,以此類(lèi)推。依據(jù)GOTO指令執(zhí)行子程序或跳轉(zhuǎn)。注意:如果表達(dá)式無(wú)效,不會(huì)執(zhí)行跳轉(zhuǎn)。參數(shù):expression任何有效的BASIC表達(dá)式。Label程序中任何有效的標(biāo)志。參閱:GOSUB,GOTO應(yīng)用:REPEATGET#5,charUNTIL1<=charandchar<=3OncharGOTOmover,stopper,changeWA類(lèi)型:系統(tǒng)指令語(yǔ)法:WA(time)說(shuō)明:WA指令暫停程序執(zhí)行一段時(shí)間。指令只能用在程序中。參數(shù):time暫停程序的毫秒數(shù)。應(yīng)用:以下例子將輸出11置OFF兩秒鐘后輸出17置ON。OP(11,OFF)WA(2000)OP(17,ON)WAIT..UNTIL類(lèi)型:系統(tǒng)指令語(yǔ)法:WAITUNTILcondition說(shuō)明:WAITUNTIL指令重復(fù)評(píng)估條件直到變成真。此后程序繼續(xù)執(zhí)行。指令只能用在程序中。參數(shù):condition任何有效BASIC邏輯表達(dá)式。應(yīng)用:例子1此例中,程序等待軸0的測(cè)量位置超出150,然后開(kāi)始軸1的運(yùn)動(dòng)。WAITUNTILMPOSAXIS(0)>150MOVE(100)AXIS(1)例子2表達(dá)式的復(fù)雜程度可由用戶來(lái)定WAITUNTILDPOSAXIS(2)<=0ORIN(1)=ON以上行會(huì)等待軸2的目標(biāo)位置小于或等于0或輸入1置ON。WHILE..WEND類(lèi)型:結(jié)構(gòu)指令語(yǔ)法:Whilecondition說(shuō)明:WHILE...WEND結(jié)構(gòu)程序之間的指令連續(xù)執(zhí)行,直到條件變成FALSE。此時(shí)程序會(huì)繼續(xù)執(zhí)行WEND后的程序。注意:WHILE...WEND可以無(wú)限制嵌套。參數(shù):condition任何有效的邏輯BASIC表達(dá)式。參閱:FOR,REPEAT應(yīng)用:WHILEIN(12)=OFFMOVE(200)WAITIDLEOP(10,OFF)MOVE(-200)WAITIDLEOP(10,ON)WENDWAITUNTIL類(lèi)型:系統(tǒng)指令語(yǔ)法:WAITUNTILcondition說(shuō)明:WAITUNTIL指令重復(fù)評(píng)估條件直到變成真。此后程序繼續(xù)執(zhí)行。指令只能用在程序中。參數(shù):condition任何有效BASIC邏輯表達(dá)式。應(yīng)用:例子1此例中,程序等待軸0的測(cè)量位置超出150,然后開(kāi)始軸1的運(yùn)動(dòng)。WAITUNTILMPOSAXIS(0)>150MOVE(100)AXIS(1)3.4恒量FALSE類(lèi)型:常數(shù)說(shuō)明:FALSE常數(shù)返回?cái)?shù)值零。注:常數(shù)為只讀。應(yīng)用:test:res=IN(0)ORIN(2)IFres=FALSETHENPRINT“inputareoff”EndifOFF類(lèi)型:常量說(shuō)明:OFF常量返回?cái)?shù)值0。注:常量為只讀。應(yīng)用:OP(lever,OFF)以上設(shè)置輸出名為lever的設(shè)置成OFF。ON類(lèi)型:常量說(shuō)明:ON常量返回值1。注:此參數(shù)為只讀。應(yīng)用:OP(lever,ON)以上命令將輸出名為lever設(shè)置成ON。PI類(lèi)型:常量說(shuō)明:PI常量返回?cái)?shù)值3。1416。注:此常量位只讀。應(yīng)用:circum=100PRINT“Radius=”;circum/(2*PI)TRUE類(lèi)型:常量說(shuō)明:TRUE常量返回?cái)?shù)值-1。注:常量為只讀。應(yīng)用:test:T=IN(0)ANDIN(2)IFT=TRUETHENPRINT“inputareON”ENDIF3.5軸參數(shù)說(shuō)明或編程ACCEL類(lèi)型:軸的參數(shù)說(shuō)明:ACCEL參數(shù)包括軸的加速率。單位units/s2。參數(shù)可以是任意正數(shù)包括零。參閱:AXIS,DECEL,UNITS應(yīng)用:BASE(0)ACCEL=100‘設(shè)置加速率PRINT“Accelerationrate:";"mm/s/s"ACCELAXIS(2)=100‘設(shè)置軸2的加速率ADDAX_AXIS類(lèi)型:軸的參數(shù)說(shuō)明:ADDAX_AXIS參數(shù)返回由ADDAX連接的軸數(shù)。注:此參數(shù)為只讀參數(shù)。參閱:AXIS,ADDAX應(yīng)用:>>BASE(0)>>ADDAX(2)>>PRINTADDAX_AXIS2.0000類(lèi)型:軸的參數(shù)ATYPE說(shuō)明:ATYPE參數(shù)設(shè)置軸的類(lèi)型。軸數(shù)軸的類(lèi)型ATYPE值0伺服13(固定)1虛擬軸0伺服軸2編碼器輸入3(缺?。┚幋a器輸出142虛擬軸0(固定)開(kāi)始上電時(shí)ATYPE參數(shù)設(shè)置成軸的缺省值。參考3-3。參閱:AXIS應(yīng)用:以下指令將軸1設(shè)置成編碼器輸出。>>ATYPEAXIS(1)=14AXISSTATUS類(lèi)型:軸的參數(shù)說(shuō)明:AXISSTATUS參數(shù)包括軸的狀態(tài)。AXISSTATUS參數(shù)對(duì)三軸定義如下。位數(shù)描述值字符(用在MotionPerfect軸0(伺服軸)軸1(編碼器輸入/輸出/虛擬軸2(虛擬軸)中)軸)0-1----1跟隨誤差報(bào)警2WX--2伺服驅(qū)動(dòng)器通訊錯(cuò)誤4AX--3伺服驅(qū)動(dòng)器報(bào)警8MX--4正向限位16FXXX5反向限位32RXXX6原點(diǎn)搜尋64DXXX7反饋限制輸入128HXXX8跟隨誤差限制256EX--9正向軟件限位512XXXX10反向軟件限位1024YXXX11取消運(yùn)動(dòng)2048CXXX12編碼器輸出超速4096O-X-AXISATATUS參數(shù)用于處理運(yùn)動(dòng)錯(cuò)誤。參考8-2注:此為只讀參數(shù)。參閱:AXISERRORMASK應(yīng)用:IF(AXISSTATUSAND16)>0THENPRINT“inforwardlimit”CREEP類(lèi)型:軸的參數(shù)說(shuō)明:CREEP包括軸的爬行速度。爬行速度用于進(jìn)行原點(diǎn)搜尋。CREEP允許任何正值(包括0)。CREEP速度單位為units/s。使用因子轉(zhuǎn)換。例如,如果轉(zhuǎn)換因子設(shè)為編碼器數(shù)edges/inch,速度設(shè)為inchs/s。參閱:AXIS,DATUM,UNITS應(yīng)用:BASE(2)CREEP=10SPEED=500DATUM(4)CREEPAXIS(1)=10SPEEDAXIS(1)=500DATUM(4)AXIS(1)DAC類(lèi)型:軸的參數(shù)說(shuō)明:當(dāng)SERVO=OFF時(shí)寫(xiě)進(jìn)此軸參數(shù)允許用戶強(qiáng)加一個(gè)指定電壓到伺服候。12位DAC能采用的值范圍為:DAC=2048相應(yīng)于10V電壓DAC=-2047相應(yīng)于-10V電壓16位DAC能采用的值范圍為:DAC=32767相應(yīng)于10V電壓DAC=-32768相應(yīng)于-10V電壓DECEL類(lèi)型:軸的參數(shù)說(shuō)明:DECEL參數(shù)包括軸的減速率。單位為units/s2。參數(shù)可以是任意正數(shù)包括零。參閱:ACCEL,AXIS,UNITS應(yīng)用:DECEL=100‘設(shè)置減速率PRINT“Decelerationrateis“;"mm/s/s“I_GAIN類(lèi)型:軸的參數(shù)說(shuō)明:I_GAIN參數(shù)包括軸的積分增益。積分輸出通過(guò)計(jì)算跟隨誤差的總和。-缺省值是0。疊加積分增益到伺服系統(tǒng)減少靜止或運(yùn)動(dòng)時(shí)的位置誤差。他可以減少超調(diào),振動(dòng)。因此適用系統(tǒng)工作在常速和慢加速的場(chǎng)合。Oi=Kix十e注意:為了避免系統(tǒng)的不穩(wěn)定性,伺服增益需在SERVO=OFF時(shí)改變。參閱:D_GAIN,OV_GAIN,P_GAIN,VFF_GAINMPOS類(lèi)型:軸的參數(shù)說(shuō)明:MPOS參數(shù)表示用戶單位的測(cè)量位置,從編碼器得到。這個(gè)參數(shù)可應(yīng)用DEFPOS指令設(shè)置。OFFPOS參數(shù)可用于移動(dòng)起始點(diǎn)。MPOS在上電時(shí)重置成零。測(cè)量位置的范圍由REPDIST和REP_OPTION參數(shù)控制。注:此參數(shù)為只讀。參閱:AXIS,DEFPOS,DPOS,ENCODER,FE,OFFPOS,REPDIST,REP_OPTION,UNITS應(yīng)用:WAITUNTILMPOS>=1250SPEED=2.5MTYPE類(lèi)型:軸的參數(shù)說(shuō)明:MTYPE參數(shù)包括當(dāng)前執(zhí)行的運(yùn)動(dòng)類(lèi)型。下面給出可能值。運(yùn)動(dòng)數(shù)運(yùn)動(dòng)類(lèi)型0IDLE1MOVE2MOVEABS3MHELICAL4MOVECIRC5MOVEMODIFY10FORWARD11REVERSE12DATUM13CAM14JOG_FORWARD15JOG_REVERSE20CAMBOX21CONNECT22MOVELINKMTYPE可用于決定運(yùn)動(dòng)是否完成或運(yùn)動(dòng)類(lèi)型已經(jīng)改變。非空閑并不意味著軸在運(yùn)動(dòng)。它可以是零速運(yùn)動(dòng)或輔助其它軸做插補(bǔ)運(yùn)動(dòng),而本身沒(méi)有運(yùn)動(dòng)。注:此參數(shù)為只讀。參閱:AXIS,NTYPENTYPE類(lèi)型:軸的參數(shù)說(shuō)明:NTYPE參數(shù)包括緩存中下一運(yùn)動(dòng)的類(lèi)型。一旦當(dāng)前運(yùn)動(dòng)結(jié)束,將會(huì)執(zhí)行顯示在NTYPE緩存中的運(yùn)動(dòng)。此值與MTYPE的參數(shù)相同。NTYPE通過(guò)CANCEL(1)指令取消。注:此參數(shù)為只讀。參閱:AXIS,MTYPEOFFPOS類(lèi)型:軸的參數(shù)說(shuō)明:OFFPOS參數(shù)包括應(yīng)用在目標(biāo)位置的偏移,不影響運(yùn)動(dòng)。測(cè)量位置隨之改變。當(dāng)系統(tǒng)加載偏移OFFPOS的值會(huì)被重置成零。注意:偏移在下一伺服周期起作用。其它指令可能會(huì)在下一伺服周期之前執(zhí)行。確定這些指令不是假想已經(jīng)發(fā)生位置移動(dòng)。這可以使用WAITUNTIL(看例子)。參閱:AXIS,DEFPOS,DPOS,MPOSUNITS應(yīng)用:以下指令定義當(dāng)前目標(biāo)位置為零。OFFPOS=-DPOSWAITUNTILOFFPOS=0‘等到執(zhí)行這個(gè)例子等價(jià)于DEFPOS(0)。SERVO類(lèi)型:軸的參數(shù)說(shuō)明:SERVO參數(shù)決定基本軸工作在伺服控制(SERVO=ON)還是開(kāi)環(huán)控制(SERVO=OFF)。在閉環(huán)中,運(yùn)動(dòng)控制算法將會(huì)輸出速度參考信號(hào),取在開(kāi)環(huán)中,速度參考完全取決于S_RTE參數(shù)。參閱:AXIS,F(xiàn)ELIMIT,S_RE,S_REF_OUT,WDOG。應(yīng)用:SERVOAXIS(0)=ON‘軸0是伺服控制SERVOAXIS(1)=OFF‘軸1開(kāi)環(huán)SPEED類(lèi)型:軸的參數(shù)說(shuō)明:SPEED參數(shù)包括目標(biāo)速度units/s,它可以是任意正值(包括零)。目標(biāo)速度是運(yùn)動(dòng)指令的最大速度。參閱:ACCEL,AXIS,DATUM,DECEL,F(xiàn)ORWARD,MOVE,MOVEABS,MOVECIRC,MOVEMODIFY,REVERSE,UNITS應(yīng)用:SPEED=1000PRINT“Setspeed=”;SPEEDUNITS類(lèi)型:軸的參數(shù)說(shuō)明:UNITS參數(shù)包括單位轉(zhuǎn)換因子。單位轉(zhuǎn)換因子使用戶單位定義更方便,例如米,毫米或電機(jī)分辨率。軸的參數(shù)象速度,加速度,減速度和電機(jī)控制指令都以用戶單位為基礎(chǔ)。注意:UNITS參數(shù)可以是任何非零值,但是推薦用戶單位與編碼器整數(shù)脈沖相一致。改變UNITS將會(huì)影響軸的所有參數(shù)。UNITS參數(shù)保持系統(tǒng)相同的動(dòng)力特性。參閱:AXIS,PP_STEP應(yīng)用:滾珠絲杠的導(dǎo)程5毫米,1000線的編碼器。單位必須設(shè)置成毫米。1000pulse/rev將會(huì)產(chǎn)生1000*4=4000edges/rev。旋轉(zhuǎn)一圈等于5毫米。因此,4000/5=800edges/mm。單位因此設(shè)置成以下:>>UNITS=1000*4//5PP_STEP類(lèi)型:軸的參數(shù)說(shuō)明:PP_STEP參數(shù)包括與輸入編碼器線數(shù)成比例的整數(shù)值。輸入編碼器的線數(shù)會(huì)被PP_STEP倍頻。比例用于匹配電機(jī)的高分辨率或機(jī)器沿圓弧運(yùn)動(dòng)編碼器的線數(shù)與軸上的不同。有效范圍:[-1023,-1]和[1,1023]。缺省值為1。說(shuō)明:改變PP_STEP的值會(huì)影響位置控制環(huán)。相應(yīng)的需要修改控制增益。參閱:AXIS,MOVECIRC,UNITS應(yīng)用:電機(jī)20000steps/rev。MC控制單元內(nèi)部加工40000count/rev。連結(jié)2500線的電機(jī)。它會(huì)產(chǎn)生10000counts/rev。需要乘以4才能時(shí)10000counts/rev匹配電機(jī)的40000counts/rev。以下用于軸0:PP_STEPAXIS(0)=4第四章TRIOACTIVEX控件的使用使用TRIOACTIVEX控件MotionCoordinatorTechnicalReferenceManual運(yùn)動(dòng)控制器技術(shù)參考手冊(cè)4.1要求說(shuō)明:計(jì)算機(jī)具有USB或者以太網(wǎng)接口Windows98,ME,2000或XP操作系統(tǒng)TrioUSB驅(qū)動(dòng)TrioPCI驅(qū)動(dòng)TrioPCOCX控件?通過(guò)TrioPCActiveX連接控制Trio運(yùn)動(dòng)控制器的知識(shí)TrioBASIC編程語(yǔ)言的相關(guān)知4.2ActiveX控件的安裝啟動(dòng)程序“Install_TrioPCMotion”并且按照屏幕提示執(zhí)行。TrioUSB驅(qū)動(dòng)和TrioPCocx#會(huì)在您的計(jì)算機(jī)中安裝并注冊(cè)。一個(gè)幫助文件根據(jù)需要可以在完成安裝后被立即顯示出來(lái)。4.3使用控件TrioPC控件必須添加到您的工程環(huán)境中。這里用VisualBasic舉例說(shuō)明,但確切的使用過(guò)程以所使用的軟件版本而定。從VB界面菜單中選擇“Project”下的“Components”…(或者使用快捷方式ctrl+T)。當(dāng)控件對(duì)話框彈出后,托動(dòng)滾動(dòng)條,找到“TrioPCActiveXControlModule”并點(diǎn)擊(在該條前會(huì)出現(xiàn)一個(gè)勾)。在點(diǎn)擊“確定”后,此時(shí)控件會(huì)顯示在屏幕左邊的“控制面板”中,它所顯示的名字為“TPC”。一旦您完成添加TrioPC控件后,您就可以建立您的軟件工程并使用TrioPC控件了4.4連接命令應(yīng)用Open描述:在TrioPCActiveX控件與運(yùn)動(dòng)控制器之間建立初始化連接命令。鏈接可以通過(guò)PCI、USB或以太網(wǎng)接口打開(kāi),在同步或異步兩種模式下操作。同步模式下,所有的TrioBasic下的方法都是可用的。在異步模式下,TrioBasic下的方法不可用,相反用戶必須調(diào)用“SendData()”向運(yùn)動(dòng)控制器寫(xiě)數(shù)據(jù),同時(shí)通過(guò)響應(yīng)“OnReceiveChannelx”事件,調(diào)用“GetData()”函數(shù)從運(yùn)動(dòng)控制器中接收數(shù)據(jù)。在這種方式下,用戶的應(yīng)用程序可以響應(yīng)發(fā)生在
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 懷化學(xué)院《學(xué)科課程與教學(xué)論》2023-2024學(xué)年第二學(xué)期期末試卷
- 昭通職業(yè)學(xué)院《外國(guó)文學(xué)III》2023-2024學(xué)年第二學(xué)期期末試卷
- 重慶市七校渝北中學(xué)2024-2025學(xué)年招生全國(guó)統(tǒng)一試題含解析
- 寧夏大學(xué)《測(cè)井資料解釋課程設(shè)計(jì)》2023-2024學(xué)年第二學(xué)期期末試卷
- 江蘇大學(xué)《藥物研發(fā)基本原理》2023-2024學(xué)年第二學(xué)期期末試卷
- 曲靖職業(yè)技術(shù)學(xué)院《伴侶動(dòng)物飼養(yǎng)》2023-2024學(xué)年第二學(xué)期期末試卷
- 護(hù)理基礎(chǔ)知識(shí)培訓(xùn)
- 棗莊市市中區(qū)2025屆數(shù)學(xué)三下期末檢測(cè)試題含解析
- 山西大學(xué)《城市微觀環(huán)境》2023-2024學(xué)年第一學(xué)期期末試卷
- 天津市南開(kāi)區(qū)2025年五年級(jí)數(shù)學(xué)第二學(xué)期期末監(jiān)測(cè)試題含答案
- 第15課《青春之光》課件-2024-2025學(xué)年統(tǒng)編版語(yǔ)文七年級(jí)下冊(cè)
- 2025年國(guó)家國(guó)防科技工業(yè)局軍工項(xiàng)目審核中心招聘筆試參考題庫(kù)附帶答案詳解
- 廣東省肇慶市各縣區(qū)鄉(xiāng)鎮(zhèn)行政村村莊村名明細(xì)及行政區(qū)劃代碼
- 緩和醫(yī)療精品課件
- 工程(產(chǎn)品)交付后顧客滿意度調(diào)查表
- 項(xiàng)目定標(biāo)審批表
- 體育市場(chǎng)營(yíng)銷(xiāo)(第三版)整套課件完整版電子教案課件匯總(最新)
- 弱電安裝安全安全技術(shù)交底
- SJG 05-2020 基坑支護(hù)技術(shù)標(biāo)準(zhǔn)-高清現(xiàn)行
- T∕CHAS 10-4-9-2019 中國(guó)醫(yī)院質(zhì)量安全管理 第4-9部分:醫(yī)療管理危急值管理
- 動(dòng)脈血?dú)鈪?shù)解釋
評(píng)論
0/150
提交評(píng)論