組態(tài)王,歷史趨勢曲線控件例程說明文檔教材_第1頁
組態(tài)王,歷史趨勢曲線控件例程說明文檔教材_第2頁
組態(tài)王,歷史趨勢曲線控件例程說明文檔教材_第3頁
組態(tài)王,歷史趨勢曲線控件例程說明文檔教材_第4頁
組態(tài)王,歷史趨勢曲線控件例程說明文檔教材_第5頁
已閱讀5頁,還剩17頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、 歷史趨勢曲線 1,功能概述常規(guī)需求:很多工業(yè)現(xiàn)場都會要求顯示采集量的趨勢曲線,包括實時曲線、歷史曲線。組態(tài)王中的趨勢曲線的實現(xiàn)方法:1)利用組態(tài)王的“工具箱”中的“實時曲線”、“歷史曲線”實現(xiàn)。2)利用組態(tài)王的“插入通用控件”中的“歷史趨勢曲線”實現(xiàn)。第一種實現(xiàn)方法的優(yōu)點在于可以進行WEB的發(fā)布,實現(xiàn)通過IE瀏覽器進行瀏覽。缺點為支持的曲線筆比較少,許多功能的實現(xiàn)需要通過組態(tài)王的函數(shù)來實現(xiàn),使用相對要麻煩。第二種實現(xiàn)方法的優(yōu)點在于支持同時繪制16條曲線,功能比較完善,可以在系統(tǒng)運行時動態(tài)增加、刪除、隱藏曲線,還可以修改曲線屬性,實現(xiàn)無級縮放,曲線打印等等。許多功能都不需要通過編寫腳本的方法實

2、現(xiàn),使用比較方便。缺點在于無法進WEB的發(fā)布。工程實例以一個簡單的例程來說明“歷史趨勢曲線控件”的使用。操作步驟1.1 創(chuàng)建新工程打開組態(tài)王工程管理器,創(chuàng)建一個新工程。1.2 定義設備進入工程瀏覽器,在設備處新建設備,我們在本例中定義一個仿真PLC的設備,設備列表為“PLC亞控仿真PLC串口” ,設備名稱為“PLC1”。此仿真PLC可以做為虛擬設備與組態(tài)王進行通訊。仿真PLC主要有如下的寄存器:自動加1寄存器INCREA,自動減1寄存器DECREA,隨機寄存器RADOM,常量寄存器 STATIC,常量字符串寄存器STRING,CommErr寄存器。具體的寄存器的使用請參考組態(tài)王IO驅動幫助。1

3、.3 定義變量在數(shù)據(jù)詞典中新建兩個IO變量,變量名稱分別為“壓力”、“流量”,變量類型為IO實數(shù),連接的設備為前面定義的仿真PLC設備“PLC1”,寄存器分別為INCREA100,DECREA100,數(shù)據(jù)類型為short,讀寫屬性為“只讀”。這樣壓力變量就會從0開始自動加1,其變化范圍是0到100,流量變量從100開始自動減1,其變化范圍是0到100。變量基本屬性定義畫面如下圖一、圖二所示:圖一 定義變量壓力圖二 定義變量流量在記錄和安全區(qū)屬性選項卡中我們定義壓力和流量變量的數(shù)據(jù)記錄屬性,如圖三所示,選擇“數(shù)據(jù)變化”記錄,變化靈敏度設置為0。圖三 記錄和安全區(qū)屬性1.4 創(chuàng)建趨勢曲線在組態(tài)王開

4、發(fā)系統(tǒng)中新建“趨勢曲線”畫面,在工具箱中單擊“插入通用控件”或選擇菜單“編輯”下的“插入通用控件”命令,彈出“插入控件”對話框,在列表中選擇“歷史趨勢曲線”,單擊“確定”按鈕,對話框自動消失,鼠標箭頭變?yōu)樾 笆弊中停诋嬅嫔线x擇控件的左上角,按下鼠標左鍵并拖動,畫面上顯示出一個虛線的矩形框,該矩形框為創(chuàng)建后的曲線的外框。當達到所需大小時,松開鼠標左鍵,則歷史曲線控件創(chuàng)建成功,畫面上顯示出該曲線,如圖四所示。雙擊趨勢曲線,彈出“動畫連接屬性”,控件名命名為“HT”。點擊確定完成對歷史趨勢曲線的命名。圖四 歷史趨勢曲線1.5 添加曲線變量選中曲線控件點擊右鍵,彈出菜單,選擇“控件屬性”,彈出歷史

