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