王 磊, 李木國, 王 靜, 王曉亮
(1.大連理工大學電信學院,遼寧大連116024;2.河南理工大學計算機科學與技術學院,河南焦作454000;3.大連理工大學海岸和近海工程國家重點實驗室,遼寧大連116024)
目前,成為國際標準的工業以太網協議有十余種,其中有6種典型的實時工業以太網總線在市場上相互競爭,這包括:Ethernet/IP、Profinet、EtherCAT、Ethernet PowerLink、Modbus/IDA和EPA。國內外學者也對這些協議進行了大量的應用研究[1-2],并設計開發了不同應用背景下的現場級網絡控制系統[3-6]。但是,其中Ethernet/IP和Modbus/IDA是在TCP/IP協議應用層上實現的實時數據交換[7],這種方式只能應用于100ms以上的應用場合;EthernetPowerLink、Profinet和EPA是通過在數據鏈路層上采用適當的優先級調度方案來保證實時性[7],但只能保證最低5-10ms的實時通信[8];而EtherCAT采用的是集總幀的調度方式,在數據鏈路層和物理層都做了相應的可以實現微妙級的高實時性通信[9]。
因EtherCAT協議獨特的特性,它能夠使以太網延伸至現場級通信控制,特別適合大數據量、高實時性的I/O通信應用。本文設計提出的基于EtherCAT協議的現場級實時控制系統的設計方案,分析了在主從式結構下主站和從站的具體實現,針對海洋環境大數據量的浪高監測設計了相應的軟件及硬件,從而利用該平臺對EtherCAT協議的性能進行實驗驗證、分析。
EtherCAT協議采用與標準以太網共享幀的方式工作。Ether-CAT總線數據幀填充到標準以太網幀的數據段部分,通過類型標識符域的十六進制數88A4與其他以太網幀類型相區別。這種特性使得它很容易實現與標準以太網的兼容。此外,Ether-CAT協議規定上位主機(主站)與監控分站一起構成一個封閉的環,如圖1所示。

圖1 EtherCAT協議工作原理
攜帶從站地址的標準以太網數據幀從主站出發,逐個訪問環路上的從站。由于從站接口芯片的獨特結構,當數據幀到達時,從站接口芯片就會把從主站輸出數據從以太網幀的數據部分取下來,或把輸入主站的數據插入到以太網幀的相應數據域位置,然后再把整個以太網幀轉發到下一個從站,直到最后一個從站,數據幀才返回主站處理。在此過程中無需像其它工業以太網總線協議那樣對數據幀編碼/解碼,使得數據處理時間大大縮短,每個從站數據處理延遲僅為十幾納秒。此外,由于EtherCAT協議支持將連接到網絡上的所有從站存儲區統一分配一個唯一的邏輯地址,每個從站通過接口芯片特殊的現場存儲管理單元結構實現邏輯地址到本地存儲器物理地址的映射,因此可以根據監控的需要對每個EtherCAT的數據幀做合理的規劃,從而實現在一次數據幀回還過程中對多個從站,多通道數據的讀取。
如圖2所示,本系統硬件主要包括:EtherCAT網絡接口電路、核心處理器單片機電路外圍數據監測A/D轉換電路及信號放大濾波等處理電路、多路開關和浪高儀傳感器;軟件則為數據采集和通信程序。系統設計了10個從站,從距離上位計算機最近的從站開始編號,每個從站連接32個浪高儀,實現32個通道的浪高數據監測,所有浪高儀編號為1#~320#,從而使得主站程序能夠單獨監測任意1個通道數據或任意幾個通道組合的數據。

圖2 系統總體結構
單個從站硬件原理框圖如圖3所示,在本系統中采用的核心單片機控制芯片為PIC24HJ256GP610,它的指令執行速度能夠達到40Mbps,內部具有兩個SPI通信模塊,使用模塊1與網絡接口芯片ET1100通信,用模塊2與速度為3MSPS的A/D轉換器通信。此外用通用接口 RB0~RB3作為第一級多路開關1、2的通道選擇信號,RF0~RF1分別作為開關2、1的片選信號;用RD0~RD1作第二級多路開關3的通道選擇信號,RD3為芯片使能信號。

圖3 單個從站硬件原理框架
如圖4所示,接口芯片主要包括:一個容量為8K的雙口RAM存儲器,前4K地址分配給寄存器,剩余的4K空間用于郵箱和周期性過程數據通信;16個同步管理器單元,用于對雙口RAM存儲區根據需要進行分配,同步管理器0和同步管理器1分別用于郵箱輸出和輸入存儲器分配管理,同步管理器2和同步管理器3分別用于過程數據輸出和輸入存儲區分配管理;16個現場存儲器管理單元,用于實現存儲器物理地址到邏輯地址的映射。

