新聞中心

EEPW首頁 > 汽車電子 > 基于ARM的粉料自動倉庫智能控制節(jié)點開發(fā)

基于ARM的粉料自動倉庫智能控制節(jié)點開發(fā)

——
作者:朱韜 王震 陳懇 時間:2007-12-13 來源:微計算機信息 收藏

摘要: 基于ARM7芯片LPC2132和功率驅(qū)動芯片A3977,設(shè)計了一種兩軸。給出了該硬件組成以及通訊協(xié)議、插補算法等具體實現(xiàn)方案。描述了所設(shè)計的粉末物料自動化倉庫關(guān)鍵功能的實現(xiàn)方式,以及該作為在此對象中的實際應(yīng)用情況。

關(guān)鍵詞:
 運動控制卡;;

0. 引言

    本文設(shè)計了粉末自動化倉庫,其目的是為了實現(xiàn)多種粉末狀物料的存儲以及自動輸送。區(qū)別于一般分散物料的自動化倉庫,粉體物料的存取過程不是以貨格為單位進行操作,而是以一定數(shù)目的儲罐來保存物料,每次取貨操作只取一個儲罐中指定量的物料;存貨過程現(xiàn)采用人工將空罐用裝滿物料的罐替代的方式。在這種工作模式下,將只需要AGV而省略堆垛系統(tǒng),但是粉末的輸出系統(tǒng)將必須具有計量的功能,同時,儲罐的更換過程也要求簡單快捷[1]。

    本文中,使用一套2自由度的下料機構(gòu)來實現(xiàn)粉末的計量,使用絲桿提升機構(gòu)來實現(xiàn)儲罐的升降以方便加料操作??刂葡到y(tǒng)采用基于現(xiàn)場總線的分布式控制系統(tǒng),以為控制單元來實現(xiàn)所需動作。本文設(shè)計了一種基于ARM微處理器的兩軸運動控制卡,集成了通訊、運動控制以及步進電機驅(qū)動等功能,可以作為智能節(jié)點接受主控制系統(tǒng)指令,直接驅(qū)動步進電機運行并采集和處理某些過程變量。與現(xiàn)有步進電機控制系統(tǒng)相比,本運動控制卡具有結(jié)構(gòu)緊湊,線路簡單,集成度高,使用方便等特點。

1. 智能運動控制卡硬件平臺

    運動控制卡中使用一塊LPC2132芯片作為CPU來完成系統(tǒng)的通訊、指令解析、控制結(jié)構(gòu)以及插補等功能。CPU產(chǎn)生兩路獨立的脈沖信號,每個軸的細(xì)分及驅(qū)動由一片Allegro公司的單片步進電機專用驅(qū)動芯片A3977來完成。

1.1 元件性能特點

    在眾多微處理器產(chǎn)品中,ARM處理器以極低的成本和功耗提供了較高性能,是復(fù)雜嵌入式應(yīng)用的理想平臺。目前的32位、64位嵌入式微處理器中,ARM是應(yīng)用最為廣泛的一個系列。

    LPC2132是PHILIPS公司基于ARM7TDMI內(nèi)核推出的工業(yè)級MCU。它具有16KB片內(nèi)SRAM,64KB FLASH,可以容納更大規(guī)模的代碼;2個32位定時器/計數(shù)器以及一個PWM單元;多達(dá)47個通用I/O口;2個16C550工業(yè)標(biāo)準(zhǔn)的UART;通過片內(nèi)PLL可以實現(xiàn)最大為60MHz的CPU操作頻率。ARM處理器較小的封裝,極低的功耗和強大的功能使其特別適合于小型系統(tǒng)[2]

    脈沖分配以及功率驅(qū)動操作也可以由相應(yīng)的芯片實現(xiàn),本運動控制卡采用了集成這兩種功能的驅(qū)動芯片A3977。A3977是Allegro公司生產(chǎn)的單片正弦細(xì)分二相步進電機驅(qū)動專用芯片,它采用脈寬調(diào)制式斬波驅(qū)動方式,可以驅(qū)動二相步進電機,且電路簡單,工作可靠。該芯片輸出電流可達(dá)2.5A,具有整步、半步、1/4細(xì)分、1/8細(xì)分運行方式可供選擇,滿足一般功率要求下的驅(qū)動需求。

1.2硬件系統(tǒng)結(jié)構(gòu)

    平臺硬件系統(tǒng)結(jié)構(gòu)如圖1所示 :


圖1.硬件系統(tǒng)結(jié)構(gòu)圖{{分頁}}


