陳 輝,周文超,閆冠宇,甄利鵬
(河南中美鋁業有限公司 河南 鄭州 452477)
工業現場需要監測的生產狀況參數包括礦漿溫度、熔鹽溫度、電機、變頻器、變壓器等多種設備的溫度、濕度以及電壓、電流、壓力、流量等其他數據。監測點多且分散、通信距離遠,因此研制一種實時性高且性能可靠的分布式測控系統[1]非常重要。
CAN總線是一種用于智能化現場設備和自動化系統的開放式、數字化、雙向串行、多節點的通信總線,廣泛應用于分布式測控系統。在本系統中,測控節點和嵌入式測控中心通過CAN總線進行通信,節點數多達110個且通信方式靈活。
本文研究的主要內容是設計一種可遠程測控工業現場多種設備的溫度、濕度、電壓、電流、壓力、流量等數據的分布式測控系統,由測控主機、嵌入式測控中心、觸摸屏和測控節點組成[2-3]。圖1為本系統總體結構圖。測控節點由多種精密傳感器組成,用來采集溫度、濕度、壓力、流量等數據,由帶CAN控制器的微處理器P87C591將采集到的數據經過數字處理后通過CAN總線傳送至嵌入式測控中心,測控中心對傳送過來的數據進行存儲、觸摸屏顯示、波形圖繪制、報警后通過以太網上傳至監控主機,完成對多種數據的實時監測和遠程測控。

圖1 系統總體結構圖Fig.1 System general structure diagram
硬件結構圖如圖2所示。測控中心采用帶CAN控制器的嵌入式工控板EM9161通過外接CAN收發器和測控節點進行CAN通訊,簡化了硬件電路設計;測控中心和監控主機之間采用以太網通訊,網絡結構簡單且通訊速率高。該系統硬件設計簡單,傳感器采用非接觸式,安裝布置靈活,簡單、可靠。

圖2 硬件結構圖Fig.2 Hardware structure diagram
EM9161是一款面向工業自動化領域的高性價比嵌入式主板,其內核CPU為工業級品質的32位ARM9系列AT91SAM9261S,帶有1路以太網接口,4路標準UART串口,64 MB系統內存,64 MB FLASH,支持 I2C總線、CAN總線和精簡ISA總線。由于AT91SAM9261S是一款專為具備液晶顯示屏的應用而優化的主機處理器,可直接驅動觸摸屏,支持最大800×600的分辨率。本設計采用5.6英寸四線制電阻式觸摸屏,型號為 AT056TN52,它是 256色真彩色 LCD顯示屏,TTL接口,分辨率為 648×480,3.3 V電源供電。
一個CAN總線接口由微控制器、CAN控制器和CAN收發器3個部分組成,分別對應于CAN總線的物理層、數據鏈路層和應用層。其中微控制器主要負責上層應用及系統控制,包括CAN協議的應用層協議的實現,協調個系統設備的工作;CAN控制器負責處理數據幀,完成數據的打包、解包,錯誤界定,并提供報文緩沖和傳輸濾波;CAN收發器主要負責接口電平的轉換,接口電氣特性的處理[1]。由于EM9161內部自帶有CAN控制器,因此,只需外接CAN收發器即可通信。圖3為CAN總線收發電路圖。

圖3 CAN總線收發電路圖Fig.3 CAN bus transceiver circuit diagram
CAN總線收、發兩路信號分別經兩個反相器74HCT14濾除掉輸入信號的突變干擾再經高速光電耦合器6N137隔離后,送入CAN收發接口芯片PCA82C250即可進行CAN通訊。
EM9161已預裝正版 Window CE5.0(WINCE)實時多任務操作系統,可以將一個進程劃分為多個線程,每個線程輪流占用CPU的運行時間和資源[4]。本設計使用Microsoft提供的著名免費軟件開發工具 Embedded Visual C++(EVC)(+SP4)進行人機界面和應用程序的開發,包括CAN通訊和測控界面設計。
CAN通訊包括CAN口初始化、CAN數據發送、CAN數據接收[5-6]。基于WINCE系統采用標準的WINCE流式驅動程序,CAN通訊的數據收發均采用中斷方式:硬件在接收數據報文時,底層的驅動接收程序會自動讀取該報文,同時發送一個接收中斷事件,作為應用程序的接收線程在等待到該中斷事件后,調用相應讀取幀函數即可進行CAN數據報文的讀取。CAN口初始化、CAN數據發送、CAN數據接收程序流程圖如圖4所示。

