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