劉亞梅,劉 靜
(長春工業(yè)大學(xué) 機電工程學(xué)院,長春 130012)
在選礦廠浮選系統(tǒng)中,添加藥劑作為選別有用礦物其中重要的一個手段,起著重要的作用。合理的加藥機制是提高選礦生產(chǎn)能力的重要途徑之一[1]。傳統(tǒng)的加藥方式有兩種,一種是人工手動調(diào)節(jié)開關(guān)閥,以藥劑自流的形式加藥,此種加藥方式需要高藥位平臺,并且加藥量不準確,控制室不能實時監(jiān)控,很難按照確定的最佳藥劑配比添加藥劑,各種藥劑的添加不精確,使浮選產(chǎn)能不能達到最優(yōu)化。另一種加藥方式是利用PLC控制電磁閥調(diào)節(jié)加藥量,電磁閥加藥方式系統(tǒng)結(jié)構(gòu)圖如圖1所示。
圖1 電磁閥式加藥機原理
在圖1中,利用PLC作為控制核心,觸摸屏作為加藥機的人機接口,輸入加藥參數(shù),調(diào)節(jié)加藥量。PLC通過自帶的I/O接口或擴展的I/O模塊控制電磁閥的打開或者斷開,實現(xiàn)自動加藥。電磁閥式加藥機的硬件搭建簡單,程序編寫較容易,通過擴展的I/O模塊可以控制上百個甚至上千個加藥點,擴展方式簡單。但是電磁閥式加藥機的缺點是不能實現(xiàn)連續(xù)加藥,調(diào)節(jié)加藥量是通過打開和關(guān)閉電磁閥的頻率實現(xiàn)的。當加藥量需求大時,電磁閥打開的時間長,甚至是一直在打開狀態(tài);當加藥量需求小時,電磁閥打開的時間短,關(guān)閉的時間長。電磁閥加藥方式無法實現(xiàn)連續(xù)性加藥,不能使藥劑與礦漿均勻溶合。雖然PLC作為工業(yè)級控制器在過程控制領(lǐng)域都具有較成熟的應(yīng)用,但PLC的成本較高,及其附帶的I/O擴展模塊較貴,對于加藥機系統(tǒng)來說,成本較高。因此,本位設(shè)計了的基于蠕動泵的自動加藥機系統(tǒng)。
因此,本文設(shè)計了一種性價比較高的自動加藥機系統(tǒng)。自動加藥機系統(tǒng)基于STM32芯片編寫的modbus協(xié)議,通過串口發(fā)送讀寫指令,利用max485芯片進行多地址信號傳輸,標準modbus協(xié)議中定義的從站地址是一個字節(jié),因此一個串口最多可以控制從站數(shù)量為255,即255個加藥點,通過擴展串口的方式能夠滿足大型甚至超大型選廠的加藥點使用。
自動加藥機系統(tǒng)選擇觸摸屏作為人機交互接口, STM32芯片作為核心控制器,利用串口發(fā)送指令至C8051單片機,C8051單片機控制步進電機驅(qū)動芯片THB6064,THB6064芯片調(diào)節(jié)步進電機的啟動或轉(zhuǎn)速,實現(xiàn)藥劑量調(diào)節(jié)。自動加藥機系統(tǒng)原理圖如圖2所示。
圖2 自動加藥機系統(tǒng)原理圖
自動加藥機的主控制單元選用內(nèi)核是32位的Cortex?-M3 STM32F103ZET6 CPU,最高工作頻率72MHz,單指令運行速度可達14ns[2]。STM32F103ZET6芯片內(nèi)部具有高達64k字節(jié)的SRAM,移植uc/os-II操作系統(tǒng),其生成的hex文件為8k,能夠允許下載大容量的控制程序。
STM32F103ZET6芯片具有13個通信接口,能夠?qū)⒋谛盘柕慕涌谟成渲列酒衅胀ǖ妮斎胼敵鼋涌?,STM32F103ZET6芯片一共具有114個普通的輸入輸出接口。
STM32F103ZET6芯片內(nèi)部具有溫度傳感器,對于系統(tǒng)工作環(huán)境及工作時芯片自熱進行檢測,溫度允許范圍在-40℃至+105℃,同時,供電電壓允許范圍為2.0V~3.6V,滿足超低功耗的設(shè)計要求,能夠在常規(guī)選礦廠條件下使用。
自動加藥機的執(zhí)行單元選擇的是基于步進電機驅(qū)動的蠕動泵。為了使步進電機的控制參數(shù)能與主控制芯片通信,設(shè)計了C8051系列單片機作為步進電機的通信單元,在C8051單片機中編寫modbus RTU從站程序[3],用于接收主控制器STM32發(fā)送的指令。每個步進電機都有一個獨立的地址,STM32芯片的1個串口可以控制255個步進電機的啟動、停止、轉(zhuǎn)速等參數(shù),從而實現(xiàn)了蠕動泵自動加藥可調(diào)。
C8051F410系列單片機器件是完全集成的低功耗混合信號片上系統(tǒng)型MCU,具有高速、流水線結(jié)構(gòu)的8051兼容的微控制器核(可達50MIPS),具有12位200ksps的ADC轉(zhuǎn)換接口,無需外接模數(shù)轉(zhuǎn)換電路。C8051F410單片機具有24個I/O接口,這24個I/O接口都可以映射到模數(shù)轉(zhuǎn)換接口中,即,C8051F410系列單片機最多可以處理24路ADC轉(zhuǎn)換。模擬量采集接口能方便的采集選礦浮選車間的傳感器信號。除此之外,C8051F410系列單片機還具有硬件實現(xiàn)的SMBus/I2C、增強型UART和增強型SPI串行接口,4個通用的16位定時器。
THB6064AH是一種大功率、高細分兩相混合式步進電機驅(qū)動芯片[4]。在THB6064AH芯片內(nèi)部集成了環(huán)形脈沖分配器,因此,無需使用軟件進行脈沖分配。在使能開啟的情況下,控制芯片只需要將控制信號以脈沖的方式發(fā)送至THB6064AH芯片的CLK引腳中,THB6064AH芯片就能夠驅(qū)動步進電機轉(zhuǎn)動,轉(zhuǎn)動的快慢由發(fā)送的脈沖的占空比決定。
自動加藥機系統(tǒng)的電路設(shè)計遵循工業(yè)級、抗干擾的原則,利用Atmel Design軟件繪制電路圖,并利用ISIS 7 Professional 軟件對電路進行仿真,STM32電路圖如圖3所示。
圖3 STM32最小系統(tǒng)電路設(shè)計原理圖
在STM32最小系統(tǒng)電路圖中,利用串口Uart1作為與觸摸屏的通信接口,波特率為115200bps。利用串口Uart2作為控制蠕動泵的指令下發(fā)接口,利用max485芯片將RS232通信標準轉(zhuǎn)換為RS485標準,對多蠕動泵進行尋址。RS485A、RS485B兩個接線端子通過普通雙絞線進行與每個從站地址相連,可以組成星形連接或鏈形連接。從站的電路圖如圖4所示。
圖4 執(zhí)行單元電路設(shè)計原理圖
C8051芯片利用Uart1接收STM32發(fā)送的指令,利用P2口控制步進電機的驅(qū)動芯片THB6064,通過調(diào)節(jié)M1、M2、M3的高低電平,可以設(shè)置8種分頻,從而調(diào)節(jié)了步進電機的轉(zhuǎn)速,結(jié)合CLK信號的占空比調(diào)節(jié),可以使步進電機實現(xiàn)無級調(diào)速。
在ARM芯片中移植uC/OS-Ⅱ操作系統(tǒng),uC/OS-Ⅱ操作系統(tǒng)建立兩個任務(wù),其中一個任務(wù)是實時的檢測觸摸屏的接口指令并向觸摸屏實時發(fā)送加藥點數(shù)及加藥流量;另一個任務(wù)是實時向從站發(fā)送控制指令,實現(xiàn)了實時多任務(wù)運行。
uC/OS-II操作系統(tǒng)是開源嵌入式OS,內(nèi)核簡單清晰,最多可管理64個任務(wù),任務(wù)的優(yōu)先級必須是不同的,每個任務(wù)的執(zhí)行時間具有可確定性,函數(shù)調(diào)用與服務(wù)的執(zhí)行時間具有其可確定性,不依賴于任務(wù)的多少[6]。uC/OS-II操作系統(tǒng)的關(guān)鍵函數(shù)如下所示:
主函數(shù):
int main(void)
{
BSP_Init();//時鐘初始化、硬件初始化函數(shù)
OSInit();//uC/OS-II操作系統(tǒng)初始化函數(shù)
OSTaskCreate(startup_task,(void
*)0,&startup_task_stk[STARTUP_TASK_STK_SIZE-1],STARTUP_TASK_PRIO);
OSStart();//創(chuàng)建第一個任務(wù)(起始函數(shù))
return 0;//返回值
}
主函數(shù)的作用是調(diào)用時鐘初始化函數(shù)、硬件初始化函數(shù)、uC/OS-II操作系統(tǒng)初始化函數(shù)及創(chuàng)建第一個任務(wù)。主函數(shù)只是一個入口函數(shù),一般情況只建立一個起始函數(shù),多任務(wù)時,在起始函數(shù)中再進行創(chuàng)建。
起始函數(shù):
static void startup_task(void *p_arg)
{
OSTaskCreate(touch_task,0,& touch _task_stk[TOUCH _TASK_STK_SIZE-1], TOUCH _TASK_PRIO);
NVIC_PriorityGroupConfig(NVIC_PriorityGroup_1);
NVIC_Configuration();
/*模式 地址 端口 波特率 校驗位*/
eMBInit( MB_RTU, 0, 0, 9600, MB_PAR_NONE);
eMBEnable( ); /* 使能Modbus協(xié)議棧*/
while(1 )
{
( void )eMBPoll( );
}
}
在起始函數(shù)中新建立一個touch_task任務(wù)用于觸摸屏通信檢測,同時構(gòu)建一個while()函數(shù)用于modbus驅(qū)動函數(shù)接收數(shù)據(jù)和發(fā)送指令。eMBInit(MB_RTU, 0, 0, 9600, MB_PAR_NONE);函數(shù)用于構(gòu)造主站和從站,并確定modbus傳輸模式。
觸摸屏選擇的是西門子MP277系列觸摸屏,是Windows CE系統(tǒng),支持WinCC、C++、VB等語言的開發(fā)。本文自動加藥機的觸摸屏采用VB編寫,控制界面如圖5所示。
圖5 觸摸屏控制界面
圖5為VB編寫的觸摸屏控制界面,功能包含加藥流量設(shè)置、加藥方式設(shè)置、歷史計量、打印報表及報警顯示等功能,畫面清晰直觀,調(diào)節(jié)效果較好。
觸摸屏與STM32之間的信號傳輸是基于RS232硬件,傳輸距離小于15米。STM32作為modbus主站與從站的傳輸距離在1200米之內(nèi)。因此根據(jù)選廠要求,將觸摸屏與STM32一起放置在控制室內(nèi),方便值班人員巡視,modbus從站放置在現(xiàn)場。同時,觸摸屏放置在控制室內(nèi),可以方便的與打印機通信,將自動加藥機的歷史記錄生成水晶報表打印,如圖6所示。
圖6 自動加藥機生成報表查詢
利用化學(xué)計量裝置對自動加藥機的流量進行檢測,由于自動加藥機剛開始運行時,輸藥管為空,需要穩(wěn)定運行1分鐘后進行測量,檢測結(jié)果表明流量控制誤差error<0.01ml/min,系統(tǒng)響應(yīng)時間t<0.5s,系統(tǒng)控制精度高,響應(yīng)速度快,滿足浮選車間使用要求。
基于STM32芯片研發(fā)的自動加藥機系統(tǒng)改變了傳統(tǒng)的手動閥門調(diào)節(jié)的加藥方式,同時降低了以PLC為控制核心的加藥機成本,為選礦廠浮選車間節(jié)省了能源,自動加藥機系統(tǒng)控制精度高,響應(yīng)速度快,滿足浮選車間使用要求,提高了浮選效率。同時,系統(tǒng)還具有故障自診斷功能,利用步進電機的工作電流反饋作為檢測蠕動泵是否正常工作的標準,形成閉環(huán)控制,提高了系統(tǒng)可靠性,保證了選礦廠浮選車間浮選加藥能夠長期穩(wěn)定運行。
[1] 張超.基于PLC模糊控制的煤泥水自動加藥系統(tǒng)的研究[D].安徽理工大學(xué).2008.
[2] STM3210E-EVALfirmware,03/2008,http://www.st.com.
[3] 王曉忠,時振偉,王啟宏.MODBUSRTU通訊協(xié)議在STM32F103上的實現(xiàn)[J].機電信息.2010.(36):152-153.
[4] 衡蜓.基于C8051F040單片機的步進電機驅(qū)動控制系統(tǒng)設(shè)計[D].太原科技大學(xué).2011.
[5] 田振東.基于Modbus協(xié)議的礦山供水系統(tǒng)設(shè)計[J].機械管理開發(fā).2014.(4):12-14.
[6] 任哲,潘樹林,房紅征.嵌入式操作系統(tǒng)基礎(chǔ)μC/OS-II和Linux[M].北京:北京航空航天大學(xué)出版社,2006.