摘 要:SERCOS-III是SERCOS協(xié)議的最新版本,SERCOS-III融合了實(shí)時(shí)以太網(wǎng)技術(shù),成為CNC系統(tǒng)發(fā)展的新方向。運(yùn)用IEEE1588來(lái)解決環(huán)路時(shí)間的傳播和同步,同步過(guò)程中同步時(shí)間和偏移值的測(cè)量與計(jì)算,并加入了晶振補(bǔ)償和濾波算法來(lái)達(dá)到更精確的同步要求,實(shí)現(xiàn)SERCOS-III網(wǎng)絡(luò)系統(tǒng)的高精度同步機(jī)制。
關(guān)鍵詞:SERCOS-III;IEEE1588;同步機(jī)制;伺服控制
中圖分類號(hào):TP393.04 文獻(xiàn)標(biāo)識(shí)碼:A 文章編號(hào):2095-1302(2015)02-00-03
0 引 言
作為用于傳動(dòng)系統(tǒng)和伺服裝置之間的現(xiàn)場(chǎng)總線接口和數(shù)據(jù)交換的協(xié)議,SERCOS能夠?qū)崿F(xiàn)控制器與PLC、傳感器、數(shù)字伺服系統(tǒng)之間的實(shí)時(shí)數(shù)據(jù)通訊[1,2]。本文運(yùn)用IEEE1588來(lái)解決SERCOS-III通信系統(tǒng)同步問(wèn)題,并且研究了系統(tǒng)同步過(guò)程中同步時(shí)間和偏移值的測(cè)量與計(jì)算,通過(guò)晶振補(bǔ)償和濾波算法對(duì)相關(guān)算法加以改進(jìn),從而來(lái)達(dá)到更精確的同步要求,實(shí)現(xiàn)SERCOS-III網(wǎng)絡(luò)系統(tǒng)的高精度同步機(jī)制。
1 SERCOS-III 高速同步機(jī)制的設(shè)計(jì)與實(shí)現(xiàn)
IEEE1588的同步過(guò)程分為時(shí)鐘偏移測(cè)量階段和網(wǎng)絡(luò)延時(shí)測(cè)量階段兩個(gè)階段。由于數(shù)據(jù)報(bào)文的傳遞延時(shí)等網(wǎng)絡(luò)延時(shí)原因的影響,一次傳送同步報(bào)文計(jì)算的時(shí)鐘偏移并不準(zhǔn)確,還需要通過(guò)網(wǎng)絡(luò)延時(shí)的計(jì)算來(lái)實(shí)現(xiàn)對(duì)偏移值進(jìn)行修正[3-5]。
1.1 偏移值(Offset)的測(cè)量與計(jì)算
圖1 同步報(bào)文和跟隨報(bào)文傳送圖
主時(shí)鐘每隔2秒發(fā)出一個(gè)確定的同步信息,該信息包含了精確描述數(shù)據(jù)包發(fā)出的時(shí)間的時(shí)間標(biāo)記。如圖2所示,假設(shè)同步之前主時(shí)鐘的時(shí)間為Tm,而從時(shí)鐘的時(shí)間為Ts。主站發(fā)出同步報(bào)文的時(shí)間為Tm1,從站收到報(bào)文的時(shí)間為Ts1??梢杂?jì)算出從站時(shí)鐘與主站時(shí)鐘之間的偏移值(offset):
Offset=Ts1-Tm1-Delay (1)
上式中的Delay指的是主站時(shí)鐘和從站時(shí)鐘之間的延時(shí),其可以通過(guò)以下的方式測(cè)出。
1.2 時(shí)鐘延時(shí)(Delay)的測(cè)量與計(jì)算
(2)
Tmk、Tmk+1為主站時(shí)鐘在第k次和第k+1次記錄的時(shí)間戳,Tsk、Tsk+1為從站時(shí)鐘在第k次和第k+1次記錄的時(shí)間戳,該方法通過(guò)求信號(hào)從主從時(shí)鐘往返一圈所用的時(shí)間平均值來(lái)計(jì)算得出,但是如果網(wǎng)絡(luò)不對(duì)稱則會(huì)對(duì)同步的精確性產(chǎn)生影響。因而可得:
Ts=Tm+Offset+Delay (3)
Ts為從時(shí)鐘測(cè)到的時(shí)間,Tm為主時(shí)鐘測(cè)到的時(shí)間。假設(shè)網(wǎng)絡(luò)對(duì)稱時(shí),可以準(zhǔn)確地計(jì)算出系統(tǒng)的延時(shí),從而實(shí)現(xiàn)主站時(shí)鐘和從站時(shí)鐘的同步。
2 高速同步機(jī)制的算法改進(jìn)
精確時(shí)鐘同步協(xié)議(PTP)時(shí)鐘同步要求非常高的進(jìn)度,但是由于軟硬件等方面的原因[6-8],會(huì)直接影響到SERCOS-III的同步的精度,影響系統(tǒng)同步進(jìn)度的因素主要包括:晶振速率的穩(wěn)定性、時(shí)間戳的精度、同步報(bào)文的發(fā)送頻率以及廣義線路延時(shí)的穩(wěn)定性等[9,10],根據(jù)影響SERCOS-III網(wǎng)絡(luò)通信系統(tǒng)的同步的原因,本文提出以下幾種同步進(jìn)度改進(jìn)方法。
2.1 晶振偏差的補(bǔ)償
假設(shè)主站的本地時(shí)鐘速度為Rm,從站本地時(shí)鐘速度為Rs,同步間隔時(shí)間為T,可以求出同步間隔中的最大偏差值為:
(4)
在基于SERCOS-III高精度同步系統(tǒng)中,同步時(shí)間間隔為2 s,晶振精度為100 ppm,在SERCOS-III通信系統(tǒng)運(yùn)行過(guò)程中任意兩個(gè)點(diǎn)產(chǎn)生的最大偏差為:
(5)
因此,為了使Rm=Rs,從而使ΔTmax =0。在運(yùn)行過(guò)程中,每個(gè)點(diǎn)都記錄本地時(shí)鐘的運(yùn)行時(shí)間,并且通過(guò)與主時(shí)鐘的運(yùn)行時(shí)間的比較來(lái)調(diào)整時(shí)鐘的計(jì)數(shù)值,使從站時(shí)鐘和主時(shí)鐘的保持相同的運(yùn)行速度。調(diào)整公式如下:
(6)
Rs為調(diào)整后的從站時(shí)鐘速率, RsΔ為調(diào)整前的從時(shí)鐘速率,分母和分子分別表示了從時(shí)鐘和主時(shí)鐘在n個(gè)調(diào)整周期內(nèi)的運(yùn)行時(shí)間。
2.2 Offset的濾波算法
針對(duì)系統(tǒng)中因?yàn)榫€路變化以及內(nèi)部時(shí)延的不同產(chǎn)生的偏差,本文在計(jì)算偏移值時(shí)候,加入離散濾波算法。離散濾波算法公示如式(7)所示,在濾波時(shí)候,取e-aT=1/2,e-bT=1/3,推導(dǎo)出式(9)。
式(9)中Offset(k)表示第k次同步時(shí)通過(guò)式(2)求出的偏差,使用濾波算法后的第k次同步偏差用YOffset(k)來(lái)表示。
2.3 時(shí)鐘的自補(bǔ)償算法
在SERCOS-III系統(tǒng)中,時(shí)鐘通常用晶體振蕩器脈沖來(lái)度量,即:
(10)
其中ω(t)是晶振的頻率,k是依賴于晶振物理特性的常量,t是時(shí)間的變量,c(t0)是從時(shí)鐘。
在理想時(shí)鐘的情況下,晶振頻率恒k(t)=dc(t)/dt為1,但是,由于溫度、壓力和晶振本身老化等原因,晶振頻率是會(huì)在一定范圍內(nèi)產(chǎn)生變化的。因此式(10)可簡(jiǎn)化為:
ci(t)=ki(t)+ci(t0) (11)
因?yàn)槭褂玫耐獠烤д竦膶?shí)際頻率和標(biāo)稱頻率會(huì)有大約±(10~100)ppm的偏差,故晶振頻率ki(t)也會(huì)存在±(10~100)×10-6的偏差。如果同步精度要求不是很高時(shí)這個(gè)偏差是可以不考慮的,但精確時(shí)鐘同步協(xié)議的同步精度要求為10-6秒級(jí),甚至10-9秒級(jí),所以這個(gè)偏差就不能忽略了,必須想辦法消除,因此本文通過(guò)以下從時(shí)鐘自補(bǔ)償算法來(lái)消除上述偏差。
2.3.1 時(shí)鐘偏差的計(jì)算
精確時(shí)鐘同步協(xié)議所指的時(shí)鐘同步是指主從時(shí)鐘之間的相對(duì)同步,將主時(shí)鐘作為參考時(shí)鐘,如果從時(shí)鐘與其保持一致就可以認(rèn)為該系統(tǒng)時(shí)鐘是同步的。如圖2所示,cM(t)代表主時(shí)鐘時(shí)鐘,cs(t)代表實(shí)際從時(shí)鐘,cs_ideal(t)代表理想的從時(shí)鐘。在理想情況下,從時(shí)鐘和主時(shí)鐘只是存在起始時(shí)刻的相對(duì)時(shí)移cΔ,不會(huì)有偏差。但是,實(shí)際上實(shí)際晶振頻率不會(huì)完全相同,因此,從時(shí)鐘與理想的軌跡cs_ideal(t)會(huì)有偏差,Δ表示經(jīng)過(guò)t時(shí)間后從時(shí)鐘與主時(shí)鐘的相對(duì)偏移量。如果Δ>0,則表示從時(shí)鐘實(shí)際晶振頻率要比主時(shí)鐘晶振頻率快。
圖2 時(shí)鐘偏差的計(jì)算圖
由式(11)可得如下關(guān)系式:
從時(shí)鐘:cs(t)=ks(t)*t+cs(t0) (12)
主時(shí)鐘:cM(t)=kM(t)*t+cM(t0) (13)
由式(12)和(13)可得:
Δ=cs(t)-cM(t)
=(ks(t)*t+cs(t0))-(kM(t)*t+cM(t0) )+cM(t0) (14)
=(ks(t)-kM(t)*t)+(cs(t0) -cM(t0) )
=kΔ(t)*t+cΔ
2.3.2 從時(shí)鐘自補(bǔ)償算法原理的實(shí)現(xiàn)
精確時(shí)鐘同步協(xié)議的同步是一種相對(duì)同步,其根本在于認(rèn)為主時(shí)鐘的時(shí)鐘頻率是準(zhǔn)確的,所有的精確時(shí)鐘同步協(xié)議同步偏差都是因?yàn)閺臅r(shí)鐘引起的,并且由從時(shí)鐘來(lái)負(fù)責(zé)進(jìn)行補(bǔ)償。時(shí)鐘是通過(guò)計(jì)數(shù)器來(lái)實(shí)現(xiàn)的,這個(gè)計(jì)數(shù)器通過(guò)記錄晶振產(chǎn)生脈沖的個(gè)數(shù)來(lái)實(shí)現(xiàn)計(jì)數(shù)功能。假設(shè)精確時(shí)鐘同步協(xié)議主時(shí)鐘發(fā)送同步報(bào)文的周期為Tsync,從時(shí)鐘實(shí)際晶振頻率為Fslave,實(shí)際時(shí)鐘周期為Tslave,可以得出同步周期的計(jì)數(shù)器的值為:
Nsync=Tsync / Tslave (15)
因?yàn)橹鲿r(shí)鐘和同步時(shí)鐘之間存在相對(duì)偏移量Δ,也就是說(shuō)主時(shí)鐘計(jì)數(shù)器和從時(shí)鐘計(jì)數(shù)器的計(jì)數(shù)值之間會(huì)相差N。
N=floor(Δ/ Tslave ) (16)
因?yàn)轭l率補(bǔ)償計(jì)數(shù)器N'與N絕對(duì)值相等,但符號(hào)相反。
N'=-N (17)
式(16)通過(guò)取整函數(shù)floor() 對(duì)參量進(jìn)行取整運(yùn)算。并通過(guò)補(bǔ)償從時(shí)鐘在每個(gè)同步周期的N個(gè)計(jì)數(shù)器偏移量來(lái)實(shí)現(xiàn)從時(shí)鐘與主時(shí)鐘之間的同步。
通常使用的外部晶振頻率都不會(huì)很高,一般為幾MHz到幾十MHz之間,為了進(jìn)一步提高補(bǔ)償精度,在CPU處理器中引入PLL(鎖相環(huán))對(duì)Fslave進(jìn)行Npll倍頻。
N'=floor(-N*Npll) (18)
通過(guò)倍頻的方法可以得到一個(gè)高頻率時(shí)鐘來(lái)實(shí)現(xiàn)時(shí)鐘偏差的精確補(bǔ)償,從而解決由于補(bǔ)償時(shí)鐘精度所限而導(dǎo)致時(shí)鐘偏差不能完全補(bǔ)償?shù)膯?wèn)題,如圖3所示。
圖3 頻率補(bǔ)償原理
3 結(jié) 語(yǔ)
本文運(yùn)用IEEE1588來(lái)實(shí)現(xiàn)基于SERCOS-III的網(wǎng)絡(luò)系統(tǒng)高精度同步機(jī)制,并加入了晶振補(bǔ)償和濾波算法來(lái)達(dá)到更精確的同步要求?;谝蕴W(wǎng)的SERCOS-III技術(shù)為開(kāi)放式數(shù)控系統(tǒng)的提供了一種新思維,對(duì)于我國(guó)高檔開(kāi)放式數(shù)控系統(tǒng)的開(kāi)發(fā)具有很大的促進(jìn)作用。
參考文獻(xiàn)
[1] Interests group SERCOS(IGS). White Paper SERCOS-III [R].2004
[2]郇極,尹旭峰.數(shù)字伺服通訊協(xié)議SERCOS驅(qū)動(dòng)程序設(shè)計(jì)及應(yīng)用[M].北京:北京航空航天大學(xué)出版社,2005
[3]袁曉峰,龔邦明.基于SERCOS-III總線的伺服驅(qū)動(dòng)單元接口[J].組合機(jī)床與自動(dòng)化加工技術(shù),2005(10):48-50
[4]陳敏.基于NTP協(xié)議的網(wǎng)絡(luò)時(shí)間同步系統(tǒng)的研究與實(shí)現(xiàn)[D].武漢:華中科技大學(xué),2005.
[5] 桂本烜.IEEE1588的高精度同步算法的研究和實(shí)現(xiàn)[J]電光與控制,2006,13(5):90-94.
[6]鄭國(guó)雄,高軍禮. 基于以太網(wǎng)的SERCOS-Ⅲ驅(qū)動(dòng)程序的設(shè)計(jì)與實(shí)現(xiàn)[J].機(jī)床與液壓,2011(9):83-86
[7]鄭國(guó)雄.基于SERCOS-III的數(shù)控裝備網(wǎng)絡(luò)通信系統(tǒng)的軟件設(shè)計(jì)[D].廣州:廣東工業(yè)大學(xué),2009.
[8]桂本烜.IEEE1588的高精度時(shí)間同步算法的分析與實(shí)現(xiàn)[J].工業(yè)儀表與自動(dòng)化裝置,2006(4):20-23.
[9] IEC. Real-time Ethernet SERCOS-III specification[S].IEC/PAS 62410,2005.
[10]劉明哲.基于IEEE1588的時(shí)鐘同步算法軟件實(shí)現(xiàn)[J].儀器儀表學(xué)報(bào),2006,27(6): 2009-2011.