張艷珍,夏繼強(qiáng),滿慶豐,劉貝,史偉偉
(北京航空航天大學(xué) 機(jī)械工程及自動化學(xué)院,北京100191)
AGV系統(tǒng)是當(dāng)今柔性制造系統(tǒng)(FMS)和自動化倉儲系統(tǒng)中物流運輸?shù)闹饕侄巍GV具有適應(yīng)性好、柔性程度高、可靠性好、可實現(xiàn)生產(chǎn)和搬運功能的集成化和自動化等優(yōu)點[1]。AGV車載控制器是AGV控制系統(tǒng)的核心,其性能和可靠性直接影響AGV產(chǎn)品的性能和可靠性。
對于國內(nèi)應(yīng)用的AGV來說,大多采用基于單片機(jī)[2-5]、可編 程 控 制 器 (PLC)[6-9]、嵌 入 式 工 控 機(jī)[10-12]等 方案。采用PLC作為控制器系統(tǒng)存在擴(kuò)展不便、功能簡單、難以實現(xiàn)復(fù)雜的調(diào)度算法等問題[3];而采用工業(yè)計算機(jī)控制方案則存在成本過高、系統(tǒng)穩(wěn)定性不佳等不足,而且由于AGV的不斷振動等原因?qū)е掠脖P讀取數(shù)據(jù)不穩(wěn)定,造成整個AGV系統(tǒng)的宕機(jī)[13]。針對以上問題,本文設(shè)計的AGV車載控制器基于嵌入式系統(tǒng),該車載控制器功能齊全、具有擴(kuò)展方便、配置靈活的特點。
車載控制器開發(fā)中采用雙CPU主從結(jié)構(gòu),基于ARM11(S3C6410)的開發(fā)板平臺作為主控板,基于STM32的擴(kuò)展板作為底層驅(qū)動板。主控板負(fù)責(zé)復(fù)雜的邏輯運算、網(wǎng)絡(luò)通信和人機(jī)交互;底層驅(qū)動板板負(fù)責(zé)外圍設(shè)備驅(qū)動,包括數(shù)字量的輸入/輸出、驅(qū)動電機(jī)控制、RFID讀卡器數(shù)據(jù)采集和磁導(dǎo)航傳感器信號的測量等功能。主控板通過與上位機(jī)調(diào)度系統(tǒng)的無線通信確定需要完成的規(guī)定動作,并分解成各底層驅(qū)動板需要的執(zhí)行的功能,然后通過串口下發(fā)給各底層驅(qū)動板運動控制指令,底層驅(qū)動板完成相應(yīng)的動作并反饋自身狀態(tài),并在上位機(jī)上顯示。車載控制器通用功能框圖見圖1。
車載控制器的STM32底層驅(qū)動板通過磁導(dǎo)航傳感器采集磁條信息,并對采集的信號進(jìn)行處理,然后通過DAC模塊(控制電機(jī)的轉(zhuǎn)速大小)、繼電器輸出DO模塊(控制電機(jī)的正反轉(zhuǎn))控制驅(qū)動電機(jī),高速計數(shù)器模塊(電機(jī)脈沖采集)實現(xiàn)AGV的行走和轉(zhuǎn)向;并將自動/手動、急停、磁導(dǎo)航傳感器的門位信號、AGV行走的速度等數(shù)據(jù)信息通過串口通信發(fā)送至主控板,并在觸摸屏上顯示;同時,通過無線通信將上述數(shù)據(jù)信息發(fā)送至上位機(jī),實現(xiàn)上位機(jī)對AGV狀態(tài)的監(jiān)測。另一方面,上位機(jī)可將自動/手動及行走/轉(zhuǎn)向(前進(jìn)、后退、左轉(zhuǎn)、右轉(zhuǎn))指令發(fā)送至控制器,實現(xiàn)對AGV的遠(yuǎn)程控制。
圖1 車載控制器通用功能框圖
根據(jù)功能要求,AGV車載控制器主要有以下模塊:觸摸屏顯示模塊、無線通信模塊、CAN總線通信模塊、串口通信模塊、電源管理模塊、ADC模塊、DAC模塊、計數(shù)器模塊、DI/DO模塊。其中,觸摸屏顯示模塊、無線通信模塊在主控板上,其余模塊在底層驅(qū)動板上。另外,主控板與底層驅(qū)動板之間采用串口通信或者CAN總線通信。
車載控制器硬件分為兩部分:①S3C6410主控板設(shè)計,帶有無線模塊以及觸摸屏顯示;②STM32底層驅(qū)動板設(shè)計,帶有外設(shè)接口,用于外圍設(shè)備信號的輸入/輸出。
車載控制器的主控板處理器采用Samsung公司的ARM處理器S3C6410。該微處理器采用ARM1176JZF-S內(nèi)核,其穩(wěn)定主頻為533 MHz,最高主頻可達(dá)667 MHz,具有低成本、低功耗、高性能的特點。S3C6410具有雙總線架構(gòu),一路用于內(nèi)存總線,另一路用于Flash總線DDR內(nèi)存控制器;支持Nor Flash和Nand Flash兩種Flash;支持多種啟動方式:主要包括SD、Nand Flash、Nor Flash等設(shè)備啟動;集成了許多外設(shè)接口,如TFT-24位真彩色LCD控制器、電源系統(tǒng)管理、4通道 UART、32通道DMA、4通道定時器、通用I/O端口、I2S/I2C總線接口、USB Host、USB OTG(480 Mbps)、3通道SD/MMC Host控制器及時鐘生成PLL等。
為加快進(jìn)度,主控板采用已有的核心板進(jìn)行開發(fā)。該核心板為飛凌嵌入式公司生產(chǎn),集成S3C6410處理器、256 MB SDRAM以及4 GB Nand Flash、2 MB Nor Flash并帶有JTAG接口,在此基礎(chǔ)上進(jìn)行開發(fā)可大大縮短開發(fā)周期,降低開發(fā)風(fēng)險。該主控板上主要實現(xiàn)無線通信功能以及觸摸屏顯示功能。
車載控制器的底層驅(qū)動板處理器系統(tǒng)采用意法半導(dǎo)體推出的STM32F103,是基于Cortex-M3內(nèi)核的32位ARM芯片系列,片內(nèi)Flash為512 KB,片內(nèi)SRAM為64 KB,主頻72 MHz,具備26位地址線和16位數(shù)據(jù)寬度。內(nèi)部ADC模塊是12位逐次逼近型,有16通道,采樣率最高1 Msps。2路DAC,11個Timer,5路USART,I/O端口資源豐富,可滿足多個數(shù)字量輸入/輸出的需求,并具有CAN總線接口和RS232接口。
車載控制器主要功能接口圖略——編者注。
2.2.1 電源管理模塊
AGV采用多級電池串聯(lián)供電,在運行過程中,隨著電量的減少,電壓也會發(fā)生變化,并且為適應(yīng)一系列車型供電電壓的不同,需要儀表能夠承受較寬的輸入電壓范圍。為滿足車載控制器上不同芯片的供電需求,采用寬輸入電壓DC/DC模塊,將變化范圍在18~36 V的輸入電壓轉(zhuǎn)換為合適的輸出電壓。另外,在STM32底層驅(qū)動板上設(shè)計了為S3C6410主控板供電的電源模塊,輸出電壓為5 V。
2.2.2 CAN總線通信模塊
CAN總線部分包括CAN總線控制器和CAN總線收發(fā)器,STM32內(nèi)部集成了CAN總線控制器,選用通用CAN總線收發(fā)器芯片,將芯片的3.3 V邏輯信號轉(zhuǎn)換成CAN總線的差分電壓信號。
2.2.3 數(shù)字量輸入/輸出模塊
輸入高電平為24 V的電壓信號,通過分壓電阻將電壓降至芯片允許的電壓范圍內(nèi),數(shù)字量輸入模塊采用光耦電路進(jìn)行隔離,從輸入端輸入,經(jīng)過光耦輸出至STM32的GPIO口,實現(xiàn)對STM32的電氣隔離和保護(hù)。數(shù)字量輸出模塊主要控制信號的隔離輸出,STM32的控制信號通過控制繼電器的開和關(guān),從而控制外部電平的高低。
2.2.4 高速計數(shù)器模塊
高速計數(shù)器模塊主要用來采集電機(jī)編碼器的脈沖輸出,為A/B/Z三通道計數(shù)器。編碼器脈沖經(jīng)過高速光電隔離并反向后與STM32的Timer通道相連。設(shè)計中分別使用了STM32中Timer2和Timer3的第一、第二通道。
車載控制器軟件分為上位機(jī)(PC機(jī))軟件和下位機(jī)(車載控制器)軟件。上位機(jī)軟件的主要功能是通過無線通信模塊向車載控制器發(fā)送AGV的運行任務(wù),以及接收AGV車載控制器發(fā)送回來的AGV當(dāng)前工作狀態(tài)。下位機(jī)軟件的主要功能是接收PC機(jī)下達(dá)的運行命令,通過STM32底層驅(qū)動板對AGV的運動進(jìn)行控制,并且向PC機(jī)發(fā)送AGV當(dāng)前的工作狀態(tài);同時在S3C6410主控板的觸摸屏上顯示AGV的狀態(tài)信息。
整個系統(tǒng)的軟件功能框圖如圖2所示。
車載控制器軟件設(shè)計包括以下幾個模塊:①STM32底層驅(qū)動板的功能模塊;②S3C6410主控板的通信和顯示模塊;③上位機(jī)(PC機(jī))的無線通信及遠(yuǎn)程控制模塊。
圖2 車載控制器軟件功能框圖
底層功能模塊主要有磁導(dǎo)航傳感器信息的采集和處理、驅(qū)動電機(jī)的控制、射頻讀卡器(RFID)數(shù)據(jù)的發(fā)送和接收。
3.1.1 磁導(dǎo)航模塊
磁導(dǎo)航模塊通過磁導(dǎo)航傳感器采集磁條路徑的信息,輸入到STM32的ADC模塊,并進(jìn)行數(shù)據(jù)的處理,將處理后的數(shù)據(jù)用于電機(jī)速度控制的判斷依據(jù)。磁導(dǎo)航傳感器的輸出是電壓信號,電壓范圍為0~10 V,通過STM32的ADC模塊采集和處理。
本設(shè)計中,通過ADC模塊進(jìn)行A/D采樣,采樣時間是可編程的,將ADC配置為工作在掃描模式,對2個通道進(jìn)行采樣,并且轉(zhuǎn)換后的數(shù)據(jù)由DMA傳輸。其中ADC正常采樣2個通道,由DMA進(jìn)行傳輸,一次傳輸16個數(shù)據(jù),即每個通道各8個數(shù)據(jù)。每當(dāng)一次DMA過程結(jié)束后,觸發(fā)DMA完成中斷,調(diào)用濾波函數(shù)將濾波后的數(shù)據(jù)存入指定數(shù)組中。濾波函數(shù)采用算術(shù)平均濾波法,即對每個通道采集的8個數(shù)據(jù)進(jìn)行算術(shù)平均運算。濾波計算公式如式(1)所示:
其中,yi表示第i個通道濾波后的數(shù)據(jù),yij表示第i個通道采集的第j個數(shù)據(jù)。第一個通道采集的值為磁導(dǎo)航傳感器的電壓輸出:
計算得到磁導(dǎo)航傳感器輸出電壓對應(yīng)的數(shù)字量,根據(jù)磁導(dǎo)航傳感器偏離磁條中心的距離與輸出電壓成正比例關(guān)系可得到,AGV相對于磁條中心線的偏移距離。計算公式如下:
式中,x表示磁導(dǎo)航傳感器輸出電壓對應(yīng)的偏移距離。
計算得到AGV相對于磁條中心線的偏移距離,該偏移距離作為驅(qū)動電機(jī)控制模塊的輸入對電機(jī)進(jìn)行差速控制。
3.1.2 驅(qū)動電機(jī)的控制
驅(qū)動電機(jī)的控制包括轉(zhuǎn)速大小的控制、正反轉(zhuǎn)的控制以及輸出脈沖信號的采集。轉(zhuǎn)速大小主要是采用DAC模塊輸出電壓的大小進(jìn)行控制,轉(zhuǎn)速大小與電壓大小成正比例關(guān)系;正反轉(zhuǎn)通過DO模塊的電平高低來實現(xiàn);輸出脈沖信號采用高速計數(shù)器模塊進(jìn)行采集。
(1)轉(zhuǎn)速大小的控制
轉(zhuǎn)速大小與電壓的關(guān)系:
數(shù)字量和模擬量電壓之間的關(guān)系:
由此可得要獲得需要的轉(zhuǎn)速,只需控制STM32 DAC模塊輸入相應(yīng)的數(shù)字量即可。電機(jī)的輸出通過減速裝置輸出至AGV車輪,從而控制AGV行走。
AGV行走速度v與電機(jī)轉(zhuǎn)速n之間的關(guān)系:
式中,n為電機(jī)的轉(zhuǎn)速大?。▎挝粸閞/min);U為DAC模塊輸出的電壓大?。▎挝粸閂);v為AGV的理論行走速度(單位為mm/s);i為電機(jī)的減速比。
(2)輸出脈沖信號的采集
驅(qū)動電機(jī)的輸出脈沖為PWM信號,采用高速計數(shù)器模塊對其進(jìn)行采集,設(shè)計中使用了STM32的Timer2和Timer3的第一、第二通道,將Timer設(shè)置為PWM輸入模式。通過得到PWM信號的高電平的時間來計算驅(qū)動電機(jī)的實際轉(zhuǎn)速,進(jìn)而計算得出AGV實際行走的速度。計算如下:
由式(8)、(9)可得速度v與脈沖高電平時間tp的關(guān)系:
式中,n實際為驅(qū)動電機(jī)的實際轉(zhuǎn)速(單位為r/min);tp為PWM信號高電平的時間(單位為μs);v實際為AGV的實際行走速度(單位為mm/s);D為驅(qū)動輪的直徑;i為電機(jī)的減速比。
3.1.3 射頻讀卡器數(shù)據(jù)的發(fā)送和接收
射頻讀卡器的主要功能是通過讀取RFID標(biāo)簽里的數(shù)據(jù)來確定AGV的位置,以實現(xiàn)AGV在對應(yīng)位置上的加速或減速,使AGV在通過直線時速度較快,而通過圓弧曲線時速度較慢,保證AGV在整個路徑上的順利運行。事先在RFID標(biāo)簽里寫入相對應(yīng)的數(shù)據(jù)信息,測試中用到的信息為字符1、2、3、4,其中在1、3位置處減速,2、4位置處加速。
射頻讀卡器與STM32底層驅(qū)動板的通信接口為USART串口,首先進(jìn)行串口的初始化,其波特率為9 600 b/s,數(shù)據(jù)位為8位,停止位為1位,無奇偶校驗位和流量控制,并開啟串口接收中斷。通過串口發(fā)送讀使能指令使能射頻讀卡器讀取功能,當(dāng)射頻讀卡器檢測到RFID標(biāo)簽時,觸發(fā)串口中斷進(jìn)行數(shù)據(jù)接收,并對接收到的數(shù)據(jù)進(jìn)行讀取和判斷,來確定AGV在對應(yīng)位置處的加速或減速。
S3C6410主控板的通信包括與STM32底層驅(qū)動板的串口或者CAN總線通信(試驗中為串口通信),以及與上位機(jī)PC之間的無線通信。
S3C6410主控板的觸摸屏顯示界面主要用于顯示AGV的速度、路線狀態(tài)、急停、自動/手動模式等信息。一方面通過串口通信接收來自STM32底層驅(qū)動板的信息,另一方面通過無線通信接收來自PC機(jī)的信息,同時將接收的信息在界面上顯示。該界面的設(shè)計基于WinCE操作系統(tǒng)。
車載控制器觸摸屏顯示界面略——編者注。
為滿足車載控制器遠(yuǎn)程監(jiān)控的需求,通過車載控制器的無線模塊實現(xiàn)上位機(jī)對車載控制器的遠(yuǎn)程控制和監(jiān)測,車載控制器的數(shù)據(jù)信息通過無線模塊發(fā)送到監(jiān)控上位機(jī),并將上位機(jī)的相應(yīng)指令發(fā)送到控制器,實現(xiàn)遠(yuǎn)程監(jiān)控。
上位機(jī)界面主要是遠(yuǎn)程控制以及實時監(jiān)控功能,通過上位機(jī)界面可以遠(yuǎn)程控制AGV的行走狀態(tài),并且可以實時顯示AGV的速度和相應(yīng)的故障/異常狀態(tài)。
上位機(jī)遠(yuǎn)程控制界面和車載控制器軟件控制流程略——編者注。
為了驗證設(shè)計的硬件系統(tǒng)、軟件功能和上位機(jī)遠(yuǎn)程控制,進(jìn)行了相關(guān)的試驗。相關(guān)內(nèi)容略——編者注。
本文設(shè)計的AGV車載控制器。主控板采用S3C6410芯片,實現(xiàn)了車載控制器與上位機(jī)的通信以及對AGV沿預(yù)設(shè)路徑行走的控制;底層驅(qū)動板采用STM32F103芯片,實現(xiàn)了外設(shè)導(dǎo)航傳感器信息的采集、RFID數(shù)據(jù)的讀取、驅(qū)動電機(jī)的控制?,F(xiàn)場測試運行狀態(tài)良好,滿足要求,具有可行性和較好的實用性。
編者注:本文為期刊縮略版,全文見本刊網(wǎng)站www.mesnet.com.cn。
[1]Peters B,Smith J,Venkatesh S.A Control Classification of Automated Guided Vehicle Systems[J].International Journal of Industrial Engineering,1996,3(1):29-39.
[2]黃嘉城,劉啟新,郭佳琪.基于慣性導(dǎo)引AGV控制系統(tǒng)的設(shè)計研究[J].科技傳播,2011(1):1-2.
[3]胡彬.面向柔性制造系統(tǒng)的無人搬運車控制器研究[D].上海:上海交通大學(xué),2012.
[4]張霖,張桐.基于ARM7+μC/OS-II的智能循跡小車設(shè)計[J].科技傳播,2012(12):197-200.
[5]王可,黃曉華,張健,等.基于ARM Cortex的視覺導(dǎo)航AGV雙核控制器設(shè)計[J].機(jī)電工程,2013,30(10):1284-1287.
[6]吳衛(wèi)榮,丁慎平,鄧玲黎.PLC和觸摸屏在AGV控制系統(tǒng)中的應(yīng)用[J].現(xiàn)代制造工程,2012(12):115-119.
[7]Butdee S,Suebsomran A,Vignat F,et al.Control and path prediction of an Automate Guided Vehicle[J].Journal of A-chievements in Materials and Manufacturing Engineering,2008,31(2):442-448.
[8]韓騰,樊瑜瑾,李浙昆,等.基于PLC控制的AGV制動系統(tǒng)研究[J].機(jī)電一體化,2013(5):44-46.
[9]黃胄.基于PLC控制的AGV技術(shù)研究及其應(yīng)用[D].上海:華東理工大學(xué),2013.
[10]孫曉艷.基于FMS的自動導(dǎo)引車控制器設(shè)計與實現(xiàn)[J].無錫職業(yè)技術(shù)學(xué)院學(xué)報,2010,9(6):26-28.
[11]徐文斌,蔡容華,林科榮,等.基于工控機(jī)的 AGV裝配機(jī)器人控制系統(tǒng)設(shè)計[J].電子技術(shù)應(yīng)用,2013,39(7):131-136.
[12]張曉朋.AGV開放式控制系統(tǒng)設(shè)計[D].西安:陜西科技大學(xué),2009.
[13]王起.論PLC、單片機(jī)、工控機(jī)在工業(yè)現(xiàn)場中的應(yīng)用及選用方法[J].計算機(jī)與信息技術(shù),2011,1(1):60-61.