料(liào)鬥秤控製係統的研究:
卸料機料鬥稱量測(cè)控儀,是適用於卸料機運行過程中的料鬥稱量給料、放(fàng)料控製;料鬥動態載重傾斜控製;振動給料器起振點設定控製;存餘量停振點控製;料位裝載預警、報(bào)警點設定控製的裝置。該裝置在日本大和CFC100、CFW技術基礎上,以(yǐ)Atmega128CPU為核(hé)心,具有處理多路稱重信號能力,並針對(duì)多路輸入信號實時(shí)作出(chū)相應的智能動態控製。
ATMEL*新推(tuī)出(chū)的AT90係列AVR單片機是很引人(rén)注目的*款微處理器。這種芯片基於新的RISC(ReducedInstructi0nSetC0mputer)結構,在設(shè)計上采(cǎi)用了(le)流水(shuǐ)線(xiàn)的結構,在執行前*條指令的時候,同時取出下*條指令(lìng),它的(de)FLASH以及強大(dà)的外圍接口(kǒu)能力使它成為目前(qián)zui流行的單片機*。
本文采用的*性能微處理器芯片Atmega128,利用結構化、模塊(kuài)化程序設計的思想,實時地(dì)對三路重(chóng)量信號進行采樣,計算並顯示出各路重量及狀態,根據計算值及狀態作相應(yīng)的控製,以9600bps的速率和上位PC機(jī)進行串行(háng)數據傳輸。
1硬件設計
1.1微處理器及其特點
Atmega128是ATMEL*推出的*檔係列產品,是基於AVRRISC的(de)低(dī)功(gōng)耗(hào)CM0S8位單片機。在外部(bù)晶振為8MHz時,*條指(zhǐ)令的執行(háng)時間*為125ns,這種(zhǒng)AVR單片機的結構有利於用C語言編(biān)程,從而能*地開發出目標產(chǎn)品(pǐn)。為了對目標代碼大小進行優化,AVR單片機采用了大型快速存取寄存器文件和快速單周期指令。通(tōng)過在*個時鍾周期(qī)內執(zhí)行*條指令,Atmega128可以取得(dé)接(jiē)近1MIPS/MHz的性能。它將32個(gè)工作寄存器和豐富的(de)指令(lìng)集聯結在*起,使*有的工作寄(jì)存器都和ALU(ArithmeticL0gicUnit,計算機CPU中(zhōng)的(de)算術(shù)邏輯單元)直接相連,允許在1個時鍾周期(qī)內執行的單條指令同時訪問2個獨立的寄存器。Atmega128具有128K字節的Flash存儲(chǔ)器,4K字節在線可編程EEPR0M,4K字節SRAM,外圍有2個全雙工UART串行通訊接口。
1.2.1 DC輸入單元
把DC信號經光偶隔離轉化為TTL電平,送主控單(dān)元。
1.2.2模擬輸入單元(見圖(tú)2)
A路、B路及CD路信號分別(bié)由稱重傳感器信號經前置預處理、信號(hào)放大(dà)後送(sòng)主控單元,由主控單元A/D轉換,得到三(sān)路采樣(yàng)的重量信號。
1.2.3人機(jī)界麵單元
由(yóu)8隻按健和點陣式顯示(shì)屏組成,按健輸入控製的參數及調整量,顯示屏(píng)顯示重量信號狀態信(xìn)息。
1.2.4 DC輸出單元
由11隻控製繼電器組成,分別控(kòng)製A路偏載(zǎi)、預警、報警,B路偏載、預警、報警,CD路偏(piān)載,總量的起振、停振、預警和報警。
1.2.5模擬輸(shū)出單(dān)元
由4路D/A輸出,經電流放大,產(chǎn)生4~20mA的電流控製信號,分(fèn)別代表A路、B路(lù)、CD路和總路的(de)重量狀(zhuàng)態。
1.2.6串行通信單元</b>
串行通信單元由*個(gè)RS-485驅動器和*個RS-232驅動器組成,分別對應主控單元的兩個獨立的UART接口。
1.2.7主控(kòng)製單元
由Atmega128CPU可編程邏輯控製器、實時時鍾電路、黑匣子存儲器和(hé)外(wài)部看門狗組成(見圖3)。
2軟件設計
軟件部分采用模塊化、結構化程序設計(jì)方(fāng)法,利用C語言編寫。軟件流程圖如(rú)圖4*示。
2.1初始化
設置SP初值;把(bǎ)程序用到的內部RAM區清0;DC輸出繼(jì)電器(qì)賦(fù)初值;串行口0(RS-232)初始化(設置波特率為9600),串行(háng)口1(RS-485)初始化(設置波特率為(wéi)9600,接收狀態(tài));讀EER0M指針(zhēn)(黑(hēi)匣子數據存(cún)儲(chǔ)指針);點陣液晶(jīng)初始化,顯示初(chū)始幅麵(miàn)(顯示儀器型號,生產廠家,聯係電話);實時時鍾(DS1302)初始化;看(kàn)門狗(X5043)初始化,打開看門狗;中斷初始化,打開(kāi)中斷。
2.2輸入/輸出(chū)處理:
輸入/輸出處(chù)理軟(ruǎn)件流程圖如圖5*示。
2.2.1模(mó)擬(nǐ)信號采樣(A/D):
分別對A路,B路和CD路采樣各64個信號點,根據大數定理,去掉奇異點,剩下的作平滑處理,得到(dào)A路采樣值,B路采樣值,CD路采(cǎi)樣值。
2.2.2計算(suàn)A、B、CD路的重量:
A路重量=A路采樣值*A路重量係數-A路皮重
B路重量(liàng)=B路采樣值(zhí)*B路重量係數-B路皮重
C路重量=C路采樣值*C路重量係數-C路皮重
總重量=A路重量+B路重量+C路重(chóng)量
2.2.3模擬輸出控製
A路D/A輸出值=204*A路(lù)重量/A路zui大重量+51
B路D/A輸出值=204*B路重量/B路zui大(dà)重量+51
CD路D/A輸出值=204*CD路重量/CD路zui大重量+51
總路D/A輸出值=204*總重(chóng)量/總路zui大重(chóng)量+51
A路D/A輸出值送D/A通道0,B路D/A輸出值送D/A通道1,CD路D/A輸出值送D/A通道(dào)2,總路D/A輸出值送D/A通(tōng)道3。
2.2.4DC輸出控製
根據A路重量判別是否偏載、安全、預警(jǐng)、報警,對相應的繼電器作出控製,根據B路重量判別是否(fǒu)偏載、安全、預警、報警,對相(xiàng)應的繼電器(qì)作出控製,根(gēn)據CD路重量判別是否偏(piān)載(zǎi)、安全、預警(jǐng)、報警,對相應的繼電器作出控製,根據總重量判別是否(fǒu)停振、起振、預警、報警,對相應的(de)繼電器作出(chū)控製。在報警狀態作黑匣子數據存儲。
2.2.5黑匣子數據存儲
黑匣子數據存儲在串口EEPR0M(24C256)中,每組(zǔ)數據有12個字節組成(見表1)
由上位機(PC機(jī))串口發讀命令,則黑匣子數據通過串口送PC機,清除命令則清除*有黑匣子數據。
2.3中(zhōng)文顯示(shì)
中(zhōng)文顯(xiǎn)示由(yóu)*組(zǔ)顯示驅動函數據組成:
Printstr8X16以8*16點陣組成的(de)字符顯示字符串(包括中文)(函數原(yuán)碼見附錄)
Printstr16X16以16*16點陣組成的字符顯示字符串(包括中文)
Printl0ng8X16以8*16點陣組成的字符顯示數字
Printl0ng16X16以16*16點陣組(zǔ)成的字符顯示數字
程序中調用以上函數,很方便地把中文字符或數字顯示到顯示屏的任意位(wèi)置。
2.4鍵處(chù)理函數
2.4.1校0鍵:
對A路(lù)、B路、CD路重量信號A/D采樣,乘相應的係數,作為皮重存儲在EEPR0M中。
2.4.2設置鍵:
屏幕提示密碼輸入
1) 輸入密碼1
實時時鍾設置,顯示當時時鍾,在光標位置下,修改相應數字,移動光標,保存修正後的時鍾。
2) 輸入密(mì)碼2
輸入參數,每*屏(píng)顯示*個(gè)參數(shù),修改後轉入下*屏顯示下(xià)*個(gè)參數或退出(chū)返回(huí)到(dào)正常工作(zuò)狀態。修改(gǎi)的參數依次如下:A路偏載重量、A路預警重量、A路報警重量(liàng)、B路偏載重量、B路(lù)預警重量、B路報警重量、C路偏載(zǎi)重量、總量起振重(chóng)量、總(zǒng)量停振重量、總量預警重量、總量(liàng)報警重量、A路重(chóng)量係數、B路重量係數、CD路重量係數。
2.5串行通信(xìn)處理(lǐ)
本係統采(cǎi)用被動式查詢通訊,串口(kǒu)接收采用中斷方式,發(fā)送采用查詢方式(shì)。
串口命(mìng)令:
當串口收到0AH、41H、0DH命令時,把當前數據(由ASCII碼)傳送上位機,數(shù)據構成(chéng)見表3:
2.5.2讀黑匣子數據命令(3字節)見表4
當串口收到0AH、42H、0DH命(mìng)令(lìng)時,把*存儲的黑匣子數據送上位機,傳送數據構成見表(biǎo)5:
注:每組數據格(gé)式參數1命令(讀(dú)當前數據)
2.5.3清黑匣子數據見表6
當串口(kǒu)收到0AH、43H、0DH命令時,把(bǎ)黑匣子(zǐ)指針指向初始位置,組(zǔ)數據(jù)值清(qīng)0,並向上位機應答。
料鬥秤控製係(xì)統的研究