5、趨勢曲線控件的屬性對話框,在“曲線”選項卡,點擊“增加”按鈕,選擇變量“壓力”,選擇“線類型”、“線顏色”,點擊“確定”完成壓力曲線的添加。再點擊“增加”按鈕,選擇變量“流量”,選擇“線類型”、“線顏色”,點擊“確定”完成流量曲線的添加。在趨勢曲線控件屬性的“坐標系”選項卡中對坐標系進行設置,我們設置Y軸的起始值為0,最大值為100,不按照百分比繪制,而是按照實際值顯示。設置時間軸的顯示格式為顯示年、月、日、時、分、秒。添加完成后開發(fā)畫面如圖五所示:圖五 歷史趨勢曲線1.6 切換到運行系統(tǒng)保存畫面后,在工程瀏覽器的“系統(tǒng)配置”“設置運行系統(tǒng)”中進行“主畫面配置”,將“歷史曲線”畫面設置為主畫面

6、。然后切換到運行系統(tǒng)。運行如下圖六所示:趨勢曲線控件自帶的工具欄中提供了很多方便實用的控制按鈕功能供用戶來使用,主要包括:調整跨度設置按鈕,設置Y軸標記,曲線圖表無級縮放,打印曲線,定義新曲線,更新曲線圖表終止時間為當前時間,設置圖表數(shù)值軸和時間軸參數(shù),隱藏/顯示變量列表。這些工具欄基本可以滿足客戶的使用了,如果還需要進一步的功能可以通過控件的屬性、方法來實現(xiàn)。下面我們簡單的舉例說明控件的屬性、方法的使用。圖六 運行系統(tǒng)2. 歷史趨勢曲線控件的特點KVHTrend曲線控件是組態(tài)王以Active X控件形式提供的繪制歷史曲線和ODBC數(shù)據(jù)庫曲線的功能性工具。該曲線具有以下特點:1)即可以連接組態(tài)

7、王的歷史庫,也可以通過ODBC數(shù)據(jù)源連接到其它數(shù)據(jù)庫上,如Access、SQLServer等。2)連接組態(tài)王歷史庫時,可以定義查詢數(shù)據(jù)的時間間隔,如同在組態(tài)王中使用報表查詢歷史數(shù)據(jù)時使用查詢間隔一樣。3)完全兼容了組態(tài)王原有歷史曲線的功能。最多可同時繪制16條曲線。4)可以在系統(tǒng)運行時動態(tài)增加、刪除、隱藏曲線。還可以修改曲線屬性。5)曲線圖表實現(xiàn)無級縮放。6)可實現(xiàn)某條曲線在某個時間段上的曲線比較。7)數(shù)值軸可以使用工程百分比標識,也可用曲線實際范圍標識,二者之間自由切換。8)可直接打印圖表曲線。9)可以自由選擇曲線列表框中的顯示內容。10)可以選擇移動游標時是否顯示曲線數(shù)值。11)可以在曲線

8、中顯示報警區(qū)域的背景色3. 控件的屬性、方法3.1 控件的屬性與方法(1) 屬性及含義列表:序號名 稱數(shù)據(jù)類型含 義1CurveUseKVHistDataBool使用組態(tài)王歷史數(shù)據(jù)2CruveDSNString使用數(shù)據(jù)源名稱3CurveTableString數(shù)據(jù)庫的表名4CurveDateTimeFieldString數(shù)據(jù)庫的時間字段名5CurveInvalidColorOLE_COLOR數(shù)據(jù)庫的無效值6CurveVarNameString連接變量名7CurveColorOLE_COLOR曲線顏色8CurveLineTypeShort曲線線形9CurveTimeDelayString曲線比較時

9、間差10CurveDrawTypeShort曲線繪制方式11CurveAlmColorOLE_COLOR報警顯示顏色12CurveHideCurveBool是否隱藏曲線13CurveMilliSecondFieldString毫秒字段名稱14CurveDataFieldString數(shù)據(jù)字段名稱15CuryeInvalidValueString無效值字段名稱16CurveUserStringODBC數(shù)據(jù)源用戶名17CurvePwdStringODBC數(shù)據(jù)源密碼18CurveSavePwdBoolODBC是否保存密碼19CurveListBool是否顯示曲線列表20CtrlBtnBool是否顯示控