(1)通訊及調(diào)試接口

    在一主多從結(jié)構(gòu)下,每塊運動控制卡作為從站通過RS485總線與主站連接。LPC2132芯片包含2個16C550工業(yè)標(biāo)準(zhǔn)的UART,每一路包含16字節(jié)的接收和發(fā)送FIFO,其中接收器的FIFO觸發(fā)點可以設(shè)為1,4,8,14字節(jié)。在該自動化倉庫的控制系統(tǒng)中,考慮協(xié)議規(guī)定的每條指令長度而將觸發(fā)點設(shè)為8字節(jié)。上位機指令通過光耦與CPU實現(xiàn)電隔離。

    LPC2132支持JTAG(Joint Test Action Group)協(xié)議。該協(xié)議主要用于芯片內(nèi)部測試以及對系統(tǒng)進行仿真、調(diào)試,通過JTAG接口,可對芯片內(nèi)部的所有部件進行訪問,因而是開發(fā)和調(diào)試過程的一種方便高效的手段。卡上保留一個20針的JTAG接口用于調(diào)試和燒寫程序[3]。

(2)輸入輸出及采樣接口

    系統(tǒng)的輸出量主要包括脈沖的輸出以及相關(guān)控制電平,輸入包括對碼盤、接近開關(guān)等信號的數(shù)字的讀取以及部分位置傳感器中模擬信號的采樣。LPC2132的管腳大多具有一個以上的功能,使用某一功能前必須對管腳連接進行配置。除去調(diào)試接口所占用的部分,所余IO口能滿足輸入輸出具體功能的要求。

(3)驅(qū)動芯片

    運動控制部分的職能在于產(chǎn)生正確的脈沖序列和控制信號,脈沖分配以及功率驅(qū)動的功能可以由獨立的驅(qū)動器來實現(xiàn)。常用驅(qū)動芯片性能比較如表1所示:

型號

L297+L298

A3977

TA8435H

A3955SB

輸出電壓(V)

50

35

10-40

50

平均電流(A)

2.5

2.5

1.5

1.5

功率(W)

25

25

 

 

表1:常用步進電機驅(qū)動芯片比較

    AGV上的提升機構(gòu)電機額定電流為2A,這里采用單片細(xì)分及功率驅(qū)動芯片A3977。每片A3977驅(qū)動一個步進電機運行,卡上設(shè)兩片驅(qū)動芯片來分別對應(yīng)兩路輸出脈沖。驅(qū)動芯片輸入信號包括公共端,使能控制,細(xì)分設(shè)置,方向設(shè)置和脈沖輸入等,在細(xì)分設(shè)置確定的情況下,至少需要CPU提供3個I/O口。CPU與驅(qū)動芯片間的連接通過光耦實現(xiàn)電隔離。

2. 軟件設(shè)計

    運動控制卡的軟件系統(tǒng)主要運行以下三個任務(wù):任務(wù)一為插補運算;任務(wù)二為接收并緩存指令;任務(wù)三為提取并執(zhí)行指令。按任務(wù)的重要性和實時性要求,將插補運算設(shè)為最高優(yōu)先級,在1ms中斷中得到執(zhí)行,其它任務(wù)在背景程序中得到執(zhí)行。軟件系統(tǒng)的具體結(jié)構(gòu)如圖2所示:

圖2.軟件系統(tǒng)結(jié)構(gòu)框圖{{分頁}}

(1)S曲線加減速規(guī)劃及插補運算

    為了保證系統(tǒng)在啟動或停止時不產(chǎn)生沖擊、失步、超程或振蕩,必須對送到步進電機的進給脈沖頻率進行加減速控制。立體倉庫中某些運動形式負(fù)載較大,為保證其良好的動態(tài)性能,采用S曲線型無沖擊型加減速處理。

     S曲線加減速基本原理就是在加減速時,使加速度的導(dǎo)數(shù)Jerk為常數(shù),通過對Jerk值的調(diào)整最大限度的減小對機械系統(tǒng)造成的沖擊。用戶設(shè)置加速度參數(shù)時只需考慮兩個參數(shù),一個是總的加速度時間(TA),一個是S曲線加速時間(TS)。系統(tǒng)根據(jù)用戶設(shè)置的值對加速度曲線進行分類,首先必須保證TA>0。如果TS=0,則曲線為直線型加減速;如果TS != 0,且TA>TS,則曲線為S曲線與直線混合型加減速;如果TS != 0,且TA<TS,則曲線變成了S曲線加減速。規(guī)劃過程需要對速度、加速度等參數(shù)進行圓整,從而給出每個階段需要的插補周期數(shù)。插補運算過程中間量可以使用浮點數(shù)表示,最終結(jié)果再取其整數(shù)部分[4]。

    在接收到運動開始指令后,在背景程序中的指令執(zhí)行部分即進行對該過程的基本規(guī)劃,包括:計算升降速各個階段所需要的插補周期數(shù),Jerk值。插補過程在1ms中斷中完成。在本運動控制卡中,使用匹配輸出的方式來產(chǎn)生脈沖:定時器TC或PWM的值和比較匹配控制值MCR相等的時候發(fā)生定時器匹配,匹配后引起相應(yīng)輸出口電平翻轉(zhuǎn)。在每一插補周期開始時,即設(shè)置好匹配控制值并啟動定時器,即可保證輸出頻率穩(wěn)定的波形。脈沖正常產(chǎn)生后則開始進行插補運算,計算下一周期的脈沖頻率,并查詢一次UART模塊相關(guān)標(biāo)志位狀態(tài)以判斷是否有控制指令。實測得每個插補周期中的規(guī)劃及查詢運算量可以在300us內(nèi)完成,在1ms內(nèi)完成以上任務(wù)可以保證時序不發(fā)生錯亂。

