DCS(Distributed Control System)系統廣泛應用于火電、石油化工、造紙、建材和冶金等工業生產制造環境中。該系統繼承了常規儀表分散控制和計算機集中控制的優點,克服了常規儀表功能單一、人機交互差和單臺計算機控制系統危險性高度集中的缺點,同時,它實現了管理、操作和顯示三方面的集中,以及功能、負荷和危險性三方面的分散。典型DCS硬件系統由工程師站、操作員站、服務器、控制器、I/O從站、控制網絡及設備、系統網絡及設備、電源、機柜和操作臺組成[1],如圖1所示。在I/O從站中有一種開關輸入信號(DI),普通項目對DI信號的分辨率要求不高,大約為200~300 ms。在實施某重大項目數字化數據采集和集中處理系統(KIT/KPS)改造時,要求DI信號采集分辨率達到50 ms,并且能夠同時記錄現場開關動作的時間。在DCS控制系統中,高分辨率和時間信息記錄是為了能夠依次分辨該高速DI信號之間的聯鎖關系(如汽輪機軸承油壓低聯鎖主汽閥門關閉),判斷各信號是否符合一定的動作順序。目前DCS系統普通型DI模塊性能,無法滿足對這些信號的采集要求,因此需要對DCS系統DI信號處理方法進行升級改進。
1 問題描述
目前,采用PROFIBUS現場總線協議實現DCS控制系統控制器和I/O模塊之間通信的產品,市場占有率在全國已經達到30%~40%,甚至更高[2]。PROFIBUS協議規定控制器和從站之間數據交換方式為主從輪詢方式[3]。DCS系統在實際應用配置中,一般由多個控制站組成,一個控制器構成一個控制站,為了保證各控制站運行時基相同,采用以太網進行網絡校時,可以確保任意控制站之間時間差值小于10 ms。同時,控制器周期性地通過PROFIBUS-DP主站以廣播的形式給從站模塊發軟校時數據包,負責對從站I/O模塊進行校時。普通DI模塊設計為:當DP主站輪詢到該模塊請求發送數據時,DI模塊就將當前周期采集的數據傳送給控制器。在通信速率為500 kb/s時,每輪詢一個從站實際所需要的時間大約為0.7 ms(該時間也和傳輸的數據量相關,所以不同廠家設計的產品該時間有差異)。考慮到控制器主站負荷、系統風險等因素,一般在實際工程中,推薦配置40~50個從站。但在實施KIT/KPS系統改造項目時,系統要求控制站加入的從站數量達到80個,協議規定一個PROFIBUS系統最大連接126個從站,如此主站輪詢一圈從站所用的時間大約為56 ms,現場DI信號最快以50 ms跳變,就會出現采集的DI信號不能及時傳送給控制器,新采集數據覆蓋上周期數據的情況,導致現場采集的DI信號丟失。
2 理論論證
DI模塊工作機制有兩個明顯的特征:(1)DI數據采樣周期短,從站的信號采樣周期比控制器運行周期短;(2)通信無應答,控制器是否收到DI數據,DI模塊并不知道。在這兩個特征下,為滿足DI采集分辨率達到50 ms要求,要么縮短控制器與DP主站交換數據周期,要么DI模塊采用“滑動窗口”機制,形成兩種解決方案。
(1)縮短控制器與DP主站交換數據周期。從站模塊最慢50 ms周期采樣一次,該時間包括DP輪詢周期和DP主站與控制器交換數據的時間。同時,為保證控制器能可靠獲取DI模塊的上報數據,要求主站能在50 ms的DI采樣周期內獲取兩次從站模塊上報數據,所以需要控制器最慢25 ms能和DP主站交換一次數據。但是,縮短控制器的運行調度周期,會導致控制器負荷增加,系統容易死機,降低了系統的可靠性。
(2)采用“滑動窗口”機制。DI模塊中開設固定數據存儲區的“滑動窗口”,固定上報最近4個采樣周期的DI數據,這樣可以將每個采樣周期的數據在DI模塊中保持4個采樣周期。此時以50 ms分辨率周期采集數據,每個采樣周期的數據最多可以在DI模塊中保留200 ms,這樣DI從站有足夠的時間將采集的數據傳送給DP主站,保證DI數據無丟失。相比較而言,第2種方案對系統的影響小,可行性高。KIT/KPS項目改進實施就采用方案(2)。
在確定DI模塊采樣周期時,不考慮硬件時鐘的差異,則采集誤差最大值等于模塊的采樣周期,圖2給出了一個示例分析。根據高速DI 50 ms分辨率要求,設計DI信號允許控制站間誤差為40 ms。以太網可以確??刂破髦g誤差10 ms,控制器和從站模塊之間時間最大誤差1 ms,因此模塊的掃描周期可以確定為29 ms,取整后確定為30 ms。4周期的數據保持時間達到120 ms,可以保證56 ms的DP輪詢周期有2次將數據傳送給控制器。
3實現方法
3.1 從站模塊處理方法
為了能將現場高速跳變的DI信號全部傳送給控制器,在現有產品硬件平臺下,通過修改DI模塊的信號固件采集機制,延長采集信號在從站模塊中保持的時間,可確保滿足DP輪詢周期(DP主站逐個輪詢各從站所需要的時間)的時間需要。具體方法是:采用“滑動窗口”機制,即在DI模塊中開辟一片固定大小的數據存儲區,將每周期采集的DI數據都存儲在該存儲區中。該存儲區采用滑動機制,類似于FIFO,每個周期的采集數據都放在存儲區的起始位置,然后各采樣周期數據依次向后滑動,符合先入先出隊列。具體項目實施過程中,將4個連續采樣周期的數據(存儲區的大?。┳鳛橐话鼣祿魉徒o控制器。4個采樣周期的存儲時間大于現場DP輪詢時間,模塊每新采集一周期數據就放在存儲區的第一周期采集數據處,原有數據依次向后滑動,將滑動溢出的第4周期采集數據丟棄,自動生成從站模塊每DP輪詢周期發送給DP主站的一包數據。這樣采用“滑動窗口”機制原來只能在DI模塊中保持一個采樣周期的DI數據,而在現有處理機制下就能保持4個采樣周期,延長了DI采集數據在模塊中保持的時間,保證有足夠的時間將DI采集數據傳送給控制器。
按上述機制形成的每一包數據結構包括當前所有通道的信號狀態、數據包流水號、4個采樣周期的DI數據(每周期采集數據包括時間戳、當前所有通道狀態及發生跳變的通道),如圖3所示。
模塊初始上電時,數據存儲區初始化為0。每個采樣周期內,當有DI通道發生狀態變化時,上報數據包流水號自動加1。如果無通道跳變,則上報數據流水號不變。控制器周期性地從DP主站讀取數據,并將本周期的數據包流水號與保存的上一周期數據包流水號進行對比。按流水號的差值,控制器處理相應周期次數的DI采集數據,如果差值等于0,則直接丟棄。以6通道DI信號為例,假設模塊每30 ms采集一次數據,在開始工作60 ms后所有通道狀態的當前值為000000(二進制),發生跳變的通道值為000000(有通道發生跳變則將該通道置為1),該周期的采集數據為60、000000、000000;90 ms采集時通道0跳變為狀態1,則所有通道狀態的當前值為000001,發生跳變的通道值為000001;120 ms采集時通道1、2、3跳變為狀態1,則所有通道狀態的當前值為001111,發生跳變的通道值為001110;150 ms采集時通道4、5跳變為狀態1,則所有通道狀態的當前值為111111,發生跳變的通道值為110000;之后信號無變化(圖4)。在150 ms時刻形成的數據包(十進制)如表1所示。
3.2 控制器處理方法
為確保DI模塊采集數據上報的開關動作時間有效,確保系統內所有的DI模塊工作在一個時間系統下,可通過系統校時實現DI模塊的同一時間系統。對控制器增加校時功能,校時機制為控制器每分鐘周期性地發送校時命令,DP主站收到控制器的校時命令之后立即向I/O從站發送校時廣播,總線上I/O從站都可基本同時收到校時命令。在500 kb/s通信速率時,校時命令可以在1 ms內完成,即主控和I/O模塊之間的時間誤差為1 ms。由于控制器使用單任務,采用發送校時命令的方式對從站進行校時,不能確保在整分時刻發送校時命令??梢酝ㄟ^兩種途徑解決這個矛盾:(1)使用專用的校時信號對從站進行校時,比如GPS校時產品;(2)縮短控制器發送校時命令的周期,通過控制器記錄校時時間,在控制器接收到模塊上傳的DI數據之后,對時間進行修正。
控制器在處理接收到的DI數據時,通過對比保存的上一周期數據包流水號與本周期的數據包流水號,流水號差值如果大于等于4,則控制器處理從站模塊4個采樣周期的通道數據;如果小于4,則處理相應差值周期數據;如果等于0則直接丟棄。同時控制器分析每采樣周期DI數據,確定該采樣周期是否有通道跳變,如果沒有,則直接丟棄該采樣周期DI數據。
3.3 控制器與DI從站模塊邊界的處理方法
對于DI從站模塊,數據包流水號初始值為0,控制器DI數據包流水號初始值也為0;模塊的數據包流水號一直累加,溢出后繼續累加。當模塊上報數據丟失時,例如模塊上報的數據包流水號為1001、1002、1003,而控制器只收到1001和1003時,控制器根據1003-1001=2,自動處理兩個周期的DI采集數據。如果模塊重新插拔(斷電操作),DI模塊上報數據包流水號被初始化為0,但是控制器保存了模塊以前的數據包流水號,控制器發現流水號不相等,就根據流水號差值最大處理4個采樣周期的DI數據,然后控制器對4個采樣周期的DI數據逐個分析,如果相鄰兩采樣周期DI數據相同,則直接丟棄后一周期DI數據??刂破髦匦聠訒r處理方法相同。
本文介紹了一種在DCS系統中如何消除因數據傳輸延遲而引起的信號采集誤差的方法。通過修改DI從站模塊的數據采集機制和相應的控制器數據解析機制,可以使DI模塊的采集分辨率提高到50 ms。通過項目實測,既能滿足站間DI信號分辨率50 ms的要求,也能滿足站內不同模塊間DI信號分辨率50 ms的要求,同時增加了數據采集時間信息功能,對控制過程各信號的動作順序分析有很大幫助,極大地豐富了DI模塊的功能。采用PROFIBUS-DP協議或控制網絡為輪詢訪問機制的系統可以借鑒使用該方法,采用其他協議的控制系統應在認真分析系統結構之后有針對性地進行開發設計。
參考文獻
[1] 王常力,羅安.分布式控制系統(DCS)設計與應用實例[M].北京:電子工業出版社,2004.
[2] 候維言,費敏銳.PROFIBUS協議分析和系統應用[M].北京:清華大學出版社,2006.
[3] Manfred Popp.PROFIBUS-DP 快速入門[Z].楊昌琨,譯.北京:中國機電一體化技術應用協會現場總線 (PROFIBUS)專業委員會.