?

基于modbus協議的自動加藥機系統開發

2015-09-13 11:54劉亞梅
制造業自動化 2015年21期
關鍵詞:機系統觸摸屏串口

劉亞梅,劉 靜

(長春工業大學 機電工程學院,長春 130012)

0 引言

在選礦廠浮選系統中,添加藥劑作為選別有用礦物其中重要的一個手段,起著重要的作用。合理的加藥機制是提高選礦生產能力的重要途徑之一[1]。傳統的加藥方式有兩種,一種是人工手動調節開關閥,以藥劑自流的形式加藥,此種加藥方式需要高藥位平臺,并且加藥量不準確,控制室不能實時監控,很難按照確定的最佳藥劑配比添加藥劑,各種藥劑的添加不精確,使浮選產能不能達到最優化。另一種加藥方式是利用PLC控制電磁閥調節加藥量,電磁閥加藥方式系統結構圖如圖1所示。

圖1 電磁閥式加藥機原理

在圖1中,利用PLC作為控制核心,觸摸屏作為加藥機的人機接口,輸入加藥參數,調節加藥量。PLC通過自帶的I/O接口或擴展的I/O模塊控制電磁閥的打開或者斷開,實現自動加藥。電磁閥式加藥機的硬件搭建簡單,程序編寫較容易,通過擴展的I/O模塊可以控制上百個甚至上千個加藥點,擴展方式簡單。但是電磁閥式加藥機的缺點是不能實現連續加藥,調節加藥量是通過打開和關閉電磁閥的頻率實現的。當加藥量需求大時,電磁閥打開的時間長,甚至是一直在打開狀態;當加藥量需求小時,電磁閥打開的時間短,關閉的時間長。電磁閥加藥方式無法實現連續性加藥,不能使藥劑與礦漿均勻溶合。雖然PLC作為工業級控制器在過程控制領域都具有較成熟的應用,但PLC的成本較高,及其附帶的I/O擴展模塊較貴,對于加藥機系統來說,成本較高。因此,本位設計了的基于蠕動泵的自動加藥機系統。

因此,本文設計了一種性價比較高的自動加藥機系統。自動加藥機系統基于STM32芯片編寫的modbus協議,通過串口發送讀寫指令,利用max485芯片進行多地址信號傳輸,標準modbus協議中定義的從站地址是一個字節,因此一個串口最多可以控制從站數量為255,即255個加藥點,通過擴展串口的方式能夠滿足大型甚至超大型選廠的加藥點使用。

1 系統組成與工作原理

自動加藥機系統選擇觸摸屏作為人機交互接口, STM32芯片作為核心控制器,利用串口發送指令至C8051單片機,C8051單片機控制步進電機驅動芯片THB6064,THB6064芯片調節步進電機的啟動或轉速,實現藥劑量調節。自動加藥機系統原理圖如圖2所示。

圖2 自動加藥機系統原理圖

1.1 主控制單元設計

自動加藥機的主控制單元選用內核是32位的Cortex?-M3 STM32F103ZET6 CPU,最高工作頻率72MHz,單指令運行速度可達14ns[2]。STM32F103ZET6芯片內部具有高達64k字節的SRAM,移植uc/os-II操作系統,其生成的hex文件為8k,能夠允許下載大容量的控制程序。

STM32F103ZET6芯片具有13個通信接口,能夠將串口信號的接口映射至芯片中普通的輸入輸出接口,STM32F103ZET6芯片一共具有114個普通的輸入輸出接口。

STM32F103ZET6芯片內部具有溫度傳感器,對于系統工作環境及工作時芯片自熱進行檢測,溫度允許范圍在-40℃至+105℃,同時,供電電壓允許范圍為2.0V~3.6V,滿足超低功耗的設計要求,能夠在常規選礦廠條件下使用。

1.2 執行單元設計

自動加藥機的執行單元選擇的是基于步進電機驅動的蠕動泵。為了使步進電機的控制參數能與主控制芯片通信,設計了C8051系列單片機作為步進電機的通信單元,在C8051單片機中編寫modbus RTU從站程序[3],用于接收主控制器STM32發送的指令。每個步進電機都有一個獨立的地址,STM32芯片的1個串口可以控制255個步進電機的啟動、停止、轉速等參數,從而實現了蠕動泵自動加藥可調。

C8051F410系列單片機器件是完全集成的低功耗混合信號片上系統型MCU,具有高速、流水線結構的8051兼容的微控制器核(可達50MIPS),具有12位200ksps的ADC轉換接口,無需外接模數轉換電路。C8051F410單片機具有24個I/O接口,這24個I/O接口都可以映射到模數轉換接口中,即,C8051F410系列單片機最多可以處理24路ADC轉換。模擬量采集接口能方便的采集選礦浮選車間的傳感器信號。除此之外,C8051F410系列單片機還具有硬件實現的SMBus/I2C、增強型UART和增強型SPI串行接口,4個通用的16位定時器。

THB6064AH是一種大功率、高細分兩相混合式步進電機驅動芯片[4]。在THB6064AH芯片內部集成了環形脈沖分配器,因此,無需使用軟件進行脈沖分配。在使能開啟的情況下,控制芯片只需要將控制信號以脈沖的方式發送至THB6064AH芯片的CLK引腳中,THB6064AH芯片就能夠驅動步進電機轉動,轉動的快慢由發送的脈沖的占空比決定。

2 硬件設計

自動加藥機系統的電路設計遵循工業級、抗干擾的原則,利用Atmel Design軟件繪制電路圖,并利用ISIS 7 Professional 軟件對電路進行仿真,STM32電路圖如圖3所示。

圖3 STM32最小系統電路設計原理圖

