一種基于雙環總線的時間同步方法
【專利摘要】本發明涉及一種基于雙環總線的時間同步方法,包括以下步驟:主/從設備初始化;主設備將發送時間封裝到同步消息中,發送至相鄰從設備;從設備i將在一個環路中接收到同步消息的時刻ti存儲并將發送同步消息時間ti’封裝到該同步消息中,發送至從設備i+1,從設備i+1保存接收到該同步消息時刻ti+1;同時在另一環路中,從設備i+1將發送另一同步消息到從設備i的發送時間si+1和時間ti+1通過該同步消息發送至從設備i;從設備i保存接收消息時刻si;從設備i計算從設備i和從設備i+1間的時鐘偏移量和通信延遲并修正本地時鐘,完成雙環總線主/從設備的時間同步。在本發明的同步消息可以同時發送到傳輸線路中,并且同步都在一個通信周期內完成,有效地提高了實時性;且同步效率高。
【專利說明】—種基于雙環總線的時間同步方法
【技術領域】
[0001]本發明應用雙環結構總線提出一種新的設備間時間同步方法,屬通信【技術領域】。【背景技術】
[0002]在工業控制領域中,為了能夠即時地對異常情況進行檢測與定位,通常需要在管理監控設備和相關的自動設備中保持嚴格的時間同步,通過控制系統將事件的發生次序以及時間及時記錄下來。在傳統的控制系統中,毫秒級的數據采樣周期已經能夠滿足通常的監控需要,但在大規模工控系統中,隨著現場設備在規模上的擴張,系統復雜度也相對較高,對同步精度的要求也日趨嚴格。例如,在類似于溫度與壓力監測的慢速系統中,同步的精度維持在毫秒級,但在高速的現場信息采集系統中,精度需求必須達到毫秒級。因此,精確的時間同步方法已經成為工業控制網絡中必不可少的關鍵要素。
[0003]眾所周知,現場設備主要依賴于串行的異步通信,沒有同步定時上的要求。但近年來隨著總線通信技術的不斷發展與大量實時任務的迫切需求,即時沒有配置內部時鐘的現場設備也需要與服務器進行同步,這對時間同步精度提出了新的要求。為了解決這個問題,ITU-U、IETF、MEF等組織設立了相關的標準,如ΝΤΡ、IEEE1588、IEEE802.1等,這些標準都以傳輸時間戳的方式來實現設備之間的同步。
[0004]但在高實時的工業現場,現有的通信方式以及設備內的系統架構已不能滿足其對時間精度的要求。因此,本發明提出了一種基于數控系統的時間同步控制模型,該模型在雙環總線結構的基礎上,設計高精度的時鐘同步功能模塊,以滿足設備間通信對實時性的要求。
【發明內容】
[0005]為了克服現有的時間同步方法在設備內受協議棧延遲及控制系統架構制約而存在實時性的不足,本發明提供一種面向數控機床的基于雙環總線的時間同步控制方法,可以通過單周期的同步消息傳輸降低設備間通信延遲,提高數控系統內時間同步方法的運行效率,保證數控系統運行的穩定性。
[0006]本發明解決其技術問題所采用的技術方案如下:
[0007]一種基于雙環總線的時間同步方法,包括以下步驟:
[0008]主/從設備初始化:從設備的本地時鐘單元計時器清零,清除其中存儲的時間數據;主設備的本地時鐘單元清空內部的偏移量數組和延遲量數組;
[0009]主設備通過雙環總線發送同步消息時將發送時間生成時間戳,將其封裝到同步消息中,通過主設備的兩個端口發送至相鄰從設備;
[0010]從設備i將在一個環路中接收到同步消息的時刻ti生成時間戳,并存儲到本地時鐘單元;該從設備發送同步消息時將發送時間t/生成時間戳其封裝到該同步消息中,發送至下一個從設備i+1,從設備i+1將接收到該同步消息時刻ti+1所生成的時間戳保存;
[0011]同時,在另一個環路中,從設備i+1將發送另一個同步消息到從設備i的發送時間Si+1’生成時間戳,將其和ti+1的時間戳通過該同步消息發送至從設備i ;從設備i將接收到該同步消息時刻Si所生成的時間戳保存;
[0012]從設備i通過ti+1,V,si+1,,Si四個時間戳計算出從設備i和從設備i+1間的時鐘偏移量Irffsrt和通信延遲Tdelay ;從設備i的本地時鐘單元根據時鐘偏移量Irffset和通信延遲Tdelay修正本地時鐘,完成雙環總線主/從設備的時間同步。
[0013]所述同步消息包括報頭和報體;其中報頭包括:協議類型、消息類型、消息長度、設備總數、標志域、源端口號、序列號;報體包括設備生成的時間戳。
[0014]所述計算從設備i和從設備i+Ι間的時鐘偏移量Irffset和通信延遲Tdelay通過以下公式得到
[0015]Toffdet = ((ti+1-ti' ) +(S1-Si+/ ))/2
[0016]Tdelay =!!-(S1-Si+/ ))/2
[0017]本發明具有以下有益效果及優點:
[0018]1.實時性高。在本發明中,數據傳輸的線路是環形通路,同步消息可以同時發送到傳輸線路中,并且同步都在一個通信周期內完成,有效地提高了實時性。
[0019]2.同步效率高。在本發明中,在原有數控系統的基礎上針對時間同步過程進行專門模塊設計和功能劃分的方法,將原有的集中處理方式獨立出來,對同步流程加以分析并有效控制,通過合理的邏輯分層,實現各模塊之間的功能聯動,來最大限度地減小同步過程的時間開銷。
[0020]3.采用時鐘偏移量和通信延遲計算方法能夠在單個通信周期內獲得從設備間通信的收發時間戳,從而快速計算出修正設備時鐘所需的偏移量與通信延遲。
【專利附圖】
【附圖說明】
[0021]圖1為本發明的同步功能模型抽象層次結構圖;
[0022]圖2為從設備中時鐘控制模型功能原理結構;
[0023]圖3為主設備時鐘控制模型功能原理結構;
[0024]圖4為雙環總線傳輸結構圖;
[0025]圖5為同步消息報頭結構圖;
[0026]圖6為從設備時鐘控制模型中各模塊同步消息處理過程;
[0027]圖7為主設備時鐘控制模型中各模塊同步消息處理過程;
[0028]圖8為時鐘偏移量與通信延遲計算方法圖。
【具體實施方式】
[0029]下面結合附圖及實施例對本發明做進一步的詳細說明。
[0030]本發明所采用的技術方案如下:
[0031]基于雙環總線的時間同步模型是指在原有數控系統的基礎上針對時間同步過程進行專門模塊設計和功能劃分的方法,將原有的集中處理方式獨立出來,對同步流程加以分析并有效控制,通過合理的邏輯分層,實現各模塊之間的功能聯動,來最大限度地減小同步過程的時間開銷。
[0032]如圖1所示,根據深入程度的不同,由現場設備抽象出的時鐘功能模型可以劃分為三層結構:網絡層,接口層和控制層。接口層與網絡層之間的通信主要依靠三個數據接口:消息接口,時間戳接口和時鐘調節接口。同步消息通過時間戳接口記錄收發時的時間信息并通過消息接口發送出去,接受同步消息時,相關的時間信息也是通過時間戳接口讀取。時間同步模塊負責處理通過接口讀取的時間戳信息并計算出與本地時鐘之間的偏移量與延遲。控制網絡中的從設備會在主設備發送的同步消息中讀取到時鐘調節信息并通過時鐘調節接口與本地時鐘連線。上述單元都是軟件實現,在硬件設備的支持下,對時鐘信息的操作將會更加精確。
[0033]設備內部的時鐘單元主要分為兩個部分:計時器與時鐘調節模塊。計時器用于記錄通信過程中的相關時間開銷,而調節模塊則通過同步算法周期性地修正本地時鐘與時鐘源的誤差。這兩部分也是保證設備間一致性的關鍵所在。
[0034]而根據同步過程中的功能定位,主設備中的主時鐘控制模型與從設備中的從時鐘控制模型也有著功能上的差異。主時鐘模型是現場的標準時間來源,通過收發同步消息維護控制系統內的時鐘狀態。從時鐘控制模型負責處理主設備發送的同步信息并對從設備的時鐘做相關修正。
[0035]如圖2所示,在從設備的時鐘控制模型中,最為關鍵的功能模塊是本地時鐘單元。它維護著本地時鐘的正常走時,并利用校準程序對本地時鐘作偏離量上的修正,而偏移量則通過同步消息中的時鐘信息計算得到。本地時鐘單元里同時儲存著進行同步所需的時間數據,以及時鐘狀態和對應屬性的描述文件。時鐘同步模塊主要用于處理前段接口傳送過來的同步消息,包括對報文的解析,偏移量和通信延遲的計算以及同步算法的調用。時間數據讀寫模塊負責從本地時鐘讀取時間數據并進行按約定格式進行封裝從而生成時間戳文件。時間戳處理模塊將帶有時間戳的報文與數據封裝為用于網絡傳輸的消息格式,并對從其他設備接收到的消息進行相應的解封。處于時鐘控制模型上層的是通用接口模塊,其中包含了功能消息接口與同步消息接口。這兩個接口共用一個網絡端口,但在邏輯上有著不同的功能劃分。功能消息接口負責處理功能性的網絡消息如數據報文、控制命令等,并將數據信息直接送往設備中對應的功能模塊。而同步消息接口對應于特殊格式的同步報文,被時間同步模塊所調用。
[0036]如圖3所示,與從設備中的時鐘控制模塊相比,主設備時鐘控制模型少了同步模塊,增加了時鐘單元里的從設備偏移量數組,用于實時更新系統所屬設備的同步情況。作為時鐘源,主設備的時鐘控制模型不用參與從設備之間的同步,取而代之的是獨立出來的主時鐘同步算法與反饋重傳機制,用于修正同步過程中的丟包與誤差。同時,主設備時鐘單元里有預設的同步周期,當一定的通信周期結束后,同步機制便會啟動,修正設備間時鐘偏移,保證系統內設備間的一致性。
[0037]如果同步消息在傳輸過程中發生錯誤或者出現丟包等情況,從設備控制模型中的同步消息接口會在同步消息報文頭中的標志域中進行標記,記錄出錯的設備號,等待主設備進行同步消息重傳。當同步消息遍歷了系統內所有從設備后,主設備的同步消息會對消息內的標志域進行校驗,如果沒有錯誤發生,則同步完成。如果檢驗到某設備在同步過程中出錯,則此次同步失敗,重啟此次時間同步。
[0038]本發明的同步方法包括以下步驟:
[0039]1.初始化[0040]在圖4所示的雙環總線中,在設備間的時間同步過程開始前,先對時鐘控制模型做初始化。從設備中需要將本地時鐘單元中的計時器清零,準備記錄同步消息收發過程的時間開銷,同時清除時鐘單元中存儲的上一次同步時的時間數據。主設備中的時鐘控制模型還需要清空偏移量數組和延遲量數組,以便存放本次同步時的所計算出的與從設備間的時鐘偏移量和通信延遲。
[0041]本地時鐘單元存有該設備的時間狀態信息,能夠記錄設備上的事件發生的時間。
[0042]如圖5所示,同步消息包括報頭和報體,其中報頭包括:
[0043]協議類型:約定了用于傳輸的協議類型。
[0044]消息類型:區分了該消息的種類,是同步消息或者是其他。
[0045]消息長度:確定了該消息所占用的比特數。
[0046]設備總數:包含了一個計數器和約定的現場從設備的總數,用于核對是否所有的設備都收到該消息。
[0047]標志域:記錄出現故障的設備號,用于反饋給主設備。
[0048]源端口號:標志發送該消息的端口號從而確認用于傳輸該消息的環號。
[0049]序列號:記錄主設備發送消息的序列數。
[0050]而報體用于存放設備生成的時間戳。
[0051]2.時間同步開始
[0052]如圖7所示,在準備發送同步消息到從設備之前,主設備的時鐘控制模塊從本地時鐘中讀取本機的時間信息作為時間同步消息的發送時間,將其發送到時間數據讀寫模塊生成對應格式的時間戳。然后在時間戳處理模塊中,時間戳被封裝到待傳輸的同步消息中一并傳送到通用接口模塊中,通用接口模塊確認了該消息為同步消息后,通過調用同步消息接口模塊將同步消息發送到通信環路中。隨后,時鐘控制模塊進入監聽狀態,等待同步消息遍歷從設備后歸來。
[0053]如圖6所示,從設備的時鐘控制模型對同步消息的處理分為兩個階段:如果從設備是第一次收到主設備發送的同步消息,在本地時鐘單元中讀取收到該消息時的時間信息通過時間數據讀取模塊生成對應的接收時間戳,在將該同步消息通過通用接口中的同步消息接口模塊發送到下一個設備之前,在本地時鐘單元中讀取時間信息生成發送時間戳,并且通過時間戳處理模塊將接收時間戳和發送時間戳封裝到同步消息中;當該設備再次從另一環路收到同步消息時,如果之前已經收到過從某一環路傳輸來的同步消息,同樣地,記錄下接收時刻并生成時間戳,此時,需要從本地時鐘單元的緩存中讀取上一條消息到達時刻的時間戳一并加到該同步消息,然后發送到屬于當前環路的下一個從設備。在下一從設備收到該同步消息后,計算兩設備間通信延遲與時鐘偏移的因子都已滿足,于是調用時間同步模塊計算出本地時鐘與目標時鐘的偏移量與通信過程中的延遲量,再將結果發送到時鐘校準模塊中對本地時鐘進行修正。
[0054]下面結合圖8對時鐘偏移量與通信延遲的計算作進一步說明。
[0055]在環路I中的同步消息傳輸中,從設備i發送同步消息到從設備i+Ι時的時間戳為t/,同步消息攜帶此時間戳到達從設備i+Ι,到達時刻的時間戳為ti+1。而在環路2中,另一個同步消息被從設備i+Ι發送到從設備i,發送時刻的時間戳為si+1’,從設備將時間戳ti+1與si+1’同時隨同步消息發送到從設備i中,同步消息到達從設備i的時刻的時間戳為Si。此時,從設備有了四個必要的時間戳t/,ti+1,si+1’,Si就能夠通過公式
[0056]Toffset = ((ti+1-t/ ) +(S1-Si+/ ))/2
[0057]Tdelay = ((ti+1-t/ )-(S1-SiV ))/2
[0058]計算出從設備i與從設備i+Ι之間的時鐘偏移量與通信延遲,從而進行相關修正。
[0059]在此過程中,如果同步消息在傳輸過程中發生錯誤或者出現丟包等情況,從設備控制模型中的同步消息接口會在同步消息報文頭中的標志域中進行標記,記錄出錯的設備號,等待主設備進行同步消息重傳。
[0060]于此同時,控制模型中的通用接口模塊需要對接收到的消息做分類,如果確定是功能消息,則經功能消息處理模塊發送到相應的功能模塊中。
[0061]3同步結束
[0062]當同步消息遍歷了系統內所有從設備后,主設備的同步消息會對消息內的標志域進行校驗,如果沒有錯誤發生,則同步完成。如果檢驗到某設備在同步過程中出錯,則此次同步失敗,重啟此次時間同步。
【權利要求】
1.一種基于雙環總線的時間同步方法,其特征在于包括以下步驟: 主/從設備初始化:從設備的本地時鐘單元計時器清零,清除其中存儲的時間數據;主設備的本地時鐘單元清空內部的偏移量數組和延遲量數組; 主設備通過雙環總線發送同步消息時將發送時間生成時間戳,將其封裝到同步消息中,通過主設備的兩個端口發送至相鄰從設備; 從設備i將在一個環路中接收到同步消息的時刻ti生成時間戳,并存儲到本地時鐘單元;該從設備發送同步消息時將發送時間t/生成時間戳其封裝到該同步消息中,發送至下一個從設備i+Ι,從設備i+Ι將接收到該同步消息時刻ti+1所生成的時間戳保存; 同時,在另一個環路中,從設備i+Ι將發送另一個同步消息到從設備i的發送時間si+1’生成時間戳,將其和ti+1的時間戳通過該同步消息發送至從設備i ;從設備i將接收到該同步消息時刻Si所生成的時間戳保存; 從設備i通過ti+1,t/,si+1’,Si四個時間戳計算出從設備i和從設備i+Ι間的時鐘偏移量Ttjffsrt和通信延遲Tdelay;從設備i的本地時鐘單元根據時鐘偏移量Irffsrt和通信延遲Tdelay修正本地時鐘,完成雙環總線主/從設備的時間同步。
2.根據權利要求1所述的一種基于雙環總線的時間同步方法,其特征在于: 所述同步消息包括報頭和報體;其中報頭包括:協議類型、消息類型、消息長度、設備總數、標志域、源端口號、序列號;報體包括設備生成的時間戳。
3.根據權利要求1所述的一種基于雙環總線的時間同步方法,其特征在于: 所述計算從設備i和從設備i+ι間的時鐘偏移量Irffsrt和通信延遲Tdelay通過以下公式得到
【文檔編號】H04J3/06GK103812589SQ201210445774
【公開日】2014年5月21日 申請日期:2012年11月9日 優先權日:2012年11月9日
【發明者】林滸, 楊磊, 劉峰, 鄭飂默, 王峰 申請人:中國科學院沈陽計算技術研究所有限公司