10、制按鈕21BorderColorOLE_COLOR邊界顏色22BakColorOLE_COLOR背景顏色23DrawXYAxisBool是否繪制坐標軸24AxisLineTypeShort坐標軸線型25AxisColorOLE_COLOR坐標軸顏色26ShortDivLineBool分割線是否為短線27MajXDivNumShortX軸主分割線數(shù)28MinXDivNumShortX軸副分割線數(shù)29MajYDivNumShortY軸主分割線數(shù)30MinYDivNumShortY軸副分割線數(shù)31MajXDivLineTypeShortX軸主分割線線型32MinXDivLineTypeShortX軸

11、副分割線線型33MajYDivLineTypeShortY軸主分割線線型34MinYDivLineTypeShortY軸副分割線線型35MajXDivColorOLE_COLORX軸主分割線顏色36MinXDivColorOLE_COLORX軸副分割線顏色37MajXDivColorOLE_COLORY軸主分割線顏色38MinYDivColorOLE_COLORY軸副分割線顏色39YLabelNumShortY軸標記數(shù)40YminValDoubleY軸標記最小值41YmaxVaLDoubleY軸標記最大值42YLableFontIFontDispY軸標記字體43XLabelNumShortX軸

12、標記數(shù)44XwidthShortX軸寬度45XLableFontIFontDispX軸標記字體46XLabelFmtYearBoolX軸標記格式是否顯示年47XlabelFmtMonthBoolX軸標記格式是否顯示月48XlabelFmtDayBoolX軸標記格式是否顯示日49XlabelFmtHourBoolX軸標記格式是否顯示時50XlabelFmtMinuteBoolX軸標記格式是否顯示分51XlabelFmtSecondBoolX軸標記格式是否顯示秒52XlabelFmtMilliSecondBoolX軸標記格式是否顯示毫秒53XWidthUnitShortX軸寬度單位:秒、分、時、日

13、54XLableColorOLE_COLORX軸標記顏色55YLableColorOLE_COLORY軸標記顏色56CurveNumLong返回當前曲線圖表中的曲線數(shù)目57AdjustWidthLong時間軸調整寬度58AdjustWidthUnitshort時間軸調整寬度單位:秒、分、時、日、毫秒59PercentBool是否按百分比繪制60YMinRealDoubleY軸最小值61YMaxRealDoubleY軸最大值62SampleIntervalLong采樣間隔 秒63SampleIntervalMsLong采樣間隔 毫秒64PrintTitleString打印標題65XLVernie

14、rShowBool是否顯示左游標66XRVernierShowBool是否顯示右游標67XLabelFmtMicroSecondBoolX軸標記格式是否顯示微秒68SampleUSBool是否微秒采樣69bPrintTitleBool是否打印標題70bPrintListBool是否打印曲線列表71YUNITString縱軸單位72bHiHiAlarmAreaBool是否顯示高高限報警區(qū)73HiHiAlarmAreaUpDouble高高限報警區(qū)上邊界位置74HiHiAlarmAreaDownDouble高高限報警區(qū)下邊界位置75bHiAlarmAreaBool是否顯示高限報警區(qū)76HiAlarm

15、AreaUpDouble高限報警區(qū)上邊界位置77HiAlarmAreaDownDouble高限報警區(qū)下邊界位置78bLoAlarmAreaBool是否顯示低限報警區(qū)79LoAlarmAreaUpDouble低限報警區(qū)上邊界位置80LoAlarmAreaDownDouble低限報警區(qū)下邊界位置81bLoLoAlarmAreaBool是否顯示低低限報警區(qū)82LoLoAlarmAreaUpDouble低低限報警區(qū)上邊界位置83LoLoAlarmAreaDownDouble低低限報警區(qū)下邊界位置84LVernierStrString左游標附加信息85RVernierStrString右游標附加信息86

