摘 要: 針對(duì)精密I號(hào)裝配機(jī)器人存在的問(wèn)題,介紹了自行研制的新型精密I號(hào)裝配機(jī)器人控制系統(tǒng)。它利用雙系統(tǒng)背板和帶Semaphore邏輯單元的雙端口RAM建立了緊耦合雙機(jī)系統(tǒng)。改善了原有系統(tǒng)的開(kāi)放性和可靠性。設(shè)計(jì)了新系統(tǒng)上的軟件系統(tǒng)。建立了一個(gè)完整的裝配機(jī)器人控制平臺(tái)。
關(guān)鍵詞: 裝配機(jī)器人 控制系統(tǒng) 雙口RAM Semaphore邏輯單元 多機(jī)系統(tǒng) 變磁阻電機(jī)
在許多微機(jī)應(yīng)用領(lǐng)域中,PC機(jī)的速度和功能往往不能滿(mǎn)足需要。特別是在多任務(wù)工作環(huán)境下,各任務(wù)只能分時(shí)工作。因此,要想在單處理器情況下進(jìn)行多任務(wù)工作,則在實(shí)時(shí)性上存在問(wèn)題。由于機(jī)器人特殊的結(jié)構(gòu),工業(yè)機(jī)器人的控制系統(tǒng)卻需要承擔(dān)規(guī)劃和伺服控制兩套任務(wù)。這兩套任務(wù)又必須保持實(shí)時(shí)高速的通訊,并由一個(gè)主系統(tǒng)支配。這就決定了其控制器結(jié)構(gòu)必須是緊耦合的多機(jī)系統(tǒng)。
精密Ⅰ號(hào)是我國(guó)1995年自行研制的高精度精密裝配機(jī)器人。原有系統(tǒng)的下位機(jī)為采用MultiBus總線(xiàn)的Intel iSBC386單板機(jī),采用8038DX芯片,主頻20MHz。該系統(tǒng)采用iRMX Ⅲ實(shí)時(shí)多任務(wù)操作系統(tǒng),基本上滿(mǎn)足了精密Ⅰ號(hào)機(jī)器人控制的需要。但是該系統(tǒng)存在以下問(wèn)題:(1)386的運(yùn)算能力已經(jīng)遠(yuǎn)遠(yuǎn)落后于當(dāng)前的硬件水平。由于機(jī)器人運(yùn)動(dòng)學(xué)、動(dòng)力學(xué)運(yùn)算任務(wù)繁重,原有系統(tǒng)只能勉強(qiáng)作帶動(dòng)力學(xué)前饋的簡(jiǎn)單PID控制。否則必須延長(zhǎng)伺服中斷時(shí)間,犧牲控制精度。(2)原有系統(tǒng)采用iRMX Ⅲ非主流操作系統(tǒng),不但價(jià)格較貴,而且可以利用的軟、硬件資源匱乏。其下的程序編譯需要有專(zhuān)門(mén)的編譯系統(tǒng),編譯過(guò)程復(fù)雜。這些都不利于高級(jí)控制策略的程序?qū)崿F(xiàn)和調(diào)試,不利于深入研究和實(shí)際推廣。(3)原有系統(tǒng)的控制、驅(qū)動(dòng)、信號(hào)接口等環(huán)節(jié)在可靠性和開(kāi)放性方面也存在很多問(wèn)題。由于機(jī)型和操作系統(tǒng)的非主流性,可利用的代換硬件和程序很難得到,需要專(zhuān)門(mén)人才,致使維修困難。
因此,我們采用研華雙系統(tǒng)背板奔騰333工控機(jī)重建了計(jì)算機(jī)控制系統(tǒng)。雙系統(tǒng)背板在一個(gè)機(jī)箱內(nèi)集成了兩套PC系統(tǒng),很適合機(jī)器人控制所需的上、下位機(jī)結(jié)構(gòu)。雙系統(tǒng)分別進(jìn)行機(jī)器人的規(guī)劃和伺服控制,通過(guò)雙口RAM進(jìn)行通訊,構(gòu)成一主一從的緊耦合多機(jī)系統(tǒng)。此外,重新設(shè)計(jì)了基于ISA總線(xiàn)的電機(jī)伺服擴(kuò)展卡等硬件接口。
在驅(qū)動(dòng)系統(tǒng)方面,精密Ⅰ號(hào)采用新型變磁阻類(lèi)步進(jìn)電機(jī)直接驅(qū)動(dòng)。為了提高電機(jī)功率放大器的負(fù)載能力和可靠性,對(duì)原系統(tǒng)部分器件也作了更新。
1 帶Semaphore邏輯單元的雙口RAM的應(yīng)用
由于控制系統(tǒng)寬帶及靈活性,雙口RAM被廣泛用于連接多機(jī)系統(tǒng)。為了避免讀寫(xiě)沖突,目前的雙口RAM產(chǎn)品集成了以下三種仲裁方法:(1)利用優(yōu)先權(quán)仲裁,產(chǎn)生Busy信號(hào),延緩一方的讀寫(xiě)周期。(2)采用中斷邏輯構(gòu)成CPU間的信號(hào)連接,協(xié)調(diào)讀寫(xiě)操作。(3)采用Semaphore邏輯,將雙口RAM的讀寫(xiě)權(quán)暫時(shí)交給首先申請(qǐng)的一方,禁止另一方的操作。本文采用了第三種方法,選用帶Semaphore邏輯單元的IDT71342雙口RAM芯片。
帶Semaphore邏輯單元的雙口RAM使得讀寫(xiě)操作不依賴(lài)其它仲裁邏輯,Semaphore邏輯單元和雙口RAM單元在結(jié)構(gòu)上是完全獨(dú)立的。Semaphore邏輯單元用八個(gè)鎖存器傳遞信號(hào),和RAM一樣是雙口。它經(jīng)過(guò)特殊設(shè)計(jì),不會(huì)同時(shí)響應(yīng)兩個(gè)設(shè)置,只有置位的一端可以釋放它,因此提供了一個(gè)傳遞分配標(biāo)記的硬件方法??梢詮膬啥藢?duì)鎖存器設(shè)置標(biāo)記,表示對(duì)雙口RAM某部分的使用權(quán)。所表示的占用RAM區(qū)的位置、大小均由軟件決定。Semaphore單元的簡(jiǎn)化原理如圖1。
和其它兩種雙口RAM相比,本文的精密Ⅰ號(hào)控制器上采用Semaphore邏輯有以下優(yōu)點(diǎn):(1)可以對(duì)一個(gè)大型數(shù)據(jù)表作刷新,而不用考慮被另一端干擾。(2)在進(jìn)行數(shù)據(jù)塊讀寫(xiě)時(shí)避免了Busy邏輯不斷引起的wait周期,提高了快速性;讀寫(xiě)長(zhǎng)整數(shù)時(shí)不會(huì)被誤讀。(3)可以利用Semaphor e信號(hào)表示其它意義的接口信號(hào)。
2 讀碼和伺服電路設(shè)計(jì)
從機(jī)器人本體來(lái)的信號(hào)主要有四個(gè)關(guān)節(jié)的增量碼盤(pán)信號(hào),一、二關(guān)節(jié)的絕對(duì)碼盤(pán)信號(hào)、手爪氣閥反饋信號(hào)、力傳感器反饋信號(hào)等。所需的控制信號(hào)是四個(gè)電機(jī)的三相PWM輸入。機(jī)器人一、二關(guān)節(jié)采用雙定子變磁阻類(lèi)步進(jìn)電機(jī)直接驅(qū)動(dòng);三、四關(guān)節(jié)則用一種較特殊的三相直流無(wú)刷電機(jī)直接驅(qū)動(dòng),其本身不帶自動(dòng)換向電路,需由計(jì)算機(jī)根據(jù)碼盤(pán)反饋改變電流,目的是減少力矩波動(dòng)。此外還有關(guān)節(jié)抱剎開(kāi)合、手爪開(kāi)合等驅(qū)動(dòng)信號(hào)。
根據(jù)上述信號(hào)制成兩塊ISA總線(xiàn)擴(kuò)展卡,主要功能是完成碼盤(pán)信號(hào)(增量碼盤(pán)信號(hào)和絕對(duì)碼盤(pán)信號(hào))輸入/輸出,產(chǎn)生驅(qū)動(dòng)電流輸出給電機(jī),以及完成電路自身的故障診斷和自我保護(hù)。
每塊卡產(chǎn)生兩個(gè)關(guān)節(jié)驅(qū)動(dòng)器三相PWM信號(hào)的輸出信號(hào)和驅(qū)動(dòng)器上電、復(fù)位、故障檢測(cè)等I/O動(dòng)作信號(hào)。增量碼盤(pán)脈沖的A,B,Z信號(hào)經(jīng)D觸發(fā)器整形后作四倍頻處理,以提高精度。16位計(jì)數(shù)器根據(jù)A、B的相位作正負(fù)雙向計(jì)數(shù),計(jì)數(shù)值可由Z脈沖及電路板時(shí)鐘脈沖鎖存。絕對(duì)碼盤(pán)共32個(gè)區(qū),每區(qū)為周向七位編碼,最后一位是奇偶校驗(yàn),需要讓各關(guān)節(jié)轉(zhuǎn)動(dòng)時(shí)才能讀出。其輸出為開(kāi)關(guān)信號(hào),由一路I/O口接入。電機(jī)MOSFET驅(qū)動(dòng)器所需的三相PWM信號(hào)由四片8254產(chǎn)生,并經(jīng)OC門(mén)電路輸出。在原有驅(qū)動(dòng)器上,我們用IRF250替換IRF640,并用2110替換MOSFET主回路H橋部分原有分離器件,提高了MOSFET的充、放電速度和驅(qū)動(dòng)器的驅(qū)動(dòng)能力。電路框圖如圖2。PWM信號(hào)傳送到H橋MOSFET IRF250構(gòu)成的功率驅(qū)動(dòng)器,驅(qū)動(dòng)電機(jī)。
3 系統(tǒng)軟件研制
PC機(jī)是在MS-DOS或Windows操作系統(tǒng)下工作的。MS-DOS是一個(gè)單任務(wù)操作系統(tǒng),Windows則是分時(shí)多任務(wù),均不能滿(mǎn)足機(jī)器人規(guī)劃、伺服同時(shí)進(jìn)行的要求。為此,必須開(kāi)發(fā)一個(gè)協(xié)調(diào)上、下位機(jī)各任務(wù)工作的實(shí)時(shí)監(jiān)控程序,它作為DOS或Windows下的一個(gè)應(yīng)用程序分別在兩個(gè)系統(tǒng)上運(yùn)行。
本系統(tǒng)的軟件主要由機(jī)器人語(yǔ)言編譯模塊、多任務(wù)監(jiān)控模塊、雙系統(tǒng)握手通訊模塊、伺服控制模塊四部分構(gòu)成,如圖3。
系統(tǒng)在上電啟動(dòng)后即初始化,建立雙系統(tǒng)聯(lián)系,根據(jù)Semaphore鎖存器的值及雙口RAM中的數(shù)據(jù)調(diào)度任務(wù),對(duì)機(jī)器人進(jìn)行初始定位后對(duì)機(jī)器人語(yǔ)言命令編譯,分由上、下位機(jī)同時(shí)執(zhí)行。
下位機(jī)的各任務(wù)主要是初始定位、伺服驅(qū)動(dòng)、根據(jù)機(jī)器人誤差模型作實(shí)時(shí)補(bǔ)償?shù)?。一般利用絕對(duì)碼盤(pán)作初始定位的工作多在器人規(guī)劃級(jí)進(jìn)行,即由機(jī)器人上位計(jì)算機(jī)給出各關(guān)節(jié)的規(guī)劃軌跡點(diǎn),讓伺服級(jí)軟件據(jù)此驅(qū)動(dòng)關(guān)節(jié),同時(shí)上位機(jī)讀取絕對(duì)碼盤(pán)反饋以確定碼區(qū)并修正軌跡點(diǎn)完成定位。鑒于本機(jī)器人所用電機(jī)的特殊性,為了進(jìn)一步提高初始定位過(guò)程的可靠性,精確度和平滑程度,我們嘗試將定位任務(wù)下放到伺服級(jí),作為一個(gè)伺服任務(wù),根據(jù)電機(jī)電角度實(shí)時(shí)修改三相電流相位。事實(shí)證明這種改進(jìn)是有效的,很好地改善了原有系統(tǒng)初始定位過(guò)程不穩(wěn)定、易飛車(chē)的狀況。
在伺服驅(qū)動(dòng)部分,由于雙定子變磁阻電機(jī)在一個(gè)電周期中磁阻變化,需要對(duì)其非線(xiàn)性作一定補(bǔ)償,本文用制定力矩控制表的方法將一個(gè)電周期細(xì)分為3072,由下位機(jī)根據(jù)碼盤(pán)表明的電角度實(shí)時(shí)調(diào)節(jié)電流值,有效地控制了電機(jī)力矩波動(dòng)。
參考文獻(xiàn)
1 精密Ⅰ號(hào)裝配機(jī)器人技術(shù)圖紙.上海交通大學(xué)機(jī)器人所,1995.8
2 水尾恒雅.DOS上ブマルチムを?qū)崿F(xiàn)方法.イニタフユス,1993;2:110~113
3 Corrado Guarino Lo Bianco,et al.Aprototype Controller for Variable Reluctance Motors.IEEE Trans.on Ind.Electron.,96;43(1):207~215