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

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

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

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

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

 
圖1 制動(dòng)器試驗(yàn)臺實(shí)物圖

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

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

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

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

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

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



5 試驗(yàn)與結(jié)論

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

 

圖4 制動(dòng)試驗(yàn)數(shù)據(jù)顯示

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

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

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