(2)指令接收與處理

    中斷內(nèi)檢測到UART模塊接收緩存滿標(biāo)志時,即通知背景程序?qū)χ噶钸M行接收,緩存以及后續(xù)處理??赡艿闹噶铑愋桶ǎ簩?shù)進行修改、查詢等參數(shù)處理類型;插補運算的開始,運動開始,急停等運動控制類型。485主站與節(jié)點之間定義8位的ASCII字符作為一條指令,包括起始位,地址位,功能代碼位,4位數(shù)據(jù)段以及停止位。

    所有節(jié)點在檢測到指令信息時,即從中搜索起始位“:”字符,當(dāng)檢測到起始字符時,則對下一位(地址位)進行判斷來確定該指令是否發(fā)送給本卡,隨后將符合本機地址的指令收入隊列做進一步處理。本運動控制卡中采用了普通指令隊列與優(yōu)先指令隊列兩個環(huán)形隊列的方式。一般情況下,指令進入普通指令隊列末端等候執(zhí)行,特殊指令,如急停等,將進入優(yōu)先的隊列以保證立即得到處理。

    指令從主設(shè)備發(fā)往從設(shè)備時,功能代碼位將告之從設(shè)備需要執(zhí)行哪些行為,數(shù)據(jù)位則包含了要執(zhí)行功能的任何附加信息。運動控制卡需要執(zhí)行的功能包括讀取輸入的開關(guān)狀態(tài),參數(shù)修改,發(fā)出運動控制指令,作出回應(yīng)等。對其中每一種功能,在卡上都編程并與某一功能代碼唯一對應(yīng)。功能代碼位選用一個ASCII字符,可用的代碼有255種,可以滿足使用要求。

3.  應(yīng)用實例

    在本文設(shè)計的粉末物料自動化倉庫中,原料置于單獨的儲罐中,每個儲罐底部連接下料機構(gòu),下料機構(gòu)靠兩個旋轉(zhuǎn)的葉輪來完成功能。在需要某種原料時,AGV移動到相應(yīng)儲罐下方,下料機構(gòu)工作,配合AGV上的稱量裝置完成對一種原料的精確計量操作。AGV移動時需要隨時讀取位置傳感器信息,保證定位準(zhǔn)確。為了更換儲罐方便,放置儲罐的料架由絲桿來驅(qū)動,可以自由升降。為了實現(xiàn)密封、自動清洗等附屬功能,料架上附帶兩種類型的機械手,其中一種操作密封蓋在不需要下料時封閉下料機構(gòu)的下端出口,另一種攜帶清洗水管,輔助完成料罐的清洗工作。機械手運行時要求精確定位于指定料罐的下方,并要求能對管路上的閥門進行控制。該系統(tǒng)的具體結(jié)構(gòu)參考圖3。

圖3. 立體倉庫結(jié)構(gòu)示意圖{{分頁}}

    該粉末物料立體倉庫作為某化工產(chǎn)品柔性生產(chǎn)線的一部分,采用圖4所示的分布式控制系統(tǒng),并將控制系統(tǒng)分級以減少主機的任務(wù)量。RS485主站作為二級主站完成該立體倉庫分系統(tǒng)的控制。所述的運動控制卡作為RS485節(jié)點完成某一功能模塊的管理。485主站的指令以廣播的方式向所有下屬節(jié)點發(fā)出,被接收并地址識別后在節(jié)點得到處理。立體倉庫中每一功能模塊,使用單塊運動控制卡可以完成控制需求。

圖4. 控制系統(tǒng)層次

