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