zichen8716
我行,我行,我行行行。。
級別: 家園?
精華主題: 0
發(fā)帖數量: 266 個
工控威望: 527 點
下載積分: 4363 分
在線時間: 59(小時)
注冊時間: 2010-03-25
最后登錄: 2022-12-28
查看zichen8716的 主題 / 回貼
樓主  發(fā)表于: 2014-03-28 09:49
1、Wincc online trend控件實現多條曲線查詢

項目要求,查詢任意時段內的兩條曲線的歷史數據
首先在變量記錄中設置需要記錄的變量,如果需要在一個控件內顯示兩條曲線,做數據歸檔時,歸檔屬性最好是一致的,歸檔屬性不一樣是否會出現問題,這個沒測試,有興趣的可以測試一下。
數據記錄設置OK后,新建畫面插入online trend控件,我的項目需要把趨勢打印出來,所以把控件的工具欄全部隱藏。
雙擊online trend控件,添加需要顯示的歸檔變量。選擇公共X,Y軸等參數。坐標顯示根據自己使用選擇,基本上不用設置太多參數。
添加需要顯示的歷史歸檔變量后,就需要寫腳本了,西門子工控網論壇有實例,實例提示針對于一條曲線時使用,咨詢西門子技術支持,如果需要同時顯示兩條曲線時,需要對兩條曲線分別進行設置屬性“控件.index=0,1”,但是測試其實只設置index=0的起始及結束時間就OK,就是論壇給的實例不是只針對于一條曲線,兩條曲線時同樣適用,再多的曲線就沒測試了。
西門子默認的時間格式為“MM-DD-YYYY HH-MM-SS”格式,所以在設置趨勢起始及結束時間時需要注意。
注:導入歸檔數據需要一定的時間,建議按鈕觸發(fā)。嘗試在畫面打開時觸發(fā)腳本,有的時候會出現歷史數據加載不上來。
腳本如下,僅供參考
Dim objConnection  
Dim strConnectionString

Dim strSQL  
Dim objrs
Dim chaxun

'定義曲線控件
Dim TREND
Dim strval_1
Dim strval_2
Dim strval_t1
Dim strval_t2

'初始化程序,省略N行。。。。。。。。。。。。。。。。。。。。。。。。。。。。

'初始化程序,省略N行。。。。。。。。。。。。。。。。。。。。。。。。。。。。

chaxun=HMIRuntime.Tags("管號查詢輸入").Read
strConnectionString = "Provider=MSDASQL;DSN=REPORT;UID=;PWD=;"
  strSQL = "select * from report where guanhao='"&chaxun&"';"
   Set objConnection = CreateObject("ADODB.Connection")
   objConnection.ConnectionString = strConnectionString
objConnection.Open
   Set objrs = CreateObject("ADODB.RecordSet")
  objrs.open  strSQL,objConnection
/賦值程序,省略,,,,,,,,,,,,,,,,,,,,,,/

/賦值程序,省略,,,,,,,,,,,,,,,,,,,,,,/

objrs.close
Set objrs = Nothing
  objConnection.Close
   Set objConnection = Nothing  
'趨勢時間設定
Set trend = ScreenItems("控件1")
strval_r=HMIRuntime.Tags("測試日期_read").Read
strval_t1=HMIRuntime.Tags("開始時間_read").Read
strval_t2=HMIRuntime.Tags("測試時間_read").Read

strval_1=strval_r+" "+strval_t1
strval_2=strval_r+" "+strval_t2

trend.Index=0
trend.Online=False
trend.TimeRange=False
trend.BeginTime=strval_1
trend.EndTime=strval_2
trend.Command="Reload"
失敗并不意味你浪費了時間和生命。失敗表明你有理由重新開始