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