(1)脈沖輸出類任務(wù)

    最簡單的操作方式為輸出脈沖驅(qū)動電機運動,如下料操作。這種工作方式下,主機通過指令設(shè)定行程,速度等運動參數(shù),啟動指定節(jié)點的插補過程,插補過程啟動以后將不依賴后續(xù)指令而運行至設(shè)定行程。在產(chǎn)生脈沖的過程中,主機可能向節(jié)點周期性發(fā)出查詢指令以確定節(jié)點當(dāng)前運動狀態(tài),為后續(xù)處理提供依據(jù)。

(2)傳感器信息采集類任務(wù)

    較為復(fù)雜的運動方式包括料架的提升以及機械手的操作。此兩類運動的范圍受到機械約束,需要讀取限位開關(guān)信號以及碼盤反饋信號以檢測運動狀態(tài),機械手的操作中包含閥門等IO量的控制,位置傳感器輸入信號為模擬量需要采集及轉(zhuǎn)換。該系統(tǒng)的運行中,絲桿轉(zhuǎn)速最高為1.5r/s,采用256線的碼盤作為轉(zhuǎn)動反饋時,產(chǎn)生脈沖頻率為384Hz;機械手工作在更低的轉(zhuǎn)速范圍內(nèi)。本控制卡中,將限位開關(guān)、碼盤等信號視為I/O量,進行定時采樣來讀取信息;模擬信號被同時采樣并在片上即得到轉(zhuǎn)換。系統(tǒng)產(chǎn)生的1ms定時中斷同時也作為采樣周期。根據(jù)香農(nóng)定理,1000Hz的采樣頻率足以滿足當(dāng)前轉(zhuǎn)速區(qū)域內(nèi)的采樣要求。

    自動化倉庫中料罐,下料機構(gòu),提升機構(gòu)等組成多個相對獨立的下料單元,按照規(guī)劃這些下料單元不可能同時工作。使用繼電器切換,一塊控制卡即可完成系統(tǒng)中所有同類機構(gòu)的控制要求。

    單個節(jié)點對功能的實現(xiàn)中,完成了參數(shù)修改及運動控制,數(shù)字及模擬信號的采樣和處理等功能,與主機之間采用數(shù)字通信,具有智能化的特點。在分布式控制系統(tǒng)中,該運動控制卡還具有鮮明的特點使其適合作為智能節(jié)點使用:采用統(tǒng)一的軟件硬件接口形式,簡單的對地址進行編輯后即可互相替換;模擬信號在節(jié)點即得到處理,主機與節(jié)點之間采用數(shù)字通信;不同節(jié)點之間完全獨立,單個節(jié)點的錯誤不會影響系統(tǒng)其它部分的運行。該系統(tǒng)基本符合基于現(xiàn)場總線的控制系統(tǒng)的開放型、分散性、數(shù)字通信的特征,是一種較低成本的實現(xiàn)方式,同時,系統(tǒng)以步進電機為主要控制對象,節(jié)點上增加了功率驅(qū)動功能,并在軟件開發(fā)上優(yōu)先考慮了運動控制功能的實現(xiàn)。

4.  結(jié)論

    本文介紹了一種基于ARM微處理器和步進電機專用驅(qū)動芯片A3977H的兩軸運動控制卡。在粉末物料自動化倉庫的控制系統(tǒng)中,采用基于現(xiàn)場總線的分布式控制系統(tǒng)中,將其作為智能節(jié)點使用,通過RS485總線完成與中央控制系統(tǒng)的通信,并根據(jù)接收的指令完成插補過程,脈沖序列的產(chǎn)生,運動狀態(tài)的查詢等操作。產(chǎn)生的脈沖序列通過驅(qū)動芯片最終驅(qū)動步進電機運動。同時,利MCU上的其它資源,可以完成多種輔助信號的采集與處理過程。本運動控制卡結(jié)構(gòu)緊湊,使用方便,在該自動化倉庫的控制系統(tǒng)中發(fā)揮了重要的作用。

參考文獻:

1.劉昌祺  自動化立體倉庫設(shè)計  北京: 機械工業(yè)出版社, 2004
2.吳明暉  基于ARM的嵌入式系統(tǒng)開發(fā)與應(yīng)用  北京:人民郵電出版社  2004
3.楚紅雨  基于ARM的嵌入式通信控制器的設(shè)計與應(yīng)用微計算機信息 2005年16期
4.王恒  基于USB的激光熱處理數(shù)控系統(tǒng)研究與開發(fā) 中國制造業(yè)信息化 2003年5期 

電容式接近開關(guān)相關(guān)文章:電容式接近開關(guān)原理


評論


相關(guān)推薦

技術(shù)專區(qū)

關(guān)閉