盧光云 梁偉鄯
(廣西科技大學(xué) 鹿山學(xué)院,柳州 545616)
自動化立體倉庫在工廠自動化和彈性制造系統(tǒng)以及電腦整合制造系統(tǒng)的物流系統(tǒng)中占據(jù)非常重要的位置。其目的不僅是存儲物料、零件、半成品和成品,更是密切配合制造工廠的產(chǎn)銷計劃與物料需求計劃,妥善安排生產(chǎn)所需合理數(shù)量的物料、零件,并盡量縮短其庫存時間,避免發(fā)生缺料、滯料,利用高架搬運(yùn)車、輸送機(jī)、無人搬運(yùn)車等,保管產(chǎn)成品并正確出貨,提高服務(wù)水平,整合了計劃、庫存、生產(chǎn)、出入物流的功能與管理,降低生產(chǎn)成本。
本自動化立體倉庫主要利用人機(jī)交互控制系統(tǒng),當(dāng)顧客在觸摸屏上選中相應(yīng)物品及向投幣器里投幣后,投幣器上的指示燈點亮,再將指令傳送給STM32芯片,由STM32芯片接收投幣器傳遞來的指令,驅(qū)動相應(yīng)物品的電機(jī),使其帶動傳送帶工作,進(jìn)而使物品能及時地輸送出來。
系統(tǒng)的硬件平臺以主控芯片STM32F103C8T6為核心,再配備貨物選擇模塊、電機(jī)驅(qū)動模塊、信息反饋接口等模塊,它們共同組成了自動倉庫的控制部分,該部分為整個倉庫的核心部件,主要實現(xiàn)自動倉庫的功能。系統(tǒng)的硬件平臺整體架構(gòu)如圖1所示。
圖1 硬件平臺整體架構(gòu)
系統(tǒng)的機(jī)械結(jié)構(gòu)主要包括鋼架、貨物巢、傳送帶、貨物巢邊上的擋塊和電機(jī)。
根據(jù)需求,貨架可以分為三層結(jié)構(gòu),每層都是可進(jìn)可出的,因為這樣可以推出來,方便人工放入物品,縮短補(bǔ)給物品的時間,提高效率,當(dāng)物品缺量的時候可以及時補(bǔ)給。但是也有一個缺點,由于內(nèi)存空間較小,所以儲存物品的數(shù)量少,物品很快就會出完,因此每隔一段時間就需對物品進(jìn)行一次補(bǔ)給。
倉庫的每條貨物巢都有兩個滑輪,方便將傳送帶安裝在滑輪上,將一個滑輪固定在電機(jī)的旋轉(zhuǎn)軸上,使其跟隨電機(jī)轉(zhuǎn)動,另一個則固定在貨物架的邊緣上。最重要的是,一定要將兩個滑輪保持在同一平面上,否則物品在貨物巢會往下滑落。另外,傳送帶與滑落的接觸端有一個小小的螺絲釘,其作用就是能使傳送帶很好地固定在滑輪上,不會脫落,起到固定的作用。
每個貨物巢都是由相鄰的擋塊、傳送帶組成的,每個貨物巢的寬度由物品的大小而定,可以使物品剛好能從貨物巢里出庫。傳送帶上也有一個護(hù)欄,主要作用是當(dāng)物品出庫時,帶動物品,可以使物品不會卡在貨物巢里。物品出庫是按顧客的訂單出庫,顧客選擇了多少物品,自動倉庫就會出來多少,而不是由系統(tǒng)倉庫自己選擇哪路物品出來。
系統(tǒng)軟件部分的設(shè)計流程如圖2所示。
圖2 軟件設(shè)計流程
在自動化立體倉庫中,系統(tǒng)軟件是整個控制系統(tǒng)的核心部件,下面就分別對各模塊的程序作出說明。4.2.1 系統(tǒng)的主函數(shù)部分
#include “includes.h”
int main(void)
{SystemInit();//內(nèi)核初始化
delay_init();//延時函數(shù)初始化
Init_GpioPort();//控制端口初始化
USART1_Init();//串口初始化
while(1)
{slave_forbackmaste_parsecommand();//等待訂單信息,并解析訂單信息}}
4.2.2 信息接收接口指令信號
在這個部分中,信息反饋接口是實現(xiàn)程序運(yùn)行成功的重要通道,通過從主控芯片STM32F103C8T6接收來的信息,反饋給電機(jī),從而使電機(jī)動作,以下是信息反饋接口的相關(guān)程序。
//--貨物反饋函數(shù)
void bck_boxs_statse(unsigned char *cmd_tep,unsigned char max_boxs)
{unsigned char i;
for(i=0; i {switch(i/8) {case 0: {GPIO_SetBits(Sensor_ContorPort[0].GPIOx,Sensor_ContorPort[0].GPIO_Pin); GPIO_ResetBits(Sensor_ContorPort[1].GPIOx,Sensor_ContorPort[1].GPIO_Pin); //讀取柜子開關(guān)狀態(tài) if(GPIO_ReadInputDataBit(Sensor_InputPort[i].GPIOx, Sensor_InputPort[i].GPIO_Pin) == 0) *cmd_tep++=0x01; else *cmd_tep++=0x00; }break; case 1: {GPIO_SetBits(Sensor_ContorPort[1].GPIOx,Sensor_ContorPort[1].GPIO_Pin); GPIO_ResetBits(Sensor_ContorPort[0].GPIOx,Sensor_ContorPort[0].GPIO_Pin); //讀取柜子開關(guān)狀態(tài) i f(G P I O_R e a d I n p u t D a t a B i t(S e n s o r_InputPort[i-8].GPIOx, Sensor_InputPort[i-8].GPIO_Pin)==0) *cmd_tep++=0x01; else *cmd_tep++=0x00; }break; default: break;}} GPIO_SetBits(Sensor_ContorPort[0].GPIOx, Sensor_ContorPort[0].GPIO_Pin); GPIO_SetBits(Sensor_ContorPort[1].GPIOx, Sensor_ContorPort[1].GPIO_Pin);} 4.2.3 信息接收指令解析程序 //--對那個柜門發(fā)送開門指令 void master_cmd_openbox_slave(unsigned int box_num) { //指令頭 *(sencmd_temp+cmdhead_startposit)=open_box; //清柜子狀態(tài) Buffercls(sencmd_temp+subboxstates_startposit,0x00, subbox_states); //開門指令 Buffercls(sencmd_temp+subboxstates_startposit+box_num, 0x01, 1); //返回確認(rèn)指令 sencmd_temp[command_length-2]=0x00; sencmd_temp[command_length-3]=0x00; //校驗值 sencmd_temp[command_length-1]=Checksum_Value(sencmd_temp, command_length-1); //串口2發(fā)送出去 USART1_Send_Len_Str(sencmd_temp, command_length); } [1]李希霖,田國會,林家恒.自動化技術(shù)在倉儲領(lǐng)域中的應(yīng)用與展望[J].基礎(chǔ)自動化,1994,(2):5-7. [2]熊肖磊,趙炯,周奇才.自動化立體倉庫管理與控制系統(tǒng)的實現(xiàn)[J].制造業(yè)自動化,2002,(4):16-19. [3]劉昌祺,董良.自動化立體倉庫設(shè)計[M].北京:機(jī)械工業(yè)出版社,2004. [4]張曉川.現(xiàn)代倉儲物流技術(shù)與裝備[M].北京:化學(xué)工業(yè)出版社,2003. [5]師向麗,白尚旺,譚瑛,等.自動化立體倉庫中作業(yè)調(diào)度的研究[J].物流技術(shù),2004,(3):29-32.