16、LVernierAppendStrBool左游標是否顯示附加信息87RVernierAppendStrBool右游標是否顯示附加信息88LShowVernierValTypeShort左游標數(shù)值顯示方式0.不顯時數(shù)值1.一直顯示數(shù)值2.移動游標時顯示數(shù)值89RShowVernierValTypeShort右游標數(shù)值顯示方式0.不顯時數(shù)值1.一直顯示數(shù)值2.移動游標時顯示數(shù)值90bPrintSubTitleBool是否打印子標題91PrintSubTitleString打印子標題92SubTitlePosShort子標題位置(2) 控件方法說明:1)Void ChangeCurveVarName

17、(long 1Index,BSTR 1pszNewValue);功能:改變歷史曲線所連接的變量,該變量數(shù)據(jù)來自組態(tài)王歷史庫。參數(shù):1Index:曲線索引號。1pszNewValue:變量名。2)Void ChangeCurveVarNameForODBC(LONG lIndex,STRING szNewName,STRING szDSN,STRING szUser,STRING szPwd,STRING szTable,STRING szDateTimeField,STRING szMilliSecondField,STRING szDataField,STRING szInvalidValu

18、e);功能:改變歷史曲線所連接的變量,該變量數(shù)據(jù)來自ODBC數(shù)據(jù)源。參數(shù):lIndex:曲線索引號。 szNewName:所連接變量。 szDSN:使用的數(shù)據(jù)源名。 szUser:用戶名。 szPwd:密碼。 szTable:數(shù)據(jù)庫的表名。 szDateTimeField:表中對應的時間字段。 szMilliSecondField:表中對應的毫秒字段。 szDataField:表中對應的數(shù)據(jù)字段。szInvalidValue:表中對應的無效值。3)String HTGetTimeStringAtScooter(short nScootNum,String szFormat);功能:取得指定指示

19、器處的時間,該時間為字符串格式。參數(shù):nScootNum:指示器索引,1左、2右。 szFormat:指定所需要的時間字符串格式,可為下列之一:“Date”:以Windows控制面板相同格式顯示日期。“Time”:以Windows控制面板相同格式顯示時間?!癉ateTime”:以Windows控制面板相同格式顯示日期時間。返回值:字符串型日期時間值。4)Float HTGetPenRealValue(short nPenNum,String szContent);功能:取得指定曲線Y軸(數(shù)值軸)起點或終點的實際值。參數(shù):nPenNum:曲線索引,116。 szContent:指定所需要類型,可

20、為下列之一:“Start”:將Y軸下限值的工程百分比轉換為實際值?!癊nd”:將Y軸上限值的工程百分比轉換為實際值?!癡alid”:判斷取得的值是否有效,0無效,1有效。返回值:工程百分比對應的實際值。5)Float HTGetValue(short nPenNum,String szValType);功能:取得指定曲線整個圖表上(當前可見部分)的最大/最小/平均值。參數(shù):nPenNum:曲線索引,116。 szValType:指定所需要的計算類型,可為下列之一:“AverageValue”:整個趨勢的平均值?!癕axValue”:整個趨勢的最大值?!癕inValue”:整個趨勢的最小值?!癡

21、alid”:判斷取得的值是否有效,0無效,1有效。返回值:曲線整個圖表上(當前可見部分)的最大/最小/平均值。6)Float HTGetValueAtScooter(short nPenNum,short nScootNum,String szValType);功能:取得指定曲線在指示器位置處所要求的值。參數(shù):nPenNum:曲線索引,116。 nScootNum:指示器索引,1左、2右。 szValType:指定所需要類型,可為下列之一:“Value”:取得指示器處的值?!癡alid”:判斷取得的值是否有效,0無效,1有效。返回值:指定曲線在指定指示器處的值。7)Float HTGetVal

22、ueAtZone(short nPenNum,String szValType);功能:取得指定曲線在左右指示器之間的的最大/最小/平均值。參數(shù):nPenNum:曲線索引,116。 szValType:指定所需要的計算類型,可為下列之一:“AverageValue”:平均值?!癕axValue”:最大值?!癕inValue”:最小值?!癡alid”:判斷取得的值是否有效,0無效,1有效。返回值:指定曲線在左右指示器之間的的最大/最小/平均值。8)Void HTScrollLeft();功能:將曲線的起始時間左移一個調整跨度。參數(shù):無。返回值:無。9)Void HTScrollRight();功

