王 冰 胡 彬 王春香 楊 明
(上海交通大學電信學院1,上海 200240;上海交通大學機器人研究所2,上海 200240)
隨著科學技術的飛速發展和經濟的全球化,自動化的物流系統已成為現代化工廠企業不可缺少的重要部分。由于降低成本的壓力一直貫穿于社會生產的整個物流搬運行業和制造業,所以制定具有成本效益的物流搬運解決方案成為生產企業的重要工作目標之一。自動導引車(automated guided vehicle,AGV)作為現代柔性制造系統中的關鍵設備,對整個產品的生產過程起著重要的作用。AGV具有適應性好、柔性程度高、可靠性好、可實現生產和搬運功能的集成化和自動化等優點。
當前國內AGV控制系統中大多采用基于單片機、可編程控制器(PLC)、嵌入式工控機等方案[1]。采用PLC的優點是穩定性較高、抗干擾性能好、對操作人員要求低;其缺點是在AGV控制上使用時,功能上存在局限性,對實現上層的一些復雜的路徑規劃或調度算法難度較大[2-3]。采用工業計算機則控制方案成本過高,系統穩定性不理想,而且由于AGV的不斷振動等原因容易導致硬盤讀取數據不穩定,造成整個AGV系統的宕機[4]。針對以上問題,本文研究并設計了一種面向柔性制造系統的AGV控制系統。該系統具有工作性能穩定、功能擴展方便、配置靈活等特點。
系統的功能框圖如圖1所示。

圖1 自動導引車功能框圖Fig.1 Functional block diagram of AGV
AGV是用在柔性制造系統中的自動化設備。結合AGV的應用來看,柔性制造系統的主要特點包括:工作重復性高、環境外部干擾大、場地比較復雜、系統運行靈活等。
根據這些特點,設計的AGV控制系統包括以下子模塊:電機驅動模塊、電源管理模塊、路徑導航模塊、里程定位模塊、安全避障模塊、無線通信模塊和人機交互模塊等。
根據上述AGV控制系統的設計方案,將系統硬件分為三個部分進行設計:①包含控制器的核心控制板;②外設接口板,外設傳感器的信號連接到接口板上,經過光耦隔離后,送入到控制器的控制芯片上;③設定面板部分,主要進行一些控制指令的輸入及操作。
AGV車載控制器主要功能接口圖如圖2所示。

圖2 AGV車載控制器主要功能接口圖Fig.2 The major functional interfaces of AGV onboard controller
核心控制板是整個系統的核心部分。本系統采用基于Freescale的數字控制器(digital signal controller,DSC)芯片進行車體算法設計和車體控制,芯片具體型號為MC56F8366[5];接著在此基礎上進行外圍電路的設計。核心控制模塊包括了DSC的最小系統、I/O口擴展部分、存儲器、CAN通信擴展接口和串行通信擴展接口等。
MC56F8366將DSP和MCU集成在一起,兼有DSP強大的運算能力和微控制器豐富靈活的片上外設模塊,并且價格低廉、外設模塊配置靈活。MC56F8366內置了多種模塊接口,可適用于不同應用場合,如電源監測、內存擴展、電機控制、汽車電子等。由于DSC芯片內部的存儲空間有限,而AGV運行所需的地圖信息數據量比較大,所以擴展了1個存儲芯片MR2A16A[6],用來存儲地圖信息和記錄AGV運行日志等。
通信模塊包括串口通信和CAN通信兩個部分。系統開發時,串口通信可以用于系統調試;而系統運行時,串口通信又可以用于有線或無線方式的功能擴展。在本系統的配置中,串口與無線通信模塊ZigBee相連。CAN通信模塊采用 CTM8251AT將DSC芯片中的FlexCAN模塊輸出引腳的TTL邏輯電平轉換為CAN總線的差分電平,并且具有2500 VDC的隔離功能。本系統中CAN模塊與電機驅動器相連并進行通信。
DSC芯片MC56F8366雖然有144個引腳,但是去除存儲芯片用到的16根地址線、16根數據線,以及DSC一些功能模塊的引腳定義(如PWM、脈沖捕捉等),所剩的GPIO口不足10個。因此,采用MAX7301對I/O口進行擴展,芯片與DSC之間采用SPI接口方式。
為了保證控制芯片的安全,需要對傳感器的輸出信號進行隔離操作。考慮到本系統中傳感器輸出信號都是開關量,故可用光電隔離芯片PS2801-4[7]實現輸入端與輸出端的電氣隔離。基于PS2801-4設計的8路信號隔離電路如圖3所示。

圖3 信號隔離電路原理圖Fig.3 Principle diagram of the signal isolation circuit
為便于在現場對AGV進行一些簡單的設定和AGV的狀態信息顯示,如輸入起點位置、輸入目標站點信息等,設計了基于MAX6954[8]的人機交互設定面板。
設定面板包括狀態顯示和按鍵輸入兩個部分。其中顯示界面采用七段數碼管表征AGV當前的狀態信息。數碼管的驅動和按鍵的掃描統一由MAX6954完成。MAX6954與DSC通過SPI接口進行數據通信。基于MAX6954的設定面板電路原理圖如圖4所示。

圖4 基于MAX6954的設定面板電路原理圖Fig.4 Principle diagram of the setting panel circuit based on MAX6954
AGV系統軟件分為底層功能模塊的驅動算法和AGV調度規劃算法兩個部分。這兩部分的主要功能、結構框圖和程序流程分別介紹如下。
底層功能模塊的主要功能有路徑識別及提取、電機伺服驅動器的控制等。磁導航傳感器輸出的是16路數字信號,其根據檢測到的磁條信息的有無,分別返回0和1。假設第1個為0的信號為Dfirst,最后一個輸出為0的信號為Dlast,則導引磁條中線位置Dmid的表達式為:

