《電子技術(shù)應(yīng)用》
您所在的位置:首頁 > 測試測量 > 設(shè)計應(yīng)用 > 基于WinCC V6的制動器試驗臺高速數(shù)據(jù)歸檔與處理
基于WinCC V6的制動器試驗臺高速數(shù)據(jù)歸檔與處理
中國自動化網(wǎng)
摘要: 本文針對Profibus總線控制的制動器試驗臺控制系統(tǒng)的設(shè)計中需要對數(shù)據(jù)進行高速采集,而WinCC變量更新周期較長的問題,,提出了一種首先利用S7-300PLC進行高速數(shù)據(jù)采集,,然后采用WinCC支持的原始數(shù)據(jù)類型進行數(shù)據(jù)打包,,接收并歸檔的方法。此方法中將獲取的數(shù)據(jù)經(jīng)過處理后存儲到自定義的數(shù)據(jù)庫中,,并實現(xiàn)了測試過程中的數(shù)據(jù)實時顯示。
Abstract:
Key words :

摘要:本文針對Profibus總線控制的制動器試驗臺控制系統(tǒng)的設(shè)計中需要對數(shù)據(jù)進行高速采集,,而WinCC變量更新周期較長的問題,,提出了一種首先利用 S7-300 PLC進行高速數(shù)據(jù)采集,然后采用WinCC支持的原始數(shù)據(jù)類型進行數(shù)據(jù)打包,,接收并歸檔的方法,。此方法中將獲取的數(shù)據(jù)經(jīng)過處理后存儲到自定義的數(shù)據(jù)庫中,并實現(xiàn)了測試過程中的數(shù)據(jù)實時顯示,。

關(guān)鍵詞:WinCC,,原始數(shù)據(jù)類型,,高速數(shù)據(jù)采集,歸檔

引言
Siemens 的監(jiān)控組態(tài)軟件WinCC(Windows Control Center)在生產(chǎn)和過程自動化中對控制任務(wù)編程并支持可視化,,它提供了高性能的過程耦合,、快速的畫面更新、以及可靠的數(shù)據(jù)處理,,因此具有高度的適用性,。WinCC提供了適用于工業(yè)的圖形顯示、消息,、歸檔以及報表的功能模板,,可以通過ODBC和SQL方式訪問歸檔數(shù)據(jù),并通過OLE2.0和ActiveX控件的對象和文檔鏈接,,這使得WinCC廣泛地應(yīng)用于復(fù)雜自動控制的集成方案成為可能,。

1 系統(tǒng)簡介
本系統(tǒng)是為某公司研制的制動器臺架試驗臺,試驗臺如圖1所示

 
圖1 制動器試驗臺實物圖

主要完成制動器磨合試驗,、效能試驗,、熱衰退恢復(fù)等一系列試驗。其控制系統(tǒng)采用了研華工控機,、西門子公司的S7-300系列PLC,、ProfiBus通訊處理卡CP5611和監(jiān)控軟件WinCC V6,組成了PROFIBUS總線控制系統(tǒng),。
系統(tǒng)連接如圖2所示,。

2 問題的提出
在本試驗臺架上根據(jù)國標,制動器臺架試驗臺需要對制動期間的制動力矩進行采集,,同時對采集的數(shù)據(jù)進行歸檔,,以便對數(shù)據(jù)進行實時分析和以后對試驗數(shù)據(jù)進行分析。一般一個制動周期為2-6s,,采樣周期至少為50ms才不至于使數(shù)據(jù)丟失,。
WinCC可以通過MPI、PRrofibus,、工業(yè)以太網(wǎng)等與下位機PLC進行通訊,,將現(xiàn)場數(shù)據(jù)進行收集,歸檔,,并顯示在界面上,。但是 WinCC的最小刷新周期(250ms)不能滿足試驗中對快速信號的采樣要求,不能保證試驗數(shù)據(jù)的可信度,。這一刷新周期遠遠大于PLC可能達到的采樣周期(1ms),,不能充分利用PLC的采樣速度。因為常規(guī)WinCC組態(tài)不能滿足特殊高速數(shù)據(jù)采集的要求,,會導(dǎo)致數(shù)據(jù)的丟失,,因此有必要尋找更好的途徑來實現(xiàn)高速數(shù)據(jù)采集的目的,。

 
圖2 系統(tǒng)連接圖

