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