本發明涉及工業級控制系統數據轉存領域,特別是采用總線轉存大量數據的核電安全級控制系統。
背景技術:
現場總線控制系統是近年來的一種新型工業控制系統,是繼DCS之后的又一種更加優越的開放式的全分布工業控制系統。現場總線用于過程自動化、工業自動化等領域的現場智能設備互聯通信,作為工業數字通信的基礎,建立了工業現場與控制設備及其管理層之間的通信聯系。
目前現場總線有很多種類,應用于工業現場的就有10多種,如CAN,LONWORKS,PROFIBUS等,這些總線方法各有其優點,數據能夠可靠通信,但通信響應時間長,通信速率過低,不滿足高速控制系統要求的快速高效通信,故不能完全解決大型核電工業控制系統中的可靠高速通信問題。
同時,一般的大型核電工業控制系統由多個模塊組成,每個模塊通過獨立的總線與控制模塊通信,完成相對獨立的采集、運算輸出和控制功能。在多個總線共同通信的系統中,如何分配總線時隙,則是保證通信可靠、可控的最大難點,也是目前核電工業控制系統亟需解決的問題。
目前在核電安全級控制系統中,大多采用總線一問一答式的總線分配方式,每個單元占用總線的時隙不固定,且單元之間干擾較大,通信易破壞。因此,一問一答式的總線分配通信方式功能較單一,不能滿足核電安全級控制系統可靠、高速通信的要求。
技術實現要素:
本發明的目的在于提供一種既能可靠通信又能快速響應通信且交互時間短的令牌總線時隙預定義方法。
實現本發明目的的技術方案:一種令牌總線時隙預定義方法,其系統預先定義令牌總線時隙優先級,每個單元通過接收的報文,判定當前占用總線的單元、時隙及占用時隙的先后順序,并計算出自己占用的總線時隙,依次占用總線發送報文。
如上所述的一種令牌總線時隙預定義方法,其所述的系統為核電安全級控制系統。
如上所述的一種令牌總線時隙預定義方法,該具體方法包括如下步驟:
第一步:系統啟動前,把總線周期T等分為N個時隙,記為tn,n∈{1,2,...,N},每個時隙占用的時間Δt=T/N,并預先定義總線上所有M個單元的時隙優先級,其中控制單元A優先級最高,分配時隙為t1至ti,共i個時隙,且每個時隙僅有一個單元,每個單元只發一個報文;
第二步:系統啟動后,控制單元A載入初始令牌啟動的等待時間t0;
第三步:等待時間到達后啟動總線令牌,所有單元開始工作,控制單元A在第一個總線時隙t1占用總線發送第一個報文,在第二個時隙t2發送第二個報文,直到i個時隙結束;
第四步:同時,總線上其他M-1個單元接收報文,判斷當前占用總線的單元、時隙及占用時隙的先后順序;
第五步:根據接收的報文時間及個數,其他M-1個單元計算出自己占用的總線時隙tn,依次占用總線發送報文。
如上所述的一種令牌總線時隙預定義方法,其第二步系統啟動后,控制單元A載入初始令牌啟動的等待時間t0,等到時間到達后啟動總線令牌,在第一個總線時隙t1,控制單元A發送第一個報文,經過Δt后即在時隙t2發送第二個報文,直到i個時隙結束,總線上其他M-1個單元接收報文;同理,在時刻t,各個單元通過式(1)計算
若k-1<t/Δt≤k,可知總線時隙是tk,并通過計算得出是第m單元的第2個時隙,又第m單元共分配j個時隙,則第m+1單元需繼續等待,在時隙tk+j-1即在(j+k-1)Δt時刻開始占用總線發送報文,以此類推,所有單元均按照總線時隙預定義的模式占用總線發送報文。
本發明的效果在于:
針對現有核電安全級控制系統中傳統總線分配不能快速響應和通信速率低的問題,本發明提出一種新的令牌總線時隙分配預定義方法,即在系統啟動前預先定義總線上所有單元的時隙優先級及其所占用的時隙個數,其中控制單元A為最高優先級,系統啟動后,控制單元A載入初始令牌啟動的等待時間,等待時間到達后啟動總線令牌,首先觸發總線發送報文,其他單元通過接收的報文判斷出當前的單元及時隙,并計算出該單元發送報文的時隙及時刻,從而既能可靠通信,又可提高通信速率。
采用本發明提出的總線時隙預定義的存儲工作模式,總線上所有單元能夠通過接收報文的個數及時間,判斷當前占用總線的單元及時隙,按照預定義總線時隙優先級順序發送報文。本發明提出的令牌總線時隙預定義通信方法即可實現可靠通信,又可加快通信響應并縮短交互時間。
附圖說明
圖1為本發明所述的一種令牌總線時隙預定義方法實施步驟;
圖2為本發明所述的令牌總線時隙預定義模型。
具體實施方式
下面結合附圖和具體實施例對本發明所述的一種令牌總線時隙預定義方法作進一步描述。
實施例1
如圖1至圖2所示,本發明所述的一種令牌總線時隙預定義方法,核電安全級控制系統預先定義令牌總線時隙優先級,每個單元通過接收的報文,判定當前占用總線的單元、時隙及占用時隙的先后順序,并計算出自己占用的總線時隙,依次占用總線發送報文。以此實現每個單元與總線通信獨立,降低單元之間的干擾,并能快速響應縮短交互時間。
具體方法的實施步驟如下,如圖1所示:
第一步:系統啟動前,把總線周期T等分為N個時隙,記為tn,n∈{1,2,...,N},每個時隙占用的時間Δt=T/N,并預先定義總線上所有M個單元的時隙優先級,其中控制單元A優先級最高,分配時隙為t1~ti,共i個時隙,且每個時隙僅有一個單元,每個單元只發一個報文;
第二步:系統啟動后,控制單元A載入初始令牌啟動的等待時間t0;
第三步:等待時間到達后啟動總線令牌,所有單元開始工作,控制單元A在第一個總線時隙t1占用總線發送第一個報文,在第二個時隙t2發送第二個報文,直到i個時隙結束;
第四步:同時,總線上其他M-1個單元接收報文,判斷當前占用總線的單元、時隙及占用時隙的先后順序;
第五步:根據接收的報文時間及個數,其他M-1個單元計算出自己占用的總線時隙tn,依次占用總線發送報文。
在上述第二步系統啟動后,控制單元A載入初始令牌啟動的等待時間t0,等到時間到達后啟動總線令牌,在第一個總線時隙t1,控制單元A發送第一個報文,經過Δt后即在時隙t2發送第二個報文,以此類推,直到i個時隙結束,總線上其他M-1個單元接收報文。同理,在時刻t,各個單元通過式(1)計算
若k-1<t/Δt≤k,可知總線時隙是tk,并通過計算得出是第m單元的第2個時隙,又第m單元共分配j個時隙,則第m+1單元需繼續等待,在時隙tk+j-1即在(j+k-1)Δt時刻開始占用總線發送報文,以此類推,所有單元均按照總線時隙預定義的模式占用總線發送報文。
實施例2
本發明所述的一種令牌總線時隙預定義方法:
首先,系統啟動前,把總線周期360ms等分為72個時隙t1至t72,每個時隙間隔Δt=5ms,并按照優先級順序定義總線上26個單元占用的總線時隙,其中控制單元A分配第1~12個時隙即0~60ms,控制單元B分配第13~24個時隙,其他24個單元每個單元分配2個時隙。
系統啟動后,控制單元A載入初始令牌啟動的等待時間t0=3s;
接著,3s后啟動總線令牌,26個單元開始工作,在第1~12個總線周隙內,控制單元A在0~5ms內發送第一個報文,在5~10ms內發送第二個報文……,同時控制單元B和其他24個單元都接收報文,并計算得出當前占用總線的是控制單元A。
然后,控制單元B在第13個時隙開始發送報文,其他25個單元(包括控制單元A)接收報文,統計接收報文的總數,計算其占用總線的時隙并在該時隙發送報文。若在時刻t=242ms,除了正在發送報文的單元,其他25個單元通過計算得到即判定當前是第15單元占用時隙t49,第16單元還需等待8ms在時隙t51發送報文,第22單元通過計算得知需繼續等待((22-1-2)×2+24)×5-242=68ms才能占用總線發送報文。
同時,控制單元A在第一個總線周期的t1~t12發送報文后,接收來自其他25個單元的報文,以此計算下一個總線周期的開始。26個單元按照總線周期內時隙預定義依次占用總線發送報文。
采用本發明提出的令牌總線時隙預定義方法,每個單元與總線獨立通信,且能通過接收的報文計算其預定義的時隙順序占用總線,即使總線上有某單元或某幾個單元發生故障,其它單元依然能繼續正常通信。故本發明提出的總線時隙預定義通信方法既可提高通信的可靠性,又能夠快速響應縮短總線與單元的交互時間。