基于CAN總線的分布式監控系統設計
引 言
鍋爐是通過燃燒加熱工質來提供熱能動力的重要設備,同時又是承壓、受火、有爆炸危險而又被各行各業普遍使用的特殊設備。所以實時監控鍋爐的運行狀態,及時、準確地發現鍋爐運行中的事故至關重要。傳統的鍋爐監控系統在測量手段和使用的傳感器方面都存在很大的缺陷。以溫度檢測為例,早期采用的熱電偶電橋法,測試過程復雜;而采用集成的半導體模擬溫度傳感器需要大量的傳輸電纜,成本高且不易維護。
CAN總線是一種多主機控制標準,具有物理層和數據鏈路層的協議、多主節點、無損仲裁、高可靠性及擴充性能好等特點;能有效支持分布式控制系統的串行通信網絡。一方面,其通信方式靈活,可實現多主方式工作,還可實現點對點、點對多點等多種數據的收發;另一方面,能在相對較大的距離間進行較高位速率的數據通信。本系統是由上位機對多個并列的承壓鍋爐監控單元進行控制管理,各監控單元之間要進行快速的數據傳輸。CAN總線能很好地滿足該系統的要求。
1 系統總體結構
如圖1所示,系統由上位監控機、CAN節點0與其他CAN節點組成。其中,上位監控機為PC機,各CAN節點的微控制器為STC89LE54RD+。STC89LE54RD+外接CAN控制器SJA1000,外部設備主要為一線式數字溫度計DS1822與壓力傳感器。
上位監控機(PC機)采用IBM-PC兼容機,主要負責對系統各節點監控數據的接收與管理、控制命令的發送以及各控制單元動態參數和設備狀態的實時顯示。
CAN節點0是一個至關重要的節點,主要有兩個功能:一是作為上位機(PC機)與CAN總線的接口,完成CAN總線數據與RS-232接口的數據轉換,對智能節點傳送過來的數據信息進行緩存,對告警信號進行告警以通知維護人員進行處理;二是負責協調上位機與各個CAN節點的通信,以確保各個節點的監控數據能夠快速、準確地傳給上位機。
監控CAN節點為智能型的監控模塊,以單片機為核心,主要負責對現場的環境參數和設備狀態進行監測,對采集來的數據進行打包處理并將處理過的數字信號通過CAN通信控制器SJA1000送入CAN總線;對系統中各個承壓鍋爐的壓力與溫度進行測量。一般情況下,智能監控節點會把監控數據進行存儲,定期上傳給上位機,并可接受上位機的輪詢。若超出正常工作范圍,則告警,同時把數據實時向上位機報告。
2 硬件結構的設計
如圖2所示,監控CAN節點以STC89LE54RD十為微控制器,外圍模塊包括CAN總線接口模塊、溫度采集模塊、壓力采集模塊、報警模塊等。為充分利用STC89LE54RD+的接口資源,除CAN接口模塊外,其余模塊均采用串行接口器件。這樣就減小了電路體積,降低了電路的硬件成本。
STC89LE54RD+是高速、低功耗且兼容Philips公司51MX內核的新一代單片機,12時鐘/機器周期和6時鐘/機器周期可反復設置,內部集成有MX810專用復位電路;執行指令的速度為標準8051的12倍,支持在系統編程ISP和在應用編程IAP。
2.1 CAN總線接口模塊
在圖3所示的模塊中,選用SJA1000作為CAN控制器,PCA82C250作為CAN控制器接口芯片。SJA1000集成了CAN協議的物理層和數據鏈路層功能,可進行通信數據的幀處理。PCA82C250是CAN協議控制器和物理總線之間的接口,對總線提供差動發送能力,對CAN控制器提供差動接收能力;增加通信距離,提高系統的瞬間抗干擾能力,保護總線,降低射頻干擾,實現熱防護。把STC89LE54RD+的ALE、RD、WR與SJA1000的ALE、RD、WR相連就構成一個最小系統節點,通過讀、寫外部數據存儲器的形式來訪問SJA1000。將SJA1000的TX1腳懸空,RX1引腳接地,形成CAN協議所要求的電平邏輯。
為進一步提高系統的抗干擾能力,在CAN控制器SJA1000和CAN控制器接口PCA82C250之間加接6N137光電隔離芯片,并采用DC-DC變換器隔離電源。通信信號傳輸到導線的端點時會發生反射,反射信號會干擾正常信號的傳輸,因而總線2端兩個124 W的電阻(見圖1)對匹配總線阻抗起著相當重要的作用;忽略掉它們,會使數據通信的抗干擾性和可靠性大大降低,甚至無法通信。PCA82C250第8腳與地之間的電阻RS稱為“斜率電阻”,它的取值決定了系統處于高速工作方式還是斜率控制方式。把該引腳直接與地相連,系統將處于高速工作方式。在這種方式下,為避免射頻干擾,使用屏蔽電纜作總線;而在波特率較低、總線較短時,一般采用斜率控制方式,上升和下降的斜率取決于RS的阻值。通常情況下,RS較理想的功率取值范圍為15 kW~200 kw。在這種方式下,使用平行線或雙絞線作總線。
2.2 溫度測量模塊
溫度測量模塊采用美國DalIas公司推出的基于單總線技術的數字溫度計芯片DS1822,其連接電路簡單,無需外接元件,如圖4所示。DS1822采用了一種將溫度直接轉換為頻率的時鐘計數法,計數時鐘由溫度系數很低的振蕩器產生,因而非常穩定;而計數的閘門周期則由溫度系數很高(即對溫度非常敏感)的振蕩器決定。
2.3 壓力測量模塊
壓力測量模塊采用精密智能壓力傳感器PPT-R。PPT-R是霍尼威爾公司生產的高品質壓力傳感器,帶有不銹鋼隔膜,適用于對高溫、腐蝕性介質的測量。
PPT-R智能壓力傳感器性能優良、組態靈活。PPT-R傳感器可對每次測量的壓力信號進行積分,積分時間可在8 ms~12 s之間選擇。這樣可以提高數字控制系統在不同環境條件下的適應性和抗干擾能力。PPT傳感器具有優異的重復性和穩定性,其壓力信號可由單片機設置為數字輸出模式,也可以設置為模擬輸出模式。本系統中,將其設置為數字輸出模式。
3 軟件的設計
系統軟件的設計采用模塊化方式,主要分為上位機程序模塊、數據采集處理模塊和CAN通信模塊等。在此主要介紹上位機軟件模塊與CAN通信模塊的設計。
3.1 上位機軟件的設計
上位機軟件以Borland公司推出的C++Builder6為開發平臺,具有系統參數設置、監控狀態設置、數據發送和接收、節點狀態查詢、中斷接收數據管理等功能。上位機首先對CAN總線及其自身初始化,然后發送命令通知特定的節點向CAN總線上發送數據,通過CAN總線上傳到上位機,再由上位機處理。上位機采用定時輪循方式向各個節點發命令,采用中斷方式接收數據。
首先用CreateFile( )打開通信串口,函數引用格式為:
CreateFile(1pFileName,dwDesiredAccess,dwShare-Mode,lpSecurityAttributes,dwCreationDistribution,dw-FlagsAndAttributes,hTemplateFile);
然后用BuildCommDCB()和SetCommState( )函數通過通信設備控制塊DCB(Device Control Block)設置串口通信參數,如波特率、停止位、數據位、校驗位等;
當有通信事件產生時,就可用函數ReadFile( )和WriteFile( )直接對串口緩沖區進行讀寫操作了。其引用格式分別為:
WriteFile(hFile,lpBuffer,nNumberOfBytesToWrite.lpNumberOfBytesWritten,lpOverlapped);
ReadFile(hFile,lpBuffer,nNumberOfBytesToRead,lpNumberOfBytesRead,lpOverlapped).
上位機軟件其他功能的實現,可通過調用相應組件的屬性進行編程。最后編制的軟件界面如圖5所示。
3.2 CAN通信模塊設計
CAN通信程序將采集到的數據發送到CAN控制器,再由CAN控制器將數據發送到CAN總線。
對于接收數據,系統采用中斷方式實現。一旦中斷發生,即將接收的數據自動裝載到相應的報文寄存器中,此時還可采用屏蔽濾波方式。利用屏蔽濾波寄存器對接收報文的標識符和預先在接收緩沖器初始化時設定的標識符進行有選擇的逐位比較。只有標識符匹配的報文才能進入接收緩沖器,那些不符合要求的報文則將被屏蔽于接收緩沖器之外,從而減輕CPU處理報文的負擔。此外,不同數據應放人不同的報文寄存器中,其程序流程如圖6所示。
結 語
本系統采用了lBM-PC兼容機、單片機和SJA1000組成二級控制系統.實現了一體化的操作,解決了長期以來在承壓鍋爐監控方面的難題。系統結構簡單,操作方便,安全可靠,造價低廉,運行穩定可靠。
評論