3 設(shè)計思想
存儲過程數(shù)據(jù),并方便快捷的處理數(shù)據(jù)是上位機基于WinCC的過程監(jiān)控系統(tǒng)的目標,。WinCC對現(xiàn)場數(shù)據(jù)進行數(shù)據(jù)采集的過程可通過WinCC外部變量按一定周期訪問PLC對應(yīng)地址的數(shù)據(jù)來實現(xiàn),,但是這種數(shù)據(jù)采集的周期完全是由WinCC定義的更新周期來決定的。如前所述,,WinCC的最小刷新周期(250ms)不能滿足試驗中對快速信號的采樣要求,。S7-400系列PLC的SFB37(AR_Send)塊具有將所采集到的過程值傳給WinCC歸檔的功能,但是本系統(tǒng)中采用的S7-300系列沒有這個功能,,因此本文的出發(fā)點就是利用S7-300系列有限的資源實現(xiàn)數(shù)據(jù)的高速采集,。
本方案中在WinCC中實現(xiàn)高速數(shù)據(jù)采集的方法可歸納如下:
?PLC每個循環(huán)周期所采集到的過程值可以以一定的順序存放在具有一定格式的DB塊中;
?WinCC可以定義一種原始數(shù)據(jù)類型變量,,可以對PLC里的DB塊直接讀取,。
?WinCC的以數(shù)據(jù)包的形式一次從PLC接收一批數(shù)據(jù),所以這樣就可以獲取完整的高速數(shù)據(jù),,實現(xiàn)對原始高速數(shù)據(jù)的直接處理,。
WinCC的歷史歸檔數(shù)據(jù)對于工業(yè)生產(chǎn)過程也極為重要,WinCC在實現(xiàn)高速數(shù)據(jù)采集后還必須對數(shù)據(jù)進行歸檔,。WinCC V6的底層數(shù)據(jù)庫是 Microsoft SQL 2000,,由于WinCC自帶的歸檔數(shù)據(jù)采集周期滿足不了系統(tǒng)性能要求,所以本系統(tǒng)中基于上面介紹的方法是對過程值進行采集,,并通過編寫腳本使WinCC過程值數(shù)據(jù)存放在一個已經(jīng)建立過的數(shù)據(jù)庫表格中,,然后應(yīng)用軟件可通過查詢數(shù)據(jù)庫表格對歸檔數(shù)據(jù)進行訪問。