在STM32最小系統電路圖中,利用串口Uart1作為與觸摸屏的通信接口,波特率為115200bps。利用串口Uart2作為控制蠕動泵的指令下發接口,利用max485芯片將RS232通信標準轉換為RS485標準,對多蠕動泵進行尋址。RS485A、RS485B兩個接線端子通過普通雙絞線進行與每個從站地址相連,可以組成星形連接或鏈形連接。從站的電路圖如圖4所示。

圖4 執行單元電路設計原理圖

C8051芯片利用Uart1接收STM32發送的指令,利用P2口控制步進電機的驅動芯片THB6064,通過調節M1、M2、M3的高低電平,可以設置8種分頻,從而調節了步進電機的轉速,結合CLK信號的占空比調節,可以使步進電機實現無級調速。

3 軟件設計

在ARM芯片中移植uC/OS-Ⅱ操作系統,uC/OS-Ⅱ操作系統建立兩個任務,其中一個任務是實時的檢測觸摸屏的接口指令并向觸摸屏實時發送加藥點數及加藥流量;另一個任務是實時向從站發送控制指令,實現了實時多任務運行。

uC/OS-II操作系統是開源嵌入式OS,內核簡單清晰,最多可管理64個任務,任務的優先級必須是不同的,每個任務的執行時間具有可確定性,函數調用與服務的執行時間具有其可確定性,不依賴于任務的多少[6]。uC/OS-II操作系統的關鍵函數如下所示:

主函數:

int main(void)

{

BSP_Init();//時鐘初始化、硬件初始化函數

OSInit();//uC/OS-II操作系統初始化函數

OSTaskCreate(startup_task,(void

*)0,&startup_task_stk[STARTUP_TASK_STK_SIZE-1],STARTUP_TASK_PRIO);

OSStart();//創建第一個任務(起始函數)

return 0;//返回值

}

主函數的作用是調用時鐘初始化函數、硬件初始化函數、uC/OS-II操作系統初始化函數及創建第一個任務。主函數只是一個入口函數,一般情況只建立一個起始函數,多任務時,在起始函數中再進行創建。

起始函數:

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協議棧*/

while(1 )

{

( void )eMBPoll( );

}

}

在起始函數中新建立一個touch_task任務用于觸摸屏通信檢測,同時構建一個while()函數用于modbus驅動函數接收數據和發送指令。eMBInit(MB_RTU, 0, 0, 9600, MB_PAR_NONE);函數用于構造主站和從站,并確定modbus傳輸模式。

觸摸屏選擇的是西門子MP277系列觸摸屏,是Windows CE系統,支持WinCC、C++、VB等語言的開發。本文自動加藥機的觸摸屏采用VB編寫,控制界面如圖5所示。

圖5 觸摸屏控制界面

圖5為VB編寫的觸摸屏控制界面,功能包含加藥流量設置、加藥方式設置、歷史計量、打印報表及報警顯示等功能,畫面清晰直觀,調節效果較好。

4 報表查詢

觸摸屏與STM32之間的信號傳輸是基于RS232硬件,傳輸距離小于15米。STM32作為modbus主站與從站的傳輸距離在1200米之內。因此根據選廠要求,將觸摸屏與STM32一起放置在控制室內,方便值班人員巡視,modbus從站放置在現場。同時,觸摸屏放置在控制室內,可以方便的與打印機通信,將自動加藥機的歷史記錄生成水晶報表打印,如圖6所示。

圖6 自動加藥機生成報表查詢

利用化學計量裝置對自動加藥機的流量進行檢測,由于自動加藥機剛開始運行時,輸藥管為空,需要穩定運行1分鐘后進行測量,檢測結果表明流量控制誤差error<0.01ml/min,系統響應時間t<0.5s,系統控制精度高,響應速度快,滿足浮選車間使用要求。

5 結論

基于STM32芯片研發的自動加藥機系統改變了傳統的手動閥門調節的加藥方式,同時降低了以PLC為控制核心的加藥機成本,為選礦廠浮選車間節省了能源,自動加藥機系統控制精度高,響應速度快,滿足浮選車間使用要求,提高了浮選效率。同時,系統還具有故障自診斷功能,利用步進電機的工作電流反饋作為檢測蠕動泵是否正常工作的標準,形成閉環控制,提高了系統可靠性,保證了選礦廠浮選車間浮選加藥能夠長期穩定運行。

[1] 張超.基于PLC模糊控制的煤泥水自動加藥系統的研究[D].安徽理工大學.2008.

[2] STM3210E-EVALfirmware,03/2008,http://www.st.com.

[3] 王曉忠,時振偉,王啟宏.MODBUSRTU通訊協議在STM32F103上的實現[J].機電信息.2010.(36):152-153.

[4] 衡蜓.基于C8051F040單片機的步進電機驅動控制系統設計[D].太原科技大學.2011.

[5] 田振東.基于Modbus協議的礦山供水系統設計[J].機械管理開發.2014.(4):12-14.

[6] 任哲,潘樹林,房紅征.嵌入式操作系統基礎μC/OS-II和Linux[M].北京:北京航空航天大學出版社,2006.

猜你喜歡
機系統觸摸屏串口
基于NPORT的地面綜合氣象觀測系統通信測試方法及故障處理
淺談AB PLC串口跟RFID傳感器的通訊應用
基于EM9000工控板高性能雙串口通信模型設計與實現
PLC和觸摸屏在衛生間控制系統的應用
手持式觸摸測試機對閘機系統的維護研究
淺析投射式多點觸控電容觸摸屏
車機≈手機 ?
皮膚“長”出觸摸屏
船舶電子設備串口數據的軟件共享方法
京石高速公路自助發卡機系統的設計與應用
91香蕉高清国产线观看免费-97夜夜澡人人爽人人喊a-99久久久无码国产精品9-国产亚洲日韩欧美综合