李木國,王延國,孫慧濤
(大連理工大學(xué) 海岸與近海工程國家重點實驗室,遼寧 大連 116024)
?
基于EtherCAT總線的串聯(lián)型分布式數(shù)據(jù)采集系統(tǒng)設(shè)計
李木國,王延國,孫慧濤
(大連理工大學(xué) 海岸與近海工程國家重點實驗室,遼寧 大連 116024)
針對海洋工程實驗室現(xiàn)場數(shù)據(jù)采集過程中,數(shù)據(jù)量大、測點分散、實時性要求高、數(shù)據(jù)種類不一致的問題,設(shè)計了一種基于實時工業(yè)以太網(wǎng)EtherCAT總線的串聯(lián)式數(shù)據(jù)采集系統(tǒng);從整體結(jié)構(gòu)、工作原理、主站軟件和從站軟硬件方面詳細(xì)介紹了系統(tǒng)的方案設(shè)計;在實驗水池中,通過采集實際波浪信號對數(shù)據(jù)采集系統(tǒng)進(jìn)行了測試;結(jié)果表明,系統(tǒng)性能穩(wěn)定、精度高、實時性好,為分布式數(shù)據(jù)采集監(jiān)控系統(tǒng)的研究提供了應(yīng)用和技術(shù)上的參考。
EtherCAT;數(shù)據(jù)采集;實時性;從站軟硬件
目前,在很多工業(yè)現(xiàn)場環(huán)境的監(jiān)控工作中,需要實時采集和監(jiān)控的物理量越來越多。這些物理量的測點位置往往很分散,對它們進(jìn)行統(tǒng)一地數(shù)據(jù)采集、分析和處理具有現(xiàn)實意義。
傳統(tǒng)的現(xiàn)場總線技術(shù)在數(shù)據(jù)采集中很難滿足實時性和帶載能力的要求。工業(yè)以太網(wǎng)技術(shù)不斷成熟,已經(jīng)成為分布式數(shù)據(jù)采集系統(tǒng)設(shè)計的首選方案。EtherCAT(Ethernet for Control Automation Technology)是由德國BECKHOFF自動化公司于2003年提出的實時工業(yè)以太網(wǎng)技術(shù),它基于標(biāo)準(zhǔn)以太網(wǎng)技術(shù),有靈活的網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu),全雙工通信,系統(tǒng)配置簡單,數(shù)據(jù)傳輸具有高速、高效的特點,總線利用率高,其數(shù)據(jù)有效率可達(dá)90%以上[1]??梢院芎玫貪M足數(shù)據(jù)采集方面的各項性能要求。
本文運(yùn)用工業(yè)以太網(wǎng)EtherCAT技術(shù)開發(fā)了一種串聯(lián)型的分布式數(shù)據(jù)采集系統(tǒng)。這種系統(tǒng)采用菊花鏈型的拓?fù)浣Y(jié)構(gòu),不僅可以接入不同類型的傳感器,而且能方便地改變系統(tǒng)中的傳感器數(shù)量,最小數(shù)據(jù)刷新周期僅為1 ms。
1.1 系統(tǒng)整體結(jié)構(gòu)
數(shù)據(jù)采集過程往往具有以下3個特點:
1)測點的位置分布廣泛,間隔距離較長;
2)測點的數(shù)目眾多,且不固定;
3)數(shù)據(jù)實時性要求高。
為此該數(shù)據(jù)采集系統(tǒng)采用了菊花鏈型的拓?fù)浣Y(jié)構(gòu)。系統(tǒng)整體結(jié)構(gòu)如圖1所示。一臺主站PC機(jī),集中處理各個傳感器的數(shù)據(jù)信號;多個從站,各個從站依次通過網(wǎng)線串聯(lián)在一起,每個從站只接一個傳感器。菊花鏈型的拓?fù)浣Y(jié)構(gòu)具有簡單可靠,易于擴(kuò)充的特點,可根據(jù)實際測點的數(shù)目,合理增減從站數(shù)量,方便、實用。
圖1 系統(tǒng)整體結(jié)構(gòu)圖
1.2 系統(tǒng)工作原理簡介
首先,各個從站接收與自己相連的傳感器的電壓信號。電壓信號為比較微弱且不斷變化的模擬量,需要依次經(jīng)過電壓偏置、放大、濾波等處理后再進(jìn)行A/D轉(zhuǎn)換,獲得對應(yīng)的12位的數(shù)字量,并將此數(shù)字量傳給PIC單片機(jī),單片機(jī)再傳到從站控制器(ESC)芯片ET1100中。
與此同時,主站周期地發(fā)送EtherCAT報文,報文依次經(jīng)過所有從站,當(dāng)報文經(jīng)過第一個從站時,1#從站中的ET1100芯片將之前收到的12位數(shù)字量寫入到報文中對應(yīng)1#從站的指定位置。1#從站再將報文發(fā)給下一從站,下一從站也進(jìn)行類似的操作處理,直到最后一個從站將自己的數(shù)據(jù)寫入到報文的對應(yīng)位置。最后一個從站再將這個報文作為上行報文直接發(fā)送給主站,主站處理并解析這個報文,就可以獲得所有從站上傳的數(shù)據(jù)。將各數(shù)據(jù)換算成被測物理量的實際值,存儲并顯示,一次數(shù)據(jù)采集過程就完成了。
本數(shù)據(jù)采集系統(tǒng)每隔1 ms就能采集一次所有傳感器的數(shù)據(jù),實時性非常高,可以滿足很多領(lǐng)域的數(shù)據(jù)采集要求。
2.1 EtherCAT總線特點與數(shù)據(jù)幀結(jié)構(gòu)
EtherCAT是一種實時工業(yè)以太網(wǎng)技術(shù),它具有高速和高數(shù)據(jù)有效率的特點,支持多種設(shè)備連接拓?fù)浣Y(jié)構(gòu)[2]。EtherCAT數(shù)據(jù)幀結(jié)構(gòu)如圖2所示。EtherCAT總線網(wǎng)絡(luò)采用主從式控制,主站使用標(biāo)準(zhǔn)的以太網(wǎng)卡發(fā)送EtherCAT報文給各個從站,從站使用專門的EtherCAT從站控制器ESC(數(shù)據(jù)鏈路層芯片ET1100)處理數(shù)據(jù)幀。在數(shù)據(jù)幀經(jīng)過時,ESC尋址到本機(jī)報文,根據(jù)報頭中的命令,從數(shù)據(jù)幀中抽取數(shù)據(jù)或者插入數(shù)據(jù)到數(shù)據(jù)幀的指定位置。此過程無需對數(shù)據(jù)幀進(jìn)行編碼/解碼,且全部由硬件電路完成,處理時間僅為十幾納秒[3]。
圖2 EtherCAT數(shù)據(jù)幀結(jié)構(gòu)
2.2 EtherCAT狀態(tài)機(jī)和通信初始化
EtherCAT狀態(tài)機(jī)(ESM,EtherCAT State Machine)負(fù)責(zé)協(xié)調(diào)主站和從站應(yīng)用程序在初始化和運(yùn)行時的狀態(tài)關(guān)系。EtherCAT網(wǎng)絡(luò)一共有5個通信狀態(tài),分別是:初始化(Init)、預(yù)運(yùn)行(Pre-Operational)、安全運(yùn)行(Safe-Operational)、運(yùn)行狀態(tài)(Operational)、引導(dǎo)狀態(tài)(Boot-strap)。
EtherCAT網(wǎng)絡(luò)系統(tǒng)依次經(jīng)過初始化,預(yù)運(yùn)行,安全運(yùn)行,運(yùn)行狀態(tài)的狀態(tài)轉(zhuǎn)換,到達(dá)運(yùn)行狀態(tài)之后可以進(jìn)行周期的數(shù)據(jù)采集通信,這個過程就是EtherCAT通信初始化過程。系統(tǒng)的狀態(tài)轉(zhuǎn)換命令由主站應(yīng)用程序發(fā)起,從站程序響應(yīng)主站命令,主站從站一起協(xié)同配合來完成狀態(tài)轉(zhuǎn)換任務(wù)。
3.1 主站功能與結(jié)構(gòu)
主站是整個EtherCAT網(wǎng)絡(luò)的控制核心。選用PC機(jī)作為主站時只需用標(biāo)準(zhǔn)的以太網(wǎng)網(wǎng)卡NIC作為硬件接口,控制功能完全由軟件實現(xiàn)。主站功能結(jié)構(gòu)如圖3所示。主站功能主要有:導(dǎo)入并解析XML設(shè)備描述文件,創(chuàng)建主站設(shè)備,構(gòu)造初始化命令幀,進(jìn)行通信初始化并引導(dǎo)從站完成狀態(tài)機(jī)轉(zhuǎn)換;周期性的發(fā)送并解析EtherCAT數(shù)據(jù)幀,周期性的存儲并顯示數(shù)據(jù),對采集數(shù)據(jù)進(jìn)行處理分析;利用最小二乘法計算出每個傳感器的標(biāo)定系數(shù)并標(biāo)定傳感器。
圖3 EtherCAT主站功能結(jié)構(gòu)框圖
3.2 主站軟件的關(guān)鍵技術(shù)
EtherCAT狀態(tài)機(jī)的轉(zhuǎn)換、數(shù)據(jù)幀的發(fā)送和解析、數(shù)據(jù)存儲和數(shù)據(jù)顯示這4個主站功能都需要周期地獨立進(jìn)行。根據(jù)主站的功能特點采用多線程配合多媒體定時器的編程技術(shù)來編寫主站軟件。
線程是計算機(jī)程序執(zhí)行的最小單位,在Windows操作系統(tǒng)下,每個線程被分配不同的CPU時間片,某一時刻,CPU只能執(zhí)行一個時間片內(nèi)的線程,多個時間片中的相應(yīng)線程在CPU內(nèi)輪流執(zhí)行,但是時間片時間很短,從宏觀上看,每個線程好似是并行執(zhí)行[4]。
多媒體定時器是Windows系統(tǒng)下精度非常高的定時器,它不依賴于消息響應(yīng)機(jī)制,而是使用TimeSetEvent()函數(shù)產(chǎn)生一個獨立的線程,在定時周期到達(dá)時,直接調(diào)用預(yù)先設(shè)置好的回調(diào)函數(shù)進(jìn)行處理操作,不用等到消息隊列為空,能夠保證定時中斷得到及時響應(yīng),最小定時周期可達(dá)1 ms。
圖4 主站軟件程序流程圖
主站軟件使用C++語言來編寫,程序流程圖如圖4所示[5]。把EtherCAT網(wǎng)絡(luò)狀態(tài)機(jī)轉(zhuǎn)換控制、數(shù)據(jù)幀的發(fā)送和解析、數(shù)據(jù)存儲、數(shù)據(jù)顯示這4個功能分別放到一個線程中去執(zhí)行。利用多媒體定時器來控制每個功能的循環(huán)周期,利用多線程技術(shù)來保證各個功能的并行執(zhí)行。
4.1 從站硬件電路設(shè)計
系統(tǒng)從站為自主開發(fā)設(shè)計的電路板。從功能上主要分為兩個模塊,模擬電壓信號處理模塊和EtherCAT網(wǎng)絡(luò)通信模塊[6]。模擬信號處理模塊的電路原理圖如圖5所示。
圖5 從站模擬信號處理模塊電路原理圖
傳感器輸出的模擬電壓信號往往非常微弱且?guī)в幸欢ǖ母蓴_噪聲。為了使A/D芯片盡可能的滿量程轉(zhuǎn)換,在進(jìn)行A/D轉(zhuǎn)換之前,要對模擬電壓信號進(jìn)行偏置、放大、濾波處理。AD8512芯片是雙路精密JFET放大器,具有低失調(diào)電壓,低輸入偏置電流,低輸入電壓噪聲和低輸入電流噪聲特性。它的一個運(yùn)算放大器被設(shè)計成求差電路,當(dāng)R11、R12、R13和R14的阻值滿足R12/R11=R13/R14時,第一級輸出電壓Vo1[7]由式(1)決定:
(1)
(2)
(3)
考慮到市場上電容電阻的常用值,各電容電阻的實際取值見圖5,根據(jù)各項參數(shù)的計算公式,實際值FN=63.26 kHz、Q=0.706 5、AO=2,均非常接近理論值,可以滿足實際的使用要求。模擬信號Vi1+在依次經(jīng)過偏置、放大、濾波之后,就可以進(jìn)行A/D轉(zhuǎn)換了。這里選用美國ADI公司的AD7276作為A/D轉(zhuǎn)換器,AD7276是12位的低功耗、高速逐次逼近型A/D轉(zhuǎn)換器,最高采樣頻率可達(dá)3 MSPS,轉(zhuǎn)換速度快,精度高。A/D轉(zhuǎn)換之后的數(shù)字量通過SPI總線發(fā)送給PIC單片機(jī)。
從站EtherCAT網(wǎng)絡(luò)通信模塊的電路如圖6所示。PIC24單片機(jī)作為EtherCAT網(wǎng)絡(luò)通信部分的微控制器,一方面通過SPI總線控制A/D轉(zhuǎn)換芯片(AD7276)的轉(zhuǎn)算速率并接收轉(zhuǎn)換之后的12位數(shù)字量;另一方面PIC24單片機(jī)還要響應(yīng)主站的控制命令,通過SPI總線與數(shù)據(jù)鏈路層芯片ET1100通信,完成EtherCAT網(wǎng)絡(luò)的通信初始化配置并周期地將接收到的12位數(shù)字量發(fā)送給ET1100。ET100為EtherCAT網(wǎng)絡(luò)的專用數(shù)據(jù)鏈路層芯片,它可以處理EtherCAT數(shù)據(jù)幀實現(xiàn)EtherCAT數(shù)據(jù)鏈路層協(xié)議。EEPROM中存儲了ET1100的配置信息。PHY(0)和PHY(1)是兩個物理層芯片,可實現(xiàn)數(shù)據(jù)的編碼、譯碼和收發(fā)。為了提高通信的可靠性它們與RJ45接口之間還要接入網(wǎng)絡(luò)變壓器。
圖6 從站EtherCAT通信模塊電路示意圖
整個從站電路中需要+5 V、3.3 V和-5 V的電源,為了補(bǔ)償長距離供電的壓降,使用+6 V供電。電源線也采用菊花鏈型的拓?fù)浣Y(jié)構(gòu),依次經(jīng)過各個從站,所有的從站共用一個電源。在從站電路中首先通過穩(wěn)壓芯片LP2952將+6 V電壓穩(wěn)壓成+5 V,再通過電荷泵反相器CAT660將+5 V轉(zhuǎn)換成-5 V,同時還要使用穩(wěn)壓芯片LR1106將+5 V轉(zhuǎn)換成3.3 V。
4.2 從站軟件程序設(shè)計
從站軟件程序指的是PIC單片機(jī)里面的程序。它的主要功能是:響應(yīng)主站的命令、執(zhí)行狀態(tài)機(jī)轉(zhuǎn)換操作、配置ET1100和周期地接收A/D數(shù)據(jù)并周期地向ET100發(fā)送A/D數(shù)據(jù)。從站PIC單片機(jī)程序流程如圖7所示。
圖7 從站PIC單片機(jī)程序流程圖
首先程序初始化各相關(guān)寄存器,然后循環(huán)執(zhí)行輸入輸出過程數(shù)據(jù)模塊和EtherCAT狀態(tài)機(jī)處理模塊。初始化操作主要包括硬件初始化、EtherCAT從站接口初始化、對象字典初始化和分配過程數(shù)據(jù)字節(jié)空間[8]。在輸入輸出過程數(shù)據(jù)模塊中,PIC單片機(jī)在EtherCAT網(wǎng)絡(luò)狀態(tài)是運(yùn)行狀態(tài)的情況下,控制A/D芯片進(jìn)行A/D轉(zhuǎn)換,并將轉(zhuǎn)換得到的數(shù)據(jù)發(fā)送給ET1100。狀態(tài)機(jī)處理模塊主要執(zhí)行網(wǎng)絡(luò)狀態(tài)機(jī)的狀態(tài)轉(zhuǎn)換操作:程序先接收主站的狀態(tài)轉(zhuǎn)換命令,并與當(dāng)前網(wǎng)絡(luò)的狀態(tài)進(jìn)行比較,若一致則不進(jìn)行狀態(tài)轉(zhuǎn)換,否則進(jìn)行相應(yīng)的狀態(tài)轉(zhuǎn)換。系統(tǒng)在不同網(wǎng)絡(luò)狀態(tài)下能夠進(jìn)行的通信操作也是不一樣的,詳細(xì)信息可查閱參考文獻(xiàn)[2]。
為了測試這種數(shù)據(jù)采集系統(tǒng)的性能,每個從站接上一個浪高儀(測量波浪高度的傳感器),組成一個分布式的浪高采集系統(tǒng)。一共有20個從站,分布在實驗水池中的不同位置,1臺PC機(jī)作為主站放在集控室,并運(yùn)行自主開發(fā)的主站軟件。在實驗水池中,利用造波機(jī)產(chǎn)生周期為1.2 s,波高為30 mm的規(guī)則波。系統(tǒng)的數(shù)據(jù)采集頻率為1 000 Hz,動態(tài)數(shù)據(jù)曲線刷新頻率為100 Hz。圖8為主站軟件上顯示的1、9、15號從站的實時浪高曲線,從圖中可以看出,浪高曲線具有很好地平滑性。采集100 s的波浪信號,主站PC機(jī)的本地數(shù)據(jù)文件中共存儲了100 000組數(shù)據(jù),沒有數(shù)據(jù)丟失。
圖8 主站軟件上顯示的實時浪高曲線
本文利用工業(yè)以太網(wǎng)EtherCAT技術(shù)開發(fā)的數(shù)據(jù)采集系統(tǒng)
數(shù)據(jù)精度高,可靠性好,經(jīng)實驗測試最小數(shù)據(jù)刷新周期可達(dá)1 ms。EtherCAT數(shù)據(jù)幀一次最多可以傳輸1486個字節(jié)的過程數(shù)據(jù),每個從站只占用3個字節(jié),可接入近500個從站,根據(jù)實際采集需要,可以靈活增減從站數(shù)量。從站的模擬信號接口接上不同類型的傳感器就可以采集不同種類的物理量,適用于多種實時性要求高、測點分散的現(xiàn)場數(shù)據(jù)采集監(jiān)控場合。
[1]IEC/PAS 62407: Real-Time Ethernet Control Automation Technology (EtherCAT) [S].
[2]郇 極,劉艷強(qiáng).工業(yè)以太網(wǎng)現(xiàn)場總線EtherCAT驅(qū)動程序設(shè)計及應(yīng)用[M].北京:北京航空航天大學(xué)出版社,2010.
[3]李木國,王 磊,王 靜,等. 基于EtherCAT的工業(yè)以太網(wǎng)數(shù)據(jù)采集系統(tǒng)[J]. 計算機(jī)工程,2010(3):237-239.
[4]常發(fā)亮,劉 靜. 多線程下多媒體定時器在快速數(shù)據(jù)采集中的應(yīng)用[J]. 計算機(jī)應(yīng)用,2003,S1:177-178.
[5] 單春榮,劉艷強(qiáng),郇 極,等.工業(yè)以太網(wǎng)現(xiàn)場總線EtherCAT及驅(qū)動程序設(shè)計[J].制造業(yè)自動化,2007,29(11):79-82.
[6]李木國,孔麗麗,王 磊,等. EtherCAT網(wǎng)絡(luò)數(shù)據(jù)采集系統(tǒng)的設(shè)計與實現(xiàn)[J]. 計算機(jī)測量與控制,2010(4):961-964.
[7]康華光. 電子技術(shù)基礎(chǔ)模擬部分(第五版)[M]. 北京:高等教育出版社, 2006.
[8]趙 君,劉衛(wèi)國,彭 喆. 基于EtherCAT總線的分布式測控系統(tǒng)設(shè)計[J]. 計算機(jī)測量與控制,2012(1):11-14.
Design of Series-Connection Distributed Data Acquisition System Based on EtherCAT Bus
Li Muguo, Wang Yanguo, Sun Huitao
(State Key Laboratory of Coastal and Offshore Engineering, Dalian University of Technology, Dalian 116024,China)
Aiming at the problems of the large amount of data, geographically fragmented acquisition positions, high real-time performance demanding and a variety of data types in the process of data acquisition, we build a series-connection data acquisition system based on EtherCAT bus. The aspects of over-all structure, operating principle, master station software and hardware and software of slave station were introduced in detail. In order to verify the performance, we captured the height of wave in our lab. The experimental results indicate that the system has high reliability and real-time performance. The designed data acquisition system can provide
for the research of distributed data acquisition and control system.
EtherCAT; data acquisition; real-time performance; hardware and software of slave station
2015-12-15;
2016-01-20。
李木國(1953-),男,遼寧莊河人,教授,博士研究生導(dǎo)師,主要從事海洋工程模擬實驗理論、現(xiàn)代控制技術(shù)方向的研究。
1671-4598(2016)06-0195-04
10.16526/j.cnki.11-4762/tp.2016.06.054
TP311
A