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