王 磊, 李木國(guó), 王 靜, 王曉亮
(1.大連理工大學(xué)電信學(xué)院,遼寧大連116024;2.河南理工大學(xué)計(jì)算機(jī)科學(xué)與技術(shù)學(xué)院,河南焦作454000;3.大連理工大學(xué)海岸和近海工程國(guó)家重點(diǎn)實(shí)驗(yàn)室,遼寧大連116024)
目前,成為國(guó)際標(biāo)準(zhǔn)的工業(yè)以太網(wǎng)協(xié)議有十余種,其中有6種典型的實(shí)時(shí)工業(yè)以太網(wǎng)總線在市場(chǎng)上相互競(jìng)爭(zhēng),這包括:Ethernet/IP、Profinet、EtherCAT、Ethernet PowerLink、Modbus/IDA和EPA。國(guó)內(nèi)外學(xué)者也對(duì)這些協(xié)議進(jìn)行了大量的應(yīng)用研究[1-2],并設(shè)計(jì)開發(fā)了不同應(yīng)用背景下的現(xiàn)場(chǎng)級(jí)網(wǎng)絡(luò)控制系統(tǒng)[3-6]。但是,其中Ethernet/IP和Modbus/IDA是在TCP/IP協(xié)議應(yīng)用層上實(shí)現(xiàn)的實(shí)時(shí)數(shù)據(jù)交換[7],這種方式只能應(yīng)用于100ms以上的應(yīng)用場(chǎng)合;EthernetPowerLink、Profinet和EPA是通過在數(shù)據(jù)鏈路層上采用適當(dāng)?shù)膬?yōu)先級(jí)調(diào)度方案來保證實(shí)時(shí)性[7],但只能保證最低5-10ms的實(shí)時(shí)通信[8];而EtherCAT采用的是集總幀的調(diào)度方式,在數(shù)據(jù)鏈路層和物理層都做了相應(yīng)的可以實(shí)現(xiàn)微妙級(jí)的高實(shí)時(shí)性通信[9]。
因EtherCAT協(xié)議獨(dú)特的特性,它能夠使以太網(wǎng)延伸至現(xiàn)場(chǎng)級(jí)通信控制,特別適合大數(shù)據(jù)量、高實(shí)時(shí)性的I/O通信應(yīng)用。本文設(shè)計(jì)提出的基于EtherCAT協(xié)議的現(xiàn)場(chǎng)級(jí)實(shí)時(shí)控制系統(tǒng)的設(shè)計(jì)方案,分析了在主從式結(jié)構(gòu)下主站和從站的具體實(shí)現(xiàn),針對(duì)海洋環(huán)境大數(shù)據(jù)量的浪高監(jiān)測(cè)設(shè)計(jì)了相應(yīng)的軟件及硬件,從而利用該平臺(tái)對(duì)EtherCAT協(xié)議的性能進(jìn)行實(shí)驗(yàn)驗(yàn)證、分析。
EtherCAT協(xié)議采用與標(biāo)準(zhǔn)以太網(wǎng)共享幀的方式工作。Ether-CAT總線數(shù)據(jù)幀填充到標(biāo)準(zhǔn)以太網(wǎng)幀的數(shù)據(jù)段部分,通過類型標(biāo)識(shí)符域的十六進(jìn)制數(shù)88A4與其他以太網(wǎng)幀類型相區(qū)別。這種特性使得它很容易實(shí)現(xiàn)與標(biāo)準(zhǔn)以太網(wǎng)的兼容。此外,Ether-CAT協(xié)議規(guī)定上位主機(jī)(主站)與監(jiān)控分站一起構(gòu)成一個(gè)封閉的環(huán),如圖1所示。
圖1 EtherCAT協(xié)議工作原理
攜帶從站地址的標(biāo)準(zhǔn)以太網(wǎng)數(shù)據(jù)幀從主站出發(fā),逐個(gè)訪問環(huán)路上的從站。由于從站接口芯片的獨(dú)特結(jié)構(gòu),當(dāng)數(shù)據(jù)幀到達(dá)時(shí),從站接口芯片就會(huì)把從主站輸出數(shù)據(jù)從以太網(wǎng)幀的數(shù)據(jù)部分取下來,或把輸入主站的數(shù)據(jù)插入到以太網(wǎng)幀的相應(yīng)數(shù)據(jù)域位置,然后再把整個(gè)以太網(wǎng)幀轉(zhuǎn)發(fā)到下一個(gè)從站,直到最后一個(gè)從站,數(shù)據(jù)幀才返回主站處理。在此過程中無需像其它工業(yè)以太網(wǎng)總線協(xié)議那樣對(duì)數(shù)據(jù)幀編碼/解碼,使得數(shù)據(jù)處理時(shí)間大大縮短,每個(gè)從站數(shù)據(jù)處理延遲僅為十幾納秒。此外,由于EtherCAT協(xié)議支持將連接到網(wǎng)絡(luò)上的所有從站存儲(chǔ)區(qū)統(tǒng)一分配一個(gè)唯一的邏輯地址,每個(gè)從站通過接口芯片特殊的現(xiàn)場(chǎng)存儲(chǔ)管理單元結(jié)構(gòu)實(shí)現(xiàn)邏輯地址到本地存儲(chǔ)器物理地址的映射,因此可以根據(jù)監(jiān)控的需要對(duì)每個(gè)EtherCAT的數(shù)據(jù)幀做合理的規(guī)劃,從而實(shí)現(xiàn)在一次數(shù)據(jù)幀回還過程中對(duì)多個(gè)從站,多通道數(shù)據(jù)的讀取。
如圖2所示,本系統(tǒng)硬件主要包括:EtherCAT網(wǎng)絡(luò)接口電路、核心處理器單片機(jī)電路外圍數(shù)據(jù)監(jiān)測(cè)A/D轉(zhuǎn)換電路及信號(hào)放大濾波等處理電路、多路開關(guān)和浪高儀傳感器;軟件則為數(shù)據(jù)采集和通信程序。系統(tǒng)設(shè)計(jì)了10個(gè)從站,從距離上位計(jì)算機(jī)最近的從站開始編號(hào),每個(gè)從站連接32個(gè)浪高儀,實(shí)現(xiàn)32個(gè)通道的浪高數(shù)據(jù)監(jiān)測(cè),所有浪高儀編號(hào)為1#~320#,從而使得主站程序能夠單獨(dú)監(jiān)測(cè)任意1個(gè)通道數(shù)據(jù)或任意幾個(gè)通道組合的數(shù)據(jù)。
圖2 系統(tǒng)總體結(jié)構(gòu)
單個(gè)從站硬件原理框圖如圖3所示,在本系統(tǒng)中采用的核心單片機(jī)控制芯片為PIC24HJ256GP610,它的指令執(zhí)行速度能夠達(dá)到40Mbps,內(nèi)部具有兩個(gè)SPI通信模塊,使用模塊1與網(wǎng)絡(luò)接口芯片ET1100通信,用模塊2與速度為3MSPS的A/D轉(zhuǎn)換器通信。此外用通用接口 RB0~RB3作為第一級(jí)多路開關(guān)1、2的通道選擇信號(hào),RF0~RF1分別作為開關(guān)2、1的片選信號(hào);用RD0~RD1作第二級(jí)多路開關(guān)3的通道選擇信號(hào),RD3為芯片使能信號(hào)。
圖3 單個(gè)從站硬件原理框架
如圖4所示,接口芯片主要包括:一個(gè)容量為8K的雙口RAM存儲(chǔ)器,前4K地址分配給寄存器,剩余的4K空間用于郵箱和周期性過程數(shù)據(jù)通信;16個(gè)同步管理器單元,用于對(duì)雙口RAM存儲(chǔ)區(qū)根據(jù)需要進(jìn)行分配,同步管理器0和同步管理器1分別用于郵箱輸出和輸入存儲(chǔ)器分配管理,同步管理器2和同步管理器3分別用于過程數(shù)據(jù)輸出和輸入存儲(chǔ)區(qū)分配管理;16個(gè)現(xiàn)場(chǎng)存儲(chǔ)器管理單元,用于實(shí)現(xiàn)存儲(chǔ)器物理地址到邏輯地址的映射。
圖4 從站接口芯片結(jié)構(gòu)框架
為了在網(wǎng)絡(luò)通信應(yīng)用層實(shí)現(xiàn)標(biāo)準(zhǔn)的輸入/輸出數(shù)據(jù)讀寫操作,設(shè)備行規(guī)定義了標(biāo)準(zhǔn)的數(shù)據(jù)讀寫標(biāo)識(shí),標(biāo)識(shí)規(guī)范了用于通信的數(shù)據(jù)類型、地址對(duì)應(yīng)關(guān)系形成了以XML文件形式表示的數(shù)據(jù)字典。在數(shù)據(jù)字典中每個(gè)PDO(過程數(shù)據(jù)對(duì)象,實(shí)時(shí)的周期性數(shù)據(jù))有一個(gè)標(biāo)準(zhǔn)的主索引和多個(gè)子索引,輸入主站的 PDO主索引為十六進(jìn)制數(shù)據(jù):0x1600,0x1601,…,0x16FF,共可達(dá)256索引值;輸出主站的PDO主索引為十六進(jìn)制數(shù)據(jù):0x1A00,0x1A01,…,0x1AFF,也為 256 個(gè)索引值。每個(gè)PDO數(shù)據(jù)以實(shí)體的方式進(jìn)行讀取,每個(gè)實(shí)體分配了一個(gè)標(biāo)準(zhǔn)的索引值。在本系統(tǒng)設(shè)計(jì)中,數(shù)據(jù)字典對(duì)象分配如表1所示,每個(gè)監(jiān)測(cè)量為1個(gè)16位的整數(shù)值,對(duì)應(yīng)一輸入對(duì)象索引值,如表1所示。
根據(jù)以上數(shù)據(jù)對(duì)象字典的定義,通過同步管理器管理從站接口的物理存儲(chǔ)器,每個(gè)同步管理器管理接口芯片一段連續(xù)的存儲(chǔ)區(qū),該存儲(chǔ)區(qū)可以存放多個(gè)PDO。
運(yùn)行上位機(jī)應(yīng)用程序,選擇需要監(jiān)測(cè)的通道,主站通信程序獲得需要讀取的通道號(hào),根據(jù)XML文件規(guī)定組裝數(shù)據(jù)幀,等待數(shù)據(jù)發(fā)送。主站應(yīng)用程序?yàn)榱耸雇ㄐ拍軌虬踩?、可靠的進(jìn)行,主站在如圖5所示狀態(tài)機(jī)的作用下實(shí)現(xiàn)數(shù)據(jù)通信。
圖5 EtherCAT狀態(tài)機(jī)
狀態(tài)機(jī)依次在不同的狀態(tài)及狀態(tài)轉(zhuǎn)換期間完成不同的任務(wù):在初始化狀態(tài)及向預(yù)操作轉(zhuǎn)換(IP)期間,主站程序配置數(shù)據(jù)鏈路層信息寄存器、地址寄存器并且設(shè)置應(yīng)用層控制寄存器,配置用于郵箱通信的同步管理器通道,初始化分布時(shí)鐘寄存器,之后等待從站應(yīng)用層確認(rèn);在預(yù)操作狀態(tài)及預(yù)操作向安全操作轉(zhuǎn)換(PS)期間,實(shí)現(xiàn)郵箱通信,主站配置用于過程通信的同步管理器寄存器、現(xiàn)場(chǎng)存儲(chǔ)器管理單元寄存器、應(yīng)用層狀態(tài)請(qǐng)求寄存器,同時(shí)請(qǐng)求狀態(tài)轉(zhuǎn)化,等待狀態(tài)確認(rèn);在安全操作狀態(tài)及安全操作向操作轉(zhuǎn)換(SO)期間,繼續(xù)郵箱通信,實(shí)現(xiàn)輸入數(shù)據(jù)通信,發(fā)起狀態(tài)轉(zhuǎn)換請(qǐng)求并等待狀態(tài)確認(rèn);在操作狀態(tài)期間,實(shí)現(xiàn)輸入輸出數(shù)據(jù)的通信操作。在安全操作期間主站發(fā)送讀通道請(qǐng)求數(shù)據(jù)幀,該數(shù)據(jù)幀發(fā)送給從站要讀取的通道編號(hào)值,從站響應(yīng)主站要求,打開相關(guān)的多路開關(guān)采集需要讀取相關(guān)編號(hào)的傳感器采集的浪高數(shù)值。接下來,主站發(fā)出與以上類似的接收數(shù)據(jù)的數(shù)據(jù)幀,讀輸入數(shù)據(jù)的數(shù)值。因此,主站通過發(fā)送兩次數(shù)據(jù)幀就能實(shí)現(xiàn)任意數(shù)量傳感器數(shù)據(jù)一次性采集,最大限度的保證采集的速度。
為了對(duì)比分析系統(tǒng)的性能,考慮兩種典型情況即:主站加1個(gè)從站和主站加多個(gè)從站,在實(shí)驗(yàn)室條件下對(duì)這兩種結(jié)構(gòu)的系統(tǒng)性能分別進(jìn)行了測(cè)試。
表1 數(shù)據(jù)字典索引
首先,將信號(hào)發(fā)生器產(chǎn)生的幅值為1V,頻率為10Hz的信號(hào)接到3個(gè)從站的前兩個(gè)通道即:第1個(gè)從站的1,2號(hào)通道,第2個(gè)從站33,64號(hào)通道,第3個(gè)從站65,96號(hào)通道,在主站測(cè)得的信號(hào)波形如圖6所示,可以看出主站獲得的波形比較平滑。
圖6 3個(gè)從站的前兩個(gè)通道采集的信號(hào)波形
接下來采用同樣的信號(hào)測(cè)試系統(tǒng)分別對(duì)連接1個(gè)從站、2個(gè)從站和3個(gè)從站情況下的響應(yīng)時(shí)間進(jìn)行測(cè)試,測(cè)試結(jié)果如圖7所示,從圖7中可以看出響應(yīng)時(shí)間主要分布在250 s左右,另外,從站數(shù)量的增加對(duì)系統(tǒng)響應(yīng)時(shí)間幾乎沒有影響。
圖7 系統(tǒng)響應(yīng)時(shí)間
為了進(jìn)一步驗(yàn)證系統(tǒng)的性能,對(duì)包含3個(gè)從站系統(tǒng)做了10組測(cè)試,給出1000個(gè)數(shù)據(jù)點(diǎn)平均響應(yīng)時(shí)間如圖8所示,從圖中可以看出采集的10組數(shù)據(jù)點(diǎn)響應(yīng)時(shí)間最小值為256.4 s,而最大值為258.8 s,波動(dòng)差值僅為2.4 s,這在大多數(shù)的數(shù)據(jù)監(jiān)控系統(tǒng)中基本上可以忽略不計(jì)。
圖8 10組數(shù)據(jù)點(diǎn)平均響應(yīng)時(shí)間
EtherCAT協(xié)議因其采用特殊的硬件結(jié)構(gòu)及優(yōu)化的協(xié)議規(guī)范尤其適用于大容量高實(shí)時(shí)性的現(xiàn)場(chǎng)級(jí)數(shù)據(jù)采集與監(jiān)控。本文通過構(gòu)建海洋浪高數(shù)據(jù)采集與監(jiān)控系統(tǒng),通過對(duì)單個(gè)從站和多個(gè)從站的實(shí)驗(yàn)測(cè)試表明,系統(tǒng)性能在協(xié)議規(guī)定帶載范圍內(nèi),不受采集通道數(shù)影響,響應(yīng)時(shí)間不但達(dá)到微秒數(shù)量級(jí),而且波動(dòng)非常小,適用于大多數(shù)有高實(shí)時(shí)性要求的現(xiàn)場(chǎng)數(shù)據(jù)監(jiān)控場(chǎng)合。同時(shí),由于EtherCAT協(xié)議采用獨(dú)特的數(shù)據(jù)幀調(diào)度形式,一次能夠傳輸高達(dá)1498個(gè)字節(jié)的數(shù)據(jù),使得系統(tǒng)也適用于大量數(shù)據(jù)傳輸?shù)腎/O應(yīng)用中。此外,由于采用結(jié)構(gòu)化設(shè)計(jì)方法,通過修正數(shù)據(jù)字典和主站程序即可實(shí)現(xiàn)更多通道數(shù)的擴(kuò)展,從而可以通過簡(jiǎn)單的改進(jìn)應(yīng)用于現(xiàn)場(chǎng)級(jí)的監(jiān)測(cè)監(jiān)控場(chǎng)合。
[1]曹懷虎,余鎮(zhèn)危,王磊,等.以太網(wǎng)DCS中基于MODBUS/TCP協(xié)議通信的設(shè)計(jì)與實(shí)現(xiàn)[J].計(jì)算機(jī)工程與設(shè)計(jì),2004,25(2):314-317.
[2]張永德,白碩.基于PROFINET的開放式以太網(wǎng)控制器的設(shè)計(jì)[J].計(jì)算機(jī)工程與設(shè)計(jì),2010,31(7):1458-1461.
[3]朱春鴦,郭其一.地鐵車輛車載設(shè)備火災(zāi)狀態(tài)識(shí)別報(bào)警網(wǎng)絡(luò)系統(tǒng)[J].計(jì)算機(jī)工程與設(shè)計(jì),2009,30(21):5025-5030.
[4]劉暾東,謝維盛,蔡崗全.Ethernet/IP通信適配器的設(shè)計(jì)與實(shí)現(xiàn)[J].儀器儀表學(xué)報(bào),2008,29(18):2220-2224.
[5]石成華,楊彬,王文亮,等.智能閥門定位器EPA高速通信模塊的開發(fā)[J].儀表技術(shù)與傳感器,2009(12):75-77.
[6]張茁,孫潔.基于以太網(wǎng)的智能家庭網(wǎng)絡(luò)系統(tǒng)設(shè)計(jì)[J].計(jì)算機(jī)工程與設(shè)計(jì),2005,26(11):3133-3134.
[7]胡立坤,王慶超.基于以太網(wǎng)通信過程的實(shí)時(shí)改進(jìn)方法研究[J].計(jì)算機(jī)工程與設(shè)計(jì),2006,27(9):1516-1520.
[8]黨安喜,裴少婧,尚耀東,等.以太網(wǎng)時(shí)延仿真與性能分析[J].計(jì)算機(jī)工程與應(yīng)用,2009,45(2):119-121.
[9]李木國(guó),王磊,王靜,等.基于EtherCAT的工業(yè)以太網(wǎng)數(shù)據(jù)采集系統(tǒng)[J].計(jì)算機(jī)工程,2010,36(3):237-239.