基于ARM的粉料自動倉庫智能控制節點開發
摘要: 基于ARM7芯片LPC2132和功率驅動芯片A3977,設計了一種兩軸運動控制卡。給出了該運動控制卡硬件組成以及通訊協議、插補算法等具體實現方案。描述了所設計的粉末物料自動化倉庫關鍵功能的實現方式,以及該運動控制卡作為智能節點在此對象中的實際應用情況。
關鍵詞: 運動控制卡;智能節點;S曲線規劃
0. 引言
本文設計了粉末自動化倉庫,其目的是為了實現多種粉末狀物料的存儲以及自動輸送。區別于一般分散物料的自動化倉庫,粉體物料的存取過程不是以貨格為單位進行操作,而是以一定數目的儲罐來保存物料,每次取貨操作只取一個儲罐中指定量的物料;存貨過程現采用人工將空罐用裝滿物料的罐替代的方式。在這種工作模式下,將只需要AGV而省略堆垛系統,但是粉末的輸出系統將必須具有計量的功能,同時,儲罐的更換過程也要求簡單快捷[1]。
本文中,使用一套2自由度的下料機構來實現粉末的計量,使用絲桿提升機構來實現儲罐的升降以方便加料操作。控制系統采用基于現場總線的分布式控制系統,以智能節點為控制單元來實現所需動作。本文設計了一種基于ARM微處理器的兩軸運動控制卡,集成了通訊、運動控制以及步進電機驅動等功能,可以作為智能節點接受主控制系統指令,直接驅動步進電機運行并采集和處理某些過程變量。與現有步進電機控制系統相比,本運動控制卡具有結構緊湊,線路簡單,集成度高,使用方便等特點。
1. 智能運動控制卡硬件平臺
運動控制卡中使用一塊LPC2132芯片作為CPU來完成系統的通訊、指令解析、控制結構以及插補等功能。CPU產生兩路獨立的脈沖信號,每個軸的細分及驅動由一片Allegro公司的單片步進電機專用驅動芯片A3977來完成。
1.1 元件性能特點
在眾多微處理器產品中,ARM處理器以極低的成本和功耗提供了較高性能,是復雜嵌入式應用的理想平臺。目前的32位、64位嵌入式微處理器中,ARM是應用最為廣泛的一個系列。
LPC2132是PHILIPS公司基于ARM7TDMI內核推出的工業級MCU。它具有16KB片內SRAM,64KB FLASH,可以容納更大規模的代碼;2個32位定時器/計數器以及一個PWM單元;多達47個通用I/O口;2個16C550工業標準的UART;通過片內PLL可以實現最大為60MHz的CPU操作頻率。ARM處理器較小的封裝,極低的功耗和強大的功能使其特別適合于小型系統[2]。
脈沖分配以及功率驅動操作也可以由相應的芯片實現,本運動控制卡采用了集成這兩種功能的驅動芯片A3977。A3977是Allegro公司生產的單片正弦細分二相步進電機驅動專用芯片,它采用脈寬調制式斬波驅動方式,可以驅動二相步進電機,且電路簡單,工作可靠。該芯片輸出電流可達2.5A,具有整步、半步、1/4細分、1/8細分運行方式可供選擇,滿足一般功率要求下的驅動需求。
1.2硬件系統結構
平臺硬件系統結構如圖1所示 :
圖1.硬件系統結構圖{{分頁}}
(1)通訊及調試接口
在一主多從結構下,每塊運動控制卡作為從站通過RS485總線與主站連接。LPC2132芯片包含2個16C550工業標準的UART,每一路包含16字節的接收和發送FIFO,其中接收器的FIFO觸發點可以設為1,4,8,14字節。在該自動化倉庫的控制系統中,考慮協議規定的每條指令長度而將觸發點設為8字節。上位機指令通過光耦與CPU實現電隔離。
LPC2132支持JTAG(Joint Test Action Group)協議。該協議主要用于芯片內部測試以及對系統進行仿真、調試,通過JTAG接口,可對芯片內部的所有部件進行訪問,因而是開發和調試過程的一種方便高效的手段。卡上保留一個20針的JTAG接口用于調試和燒寫程序[3]。
(2)輸入輸出及采樣接口
系統的輸出量主要包括脈沖的輸出以及相關控制電平,輸入包括對碼盤、接近開關等信號的數字的讀取以及部分位置傳感器中模擬信號的采樣。LPC2132的管腳大多具有一個以上的功能,使用某一功能前必須對管腳連接進行配置。除去調試接口所占用的部分,所余IO口能滿足輸入輸出具體功能的要求。
(3)驅動芯片
運動控制部分的職能在于產生正確的脈沖序列和控制信號,脈沖分配以及功率驅動的功能可以由獨立的驅動器來實現。常用驅動芯片性能比較如表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:常用步進電機驅動芯片比較
AGV上的提升機構電機額定電流為2A,這里采用單片細分及功率驅動芯片A3977。每片A3977驅動一個步進電機運行,卡上設兩片驅動芯片來分別對應兩路輸出脈沖。驅動芯片輸入信號包括公共端,使能控制,細分設置,方向設置和脈沖輸入等,在細分設置確定的情況下,至少需要CPU提供3個I/O口。CPU與驅動芯片間的連接通過光耦實現電隔離。
2. 軟件設計
運動控制卡的軟件系統主要運行以下三個任務:任務一為插補運算;任務二為接收并緩存指令;任務三為提取并執行指令。按任務的重要性和實時性要求,將插補運算設為最高優先級,在1ms中斷中得到執行,其它任務在背景程序中得到執行。軟件系統的具體結構如圖2所示:
圖2.軟件系統結構框圖{{分頁}}
(1)S曲線加減速規劃及插補運算
為了保證系統在啟動或停止時不產生沖擊、失步、超程或振蕩,必須對送到步進電機的進給脈沖頻率進行加減速控制。立體倉庫中某些運動形式負載較大,為保證其良好的動態性能,采用S曲線型無沖擊型加減速處理。
S曲線加減速基本原理就是在加減速時,使加速度的導數Jerk為常數,通過對Jerk值的調整最大限度的減小對機械系統造成的沖擊。用戶設置加速度參數時只需考慮兩個參數,一個是總的加速度時間(TA),一個是S曲線加速時間(TS)。系統根據用戶設置的值對加速度曲線進行分類,首先必須保證TA>0。如果TS=0,則曲線為直線型加減速;如果TS != 0,且TA>TS,則曲線為S曲線與直線混合型加減速;如果TS != 0,且TA<TS,則曲線變成了S曲線加減速。規劃過程需要對速度、加速度等參數進行圓整,從而給出每個階段需要的插補周期數。插補運算過程中間量可以使用浮點數表示,最終結果再取其整數部分[4]。
在接收到運動開始指令后,在背景程序中的指令執行部分即進行對該過程的基本規劃,包括:計算升降速各個階段所需要的插補周期數,Jerk值。插補過程在1ms中斷中完成。在本運動控制卡中,使用匹配輸出的方式來產生脈沖:定時器TC或PWM的值和比較匹配控制值MCR相等的時候發生定時器匹配,匹配后引起相應輸出口電平翻轉。在每一插補周期開始時,即設置好匹配控制值并啟動定時器,即可保證輸出頻率穩定的波形。脈沖正常產生后則開始進行插補運算,計算下一周期的脈沖頻率,并查詢一次UART模塊相關標志位狀態以判斷是否有控制指令。實測得每個插補周期中的規劃及查詢運算量可以在300us內完成,在1ms內完成以上任務可以保證時序不發生錯亂。
(2)指令接收與處理
中斷內檢測到UART模塊接收緩存滿標志時,即通知背景程序對指令進行接收,緩存以及后續處理。可能的指令類型包括:對參數進行修改、查詢等參數處理類型;插補運算的開始,運動開始,急停等運動控制類型。485主站與節點之間定義8位的ASCII字符作為一條指令,包括起始位,地址位,功能代碼位,4位數據段以及停止位。
所有節點在檢測到指令信息時,即從中搜索起始位“:”字符,當檢測到起始字符時,則對下一位(地址位)進行判斷來確定該指令是否發送給本卡,隨后將符合本機地址的指令收入隊列做進一步處理。本運動控制卡中采用了普通指令隊列與優先指令隊列兩個環形隊列的方式。一般情況下,指令進入普通指令隊列末端等候執行,特殊指令,如急停等,將進入優先的隊列以保證立即得到處理。
指令從主設備發往從設備時,功能代碼位將告之從設備需要執行哪些行為,數據位則包含了要執行功能的任何附加信息。運動控制卡需要執行的功能包括讀取輸入的開關狀態,參數修改,發出運動控制指令,作出回應等。對其中每一種功能,在卡上都編程并與某一功能代碼唯一對應。功能代碼位選用一個ASCII字符,可用的代碼有255種,可以滿足使用要求。
3. 應用實例
在本文設計的粉末物料自動化倉庫中,原料置于單獨的儲罐中,每個儲罐底部連接下料機構,下料機構靠兩個旋轉的葉輪來完成功能。在需要某種原料時,AGV移動到相應儲罐下方,下料機構工作,配合AGV上的稱量裝置完成對一種原料的精確計量操作。AGV移動時需要隨時讀取位置傳感器信息,保證定位準確。為了更換儲罐方便,放置儲罐的料架由絲桿來驅動,可以自由升降。為了實現密封、自動清洗等附屬功能,料架上附帶兩種類型的機械手,其中一種操作密封蓋在不需要下料時封閉下料機構的下端出口,另一種攜帶清洗水管,輔助完成料罐的清洗工作。機械手運行時要求精確定位于指定料罐的下方,并要求能對管路上的閥門進行控制。該系統的具體結構參考圖3。
圖3. 立體倉庫結構示意圖{{分頁}}
該粉末物料立體倉庫作為某化工產品柔性生產線的一部分,采用圖4所示的分布式控制系統,并將控制系統分級以減少主機的任務量。RS485主站作為二級主站完成該立體倉庫分系統的控制。所述的運動控制卡作為RS485節點完成某一功能模塊的管理。485主站的指令以廣播的方式向所有下屬節點發出,被接收并地址識別后在節點得到處理。立體倉庫中每一功能模塊,使用單塊運動控制卡可以完成控制需求。
圖4. 控制系統層次
(1)脈沖輸出類任務
最簡單的操作方式為輸出脈沖驅動電機運動,如下料操作。這種工作方式下,主機通過指令設定行程,速度等運動參數,啟動指定節點的插補過程,插補過程啟動以后將不依賴后續指令而運行至設定行程。在產生脈沖的過程中,主機可能向節點周期性發出查詢指令以確定節點當前運動狀態,為后續處理提供依據。
(2)傳感器信息采集類任務
較為復雜的運動方式包括料架的提升以及機械手的操作。此兩類運動的范圍受到機械約束,需要讀取限位開關信號以及碼盤反饋信號以檢測運動狀態,機械手的操作中包含閥門等IO量的控制,位置傳感器輸入信號為模擬量需要采集及轉換。該系統的運行中,絲桿轉速最高為1.5r/s,采用256線的碼盤作為轉動反饋時,產生脈沖頻率為384Hz;機械手工作在更低的轉速范圍內。本控制卡中,將限位開關、碼盤等信號視為I/O量,進行定時采樣來讀取信息;模擬信號被同時采樣并在片上即得到轉換。系統產生的1ms定時中斷同時也作為采樣周期。根據香農定理,1000Hz的采樣頻率足以滿足當前轉速區域內的采樣要求。
自動化倉庫中料罐,下料機構,提升機構等組成多個相對獨立的下料單元,按照規劃這些下料單元不可能同時工作。使用繼電器切換,一塊控制卡即可完成系統中所有同類機構的控制要求。
單個節點對功能的實現中,完成了參數修改及運動控制,數字及模擬信號的采樣和處理等功能,與主機之間采用數字通信,具有智能化的特點。在分布式控制系統中,該運動控制卡還具有鮮明的特點使其適合作為智能節點使用:采用統一的軟件硬件接口形式,簡單的對地址進行編輯后即可互相替換;模擬信號在節點即得到處理,主機與節點之間采用數字通信;不同節點之間完全獨立,單個節點的錯誤不會影響系統其它部分的運行。該系統基本符合基于現場總線的控制系統的開放型、分散性、數字通信的特征,是一種較低成本的實現方式,同時,系統以步進電機為主要控制對象,節點上增加了功率驅動功能,并在軟件開發上優先考慮了運動控制功能的實現。
4. 結論
本文介紹了一種基于ARM微處理器和步進電機專用驅動芯片A3977H的兩軸運動控制卡。在粉末物料自動化倉庫的控制系統中,采用基于現場總線的分布式控制系統中,將其作為智能節點使用,通過RS485總線完成與中央控制系統的通信,并根據接收的指令完成插補過程,脈沖序列的產生,運動狀態的查詢等操作。產生的脈沖序列通過驅動芯片最終驅動步進電機運動。同時,利MCU上的其它資源,可以完成多種輔助信號的采集與處理過程。本運動控制卡結構緊湊,使用方便,在該自動化倉庫的控制系統中發揮了重要的作用。
參考文獻:
1.劉昌祺 自動化立體倉庫設計 北京: 機械工業出版社, 2004
2.吳明暉 基于ARM的嵌入式系統開發與應用 北京:人民郵電出版社 2004
3.楚紅雨 基于ARM的嵌入式通信控制器的設計與應用微計算機信息 2005年16期
4.王恒 基于USB的激光熱處理數控系統研究與開發 中國制造業信息化 2003年5期
評論