| 料斗秤配料系統應用 | 2020-02-16 |
| 摘要:稱重配料系統一種以微處理器Atmega128為核心,由CPU對三路重量信號采樣(A/D轉換)、計算重量、用中文顯示重量及狀態,根據重量對料斗秤起振、停振等進行控制,同時輸出三路4~20mA電流控制信號,且狀態及重量通過RS-232(或RS-485)送PC機,從而取代日本大和CFC100料斗秤控制器。 自動配料系統是適用于卸料機運行過程中的料斗稱量給料、放料控制;料斗秤動態載重傾斜控制;振動給料器起振點設定控制;存余量停振點控制;料位裝載預警、報警點設定控制的裝置。該裝置在日本大和CFC100、CFW技術基礎上,配料系統以Atmega128CPU為核心,具有處理多路稱重信號能力,并針對多路輸入信號實時作出相應的智能動態控制。 CASGOOD公司新推出的AT90系列AVR單片機是很引人注目的一款微處理器。這種芯片基于新的RISC(Reduced Instruction Set Computer)結構,在設計上采用了流水線的結構,在執行前一條指令的時候,同時取出下一條指令,計量配料系統的FLASH以及*的外圍接口能力使它成為目前的單片機之一。 稱重系統采用的高性能微處理器芯片Atmega128,利用結構化、模塊化程序設計的思想,實時地對三路重量信號進行采樣,計算并顯示出各路重量及狀態,根據計算值及狀態作相應的控制,以9600 bps的速率和上位PC機進行串行數據傳輸。 1 硬件設計 1.1 微處理器及其特點 稱重系統Atmega128是ATMEL公司推出的高檔系列產品,配料系統是基于AVRRISC的低功耗CMOS8位單片機。在外部晶振為8MHz時,一條指令的執行時間僅為125ns,這種AVR單片機的結構有利于用C語言編程,從而能高效地開發出目標產品。為了對目標代碼大小進行優化,AVR單片機采用了大型快速存取寄存器文件和快速單周期指令。配料系統通過在一個時鐘周期內執行一條指令,Atmega128可以取得接近1MIPS/MHz的性能。稱量配料系統將32個工作寄存器和豐富的指令集聯結在一起,使所有的工作寄存器都和ALU(ArithmeticLogic Unit,計算機CPU中的算術邏輯單元)直接相連,允許在1個時鐘周期內執行的單條指令同時訪問2個獨立的寄存器。Atmega128具有128K字節的Flash存儲器,4K字節在線可編程EEPROM,4K字節SRAM,外圍有2個全雙工UART串行通訊接口。 1.2 邏輯框圖簡解 1.2.1 DC輸入單元 稱重儀表把DC信號經光偶隔離轉化為TTL電平,送主控單元。 1.2.2模擬輸入單元 A路、B路及CD路信號分別由稱重傳感器信號經前置預處理、信號放大后送主控單元,由主控單元A/D轉換,得到三路采樣的重量信號。 1.2.3人機界面單元 稱重控制系統由8只按健和點陣式顯示屏組成,按健輸入控制的參數及調整量,顯示屏顯示重量信號狀態信息。 1.2.4 DC輸出單元 稱重控制系統由11只控制繼電器組成,分別控制A路偏載、預警、報警,B路偏載、預警、報警,CD路偏載,總量的起振、停振、預警和報警。 1.2.5模擬輸出單元 稱重顯示器由4路D/A輸出,經電流放大,產生4~20mA的電流控制信號,分別代表A路、B路、CD路和總路的重量狀態。 1.2.6串行通信單元</b> 稱重儀表串行通信單元由一個RS-485驅動器和一個RS-232驅動器組成,分別對應主控單元的兩個獨立的UART接口。 1.2.7主控制單元 稱重系統由Atmega128CPU可編程邏輯控制器、實時時鐘電路、黑匣子存儲器和外部看門狗組成。 2 軟件設計 稱重系統軟件部分采用模塊化、結構化程序設計方法,利用C語言編寫。 2.1 初始化 料斗秤設置SP初值;把程序用到的內部RAM區清0;DC輸出繼電器賦初值;串行口0(RS-232)初始化(設置波特率為9600),串行口1(RS-485)初始化(設置波特率為9600,接收狀態);讀EEROM指針(黑匣子數據存儲指針);點陣液晶初始化,顯示初始幅面(顯示儀器型號,生產廠家,聯系電話);實時時鐘(DS1302)初始化;看門狗(X5043)初始化,打開看門狗;中斷初始化,打開中斷。 2.2 輸入/輸出處理: 2.2.1模擬信號采樣(A/D): 料斗秤分別對A路,B路和CD路采樣各64個信號點,根據大數定理,去掉奇異點,剩下的作平滑處理,得到A路采樣值,B路采樣值,CD路采樣值。 2.2.2計算A、B、CD路的重量: A路重量 = A路采樣值 * A路重量系數 - A路皮重 B路重量 = B路采樣值 * B路重量系數 - B路皮重 C路重量 = C路采樣值 * C路重量系數 - C路皮重 總重量 = A路重量+ B路重量 + C路重量 2.2.3模擬輸出控制 A路D/A輸出值= 204*A路重量/ A路重量+51 B路D/A輸出值= 204*B路重量/ B路重量+51 CD路D/A輸出值= 204*CD路重量/ CD路重量+51 總路D/A輸出值= 204*總重量/ 總路重量+51 A路D/A輸出值送D/A通道0,B路D/A輸出值送D/A通道1,CD路D/A輸出值送D/A通道2,總路D/A輸出值送D/A通道3。 2.2.4 DC輸出控制 料斗秤根據A路重量判別是否偏載、安全、預警、報警,對相應的繼電器作出控制,根據B路重量判別是否偏載、安全、預警、報警,對相應的繼電器作出控制,根據CD路重量判別是否偏載、安全、預警、報警,對相應的繼電器作出控制,根據總重量判別是否停振、起振、預警、報警,對相應的繼電器作出控制。在報警狀態作黑匣子數據存儲。 2.2.5黑匣子數據存儲 黑匣子數據存儲在串口EEPROM(24C256)中,每組數據有12個字節組成 由上位機(PC機)串口發讀命令,則黑匣子數據通過串口送PC機,清除命令則清除所有黑匣子數據。 2.3 中文顯示 中文顯示由一組顯示驅動函數據組成: Printstr 8X16 以8*16點陣組成的字符顯示字符串(包括中文) (函數原碼見附錄) Printstr 16X16 以16*16點陣組成的字符顯示字符串(包括中文) Printlong8X16 以8*16點陣組成的字符顯示數字 Printlong16X16 以16*16點陣組成的字符顯示數字 程序中調用以上函數,很方便地把中文字符或數字顯示到顯示屏的任意位置。 2.4 鍵處理函數 2.4.1校0鍵: 對A路、B路、CD路重量信號A/D采樣,乘相應的系數,作為皮重存儲在EEPROM中。 2.4.2設置鍵: 屏幕提示密碼輸入 1) 輸入密碼1 實時時鐘設置,顯示當時時鐘,在光標位置下,修改相應數字,移動光標,保存修正后的時鐘。 2) 輸入密碼2 輸入參數,每一屏顯示一個參數,修改后轉入下一屏顯示下一個參數或退出返回到正常工作狀態。修改的參數依次如下:A路偏載重量、A路預警重量、A路報警重量、B路偏載重量、B路預警重量、B路報警重量、C路偏載重量、總量起振重量、總量停振重量、總量預警重量、總量報警重量、A路重量系數、B路重量系數、CD路重量系數。 2.5串行通信處理 本系統采用被動式查詢通訊,串口接收采用中斷方式,發送采用查詢方式。 串口命令: 2.5.1讀當前數據命令(3字節)見表2當串口收到0AH、41H、0DH命令時,把當前數據(由ASCII碼)傳送上位機 2.5.2讀黑匣子數據命令(3字節)見表4 當串口收到0AH、42H、0DH命令時,把所存儲的黑匣子數據送上位機,傳送數據構成見表5: 注:每組數據格式參數1命令(讀當前數據) | |