遼寧建筑職業(yè)學院,遼寧遼陽 111000
工農(nóng)業(yè)生產(chǎn)中,經(jīng)常需要對固體狀料面(如水泥、煤炭、化工、冶金、飼料、糧食等各種粉狀、塊狀、顆粒狀原料)的高度進行在線測量與控制,及時準確地測知物料高度對于生產(chǎn)管理、維持工廠安全高效運行具有重要意義。重錘料位計是一直用于監(jiān)測料斗、筒倉和其他類型容器內粉末、顆粒料位高度的傳感器。
重錘式智能料位儀主要由執(zhí)行機構和智能控制兩部分組成[1]。傳統(tǒng)重錘料位計使用四位數(shù)碼管顯示料位高度數(shù)值,配合LED光條顯示料位高度相對于料倉高度的比值,人機接口單一,顯示界面不友好,可設置功能有限,幾乎不提供菜單,使用過程很不方便。此外,傳統(tǒng)重錘料位計對兩個嚴重故障“丟錘”和“埋錘”不提供檢測,為安全運行留下了隱患。針對傳統(tǒng)儀表的諸多弊端,采用系統(tǒng)狀態(tài)機和事件驅動的思想,重新設計固件程序,同時將顯示界面更換為LCM12864,通過液晶屏可以提供豐富多彩的顯示信息,多層級的菜單設置等功能,對重錘料位儀表的功能和產(chǎn)品設計取得了質的飛躍。
重錘料位計由一次側傳感設備(以下稱一次儀表)和二次側控制儀表(以下稱二次儀表)構成。一次儀表主要由可逆電機、減速器、靈敏杠桿、行程開關和霍爾開關、滑輪(內嵌永磁體)、重錘和鋼絲繩等組成。一次儀表安裝在料倉頂部,由二次儀表對其傳感器信號進行檢測并對其電機施加控制。
重錘料位計的探測過程是:二次儀表發(fā)出啟動測量信號,給出電動機正轉信號,經(jīng)減速機帶動長齒輪和滑動繞線齒輪從倉頂開始放繩,測量單元的單片機同時記錄磁信號編碼器的轉數(shù)脈沖信號經(jīng)減速后帶動繞線筒轉動[2]。當重錘降至料面時被料面托起而失重,鋼絲繩松馳,靈敏杠桿動作使微動開關接觸,二次儀表得到該信號立即發(fā)出電機反轉命令,重錘上升返回,直到重錘上升到接近原點處,觸發(fā)霍爾開關,電機停轉,重錘回到倉頂原點位置,完成一次探測過程。
料位高度的計算原理參見圖1,公式如下:
其中,H料—料位高度;
H倉—料倉高度;
S—重錘行程;
H安—安裝高度;
H空—空高距離。
圖中a通常不會超過10cm,而待測料位高度通常幾米甚至十幾米,所以a可以忽略不計。此外倉庫底高度也可以忽略不計。
在此測量過程中,重錘下放過程會通過鋼絲繩帶動一次儀表繞線軸轉動,繞線軸鑲嵌有永磁體,會觸發(fā)霍爾元件產(chǎn)生脈沖序列,二次儀表通過檢測此脈沖序列個數(shù)計算出重錘從倉底到料面間的距離,經(jīng)過上面公式的轉換計算出料位高度,在液晶屏上顯示,并在后面板端子上輸出與料位高度對應的標準電流信號。
重錘料位儀由重錘、牽引鋼繩、驅動電機、控制驅動箱、開關與脈沖發(fā)生器以及儀表箱等部件組成[3]。儀表微處理器采用了51內核單片機(STC89C58),由程序控制傳感器的整個探測過程的動作,并檢測其信號進行計算,在面板上通過12864液晶屏顯示料位高度數(shù)值和空高距離數(shù)值,以光柱形式顯示高度比例,并有相應的4mA~20mA模擬電流信號輸出,測量可定時自動進行,也可手動測量。
(1)單片機信號采集和處理模塊
單片機信號采集和處理模塊主要完成對一次儀表所有傳感器信號的采集和處理,并控制電機的運行和停止,驅動液晶屏顯示等。微控制器芯片采用STC89C58單片機,其內部程序存儲器(Flash)可達32K,E2PROM達29K,內置看門狗電路,可以滿足項目設計要求。
(2)顯示電路
傳統(tǒng)料位儀表主要是以數(shù)碼管提供顯示功能,顯示內容受限制。本儀表采用LCM12864液晶屏模組作為顯示器,以點陣式取模為主要驅動方式,不僅可以顯示字符、數(shù)字,還可以顯示各種圖形、曲線及漢字,并且可以實現(xiàn)屏幕上下左右滾動,動畫功能,分區(qū)開窗口,反轉,閃爍等功能,能夠支持多級菜單的設計和復雜控制功能的顯示。
(3)控制策略
如何通過一次儀表內的放錘到位行程開關和收錘到位霍爾開關這僅有的兩個位置傳感器信號,判斷重錘是否出現(xiàn)丟錘、埋錘等故障狀態(tài),是對控制策略和程序設計的一個挑戰(zhàn)。通過設計有限狀態(tài)機(FSM)程序,解決了對重錘運行過程中可能出現(xiàn)的故障狀態(tài)的監(jiān)測、判斷和處理過程。
(4)界面設計和多級菜單
為了提供良好的用戶體驗,在主界面中設計了動畫、圖標、公司LOGO、漢字、數(shù)字、光標等元素;菜單設計借鑒以人為本的設計理念,以多級菜單展現(xiàn)儀表提供的諸多功能,操作方便,簡單易用,使用者甚至可以在不看說明書的情況下直接完成儀表的設置和測量工作。
系統(tǒng)軟件的設計主要包括主程序流程、初始化程序、硬件設備的驅動程序,信號檢測程序、系統(tǒng)狀態(tài)機程序等子程序模塊,采用C語言進行編程,下面依次介紹各主要子程序模塊的功能和流程。
主程序工作過程:初始化-檢測按鍵-啟動系統(tǒng)狀態(tài)機,流程如圖4所示。
系統(tǒng)上電后即進入初始化程序,主要包括:液晶屏的初始化、重錘狀態(tài)檢測、E2PROM初始化、DAC及標準電流輸出、繪制主界面和建立系統(tǒng)狀態(tài)機。初始化流程如圖5所示。
液晶屏的初始化:主要完成12864的復位和清屏操作。
重錘狀態(tài)檢測:是指儀表上電后應檢測重錘是否在位,如果發(fā)現(xiàn)丟錘,應進入丟錘故障狀態(tài),禁用手自動測量功能,同時給出報警信息,提示操作人員排除故障。檢測策略為:如果剛上電(還未啟動測量)即檢測到放錘到位信號,意味著鋼絲繩松弛,即可判斷為丟錘。
E2PROM初始化:用來讀取重要配置和參數(shù),例如重錘料位計的安裝高度、料倉高度、手自動測量模式、自動測量的定時時間間隔、高位報警值、低位報警值、開機顯示上一次最后測量值、管理員密碼、以及一些狀態(tài)信息標識位。設計中采用了STC89C58片內E2PROM空間。
DAC和標準電流初始化:指讀取并顯示上一次通電最后一次測量值,同時標準電流給出對應輸出信號。程序從E2PROM中讀取到上一次斷電前最后一次料位測量結果,通過料位高度值和料倉高度比例關系換算出對應的0~255之間的二進制數(shù)據(jù),驅動4mA~20mA標準電流模塊。
繪制主界面:儀表面板主要由一塊液晶屏、四個按鍵和兩個LED組成,系統(tǒng)開機后將顯示公司LOGO及公司名稱2s,待開機進度條跑完,則繪制圖6所示主界面。該主界面左側以柱狀圖形式直觀顯示當前料位高度及料倉高度關系,中間顯示料位高度值和空高距離(以米為單位),下邊則分別顯示標準電流值、系統(tǒng)工作狀態(tài)和手自動模式狀態(tài)。
建立系統(tǒng)狀態(tài)機:系統(tǒng)狀態(tài)機是儀表工作的有限狀態(tài)子集集合以及狀態(tài)之間的觸發(fā)和轉換條件,也稱有限狀態(tài)機(Finite-state machine,F(xiàn)SM)。本部分所占篇幅較長,將在下文詳細論述。
有限狀態(tài)機又稱有限狀態(tài)自動機,是表示有限個狀態(tài)以及在這些狀態(tài)之間的轉移和動作等行為的抽象模型,有限狀態(tài)機的輸出取決于當前狀態(tài)和當前輸入。在重錘料位計二次儀表設計中,可驅動狀態(tài)機切換的事件有按鍵和各傳感器信號,以及它們之間的不同組合形式??沙橄蟪鰜淼闹饕獱顟B(tài)有:IDLE狀態(tài)、開始測量狀態(tài)、一級子菜單等待設置狀態(tài)、二級子菜單等待設置狀態(tài)、高低位報警狀態(tài)、丟錘故障狀態(tài)、埋錘故障狀態(tài)。
比如,儀表上電初始化后即進入IDLE狀態(tài),此時顯示系統(tǒng)主界面。在IDLE狀態(tài)可相應按鍵事件,進行手動測量從而進入測量狀態(tài),或者進入一級子菜單設置狀態(tài)。在測量狀態(tài),如果測量過程順利完成,則回到IDLE狀態(tài),并更新數(shù)據(jù)顯示;如果測量結果超過上下限報警范圍,則進入高低位報警狀態(tài),顯示報警信息;如果測量過程中出現(xiàn)丟錘、埋錘事件,則進入故障報警狀態(tài),在此狀態(tài)下測量功能將被禁用。系統(tǒng)狀態(tài)機如圖7所示。
當儀表處于IDLE狀態(tài),即顯示主界面狀態(tài),可通過手動按鍵或者自動測量進入測量狀態(tài)。啟動測量后,程序將開啟放錘到位中斷,然后驅動電機正轉放錘,同時液晶屏顯示“測量中……”;此時如果收到放錘到位中斷信號,即刻停止電機,程序根據(jù)接收到的脈沖步長信號個數(shù),計算出重錘下放行程,再根據(jù)安裝高度、料倉高度等參數(shù),計算出料位高度,并更新顯示。然后開啟收錘到位中斷,進入收錘狀態(tài),驅動電機反轉收錘。在收錘過程中,仍然需要檢測脈沖信號,以判斷是否發(fā)生埋錘;在收錘過程中仍然要保持放錘到位中斷開啟,以判斷是否發(fā)生丟錘。如果沒有故障發(fā)生,在收到收錘到位中斷信號后,停止電機,完成本次測量,系統(tǒng)回到IDLE狀態(tài)。測量過程流程如圖8所示。
丟錘和埋錘是重錘料位計比較常見的嚴重故障狀態(tài),如何根據(jù)有限的傳感器信號,判斷丟錘與埋錘故障,是系統(tǒng)軟件策略設計的一個難點。
(1)丟錘故障的判定
根據(jù)已有的一次側設備,只有放錘到位行程開關和收錘到位霍爾開關兩個傳感器信號用來標識重錘位置。其中放錘到位行程開關的動作,依靠放錘到底后,重錘所連接鋼絲繩即變松弛,引起行程開關動作從而發(fā)出信號。據(jù)此可推知,在收錘過程中,在未收到霍爾開關信號前,如果檢測到放錘到位行程開關信號,即意味著收錘過程中鋼絲繩忽然松弛,可判定為丟錘故障。
(2)埋錘故障的判定
在正常的收錘過程中,當單片機給出收錘信號,電動機即開始反轉收錘,這時通過鋼絲繩纏繞的滑輪(滑輪內嵌有永磁體,配合霍爾開關)可檢測到脈沖信號。根據(jù)這個原理,如果在啟動收錘過程后一定時間內檢測不到脈沖信號,意味著重錘未被收回,應進入埋錘故障狀態(tài)。在此狀態(tài)下應使電動機停車,避免電動機過熱燒毀。
本文針對傳統(tǒng)重錘料位計進行技術改進,重新設計并實現(xiàn)了控制儀表的固件程序。創(chuàng)新性地將有限狀態(tài)機應用于重錘料位計控制儀表的設計中,并改進顯示器件,設計多級菜單,提高測量精度,增加丟錘、埋錘等故障處理功能,為儀表產(chǎn)品提供了友好的用戶使用體驗。該儀表現(xiàn)已投產(chǎn)并在多處生產(chǎn)現(xiàn)場運行良好。儀表上電實物圖如圖9所示。