AGV系統(tǒng)在當前柔性制造系統(tǒng)(FMS)和自動化倉儲系統(tǒng)中扮演著重要的角色。AGV具有適應(yīng)性好、柔性程度高、可靠性好、可實現(xiàn)生產(chǎn)和搬運功能的集成化和自動化等優(yōu)點[1]。
AGV的導(dǎo)航方式主要有激光導(dǎo)航、電磁導(dǎo)航、視覺導(dǎo)航、GPS(全球定位系統(tǒng))導(dǎo)航、磁導(dǎo)航等,本文主要針對磁導(dǎo)航方式的AGV進行深入探討,磁導(dǎo)航AGV主要是基于磁導(dǎo)航傳感器感應(yīng)貼在路面上的磁條進行路徑跟蹤并完成其自主行駛的功能。
磁導(dǎo)航傳感器通過檢測鋪設(shè)在地面上的磁條來判斷AGV與目標路徑的偏差,然后輸出電壓模擬量[2]。對于磁導(dǎo)航AGV驅(qū)動器的設(shè)計,為更好地滿足通用性需求,需要對現(xiàn)有驅(qū)動器的組成單元進行總結(jié)和歸納,并且結(jié)合實際需求,找出共同點和不同點,為磁導(dǎo)航AGV通用驅(qū)動器的設(shè)計找到突破口。
通過查閱相關(guān)文獻,對磁導(dǎo)航AGV驅(qū)動器的組成有了一個總體認識,主要包括單片機單元、供電單元、手動控制單元、聲光報警單元、站點識別單元、工位檢測單元、電機驅(qū)動單元、CAN總線單元、避障單元、磁導(dǎo)航單元、姿態(tài)反饋單元、通信單元、安全輔助單元等 [35]。
1 驅(qū)動器硬件電路設(shè)計
在對磁導(dǎo)航AGV驅(qū)動器的組成單元進行分析之后,本文提出了一種基于STM32F103芯片為控制核心的通用驅(qū)動器,它包含以下模塊:單片機模塊、電源模塊、DI/DO模塊、RFID讀寫模塊、DAC輸出模塊、ADC采集模塊、CAN總線通信模塊、高速編碼器,安全模塊以及串口通信模塊,這些模塊與磁導(dǎo)航AGV驅(qū)動器的組成單元之間的對應(yīng)關(guān)系如表1所列。
由表1可以看出,提出的通用驅(qū)動器設(shè)計方案可以滿足磁導(dǎo)航AGV對主要組成單元的需求。該驅(qū)動器可同時控制兩個電機以及采集相應(yīng)的速度,還可同時采集兩路磁條傳感器輸出的模擬電壓,對于執(zhí)行復(fù)雜功能的AGV而言,可以增加驅(qū)動器的數(shù)量以滿足要求,各驅(qū)動器之間可以通過CAN總線保持動作協(xié)調(diào)一致,共同完成指定的動作。
各個模塊對應(yīng)不同的功能和作用,各司其職,互相配合,完成指定的功能。各模塊的主要作用如表2所列。
1.1 單片機模塊
本設(shè)計采用STM32作為控制芯片,此芯片基于ARM CortexM3內(nèi)核,具有高性能、低成本、低功耗的特點。另外,此芯片的可移植性很好,并有許多官方函數(shù)庫可以直接調(diào)用,大大縮短了開發(fā)周期。STM32F103系列有80個可以自由操控的芯片引腳,為通用驅(qū)動器的設(shè)計提供了良好的條件。此驅(qū)動器采用模塊化設(shè)計,有利于驅(qū)動器功能擴展和升級。本驅(qū)動器控制板是由STM32F103的最小系統(tǒng)、電源電路、實時時鐘系統(tǒng)、時鐘電路、JTAG接口電路、復(fù)位電路、用戶LED和按鍵電路、串口電路等組成。
1.2 電源模塊
AGV大多數(shù)通過鉛酸蓄電池供電,通過將小電壓大容量的鉛蓄電池串聯(lián)起來就可以構(gòu)成高電壓大容量的電池組,通常所用電池組為24 V,因此通過電壓轉(zhuǎn)換芯片將24 V轉(zhuǎn)換為5 V電壓,再將5 V轉(zhuǎn)換為3.3 V,為STM32芯片、MAX3232等供電。電路中需要加入多組電容,用于消除低頻和高頻的電源波動。
1.3 DI/DO模塊
手動操作器和必要的輸入/輸出信號需要多路DI/DO,因此本驅(qū)動器引出了多達16路的數(shù)字量輸入和16路的數(shù)字量輸出,輸入和輸出電壓為24 V。為了消除外界對驅(qū)動板的影響,在信號輸入部分采用光電耦合器進行隔離,由于電信號傳輸具有單向性等特點,可以達到良好的電絕緣能力和抗干擾能力;在信號輸出部分采用繼電器控制輸出24 V,并達到物理隔離的效果。根據(jù)光電耦合器的二極管允許壓降1.15 V和允許電流10 mA,可以計算出輸入端接入的電阻阻值,公式為:
依據(jù)標稱電阻表選擇電阻的阻值為2.2 kΩ。
1.4 CAN總線模塊
由于高性能、高可靠性、及獨特的設(shè)計,CAN總線(控制器局域網(wǎng)絡(luò))越來越受到人們的重視。它可以多主站方式工作,網(wǎng)絡(luò)上任意一個節(jié)點均可以在任意時刻主動地向網(wǎng)絡(luò)上的其他節(jié)點發(fā)送信息,而不分主從;通信方式靈活,可以添加多達255個節(jié)點。本驅(qū)動器中STM32自帶有CAN控制器,只需要接入一個CAN收發(fā)器即可完成CAN模塊的設(shè)計。
1.5 DAC模塊
DAC模塊主要用于控制電機的轉(zhuǎn)速,這與電機驅(qū)動器的選型有關(guān),電機的控制需要輸入0~10 V的模擬量來控制電機的速度,電機速度的可調(diào)節(jié)范圍是70~4 096 rpm,因此DAC輸出的電壓和電機速度存在一定的對應(yīng)關(guān)系,其對應(yīng)關(guān)系如下所示:
其中,n為電機的轉(zhuǎn)速大?。▎挝粸閞/min),U為DAC輸出的電壓大小(單位為 V)。
為了能夠更好地控制電機,需要輸出的電壓穩(wěn)定且有一定的驅(qū)動能力,由此在原理圖設(shè)計時,首先通過電壓轉(zhuǎn)換芯片把24 V轉(zhuǎn)換為±12 V,再將產(chǎn)生的+12 V的電壓轉(zhuǎn)換為5 V模擬量,最后將5 V轉(zhuǎn)換為+1.25 V和+2.5 V的標準參考電壓,其中+2.5 V的參考電壓接入STM32的 VREF+引腳,作為DAC和ADC的參考電壓。
由于芯片輸出的DAC模擬量的帶負載能力較弱且電壓輸出范圍只有0~2.5 V,因此,加入運算放大器以提高帶負載能力,在參考電壓+1.25 V的參考下,將0~2.5 V的輸出范圍變?yōu)?1.25~+1.25 V的輸出范圍,再放大8倍即可達到設(shè)計要求的0~+10 V的輸出范圍。
放大倍數(shù)可以通過調(diào)節(jié)運算放大器外圍電路中的4個電阻的阻值來改變,另外在設(shè)計時,考慮到電阻阻值的不精確,用可調(diào)電阻替換其中一個電阻,最后調(diào)試PCB板時,通過調(diào)節(jié)這個可調(diào)電阻,使輸出電壓可以達到10 V。
1.6 ADC模塊
磁導(dǎo)航AG V中的磁條傳感器輸出來的偏差信號是通過電壓反映出來的,具體的比例關(guān)系如圖1所示。由圖1可以看出偏差與傳感器輸出的電壓在一定范圍內(nèi)成正比,GATE用于指示傳感器是否在磁條上。ADC的參考電壓為+2.5 V,傳感器輸出電壓范圍是0~+10 V,采用電阻分壓的方法將0~10 V變?yōu)?~2.5 V,將測量范圍擴大4倍,如果想改變測量范圍,可以改變分壓電阻的阻值。
1.7 高速編碼器模塊
高速編碼器主要依靠STM32上的高速計時器來完成,采集電機輸出來的脈沖信號,將脈沖信號轉(zhuǎn)換為速度值,可以和DAC形成一個速度閉環(huán)控制。另外,對實時速度在時間上積分就可以得到行走的距離,對AGV的實時控制和顯示有用。脈沖信號和速度的具體對應(yīng)關(guān)系如下:
n為電機的轉(zhuǎn)速大?。▎挝粸閞/min),tp為高速編碼器采集到的信號高電平的時間(單位為μs)。
2 系統(tǒng)軟件設(shè)計
系統(tǒng)軟件設(shè)計采用C語言進行編寫,編譯器采用IAR 5.3,底層驅(qū)動器軟件控制流程如圖2所示,中斷流程如圖3所示。
程序采用模塊化編程,將各個模塊分別寫到不同的子函數(shù)中,這樣便于調(diào)試、移植和修改。本文采用中斷模式來協(xié)調(diào)實現(xiàn)AGV各項功能,中斷模式中的中斷優(yōu)先級根據(jù)任務(wù)的重要程度來確定,緊急信號中斷的優(yōu)先級最高,CAN總線和串口中斷次之,定時器4的中斷優(yōu)先級最低。定時器4每隔50 ms溢出一次,整個程序執(zhí)行一次,執(zhí)行的過程中讀取磁條傳感器狀態(tài)值,確定當前的偏差,根據(jù)糾偏算法控制AGV車的運行狀態(tài)。在糾偏算法中,根據(jù)不同的車型、不同的傳感器位置,建立不同的控制模型,進而更好地控制AGV按照設(shè)定好的路線行進。
對于不同功能的AGV,軟件控制也不相同,上文中的控制流程圖只針對一種車型,對其他車型,控制方式只需加入相應(yīng)功能的程序模塊即可。
3 試驗測試
該通用驅(qū)動器目前已在3種車型上進行過試驗,這3種車型分別是:差速AGV、單舵輪AGV叉車和雙轉(zhuǎn)向架全向AGV,實物圖如圖4所示。前兩種AGV車只需一個驅(qū)動器,雙轉(zhuǎn)向架全向AGV車則需要兩個驅(qū)動器來控制,根據(jù)不同AVG建立不同的數(shù)學模型[6],完成試驗。
為了測試硬件設(shè)計和軟件設(shè)計是否合理,鋪設(shè)了一段環(huán)形磁條測試三種AGV,測試的路徑示意圖如圖5所示。圖5中1、2、3、4處分別放置編號為1、2、3、4的RFID標簽。
測試過程如下:
① 將AGV置為手動模式,通過手操器控制AGV運動,能夠快速地完成指定的動作。
② 將AGV置為自動模式,AGV沿著鋪設(shè)的軌跡行走,完成在指定點處執(zhí)行相應(yīng)的動作。
③ 在自動模式下,按下急停按鈕,保證車在緊急狀態(tài)下停止運行。
④ 在自動模式下,在軌跡上放上雜物,AGV在接觸到物品時會自動停止運行。
經(jīng)過測試,3種AGV車都可以沿著鋪設(shè)的磁條穩(wěn)定行進,并在指定的工位執(zhí)行相應(yīng)的動作,實現(xiàn)基本功能。
結(jié)語
本文設(shè)計的磁導(dǎo)航AGV通用驅(qū)動器采用STM32F103作為主控芯片實現(xiàn)AGV基本功能,在3種車型上能夠穩(wěn)定地工作,實現(xiàn)基本功能,并且模塊化設(shè)計給硬件調(diào)試和檢測提供了很大的方便,可擴展性很高。后期可以根據(jù)功能的需求增加或刪減相應(yīng)的模塊,從而降低成本,增強產(chǎn)品的競爭力。
編輯:hfy
-
STM32
+關(guān)注
關(guān)注
2270文章
10915瀏覽量
356787 -
STM32F103
+關(guān)注
關(guān)注
33文章
478瀏覽量
63736 -
AGV
+關(guān)注
關(guān)注
27文章
1322瀏覽量
41165 -
磁導(dǎo)航
+關(guān)注
關(guān)注
0文章
5瀏覽量
7709
發(fā)布評論請先 登錄
相關(guān)推薦
評論