計算得到磁條中線的位置后,將中線位置數據發送給電機控制模塊;電機控制模塊將中線位置值與基準中點值進行比較,得到的差值即為運行偏差量ei,該值被用來進行電機差速控制。
AGV的電機驅動采用差速控制的方式,橫向速度采用增量式PID算法控制。控制算法框圖如圖5所示。

圖5 AGV橫向控制結構框圖Fig.5 AGV lateral control structure
差速控制量Δui的計算公式為:

式中:Kp為比例系數;Ki為積分常數;Kd為微分常數;ei為控制器的輸入,即運行偏差量。
AGV在柔性制造系統中運行,需要將現場的地圖數據存儲到內存中。地圖數據以邊為單位存儲。地圖的邊結構信息定義如下[9]。

邊結構中的結構成員type表示該條邊的類型(有直道、左轉彎和右轉彎)。速度變量speed則是在該條邊上行駛設置的基準速度,有三檔(低速、中速和高速)可以選擇。
整個AGV分布式控制的總流程說明如下。
①通過設定面板或者上位機的監控界面設定起點和終點。
②DSC芯片根據存儲在Flash中的地圖,搜索出一條起點到終點的最短路徑,并將最短路徑上的邊保存在邊集合中。
③按下啟動鍵啟動AGV后,AGV開始運行,且自動加載最短路徑上第0條邊的參數。
④AGV在沿著磁條前進的過程中,不斷掃描識別里程地標,地標計數從1開始計數,每讀到一個新的地標,地標計數加1。
⑤根據讀到的地標個數,加載對應邊的參數信息。若讀到的地標個數等于最短路徑上的節點總個數,則表示AGV到達終點,停止運行。
⑥AGV到達終點后,需要將地標計數清零,等待下一次的任務調度。
AGV控制程序流程如圖6所示。

圖6 AGV控制程序流程圖Fig.6 Flowchart of AGV control program
為了驗證設計的硬件系統和軟件算法,進行了相關試驗。試驗視頻可以參考文獻[10]給出的網址。在視頻地圖上,用戶要求AGV從A點行駛到E點。從A點到E點有兩條備選路徑,分別是:14(A)->15->16->1- >2(F)- >3- >17- >18(C)- >19- >9-10(E)和14(A)->15->16->1->2(F)->3->4->5->6(D)->7->8->9-10(E)。輸入起點和終點后,后臺程序計算出一條最短路徑。界面顯示的最短路徑為14(A)->15->16->1->2(F)->3->17->18(C)- >19- >9-10(E)。
按下啟動鍵后,AGV開始啟動,并且不斷將AGV的狀態信息發送到上位機和設定面板顯示。最終AGV的走線與程序加載的路徑一致,符合要求。
從視頻中可以看到設定面板上四位數碼管前兩位顯示的是本次行駛的目標站點E,后兩位顯示的是最近經過的節點號;在設定面板中還可以看到整個過程顯示的節點號與最短路徑上的節點號一致。
通過試驗可以得出,本文設計的AGV控制系統硬件部分能采集識別信號,軟件系統能根據起點和終點的輸入計算最短路徑,整個系統能正常工作[10]。
本文設計的AGV控制系統,采用MC56F8366作為主控芯片,實現了外設傳感器信息的讀取、導引線的位置計算,并根據用戶設定,實現了AGV的調度規劃;通過DSC芯片上的FlexCAN模塊與伺服電機驅動器之間的CAN總線通信,實現了AGV的驅動電機的控制;通過ZigBee無線通信,實現了上位機對AGV的狀態監控。
此外,本文在軟件算法上設計了基于Dijkstra算法的調度規劃算法,實現了起點到終點最短路徑規劃。實際試驗驗證了本文設計的系統硬件的可靠性和軟件的可行性,系統能滿足物流工廠的一般應用,對AGV的推廣應用具有一定的價值。
[1]盧冬華.計算機控制自動導向小車(AGV)的設計與實現[D].上海:上海交通大學,2006.
[2]張曉朋.AGV開放式控制系統設計[D].西安:陜西科技大學,2009.
[3]王冰,張惠僑.自動導向車系統的規劃設計[J].上海交通大學學報:自然科學報,2001,35(12):1793-1797.
[4]王起.論PLC、單片機、工控機在工業現場中的應用及選用方法[J].廣西輕工業,2011(1):60-61.
[5]Freescale semiconductor.56F8366/56F8166 Datasheet[EB/OL].[2009-11-08].http://cache.freescale.com/files/dsp/doc/data_sheet/MC56F8366.pdf.
[6]Freescale semiconductor.MR2A16A MRAM Datasheet[EB/OL].[2007 - 11 - 20]. http://www. freescale. com/files/microcontrollers/doc/data_sheet/MR2A16A.pdf.
[7]Renesas electronics corporation.Photocoupler PS2801C-1,PS2801C-4 High Isolation Voltage S Photocoupler[EB/OL].[2009-02-15 ]. http://documentation. renesas. com/doc/YOUSYS/document/PN 10610EJ03V0DS.pdf.
[8]MAXIM semiconductor.MAX6954 Data Sheet[EB/OL].[2009-03-18].http://datasheets.maxim-ic.com/en/ds/MAX6954.pdf.
[9]DIJKSTRA EW.A note on two problems in connection with graphs[J].Numerische Mathematik,1959(1):269-271.
[10]胡彬.AGV 調度控制演示視頻[EB/OL].[2012-02-01].http://v.youku.com/v_show/id_XMzQ4MjY3Mjky.html.