圖4 CAN通訊初始化、發送、接收流程圖Fig.4 CAN communication initialization,sending and receiving flow chart
CAN數據報文的發送時,直接調用發送幀函數將需要發送的數據填入驅動的發送數據緩沖區中,真正的數據發送是由驅動程序中的發送線程自動完成的;數據接收線程里通過WaitForSingleObject()來等待CAN接口的接收事件發生,當CAN接口收到數據后,將數據放入指定的接收數據緩存中,然后通過調用讀數據函數,將數據從緩存中讀出。
如圖5為本測控系統主界面。系統功能設有系統初始化、采樣參數設置、報警參數設置、連續采樣、間斷采樣、停止采樣和故障記錄查詢[7]。其中采樣參數設置對采集周期進行設置,單位是毫秒;報警參數設置根據各狀態情況需要上、限報警值;連續采樣即每隔一定時間采集一次數據,在連續采集按鈕的消息響應函數里設置時鐘,并添加時鐘消息響應函數;間斷采樣即手動采樣;通過故障記錄查詢按鈕可以方便的查看故障。

圖5 測控主界面Fig.5 Main interface of monitoring and control
將遠程數據分布式測控系統在現場調試運行,通過波形圖查看按鈕即可看到實時波形圖,圖6為正在運行的變壓器1溫度測控界面,結果表明系統性價比高、檢測可靠、操作簡單、人機界面友好。

圖6 變壓器1溫度測控界面Fig.6 Transformer temperature monitoring and control interface
CAN總線是一種有效支持分布式控制或實時控制的串行通信網絡,網絡上各節點可以與測控系統中其他節點傳送各種數據,并接受來自測控主機的命令與數據,不僅運行可靠而且電纜投入成本較低。本系統硬件設計簡單、可靠,采用光電隔離并對信號采取濾波措施,極大地降低了工業現場干擾對系統正常運行的影響;軟件采用具有強大功能和友好界面的EVC4.0,程序代碼尺寸小,移植能力強且運行速度高。
[1]田敏,鄭瑤,李江全,等.Visual C++數據采集與串口通信測控應用實戰[M].北京:人民郵電出版社,2010.
[2]劉宇婕,張保平.基于P87C591構成CAN總線節點的設計[J].微處理機,2008(3):156-158.LIU Yu-jie,ZHANG Bao-ping.Based on P87C591 constitute the design of the CAN bus node[J].Microprocessor,2008(3):156-158.
[3]連衛東.基于CAN總線的智能溫壓數據采集及實時監測系統設計[J].化工自動化及儀表,2012(39):68-70.LIAN Wei-dong.Based on CAN bus intelligent temperature and pressure data acquisition and real-time monitoring system design[J].Process Automation Instrumentation,2012(39):68-70.
[4]華清遠見嵌入式培訓中心.Windows CE嵌入式開發標準教程[M].北京:人民郵電業出版社,2010.
[5]汪兵,李存斌,陳鵬,等.EVC高級編程及其應用開發[M].北京:中國水利水電出版社,2005.
[6]張雨光,黃啟俊,常勝.基于FPGA的CAN總線控制器設計[J].電子科技,2011(5):35-36,34.ZHANG Yu-guang,HUANG Qi-jun,CHANG Sheng.Design of CAN bus controller based on FPGA[J].Electronic Science and Technology,2011(5):35-36,34.
[7]原奕.Visual C++實踐與提高—數據庫開發與工程應用篇[M].北京:中國鐵道出版社,2006.