4 WinCC高速數(shù)據(jù)采集歸檔的實現(xiàn)
由于篇幅問題,,本文只介紹一個制動周期的高速數(shù)據(jù)采集歸檔,,不涉及WinCC是如何實現(xiàn)對制動器臺架試驗臺一個完整試驗的數(shù)據(jù)的接收。
下位機PLC的一個制動周期的高速數(shù)據(jù)采集的流程如下所示
1)一個新的制動周期開始,;
2)PLC置位信號BrkFlag=1(BrkFlag為WinCC定義的一個二進制外部變量),,同時PLC開始采集數(shù)據(jù),此時PLC將采集到的過程值以一定的順序存放在具有一定格式的DB塊中,;
3)制動周期完畢,,同時PLC 置位信號BrkFlag=0。
上位機WinCC的一個制動周期的高速數(shù)據(jù)采集通過編輯一個動作腳本來實現(xiàn),,此時動作設(shè)置一個觸發(fā)器,,此觸發(fā)器為位信號BrkFlag,位信號 BrkFlag一旦改變就會觸發(fā)這個動作,,只有位信號BrkFlag=0時WinCC才會對PLC發(fā)送的過程值進行拆包處理,,并做一個制動周期的曲線圖同行對拆包數(shù)據(jù)存入一個已經(jīng)預(yù)先建立好的數(shù)據(jù)庫表格中,。上述過程具體設(shè)計如下:
1)定義原始數(shù)據(jù)變量ActualStress,長度為240個字節(jié)
WinCC提供了消息幀變量,,多個過程值可以被寫入連續(xù)的數(shù)據(jù)塊并以幀形式發(fā)送到WinCC,,存儲在WinCC的原始數(shù)據(jù)變量中,原始數(shù)據(jù)變量的格式和長度都是固定不變的,。
2)用C Script編寫數(shù)據(jù)采集全局動作
WinCC不能直接對原始數(shù)據(jù)變量進行處理,,但提供了C腳本功能可用于編寫處理數(shù)據(jù)變量的全局動作。在本系統(tǒng)中編寫了項目函數(shù) SendStressVar(),,此項目函數(shù)通過調(diào)用內(nèi)部函數(shù)GetTagRaw()來實現(xiàn)原始數(shù)據(jù)變量的更新,,并對其中的消息幀內(nèi)容進行拆包處理。 GetTagRaw()定義如下:
#define DATA_SIZE 120
WORD byData[DATA_SIZE];
GetTagRaw("ActualStress",byData,DATA_SIZE);
其中ActualStress為指定的原始數(shù)據(jù)變量的名字,,參數(shù)byData是一個指針,,只用來接收原始數(shù)據(jù)變量內(nèi)容的字數(shù)組,參數(shù)DATA_SIZE是字型數(shù)組的長度,,函數(shù)返回結(jié)果為TRUE,,表明函數(shù)正確的執(zhí)行了,否則為異常,,需進行相應(yīng)處理,。
3)對采集數(shù)據(jù)進行實時顯示并對采集數(shù)據(jù)進行歸檔
一個制動周期內(nèi)對制動力矩的分析是十分重要的,通過制動力矩數(shù)據(jù)的采集可以計算出一個制動周期內(nèi)的最大制動力矩,、最小制動力矩和平均制動力矩,。本系統(tǒng)要求對每個周期的制動力矩進行顯示。
本系統(tǒng)還同時要求對采集的數(shù)據(jù)進行歸檔,,因為采集周期的限制必須編寫全局腳本實現(xiàn)把采集到的數(shù)據(jù)庫寫入已經(jīng)建立好數(shù)據(jù)表格中,,流程如圖3所示。

圖3 對數(shù)據(jù)進行歸檔流程



5 試驗與結(jié)論

利用本系統(tǒng)對制動器進行了試驗,,制動過程如圖4 所示,,試驗過程記錄數(shù)據(jù)較多,本文只給出了通過記錄數(shù)據(jù)得到的制動力矩和制動溫度,。

 

圖4 制動試驗數(shù)據(jù)顯示

目前大多數(shù)組態(tài)軟件都存在采集歸檔周期長的問題,,本文針對將WinCC從PLC采集過來的原始類型數(shù)據(jù)進行處理,成功的將WinCC 的采集周期縮短至50ms甚至更?。ㄗ钚】蛇_10ms),,滿足了數(shù)據(jù)高速采集的要求。該方法已經(jīng)在實際的工程項目中應(yīng)用,,運行狀況穩(wěn)定,。該方法具有一定的通用性

參考文獻:
1 蘇昆哲,深入淺出西門子WinCC 6.0[M],,北京,,北京航空航天大學出版社,2004
2 劉玉國等,,基于PLC的現(xiàn)場數(shù)據(jù)采集和自動控制,,現(xiàn)代機械 2007
3 姜麗波等,,WinCC高速數(shù)據(jù)采集應(yīng)用 電氣傳動自動化2006.11
4 西門子S7-300/400PLC編程軟件使用手冊

此內(nèi)容為AET網(wǎng)站原創(chuàng),未經(jīng)授權(quán)禁止轉(zhuǎn)載,。