• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

      EtherCAT分布時鐘同步算法的研究與優(yōu)化

      2022-02-06 02:17:52孫亞碩
      儀表技術(shù)與傳感器 2022年12期
      關(guān)鍵詞:主從偏移量主站

      榮 鋒,孫亞碩

      (1.天津工業(yè)大學(xué)電子與信息工程學(xué)院,天津 300387;2.天津市光電檢測技術(shù)與系統(tǒng)重點實驗室,天津 300387)

      0 引言

      隨著工業(yè)的發(fā)展,工業(yè)控制領(lǐng)域?qū)ν娇刂菩阅芴岢隽烁叩囊?。提高主從控制系統(tǒng)的時鐘同步精度是提高同步控制精度的基礎(chǔ),EtherCAT在時鐘同步方面與其他工業(yè)以太網(wǎng)的不同之處在于其支持分布時鐘同步,具有分布時鐘功能的EtherCAT從站設(shè)備之間可獲得ns級別的時鐘同步精度。因此,EtherCAT分布時鐘同步技術(shù)的研究對于進一步改善工業(yè)控制系統(tǒng)的同步性能具有實際意義。

      為了使工業(yè)控制系統(tǒng)獲得更好更穩(wěn)定的時鐘同步性能,國內(nèi)外的眾多研究人員對EtherCAT的分布時鐘同步技術(shù)進行了研究。汪雅楠等對EtherCAT 3種基本拓?fù)浣Y(jié)構(gòu)的時鐘同步誤差進行了仿真分析[1],為實際工業(yè)現(xiàn)場布線規(guī)則提供了理論參考,但并未對時鐘同步算法及其實現(xiàn)過程展開詳細(xì)的研究。D.Ganz等將PTCP協(xié)議引入到了EtherCAT數(shù)據(jù)幀中[2],驗證了PTCP協(xié)議對提高主從站之間的同步精度的有效性。李備備等對EtherCAT分布時鐘機制的同步方法進行了分析和研究[3],但是在時鐘同步的過程中忽略了主站與參考從站之間的傳輸延時。本文針對以上研究經(jīng)驗和不足,從研究時鐘同步誤差的主要來源出發(fā),對EtherCAT的分布時鐘同步算法進行研究和優(yōu)化,并搭建EtherCAT主從系統(tǒng)對優(yōu)化后的分布時鐘同步算法進行測試。其中,EtherCAT主從系統(tǒng)測試平臺以移植了SOEM框架并搭載Xenomai實時內(nèi)核的Linux系統(tǒng)作為主站,采用AX58100和STM32F407搭建EtherCAT從站。

      1 EtherCAT原理概述

      EtherCAT的OSI模型共3層:物理層、數(shù)據(jù)鏈路層和應(yīng)用層[4]。其中,物理層使用電纜、光纖、LVDS等多種傳輸介質(zhì)且網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)靈活,數(shù)據(jù)鏈路層的功能則需要專門的從站控制器芯片來實現(xiàn)。在工業(yè)控制領(lǐng)域,EtherCAT工業(yè)設(shè)備之間通常采用主從架構(gòu),將發(fā)送控制指令的設(shè)備作為主站,執(zhí)行控制指令的設(shè)備作為從站,主站與各從站之間的數(shù)據(jù)通信流程如圖1所示。

      圖1 主從站之間的數(shù)據(jù)通信流程

      主站向下發(fā)送數(shù)據(jù)幀給各個從站,并依據(jù)邏輯尋址實現(xiàn)主站與各個從站之間的過程數(shù)據(jù)交換。各個從站依次對主站下發(fā)的數(shù)據(jù)進行提取和處理,并將處理完的數(shù)據(jù)上傳給主站,當(dāng)最后一個從站處理完主站下發(fā)的數(shù)據(jù)后,將經(jīng)過所有從站處理后的數(shù)據(jù)以只轉(zhuǎn)發(fā)不處理的方式返回給主站。其中,為了方便判斷各個從站是否正確完成了對主站所下發(fā)的數(shù)據(jù)幀的提取和插補操作,在各個從站完成對主站下發(fā)數(shù)據(jù)的處理之后,每個數(shù)據(jù)報文中的工作計數(shù)器會增加相應(yīng)的數(shù)值。

      2 EtherCAT分布時鐘同步原理

      EtherCAT工業(yè)以太網(wǎng)協(xié)議定義了3種同步模式。第1種是自由運行模式,在該模式下各個從站的應(yīng)用程序由本身時鐘進行觸發(fā);第2種是SM同步模式,各從站的應(yīng)用程序由本地接收EtherCAT幀時所產(chǎn)生的中斷信號進行觸發(fā)。無論是自由運行模式還是SM同步模式均未涉及時鐘同步,僅適用于對同步精度的要求較低的工業(yè)控制場景中。本文研究的是第3種同步模式,即分布時鐘同步模式,在該同步模式下,各從站的本地時鐘經(jīng)過同步和補償后獲得一致的系統(tǒng)時間[5],各從站基于該系統(tǒng)時間產(chǎn)生的同步中斷信號SYNC來觸發(fā)本地應(yīng)用程序同步運行。因此,時鐘同步是實現(xiàn)各從站同步執(zhí)行主站下發(fā)的動作指令的基礎(chǔ)。為了實現(xiàn)時鐘同步首先需要確定一個參考時鐘,主站時鐘和各從站時鐘均需要與參考時鐘同步。

      參考時鐘的選取方案有兩種:以主站時鐘為參考時鐘;以從站或外部時鐘為參考時鐘。若以主站時鐘為參考時鐘,主從系統(tǒng)的時鐘同步精度易受到主站抖動的影響。因此,本文選擇一個攜帶有分布時鐘的從站作為參考從站,并將其系統(tǒng)時鐘作為系統(tǒng)參考時鐘。主站和其他非參考從站以系統(tǒng)參考時鐘為標(biāo)準(zhǔn)校正本地時鐘,以實現(xiàn)主站與各從站之間的時鐘同步。

      主站和各從站之間產(chǎn)生時鐘同步誤差的原因主要在于以下3個方面:

      (1)初始時鐘偏移,由于無法保證主站和各從站可以同時上電,主站和各從站的本地初始時鐘之間有一定的時間偏差;

      (2)傳輸延時,包括主站和各從站之間的線纜傳輸延時、各從站內(nèi)部的數(shù)據(jù)幀處理延時、數(shù)據(jù)幀轉(zhuǎn)發(fā)延時[6];

      (3)時鐘漂移,從站時鐘晶振的振動頻率的微小差異導(dǎo)致各從站時鐘速率不一致[7]。

      為了獲得精確的時鐘同步,各從站的分布時鐘同步的實現(xiàn)主要從上述3個方面入手,測量傳輸延時Tdelay(n)、計算各從站的初始時鐘偏移量Toffset(n)和時鐘漂移量Δt(n),最終,各從站通過圖2所示的時間控制環(huán)路來完成對本地時鐘漂移的補償,以參考從站的系統(tǒng)時間tsys_ref為標(biāo)準(zhǔn)校正本地系統(tǒng)時鐘tsys_local(n)。

      圖2 時間控制環(huán)路

      在實現(xiàn)主從系統(tǒng)的時鐘同步的過程中,既要實現(xiàn)主站系統(tǒng)時間和參考從站的系統(tǒng)時間的同步,又要實現(xiàn)其他從站的系統(tǒng)時間和參考從站的系統(tǒng)時間的同步[8]。如圖3所示,主站與參考從站兩者之間的系統(tǒng)時間偏差,主要來源于初始時鐘偏移和兩者之間的傳輸延時。在傳統(tǒng)的EtherCAT分布時鐘同步算法中,默認(rèn)主站與參考從站之間的傳輸延時為0,將兩者之間的系統(tǒng)時間偏差完全歸因于初始時鐘偏移,導(dǎo)致各從站的初始時鐘偏移量的計算結(jié)果比實際值偏大,對主站與各從站之間的時間同步性能造成了影響。因此,本文對EtherCAT分布時鐘同步算法進行優(yōu)化,在數(shù)據(jù)報文中增加記錄主站發(fā)送和接收數(shù)據(jù)幀的時間戳,測量主站與參考從站之間的傳輸延時,并在計算參考從站的初始時鐘偏移量的過程中,考慮主站與參考從站之間的傳輸延時對其計算結(jié)果的影響。

      圖3 主站與參考從站的系統(tǒng)時間偏差

      3 EtherCAT分布時鐘同步算法

      3.1 傳輸延時測量

      本文以圖4所示的一主三從的線型拓?fù)浣Y(jié)構(gòu)為例,通過讀取主站和各從站中設(shè)置的時間戳來實現(xiàn)對傳輸延時的測量[9]。

      圖4 線性拓?fù)浣Y(jié)構(gòu)

      設(shè)從站1為參考從站,主站發(fā)送數(shù)據(jù)幀的時刻為tm0、接收返回數(shù)據(jù)幀的時刻為tm1,數(shù)據(jù)幀第一個前導(dǎo)位到達從站n的端口0的時刻為tn0、到達從站n的端口1的時刻為tn1。則主站與參考從站之間的傳輸延時Tdelay(m)為

      (1)

      假設(shè)各從站的數(shù)據(jù)處理延時和數(shù)據(jù)轉(zhuǎn)發(fā)延時一致[10],則從站2與參考從站之間的傳輸延時Tdelay(2)為

      (2)

      從站3與參考從站之間的傳輸延時Tdelay(3)為

      (3)

      根據(jù)式(2)、式(3)可推導(dǎo)出從站n的傳輸延時Tdelay(n):

      Tdelay(n)=

      (4)

      主站根據(jù)式(4)計算出各個從站的傳輸延時,并將其寫入各從站的傳輸延時寄存器0x0928~0x092B。

      3.2 初始時鐘偏移量計算

      計算初始時鐘偏移量Toffset(n)的過程,即為計算在時鐘初始化階段的主從站之間的本地時間tlocal(n)的偏差值的過程。本文為了實現(xiàn)主站與各從站之間的時鐘同步,在初始時鐘偏移量的計算過程中,以主站的當(dāng)前系統(tǒng)時間作為參考量,并且考慮主站與參考從站之間的傳輸延時對計算結(jié)果的影響。其中,主站的系統(tǒng)時間tsys_master為主站的一個全局時間,以2000-01-01為零時刻開始計時,單位為ns。受到主站時鐘抖動的影響,主站的本地時鐘會產(chǎn)生一定的時鐘偏移。因此,本文選用多次傳輸延時測量的平均值作為主站與參考從站之間的傳輸延時量。

      本文通過對比數(shù)據(jù)幀到達各從站的數(shù)據(jù)處理單元的時間trec(n),來計算各從站的初始時鐘偏移量。各從站中的寄存器0x0918~0x091F中記錄了數(shù)據(jù)幀第一個前導(dǎo)位到達數(shù)據(jù)幀處理單元的本地時間,將該時間和主站與參考從站之間的傳輸延時均與主站發(fā)送數(shù)據(jù)幀時的系統(tǒng)時間作差,計算出的時間差即為參考從站的初始時鐘偏移量Toffset(1):

      Toffset(1)=tsys_master-trec(1)-Tdelay(m)

      (5)

      在式(5)中,主站每隔1 ms測量1次主站與參考從站之間的傳輸延時,Tdelay(m)為10 000次測量結(jié)果的平均值。非參考從站的初始時鐘偏移量Toffset(n)為

      Toffset(n)=trec(1)+Toffset(1)-trec(n)
      =tsys_master-Tdelay(m)-trec(n)

      (6)

      式中n>1。

      主站依據(jù)式(5)、式(6)計算各個從站的初始時鐘偏移量,并將其寫入各個從站的初始時鐘偏移寄存器0x0920~0x0927。各從站使用本地時間tlocal(n)和Toffset(n)根據(jù)式(7)可以計算出本地系統(tǒng)時間tsys_local(n)。

      tsys_local(n)=tlocal(n)-Toffset(n)

      (7)

      3.3 時鐘漂移量補償

      為了實現(xiàn)對各從站的時鐘漂移量的計算和補償,主站發(fā)送ARMW或FRMW命令給各個從站,對各從站的本地系統(tǒng)時間寄存器執(zhí)行讀寫操作[11]。參考從站執(zhí)行讀操作命令,將當(dāng)前系統(tǒng)時間tsys_ref插補到數(shù)據(jù)幀中,各個非參考從站執(zhí)行寫操作命令,提取數(shù)據(jù)幀中存放的參考從站的系統(tǒng)時間tsys_ref,并將其與本地系統(tǒng)時間tsys_local(n)作比較,并將比較結(jié)果作為時間控制環(huán)路的輸入值來計算各從站的時鐘漂移量Δt(n),計算過程如公式(8)所示。

      Δt(n)=tsys_local(n)-Tdelay(n)-tsys_ref(n)
      =tlocal(n)-Toffset(n)-Tdelay(n)-tsys_ref(n)

      (8)

      支持分布時鐘同步功能的從站中一般內(nèi)嵌本地時鐘,時鐘周期為10ns。各從站的時間控制環(huán)路根據(jù)式(8)計算出的Δt(n)的正負(fù)來實現(xiàn)對時鐘漂移的補償,若Δt(n)=0,各從站的本地時鐘每10 ns增加10個時間單位;若Δt(n)<0,說明該從站的時鐘運行速率小于參考從站,則各從站的本地時鐘每10 ns增加11個時間單位;若Δt(n)>0,說明該從站的時鐘運行速率大于參考從站,則各從站的本地時鐘每10 ns增加9個時間單位。

      3.4 分布時鐘同步的實現(xiàn)

      分布時鐘同步的實現(xiàn)過程主要通過主站讀寫從站寄存器來實現(xiàn),在時鐘初始化階段EtherCAT主從系統(tǒng)的時鐘同步實現(xiàn)的整體流程如圖5所示。

      首先,主站發(fā)送FPRD命令讀所有從站的特征信息寄存器0x0008~0x0009和數(shù)據(jù)鏈路狀態(tài)寄存器0x0110~0x0111,獲取主站連接的所有支持分布時鐘功能的從站設(shè)備及其各端口的通信狀態(tài),并根據(jù)各從站設(shè)備端口的通信狀態(tài)獲得網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)。其次,主站調(diào)用依據(jù)圖6的流程圖創(chuàng)建的ec_masterpdelay()函數(shù)獲得主站與參考從站之間的傳輸延時,并讀取各從站記錄數(shù)據(jù)處理單元接收數(shù)據(jù)時間的寄存器0x0918~0x091F[12],依據(jù)式(5)、式(6)分別計算參考從站和其他從站的初始時鐘偏移量。之后,主站通過FPRD命令獲得主站發(fā)送的數(shù)據(jù)幀到達各從站端口的時間,并依據(jù)式(4)計算各非參考從站與參考從站的傳輸延時[13]。最后,各從站將主站計算出的傳輸延時分量、初始時鐘偏移分量以及各從站的本地系統(tǒng)時間、參考從站的系統(tǒng)時間作為各從站的時鐘控制環(huán)路的輸入值,通過內(nèi)部的時鐘控制環(huán)路實現(xiàn)對時鐘漂移量的初步補償。為了實現(xiàn)時鐘的精確同步,可以在每個通信周期多次發(fā)送ARMW或FRMW命令,以實現(xiàn)對時鐘漂移的動態(tài)補償。

      圖6 ec_masterpdelay()函數(shù)模塊流程圖

      4 時鐘同步性能測試

      4.1 測試平臺的搭建

      依據(jù)經(jīng)過優(yōu)化的EtherCAT分布時鐘同步算法修改EtherCAT主站程序,搭建如圖7所示的EtherCAT主從控制系統(tǒng)測試平臺,采用線性網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu),1個PC主站連接3個IO從站,對EtherCAT主從控制系統(tǒng)的時鐘同步性能進行測試。

      圖7 測試平臺

      其中,選用搭載Linux系統(tǒng)的PC機作為EtherCAT主站,AX58100作為EtherCAT從站控制器,STM32F405RGT6芯片和外圍電路作為從站微處理器[14]。在Linux系統(tǒng)中,需要設(shè)置任務(wù)調(diào)度機制才能強制實時性的高優(yōu)先級任務(wù)優(yōu)先運行,大大降低了Linux系統(tǒng)的實時性[15]。因此,為了達到EtherCAT主站的實時性要求,在Linux系統(tǒng)中移植了Xenomai實時內(nèi)核對Linux系統(tǒng)進行實時性改造,在Xenomai/Linux系統(tǒng)中移植SOEM主站協(xié)議來實現(xiàn)EtherCAT主站的功能。

      4.2 測試及結(jié)果分析

      主從控制系統(tǒng)的時鐘同步性能測試內(nèi)容主要包括其他非參考從站與參考從站之間的時鐘同步測試和時鐘同步算法優(yōu)化前后的主站與參考從站之間的時鐘同步測試2個部分。本文將本地和參考從站兩者之間的系統(tǒng)時間偏差的絕對值大小作為主從系統(tǒng)的時鐘同步精度的衡量指標(biāo),系統(tǒng)時間偏差的絕對值越小,則主從系統(tǒng)的時鐘同步精度越高,系統(tǒng)時間偏差等于0為時鐘同步的理想狀態(tài)。

      支持分布時鐘的從站具有記錄系統(tǒng)時間偏差值的寄存器0x092C,該寄存器共占用4個字節(jié),bit31為符號位。若本地系統(tǒng)時間大于或等于參考從站的系統(tǒng)時間,則符號位為0;若本地系統(tǒng)時間小于參考從站的系統(tǒng)時間,則符號位為1。因此,主站可通過發(fā)送FPRD命令讀從站的寄存器0x092C,獲得指定從站的系統(tǒng)時間偏差值。

      考慮到從站之間的距離對時鐘同步性能的影響,本文選擇距離參考從站最遠(yuǎn)的從站3為例進行時鐘同步性能測試。以1 ms為時間周期,循環(huán)發(fā)送FPRD命令讀從站3的寄存器0x092C,共循環(huán)發(fā)送10 000次來測量從站3與參考從站之間的系統(tǒng)時間偏差,圖8為從站3的時鐘同步性能測試結(jié)果。

      圖8 從站3的系統(tǒng)時間偏差

      由圖8的測試結(jié)果可以看出,從站3的系統(tǒng)時間偏差值在經(jīng)過500次的時鐘漂移補償后可以穩(wěn)定在100 ns左右,在經(jīng)過5 000次的時鐘漂移補償后,從站3的系統(tǒng)時間偏差甚至可以降低到50 ns以下,幾乎接近于0,已經(jīng)遠(yuǎn)遠(yuǎn)超過了IEEE 1588協(xié)議可以達到的時鐘同步效果。

      本文選擇搭載Linux系統(tǒng)的PC機作為主站,其中沒有用來記錄系統(tǒng)時間偏差值的寄存器,因此需要編寫計算主站的系統(tǒng)時間偏差值的函數(shù)模塊,在主函數(shù)中可通過循環(huán)調(diào)用該函數(shù)實現(xiàn)對主站的時鐘同步性能的檢測。首先主站發(fā)送FPRD命令讀取參考從站的本地系統(tǒng)時間副本,之后將其與主站當(dāng)前的系統(tǒng)時間作差,將該時間差作為主站的系統(tǒng)時間偏差值。圖9(a)、圖9(b)分別為時鐘同步算法優(yōu)化前后的主站的系統(tǒng)時間偏差的散點分布圖。

      (a)傳統(tǒng)的時鐘同步算法

      (b)優(yōu)化后的時鐘同步算法圖9 主站的系統(tǒng)時間偏差

      由測試結(jié)果可以看出,若使用傳統(tǒng)的分布時鐘同步算法,不考慮主站的傳輸延時,主站的系統(tǒng)時間偏差的絕對值一直保持在18 μs以內(nèi),10 000次測量結(jié)果的平均值為11.159 μs;若使用本文提出的經(jīng)過優(yōu)化的時鐘同步算法,考慮主站與參考從站之間的傳輸延時,對各從站的初始時鐘偏移量進行補償,主站的系統(tǒng)時間偏差的絕對值可以降低到8 μs以內(nèi),10 000次測量結(jié)果的平均值為3.112 μs,與傳統(tǒng)的時鐘同步算法相比,主站的系統(tǒng)時間偏差降低了72%左右,主站與從站之間的時鐘同步精度有了明顯提高。

      5 結(jié)束語

      本文對EtherCAT的分布時鐘同步原理和影響時鐘同步效果的主要因素進行了研究和分析,提出了一種分布時鐘同步算法的優(yōu)化方法,在計算各從站初始時鐘偏移量的過程中,考慮主站與參考從站之間的傳輸延時對各從站的初始時鐘偏移量計算結(jié)果的影響,并分別從傳輸延時、初始時鐘偏移量、時鐘漂移3個方面對各從站進行了時鐘補償?;赬enomai/Linux系統(tǒng)和STM32搭建了主從系統(tǒng)測試平臺,對優(yōu)化后的分布時鐘同步算法進行了效果測試。測試結(jié)果說明了主站和各從站之間達到了更好的時鐘同步效果,可以達到工業(yè)控制領(lǐng)域高精度的時鐘同步需求。

      猜你喜歡
      主從偏移量主站
      基于格網(wǎng)坐標(biāo)轉(zhuǎn)換法的矢量數(shù)據(jù)脫密方法研究
      FANUC系統(tǒng)PROFIBUS主從功能應(yīng)用
      攪拌針不同偏移量對6082-T6鋁合金接頭勞性能的影響
      基于最小二乘平差的全極化SAR配準(zhǔn)偏移量估計方法
      測繪工程(2017年3期)2017-12-22 03:24:50
      基于OS2主站系統(tǒng)的海量數(shù)據(jù)共享技術(shù)研究
      多表遠(yuǎn)程集抄主站系統(tǒng)
      電子制作(2017年23期)2017-02-02 07:17:07
      基于主從控制的微電網(wǎng)平滑切換控制策略研究
      基于飛行試驗數(shù)據(jù)的仿真模型主從一體化檢驗
      基于改進經(jīng)濟壓差算法的主站AVC的研究
      關(guān)口電能計量故障監(jiān)測報警裝置及主站研究
      达日县| 龙陵县| 菏泽市| 林口县| 平塘县| 泸水县| 新邵县| 阿图什市| 景德镇市| 合阳县| 屏南县| 巴青县| 通化县| 河曲县| 海南省| 江城| 乡宁县| 南阳市| 仁寿县| 丹凤县| 黔西| 山西省| 于都县| 上蔡县| 珠海市| 南部县| 江川县| 个旧市| 陇川县| 左权县| 山西省| 石渠县| 延津县| 招远市| 黎川县| 鸡东县| 冀州市| 外汇| 六盘水市| 舞阳县| 临猗县|