陳 輝,周文超,閆冠宇,甄利鵬
(河南中美鋁業(yè)有限公司 河南 鄭州 452477)
工業(yè)現(xiàn)場需要監(jiān)測的生產(chǎn)狀況參數(shù)包括礦漿溫度、熔鹽溫度、電機、變頻器、變壓器等多種設(shè)備的溫度、濕度以及電壓、電流、壓力、流量等其他數(shù)據(jù)。監(jiān)測點多且分散、通信距離遠,因此研制一種實時性高且性能可靠的分布式測控系統(tǒng)[1]非常重要。
CAN總線是一種用于智能化現(xiàn)場設(shè)備和自動化系統(tǒng)的開放式、數(shù)字化、雙向串行、多節(jié)點的通信總線,廣泛應(yīng)用于分布式測控系統(tǒng)。在本系統(tǒng)中,測控節(jié)點和嵌入式測控中心通過CAN總線進行通信,節(jié)點數(shù)多達110個且通信方式靈活。
本文研究的主要內(nèi)容是設(shè)計一種可遠程測控工業(yè)現(xiàn)場多種設(shè)備的溫度、濕度、電壓、電流、壓力、流量等數(shù)據(jù)的分布式測控系統(tǒng),由測控主機、嵌入式測控中心、觸摸屏和測控節(jié)點組成[2-3]。圖1為本系統(tǒng)總體結(jié)構(gòu)圖。測控節(jié)點由多種精密傳感器組成,用來采集溫度、濕度、壓力、流量等數(shù)據(jù),由帶CAN控制器的微處理器P87C591將采集到的數(shù)據(jù)經(jīng)過數(shù)字處理后通過CAN總線傳送至嵌入式測控中心,測控中心對傳送過來的數(shù)據(jù)進行存儲、觸摸屏顯示、波形圖繪制、報警后通過以太網(wǎng)上傳至監(jiān)控主機,完成對多種數(shù)據(jù)的實時監(jiān)測和遠程測控。
圖1 系統(tǒng)總體結(jié)構(gòu)圖Fig.1 System general structure diagram
硬件結(jié)構(gòu)圖如圖2所示。測控中心采用帶CAN控制器的嵌入式工控板EM9161通過外接CAN收發(fā)器和測控節(jié)點進行CAN通訊,簡化了硬件電路設(shè)計;測控中心和監(jiān)控主機之間采用以太網(wǎng)通訊,網(wǎng)絡(luò)結(jié)構(gòu)簡單且通訊速率高。該系統(tǒng)硬件設(shè)計簡單,傳感器采用非接觸式,安裝布置靈活,簡單、可靠。
圖2 硬件結(jié)構(gòu)圖Fig.2 Hardware structure diagram
EM9161是一款面向工業(yè)自動化領(lǐng)域的高性價比嵌入式主板,其內(nèi)核CPU為工業(yè)級品質(zhì)的32位ARM9系列AT91SAM9261S,帶有1路以太網(wǎng)接口,4路標(biāo)準(zhǔn)UART串口,64 MB系統(tǒng)內(nèi)存,64 MB FLASH,支持 I2C總線、CAN總線和精簡ISA總線。由于AT91SAM9261S是一款專為具備液晶顯示屏的應(yīng)用而優(yōu)化的主機處理器,可直接驅(qū)動觸摸屏,支持最大800×600的分辨率。本設(shè)計采用5.6英寸四線制電阻式觸摸屏,型號為 AT056TN52,它是 256色真彩色 LCD顯示屏,TTL接口,分辨率為 648×480,3.3 V電源供電。
一個CAN總線接口由微控制器、CAN控制器和CAN收發(fā)器3個部分組成,分別對應(yīng)于CAN總線的物理層、數(shù)據(jù)鏈路層和應(yīng)用層。其中微控制器主要負責(zé)上層應(yīng)用及系統(tǒng)控制,包括CAN協(xié)議的應(yīng)用層協(xié)議的實現(xiàn),協(xié)調(diào)個系統(tǒng)設(shè)備的工作;CAN控制器負責(zé)處理數(shù)據(jù)幀,完成數(shù)據(jù)的打包、解包,錯誤界定,并提供報文緩沖和傳輸濾波;CAN收發(fā)器主要負責(zé)接口電平的轉(zhuǎn)換,接口電氣特性的處理[1]。由于EM9161內(nèi)部自帶有CAN控制器,因此,只需外接CAN收發(fā)器即可通信。圖3為CAN總線收發(fā)電路圖。
圖3 CAN總線收發(fā)電路圖Fig.3 CAN bus transceiver circuit diagram
CAN總線收、發(fā)兩路信號分別經(jīng)兩個反相器74HCT14濾除掉輸入信號的突變干擾再經(jīng)高速光電耦合器6N137隔離后,送入CAN收發(fā)接口芯片PCA82C250即可進行CAN通訊。
EM9161已預(yù)裝正版 Window CE5.0(WINCE)實時多任務(wù)操作系統(tǒng),可以將一個進程劃分為多個線程,每個線程輪流占用CPU的運行時間和資源[4]。本設(shè)計使用Microsoft提供的著名免費軟件開發(fā)工具 Embedded Visual C++(EVC)(+SP4)進行人機界面和應(yīng)用程序的開發(fā),包括CAN通訊和測控界面設(shè)計。
CAN通訊包括CAN口初始化、CAN數(shù)據(jù)發(fā)送、CAN數(shù)據(jù)接收[5-6]?;赪INCE系統(tǒng)采用標(biāo)準(zhǔn)的WINCE流式驅(qū)動程序,CAN通訊的數(shù)據(jù)收發(fā)均采用中斷方式:硬件在接收數(shù)據(jù)報文時,底層的驅(qū)動接收程序會自動讀取該報文,同時發(fā)送一個接收中斷事件,作為應(yīng)用程序的接收線程在等待到該中斷事件后,調(diào)用相應(yīng)讀取幀函數(shù)即可進行CAN數(shù)據(jù)報文的讀取。CAN口初始化、CAN數(shù)據(jù)發(fā)送、CAN數(shù)據(jù)接收程序流程圖如圖4所示。
圖4 CAN通訊初始化、發(fā)送、接收流程圖Fig.4 CAN communication initialization,sending and receiving flow chart
CAN數(shù)據(jù)報文的發(fā)送時,直接調(diào)用發(fā)送幀函數(shù)將需要發(fā)送的數(shù)據(jù)填入驅(qū)動的發(fā)送數(shù)據(jù)緩沖區(qū)中,真正的數(shù)據(jù)發(fā)送是由驅(qū)動程序中的發(fā)送線程自動完成的;數(shù)據(jù)接收線程里通過WaitForSingleObject()來等待CAN接口的接收事件發(fā)生,當(dāng)CAN接口收到數(shù)據(jù)后,將數(shù)據(jù)放入指定的接收數(shù)據(jù)緩存中,然后通過調(diào)用讀數(shù)據(jù)函數(shù),將數(shù)據(jù)從緩存中讀出。
如圖5為本測控系統(tǒng)主界面。系統(tǒng)功能設(shè)有系統(tǒng)初始化、采樣參數(shù)設(shè)置、報警參數(shù)設(shè)置、連續(xù)采樣、間斷采樣、停止采樣和故障記錄查詢[7]。其中采樣參數(shù)設(shè)置對采集周期進行設(shè)置,單位是毫秒;報警參數(shù)設(shè)置根據(jù)各狀態(tài)情況需要上、限報警值;連續(xù)采樣即每隔一定時間采集一次數(shù)據(jù),在連續(xù)采集按鈕的消息響應(yīng)函數(shù)里設(shè)置時鐘,并添加時鐘消息響應(yīng)函數(shù);間斷采樣即手動采樣;通過故障記錄查詢按鈕可以方便的查看故障。
圖5 測控主界面Fig.5 Main interface of monitoring and control
將遠程數(shù)據(jù)分布式測控系統(tǒng)在現(xiàn)場調(diào)試運行,通過波形圖查看按鈕即可看到實時波形圖,圖6為正在運行的變壓器1溫度測控界面,結(jié)果表明系統(tǒng)性價比高、檢測可靠、操作簡單、人機界面友好。
圖6 變壓器1溫度測控界面Fig.6 Transformer temperature monitoring and control interface
CAN總線是一種有效支持分布式控制或?qū)崟r控制的串行通信網(wǎng)絡(luò),網(wǎng)絡(luò)上各節(jié)點可以與測控系統(tǒng)中其他節(jié)點傳送各種數(shù)據(jù),并接受來自測控主機的命令與數(shù)據(jù),不僅運行可靠而且電纜投入成本較低。本系統(tǒng)硬件設(shè)計簡單、可靠,采用光電隔離并對信號采取濾波措施,極大地降低了工業(yè)現(xiàn)場干擾對系統(tǒng)正常運行的影響;軟件采用具有強大功能和友好界面的EVC4.0,程序代碼尺寸小,移植能力強且運行速度高。
[1]田敏,鄭瑤,李江全,等.Visual C++數(shù)據(jù)采集與串口通信測控應(yīng)用實戰(zhàn)[M].北京:人民郵電出版社,2010.
[2]劉宇婕,張保平.基于P87C591構(gòu)成CAN總線節(jié)點的設(shè)計[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]連衛(wèi)東.基于CAN總線的智能溫壓數(shù)據(jù)采集及實時監(jiān)測系統(tǒng)設(shè)計[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]華清遠見嵌入式培訓(xùn)中心.Windows CE嵌入式開發(fā)標(biāo)準(zhǔn)教程[M].北京:人民郵電業(yè)出版社,2010.
[5]汪兵,李存斌,陳鵬,等.EVC高級編程及其應(yīng)用開發(fā)[M].北京:中國水利水電出版社,2005.
[6]張雨光,黃啟俊,常勝.基于FPGA的CAN總線控制器設(shè)計[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++實踐與提高—數(shù)據(jù)庫開發(fā)與工程應(yīng)用篇[M].北京:中國鐵道出版社,2006.