【正文】
If bok Then bok = (UNITS, 100) End If If bok Then bok = (REPDIST, 1) End If If bok Then bok = (SPEED, 100) End If If bok Then bok = (ACCEL, 100) End If If bok Then bok = (DECEL, 100) End If If bok Then bok = (FELIMIT, 1000) End If If bok Then bok = (SERVO, 1) End If Next nAxis bok = (WDOG, 1) End IfEnd SubPrivate Sub UpdateButtonStates() Dim bopen As Boolean bopen = (0) = Not bopen = bopen And Not (g_brunningIO Or g_brunningMove) = bopen And Not (g_brunningIO And g_brunningMove)End Sub Private Sub ReadAxisPostions() Dim nAxis As Integer Dim nAxes(gk_nMaxAxes) As Integer Dim dposition As Double Dim nMBR As Integer Dim bok As Boolean If (gk_ndefaultMode) Then For nAxis = 0 To gk_nAxesInUse 1 nAxes(0) = nAxis If (1, nAxes) Then bok = (DPOS, dposition) If bok Then Label(nAxis + 1).Caption = Int(dposition) Label(nAxis + 1).Refresh Else nMBR = MsgBox(error reading axis positon) nAxis = gk_nAxesInUse End If Else nMBR = MsgBox(error setting base for reading axis position) nAxis = gk_nAxesInUse Next nAxis Else nMBR = MsgBox(connection not open) End IfEnd Sub Private Sub proccessStateRun() Dim bok As Boolean Dim nAxis As Integer Dim dreadval As Double Dim nIO As Integer g_brunningIO = True If g_brunningIO Then nIO = 0 Call ReadAxisPostions For nIO = 0 To 2 Call readIO If Val(Text(nIO + 1).Text) 50 Then MsgBox (數(shù)據(jù)過大) Else bok = (12 + 2 * nIO, 1) bok = (3, Val(Text(nIO + 1).Text), nIO) Call ReadAxisPostions bok = (11 + 2 * nIO, 0) nIO = nIO + 1 End If Next nIO g_brunningIO = False Call UpdateButtonStates End IfEnd Sub Private Sub readIO() Dim IIO As Long Dim nBit As Integer Dim nMBR As Integer Dim IBit As Integer Dim Inpt As Long If (gk_ndefaultMode) Then If (8, 17, IIO) Then For nBit = 7 To 16 If IIO 0 Then Label(nBit).Caption = on Label(nBit).ForeColor = vbBlue Else Label(nBit).Caption = off Label(nBit).ForeColor = vbRed End If Label(nBit).Refresh Next nBit Else nMBR = MsgBox(error reading IO) End If If (0, 2, Inpt) Then For IBit = 33 To 35 If Inpt 0 Then Label(IBit).Caption = on Label(nBit).ForeColor = vbBlue Else Label(nBit).Caption = off Label(nBit).ForeColor = vbRed End If Label(IBit).Refresh Next nBit Else nMBR = MsgBox(error reading IO) End If Else nMBR = MsgBox(connection not open) End IfEnd Sub 運(yùn)動(dòng)控制程序運(yùn)行過程的簡介: 當(dāng)程序運(yùn)行時(shí),自動(dòng)進(jìn)入窗體一(Form1)點(diǎn)擊進(jìn)入按扭通過調(diào)用窗體顯示程序進(jìn)入窗體二(Form2)。運(yùn)動(dòng)控制主要是OUTPUT817的輸出的開關(guān)控制,還有INPUT3335的原點(diǎn)檢測控制,及運(yùn)動(dòng)距離輸出控制等方面。安裝成功后,在“設(shè)備管理器”中可查看有關(guān)PCI208的相關(guān)信息,如下圖示程序界面 “”,在編譯環(huán)境中,直接運(yùn)行(F5),程序操作畫面及介紹如下:首先進(jìn)入Form1顯示“歡迎使用PCI208運(yùn)動(dòng)控制操作界面”,單擊進(jìn)入按扭便進(jìn)入Form2程序界面。光電軸角編碼器由三個(gè)編碼器輸入端口反饋回各軸的實(shí)際運(yùn)動(dòng)位置給運(yùn)動(dòng)控制卡。當(dāng)運(yùn)動(dòng)控制卡電壓輸出端口OUT13輸出指令時(shí),繼電器KA6線圈得電,電動(dòng)機(jī)M2得電正轉(zhuǎn),機(jī)器人大臂向左旋運(yùn)動(dòng),到達(dá)極限位置時(shí)撞下前限位開關(guān)ST3 ,繼電器KA6 斷電,電機(jī)停止運(yùn)轉(zhuǎn)。當(dāng)它們踏上了各自的行程開關(guān)時(shí)外接24V分別輸入到INPUT0、INPUTINPUT2的輸入端口由運(yùn)動(dòng)控制卡進(jìn)行判斷并作為運(yùn)動(dòng)的原點(diǎn)。機(jī)器人本體結(jié)構(gòu)如下圖:1—機(jī)械手爪 2—機(jī)械手小臂 3—機(jī)械手大臂 4—機(jī)身手爪開合采用連桿及螺旋機(jī)構(gòu),同步電機(jī)驅(qū)動(dòng),其結(jié)構(gòu)簡單,無調(diào)速器,電路控制方便。機(jī)身固定在機(jī)械小車上;大臂可以繞著機(jī)身在水平面內(nèi)和垂直面內(nèi)旋轉(zhuǎn);小臂在絲桿的傳動(dòng)下,可以前后進(jìn)行伸縮。 該系統(tǒng)主要由個(gè)人PC、PCI—208系列TRIO運(yùn)動(dòng)控制卡、運(yùn)動(dòng)卡外接線板、ZK4系列直流電機(jī)調(diào)速器、光電軸角編碼器、系統(tǒng)工作狀態(tài)檢測輸入行程開關(guān)等組成。該控制卡可以控制2—8 軸的伺服電機(jī)或步進(jìn)電機(jī)或者二者的任意結(jié)合;32bit的33MZ, PCI總線。其中,交流伺服電動(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è)機(jī)器人控制系統(tǒng)中的應(yīng)用,根據(jù)運(yùn)動(dòng)控制的相關(guān)理論和直流伺服電機(jī)的具有不易受干擾、易于用微機(jī)實(shí)現(xiàn)數(shù)字控制、無積累誤差等特性以及其動(dòng)作迅速、反映快、維護(hù)簡單、可實(shí)現(xiàn)過載自動(dòng)保護(hù)等特點(diǎn)作為相關(guān)背景的基礎(chǔ)之上提出了基于TRIO運(yùn)動(dòng)控制卡的自動(dòng)化程度和定位精度均較高的工業(yè)機(jī)器人控制系統(tǒng)。傳統(tǒng)的機(jī)器人控制系統(tǒng)基本上是設(shè)計(jì)者基于自己的獨(dú)立結(jié)構(gòu)和生產(chǎn)目的而開發(fā),它采用了專用計(jì)算機(jī)、專用機(jī)器人語言、專用微處理器的封閉式體系結(jié)構(gòu)。當(dāng)外界條件變化時(shí),為保證所要求的品質(zhì)或?yàn)榱穗S著經(jīng)驗(yàn)的積累而自行改善控制品質(zhì),其過程是基于操作機(jī)的狀態(tài)和伺服誤差的觀察,再調(diào)整非線性模型的參數(shù),一直到誤差消失為止。程序控制系統(tǒng):給每個(gè)自由度施加一定規(guī)律的控制作用,機(jī)器人就可實(shí)現(xiàn)要求的空間軌跡。(3) 具有對(duì)外部環(huán)境(包括作業(yè)條件)的檢測和感覺功能。(4)較高級(jí)的工業(yè)機(jī)器人要求對(duì)環(huán)境條件、控制指令進(jìn)行測定和分析,采用計(jì)算機(jī)建立龐大的信息庫,用人工智能的方法進(jìn)行控制、決策、管理和操作,按照給定的要求,自動(dòng)選擇最佳控制規(guī)律。 工業(yè)機(jī)器人控制系統(tǒng) 工業(yè)機(jī)器人控制系統(tǒng)的特點(diǎn) 工業(yè)機(jī)器人的控制技術(shù)是在傳統(tǒng)機(jī)械系統(tǒng)的控制技術(shù)的基礎(chǔ)上發(fā)展起來的,因此兩者之間并無根本的不同但工業(yè)機(jī)器人控制系統(tǒng)也有許多特殊之處。這類工業(yè)機(jī)器人結(jié)構(gòu)緊湊,傳動(dòng)平穩(wěn),動(dòng)作靈敏,但對(duì)密封要求較高,且不宜在高溫或低溫環(huán)境下工作。在水平方向則具有柔順性,而在垂直方向則有教大的剛性。 (4) 多關(guān)節(jié)型工業(yè)機(jī)器人又稱回轉(zhuǎn)坐標(biāo)型工業(yè)機(jī)器人,這種工業(yè)機(jī)器人的手臂與人一體上肢類似,其前三個(gè)關(guān)節(jié)是回轉(zhuǎn)副(即RRR),該工業(yè)機(jī)器人一般由立柱和大小臂組成,立柱與大臂見形成肩關(guān)節(jié),大臂和小臂間形成肘關(guān)節(jié),可使大臂做回轉(zhuǎn)運(yùn)動(dòng)和俯仰擺動(dòng),小臂做仰俯擺動(dòng)。) (1) 直角坐標(biāo)型工業(yè)機(jī)器人 其運(yùn)動(dòng)部分由三個(gè)相互垂直的直線移動(dòng)(即PPP)組成,其工作空間圖形為長方形。 但總的來看,我國的工業(yè)機(jī)器人技術(shù)及其工程應(yīng)用水平和國外比還有一定的距離,如:可靠性低于國外產(chǎn)品;機(jī)器人應(yīng)工程起步較晚,應(yīng)用領(lǐng)域窄,生產(chǎn)線系統(tǒng)技術(shù)與國外比有差距;在應(yīng)用規(guī)模上,我國已安裝的國產(chǎn)工業(yè)機(jī)器人約200臺(tái),約占全球已安裝臺(tái)數(shù)的萬分之四。它不僅具有感知功能,而且還有一定的決策及規(guī)劃能力。 第二代工業(yè)機(jī)器人:通常是指具有某種智能(如觸覺、力覺、視覺等)功能的“智能機(jī)器人”。1962年美國萬能自動(dòng)化公司的第一臺(tái)Unimate工業(yè)機(jī)器人在美國通用汽車公司投入使用,標(biāo)志著第一代工業(yè)機(jī)器人的誕生。 第三代工業(yè)機(jī)器人:即所謂的“只治式工業(yè)機(jī)器人”。 我國的工業(yè)機(jī)器人從80年代“七五”科技攻關(guān)開始起步,在國家的支持下,通過“七五”、“八五”科技攻關(guān),目前已基本掌握了機(jī)器人的操作機(jī)的設(shè)計(jì)制造技術(shù)、控制系統(tǒng)硬件和軟件設(shè)計(jì)技術(shù)、運(yùn)動(dòng)學(xué)和軌跡規(guī)劃技術(shù)、生產(chǎn)了部分機(jī)器人的關(guān)鍵元器件,開發(fā)出噴漆、焊弧、點(diǎn)焊、裝配、搬運(yùn)等機(jī)器人;其中有130多臺(tái)配套噴漆機(jī)器人在二十與家企業(yè)的近30條自動(dòng)噴漆生產(chǎn)線上獲得規(guī)模應(yīng)用,弧焊機(jī)器人已應(yīng)用在汽車制造廠的焊裝線上。 工業(yè)機(jī)器人的分類工業(yè)機(jī)器人按不同的方法可分下述類型 工業(yè)機(jī)器人按操作機(jī)坐標(biāo)形式分以下幾類:(坐標(biāo)形式是指操作機(jī)的手臂在運(yùn)動(dòng)時(shí)所取的參考坐標(biāo)系的形式。 (3) 球坐標(biāo)型工業(yè)機(jī)器人 又稱極坐標(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)工件,其位置精度高,位置誤差與臂長成正比。這種形式的工業(yè)機(jī)器人又稱(SCARA(Seletive Compliance Assembly Robot Arm)裝配機(jī)器人。(2)液壓式工業(yè)機(jī)器人 液壓壓力比氣壓壓力高得多,一般為70kPa左右,故液壓傳動(dòng)工業(yè)機(jī)器人具有較大的抓舉能力,可達(dá)上千牛頓。這些驅(qū)動(dòng)單元或是直接驅(qū)動(dòng)操作機(jī),或是通過諸如諧波減速器的裝置來減速后驅(qū)動(dòng),結(jié)構(gòu)十分緊湊、簡單。 (3) 工業(yè)機(jī)器人的數(shù)學(xué)模型是一個(gè)多變量、非線性和變參數(shù)的復(fù)雜模型,各變量之間還存在著耦合,因此工業(yè)機(jī)器人的控制中經(jīng)常使用前饋、補(bǔ)償、解耦和自適應(yīng)等復(fù)