23、能:將曲線的起始時間右移一個調整跨度。參數(shù):無。返回值:無。10)Void HTUpdateToCurrentTime();功能:將曲線的終止時間設為當前時間。參數(shù):無。返回值:無。11)Void HTSetLeftScooterTime(Long lTime,short sMilliSecond);功能:設置曲線時間坐標起點。參數(shù):lTime:時間的年月日時分秒部分,將該時間用HTConvertTime()函數(shù)轉換為自1970年1月1日0時到指定時間的秒數(shù)。 sMilliSecond:時間的毫秒部分。返回值:無。12)Void HTZoomIn(string szLookString);功能

24、:通過增大時間軸和數(shù)值軸長度,使曲線圖表縮小。參數(shù):szLookString:縮放類型,可為下列之一:“StartTime”:保持起始時間與縮放前相等。 “EndTime”:保持終止時間與縮放前相等。 “Center”:保持中心時間與縮放前相等。返回值:無。13)Void HTZoomOut(string szLookString);功能:通過縮短時間軸和數(shù)值軸長度,使曲線圖表放大。參數(shù):szLookString:縮放類型,可為下列之一:“StartTime”:保持起始時間與縮放前相等。“EndTime”:保持終止時間與縮放前相等。“Center”:保持中心時間與縮放前相等。返回值:無。14)

25、Void SetTimeParam(long lStartTime, short sStartms, long lXWidth, short sXWidthUnit);功能:設置歷史曲線時間坐標起點、時間軸長度。參數(shù):lStartTime時間年月日時分秒部分。sStartms時間的毫秒部分。lXWidth時間軸長度。sXWithUnit時間軸長度單位:0-秒 1-分 2-時 3-日 4-毫秒。返回值:無。注:組態(tài)王6.5第二版,sXWithUnit必須為0,即秒,lXWidth為轉換為秒后的時間長度。15)void SetTimeParamDivided(long sStartYear, lo

26、ng sStartMonth, long sStartDay, long sStartHour, long sStartMinute, long sStartSecond, long sStartms, long lXWidth, long sXWidthUnit);功能:設置歷史曲線時間坐標起點、時間軸長度,可以直接輸入時間參數(shù), 與SetTimeParam實現(xiàn)的功能相同。參數(shù):sStartYear 時間的年。sStartMonth 時間的月。sStartDay 時間的日。sStartHour 時間的時。sStartMinute 時間的分。sStartSecond 時間的秒。sStartms

27、 時間的毫秒。lXWidth 時間軸長度。sXWidthUnit 時間軸長度單位:0-秒。返回值:無。16)void SetTimeParamString(STRING strStartTime, STRING strEndTime);功能:設置歷史曲線時間坐標起點、終點,可以直接輸入以字符串形式表示的時間參數(shù)。參數(shù):strStartTime 開始時間字符串。strEndTime 結束時間字符串。例如: m為歷史曲線控件名稱,定義按鈕彈起時:m. SetTimeParamString(2004年9月20日13時0分0秒1毫秒,2004年9月20日15時20分2秒999毫秒);設置時間軸范圍為:

28、2004-9-20 13:00:00:0012004-9-20 15:20:02:999;17)ShowCurve(LONG lIndex,BOOL bShow);功能:顯示或隱藏指定的曲線。參數(shù):lIndex 曲線索引,116。bShow 取1顯示曲線,取0隱藏曲線。18)void PrintCurve();功能:打印,與控件打印按鈕實現(xiàn)相同功能。參數(shù):無。返回值:無。3.2 屬性方法的使用舉例我們舉一個簡單的例程來說明控件屬性的使用:CtrlBtn,是否顯示控制按鈕。Bool類型,1:顯示控制按鈕,0:隱藏控制按鈕。CurveList:是否顯示曲線列表。Bool類型,1:顯示曲線列表,0:隱藏曲線列表。假設我們不想讓客戶利用趨勢曲線控件自帶的工具欄來實現(xiàn)相應的操作,并且也不顯示曲線列表。則可以隱含此工具欄并隱藏曲線列表,利用CtrlBtn屬性、CurveList屬性來實現(xiàn)。在“歷史曲線”畫面空白處點擊右鍵,彈出菜單,選擇“畫面屬性”,彈出七所示:圖七 畫面屬性點擊“命令語言”按鈕,進入畫面屬性命

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論