圖4 從站接口芯片結構框架
為了在網絡通信應用層實現標準的輸入/輸出數據讀寫操作,設備行規定義了標準的數據讀寫標識,標識規范了用于通信的數據類型、地址對應關系形成了以XML文件形式表示的數據字典。在數據字典中每個PDO(過程數據對象,實時的周期性數據)有一個標準的主索引和多個子索引,輸入主站的 PDO主索引為十六進制數據:0x1600,0x1601,…,0x16FF,共可達256索引值;輸出主站的PDO主索引為十六進制數據:0x1A00,0x1A01,…,0x1AFF,也為 256 個索引值。每個PDO數據以實體的方式進行讀取,每個實體分配了一個標準的索引值。在本系統設計中,數據字典對象分配如表1所示,每個監測量為1個16位的整數值,對應一輸入對象索引值,如表1所示。
根據以上數據對象字典的定義,通過同步管理器管理從站接口的物理存儲器,每個同步管理器管理接口芯片一段連續的存儲區,該存儲區可以存放多個PDO。
運行上位機應用程序,選擇需要監測的通道,主站通信程序獲得需要讀取的通道號,根據XML文件規定組裝數據幀,等待數據發送。主站應用程序為了使通信能夠安全、可靠的進行,主站在如圖5所示狀態機的作用下實現數據通信。

圖5 EtherCAT狀態機
狀態機依次在不同的狀態及狀態轉換期間完成不同的任務:在初始化狀態及向預操作轉換(IP)期間,主站程序配置數據鏈路層信息寄存器、地址寄存器并且設置應用層控制寄存器,配置用于郵箱通信的同步管理器通道,初始化分布時鐘寄存器,之后等待從站應用層確認;在預操作狀態及預操作向安全操作轉換(PS)期間,實現郵箱通信,主站配置用于過程通信的同步管理器寄存器、現場存儲器管理單元寄存器、應用層狀態請求寄存器,同時請求狀態轉化,等待狀態確認;在安全操作狀態及安全操作向操作轉換(SO)期間,繼續郵箱通信,實現輸入數據通信,發起狀態轉換請求并等待狀態確認;在操作狀態期間,實現輸入輸出數據的通信操作。在安全操作期間主站發送讀通道請求數據幀,該數據幀發送給從站要讀取的通道編號值,從站響應主站要求,打開相關的多路開關采集需要讀取相關編號的傳感器采集的浪高數值。接下來,主站發出與以上類似的接收數據的數據幀,讀輸入數據的數值。因此,主站通過發送兩次數據幀就能實現任意數量傳感器數據一次性采集,最大限度的保證采集的速度。
為了對比分析系統的性能,考慮兩種典型情況即:主站加1個從站和主站加多個從站,在實驗室條件下對這兩種結構的系統性能分別進行了測試。

表1 數據字典索引
首先,將信號發生器產生的幅值為1V,頻率為10Hz的信號接到3個從站的前兩個通道即:第1個從站的1,2號通道,第2個從站33,64號通道,第3個從站65,96號通道,在主站測得的信號波形如圖6所示,可以看出主站獲得的波形比較平滑。

圖6 3個從站的前兩個通道采集的信號波形
接下來采用同樣的信號測試系統分別對連接1個從站、2個從站和3個從站情況下的響應時間進行測試,測試結果如圖7所示,從圖7中可以看出響應時間主要分布在250 s左右,另外,從站數量的增加對系統響應時間幾乎沒有影響。

圖7 系統響應時間
為了進一步驗證系統的性能,對包含3個從站系統做了10組測試,給出1000個數據點平均響應時間如圖8所示,從圖中可以看出采集的10組數據點響應時間最小值為256.4 s,而最大值為258.8 s,波動差值僅為2.4 s,這在大多數的數據監控系統中基本上可以忽略不計。

圖8 10組數據點平均響應時間
EtherCAT協議因其采用特殊的硬件結構及優化的協議規范尤其適用于大容量高實時性的現場級數據采集與監控。本文通過構建海洋浪高數據采集與監控系統,通過對單個從站和多個從站的實驗測試表明,系統性能在協議規定帶載范圍內,不受采集通道數影響,響應時間不但達到微秒數量級,而且波動非常小,適用于大多數有高實時性要求的現場數據監控場合。同時,由于EtherCAT協議采用獨特的數據幀調度形式,一次能夠傳輸高達1498個字節的數據,使得系統也適用于大量數據傳輸的I/O應用中。此外,由于采用結構化設計方法,通過修正數據字典和主站程序即可實現更多通道數的擴展,從而可以通過簡單的改進應用于現場級的監測監控場合。
[1]曹懷虎,余鎮危,王磊,等.以太網DCS中基于MODBUS/TCP協議通信的設計與實現[J].計算機工程與設計,2004,25(2):314-317.
[2]張永德,白碩.基于PROFINET的開放式以太網控制器的設計[J].計算機工程與設計,2010,31(7):1458-1461.
[3]朱春鴦,郭其一.地鐵車輛車載設備火災狀態識別報警網絡系統[J].計算機工程與設計,2009,30(21):5025-5030.
[4]劉暾東,謝維盛,蔡崗全.Ethernet/IP通信適配器的設計與實現[J].儀器儀表學報,2008,29(18):2220-2224.
[5]石成華,楊彬,王文亮,等.智能閥門定位器EPA高速通信模塊的開發[J].儀表技術與傳感器,2009(12):75-77.
[6]張茁,孫潔.基于以太網的智能家庭網絡系統設計[J].計算機工程與設計,2005,26(11):3133-3134.
[7]胡立坤,王慶超.基于以太網通信過程的實時改進方法研究[J].計算機工程與設計,2006,27(9):1516-1520.
[8]黨安喜,裴少婧,尚耀東,等.以太網時延仿真與性能分析[J].計算機工程與應用,2009,45(2):119-121.
[9]李木國,王磊,王靜,等.基于EtherCAT的工業以太網數據采集系統[J].計算機工程,2010,36(3):237-239.