基于ARM的給煤機(jī)控制系統(tǒng)的設(shè)計(jì)
引言
本文設(shè)計(jì)的給煤機(jī)控制系統(tǒng)主要用于火力發(fā)電廠的磨煤制粉系統(tǒng)中,它與磨煤機(jī)設(shè)備配合,承擔(dān)向系統(tǒng)定量均勻供煤的任務(wù),是火力發(fā)電廠重要的輔助設(shè)備。這種系統(tǒng)同樣可以應(yīng)用于冶金、化工等部門的散狀物料的計(jì)量輸送系統(tǒng),對(duì)于節(jié)約能源和提高經(jīng)濟(jì)效益及保證安全方面有重大意義。
控制系統(tǒng)硬件的設(shè)計(jì)
該控制系統(tǒng)主要包括稱重傳感器信號(hào)的檢測(cè)、數(shù)字式速度傳感器信號(hào)的檢測(cè)、鍵盤輸入信號(hào)的掃描、液晶顯示屏的顯示,以及一些報(bào)警裝置等。由于本設(shè)計(jì)對(duì)主控制器的要求較高,所以最終采用了samsung公司的基于arm7tdmi-s內(nèi)核的低功耗arm處理器s3c44b0x作為系統(tǒng)的主控制器。
稱重傳感器信號(hào)的采集是影響本系統(tǒng)控制精度的最重要因素之一,本設(shè)計(jì)中將傳感器橋路設(shè)計(jì)成4片應(yīng)變片都受力的形式。同時(shí)由于應(yīng)變片式傳感器的輸出信號(hào)非常小,因而要求橋路的電壓特別穩(wěn)定,所以此系統(tǒng)采用了對(duì)稱型、并有正負(fù)壓自跟蹤性能的電源,如圖1所示。
傳感器的信號(hào)首先經(jīng)過放大、濾波處理,然后送到a/d控制器。s3c44b0x處理器內(nèi)部集成了8路10位的a/d控制器、零比較器和內(nèi)部產(chǎn)生的比較時(shí)鐘信號(hào),支持軟件使能休眠模式,所以可以很精確的測(cè)出傳感器的信號(hào)。并且通過使用該處理器使得本系統(tǒng)不需要再外擴(kuò)a/d轉(zhuǎn)換芯片,從而減少了系統(tǒng)的復(fù)雜性。
速度傳感器檢測(cè)的是皮帶的速度,由于電機(jī)旋轉(zhuǎn)的速度和皮帶的速度一般不同,有一個(gè)比例系數(shù),為了確保準(zhǔn)確性,本設(shè)計(jì)單獨(dú)采用了速度傳感器,速度傳感器的脈沖輸出正比于皮帶速度。通過將皮帶的速度信號(hào)和稱重傳感器的重量信號(hào)送入微處理器進(jìn)行處理,就得到了以噸/小時(shí)為單位的實(shí)際流量。
通過鍵盤輸入所需要的給煤量,將實(shí)際給煤量和所需給煤量進(jìn)行pid運(yùn)算,并把產(chǎn)生的控制信號(hào)用來控制變頻器,進(jìn)而來控制電機(jī)的轉(zhuǎn)速。本系統(tǒng)用的變頻器是西門子的mmv400,將此變頻器設(shè)置為4~20ma的電流控制,由控制器比較用戶指令和現(xiàn)場(chǎng)的狀態(tài)反饋后發(fā)送4~20ma電流至變頻器的模擬量輸入口,然后變頻器將輸入的電流信號(hào)轉(zhuǎn)換為對(duì)應(yīng)的頻率后輸出來控制電機(jī)。其中產(chǎn)生4~20ma電流的電路如圖2所示。
arm處理器的控制數(shù)據(jù)首先經(jīng)過光電隔離送到d/a控制器(tlc5615),轉(zhuǎn)換成0~2v的電壓信號(hào),然后經(jīng)過v/i轉(zhuǎn)換器(ad694)產(chǎn)生4~20ma的電流信號(hào),用來精確的控制電機(jī)的轉(zhuǎn)速。
lcd顯示屏顯示的內(nèi)容包括電機(jī)的轉(zhuǎn)速、所需給煤量、實(shí)際的給煤量,以及皮帶的速度等。s3c44b0x中集成了lcd控制器,可以將顯示緩存中的數(shù)據(jù)傳送到外部的lcd驅(qū)動(dòng)電路中,并可以支持單色、4或16級(jí)灰度的lcd和256級(jí)的彩色lcd。大量的i/o口作為繼電器信號(hào)輸出。并且s3c44b0x還可以通過串口rs-232和上位機(jī)進(jìn)行通信。
控制系統(tǒng)軟件的設(shè)計(jì)
給煤機(jī)控制系統(tǒng)軟件選用嵌入式實(shí)時(shí)多任務(wù)操作系統(tǒng)mc/os-ii。它是一個(gè)源代碼公開、可移植、可固化、可剪裁、占先式的實(shí)時(shí)多任務(wù)操作系統(tǒng)。其絕大部分源代碼是用ansi
c寫的,移植方便,并且運(yùn)行穩(wěn)定可靠。目前,它已經(jīng)在幾十種從8位到64位的微處理器,微控制器上實(shí)現(xiàn)了成功的移植。
mc/os-ii在s3c44b0x上的移植
移植mc/os-ii主要包括:聲明3個(gè)宏(開中斷,關(guān)中斷和任務(wù)切換);設(shè)置堆棧的增長(zhǎng)方向;聲明10個(gè)與編譯器相關(guān)的數(shù)據(jù)類型;用c語(yǔ)言編寫6個(gè)與操作系統(tǒng)有關(guān)的函數(shù)(os-cpu-c.c任務(wù)堆棧初始化和5個(gè)鉤子函數(shù));用匯編語(yǔ)言編寫4個(gè)與處理器相關(guān)的函數(shù)(os-cpu.asm)。
用匯編語(yǔ)言編寫4個(gè)與處理器相關(guān)的函數(shù)如下。
mc/os-ii需要先禁止中斷再訪問代碼的臨界斷,并且在訪問結(jié)束后重新允許中斷, 操作系統(tǒng)是通過os_enter_critical(),os_exit_critical()兩函數(shù)來實(shí)現(xiàn)開中斷和關(guān)中斷的。
在mc/os-ii中,使用os-stk-growth來指定堆棧的增長(zhǎng)方向,0表示從低地址向高地址增長(zhǎng),1則相反。但是所用的ads編譯器僅支持高地址向低地址增長(zhǎng)的方式,所以os-stk-growth應(yīng)設(shè)置為1。
然后用匯編語(yǔ)言編寫4個(gè)與處理器相關(guān)的函數(shù),放到函數(shù)os-cpu.asm中,這就完成了os-cpu.asm文件的移植。上層任務(wù)調(diào)度部分不需要任何改動(dòng)。完成以上工作后,mc/os-ii就可以正常運(yùn)行在s3c44b0x處理器上了。
系統(tǒng)任務(wù)的劃分以及調(diào)度
嵌入式實(shí)時(shí)系統(tǒng)中的任務(wù)不同于前后臺(tái)系統(tǒng)中的子程序模塊,一般,一個(gè)任務(wù)對(duì)應(yīng)于一段獨(dú)立的主程序,它可以調(diào)用子程序,并使用如中斷等各種系統(tǒng)資源。嵌入式系統(tǒng)的任務(wù)劃分,是將系統(tǒng)中所要處理的事情劃分為一個(gè)個(gè)相對(duì)獨(dú)立的任務(wù)模塊,將其按順序建立一個(gè)個(gè)的任務(wù),并且分配不同的優(yōu)先級(jí)。在主程序中,所需要做的是建立這些模塊的任務(wù),然后每次執(zhí)行就緒任務(wù)隊(duì)列中優(yōu)先級(jí)最高的任務(wù)。根據(jù)本控制系統(tǒng)的特點(diǎn),可將任務(wù)劃分如下:鍵盤掃描、傳感器信號(hào)的檢測(cè)、電機(jī)速度減慢、電機(jī)速度變快,以及液晶顯示等任務(wù)。
mc/os-ii的任務(wù)調(diào)度是按優(yōu)先級(jí)進(jìn)行的,所以必須為每個(gè)任務(wù)分配不同的優(yōu)先級(jí),其中0,1,2,3,os_lowest_prio-3, os_lowest_prio-2, os_lowest_prio-1, os_lowest_prio,這幾個(gè)優(yōu)先級(jí)供系統(tǒng)使用,所以必須保留。
根據(jù)每個(gè)任務(wù)的實(shí)時(shí)性要求以及重要程度,分別將以上任務(wù)的優(yōu)先級(jí)分配為:12、6、7、8和13等。任務(wù)優(yōu)先級(jí)號(hào)越低,優(yōu)先級(jí)越高。
當(dāng)給煤機(jī)控制系統(tǒng)啟動(dòng)后,如果啟動(dòng)一切正常,則進(jìn)行送煤任務(wù),運(yùn)行時(shí),如果傳感器信號(hào)檢測(cè)到給煤量偏多,則發(fā)送信號(hào)給電機(jī)減慢的任務(wù),反之,就發(fā)送信號(hào)給電機(jī)加速任務(wù)。此外,當(dāng)有一些故障、危險(xiǎn)出現(xiàn)時(shí),則發(fā)送信號(hào)給停機(jī)任務(wù)。總之,在控制系統(tǒng)中,信號(hào)、消息不斷傳遞,使得各任務(wù)不斷切換運(yùn)行,從而整個(gè)系統(tǒng)得以正常的連續(xù)的工作。
結(jié)語(yǔ)
本文在介紹了給煤機(jī)結(jié)構(gòu)的基礎(chǔ)上,介紹了其控制系統(tǒng)的硬件原理以及軟件設(shè)計(jì),經(jīng)多次現(xiàn)場(chǎng)調(diào)試運(yùn)行,本控制系統(tǒng)能很好的完成電廠的給煤任務(wù)。
評(píng)論