一、功能概述
常規需求:很多工業現場會用到 XY 曲線,也就是 X 軸非時間軸的情況。組態王中的實現方法:
1、 利用組態王內置控件中的 X-Y 軸曲線,通過調用此控件的函數來實現。
2、 利用組態王通用控件中的超級 XY 曲線,通過調用此控件的屬性、方法來實現。
超級 XY 曲線相對於 X-Y 軸曲線功能更加強大,使用更方便。其主要優勢在於提供了更加靈活方便的控件方法來實現更多的功能,Y 軸支持多個座標,最多可以支持 16 條曲線,曲線可以保存、調用等,所有的功能都提供了相應的控件方法,可以根據需要靈活的在各種命令語言腳本程序中進行調用。
二、工程實例
我們舉一個例子來說明超級 XY 曲線控件的使用。在此例程中我們定義三個變量,分別為
"壓力"、"溫度"、"密度",通過 XY 曲線來觀察壓力、溫度對於密度的影響。下面就以此為例來演示完成這一要求的具體步驟。
三、操作步驟:
1、定義設備:
根據工程中實際使用得設備進行定義,本例程使用亞控的仿真 PLC 設備,使用"PLC- 亞控-仿真 PLC-串口"驅動,定義設備名稱為"PLC" 。
2、定義變量:
在組態王中定義三個變量:壓力(IO 實數類型)、溫度(IO 實數類型)、密度(IO 實數類型)。壓力變量:最小值 0,最大值 100,最小原始值 0,最大原始值 100,連接設備 PLC,寄存器INCREA100,數據類型 short,讀寫屬性為只讀,採集頻率 1000。
溫度變量:最小值 0,最大值 50,最小原始值 0,最大原始值 100,連接設備 PLC,寄存器DECREA100,數據類型 short,讀寫屬性為只讀,採集頻率 1000。
密度變量 :最小值 0,最大值 1,最小原始值 0,最大原始值 100,連接設備 PLC,寄存器INCREA100,數據類型 short,讀寫屬性為只讀,採集頻率 1000。
3.製作畫面:
3.1) 創建畫面:
新建畫面,畫面名稱"超級 XY 曲線"。點擊工具箱的"插入通用控件",選擇"超級 XY曲線",如圖一所示:點擊"確定"後,鼠標變成十字形。然後在畫面上畫一個矩形框,超級 X-Y 軸曲線控件就放到畫面上了,如圖二所示。雙擊畫面的超級 XY 曲線控件,為控件命名為:
XY 曲線。保存畫面。
3.2) 控件方法介紹:
1. void AddNewPoint( double x,double y,short nIndex);
給指定曲線添加一個數據點,可以在程序開始時定義要顯示的曲線參數:x - 設置數據點的 x 軸座標值
y - 設置數據點的 y 軸座標值
nIndex -給出 X-Y 軸曲線控件中的曲線索引號,取值範圍 0-7
返回值:無
2. void Clear( short nIndex );
清除一條曲線數據。
參數:nIndex – 同 1
返回值:無
3. void ClearAll();
清除所有曲線數據。參數:無
返回值:無
4. double GetValueAt( double x, short nIndex);
返回對應於 X 軸點值的 Y 值點插值。參數:x – X 軸座標值
nIndex - 同 1
返回值: 相應於 x 值的 Y 軸的值。
5. long GetDataCount( short nIndex );
返回某一曲線點的數目。參數:nIndex – 同 1
返回值: 返回曲線索引號為 nIndex 的數據點數目。
6. double GetValueX( long nDataIndex, short nCurveIndex );
返回曲線中設定點的 X 軸值。
參數:nDataIndex – 數據點的序號
nCurveIndex – 同 1
返回值: 返回序號為 nDataIndex 的數據點的 X 軸的值
7. double GetValueY( long nDataIndex, short nCurveIndex );
返回曲線中設定點的 Y 軸值。
參數:nDataIndex – 數據點的序號
nCurveIndex – 同 1
返回值: 返回序號為 nDataIndex 的數據點的 Y 軸的值
8. void ZoomIn(); 繪圖區放大一倍。參數:無
返回值:無
9. void ZoomOut();
繪圖區縮小一倍。
參數:無 返回值:無
10. void ZoomResume();
恢復原大小。參數:無
返回值:無
11. void SetXAxesRange( double XMax, double XMin );
設置 X 軸的最大最小值。
參數:Xmax – X 軸的最大值
Xmin – X 軸的最小值返回值:無
12. void SetYAxesRange( double YMax, double YMin );
設置 Y 軸的最大最小值。
參數: Ymax – Y 軸的最大值 Ymin – Y 軸的最小值
返回值:無
13. void SetXGrids( short nGrids );
設置 X 軸的分度數。
參數:nGrids – 分度數返回值:無
14. void SetYGrids( short nGrids );
設置 Y 軸的分度數。
參數:nGrids – 分度數返回值:無
15. int SaveToFile( LPCSTR szFileName )
保存數據到文件。
參數:szFileName – 文件名
返回值: 返回錯誤代碼。如果成功則返回 0。否則:
-1 - 表示無法打開文件
-2 - 表示文件名無效
-3 - 表示寫入異常
16. int LoadFromFile( LPCSTR szFileName )
從文件中加載數據。
參數:szFileName – 文件名
返回值: 返回錯誤代碼。如果成功則返回 0。否則
-1 - 表示文件無法打入
-2 - 表示文件名無效
-3 - 表示文件格式不正確
-4 - 表示讀入錯誤
17. BOOL SetChartProperty( LPCSTR szName, LPCSTR szProperty );
設置 XY 控件的屬性。
參數:szName – 屬性名
szProperty – 屬性值。
3.3) 控件屬性設置:
利用超級 XY 曲線控件的方法實現描點的功能,我們首先對 XY 曲線控件進行設置,選擇畫面中的 XY 曲線,點擊右鍵彈出快捷菜單,選擇"控件屬性",彈出 XY 曲線控件的屬性設置,如圖三所示:選擇"座標"選項卡,對 X 軸、Y 軸的座標進行設置,首先設置 X 軸座標為最大值 1,最小值 0,小數位數為 2,設置 X 軸標題為"密度"。然後設置 Y 軸座標,先設置 Y Axis 0,設置 Y 軸標題為"壓力",最大值為 100,最小值為 0,然後點擊"更新 Y 軸信息",完成 Y Axis 0 的設置。如圖四所示:再設置
Y Axis 1,選中 Y Axis 1,設置 Y 軸標題為"溫度",設置"顯示 Y 軸",設置最大值為 50,最小值為 0,修改"在曲線畫圖區水平位置"設置項的"在畫圖區邊界的第 1 條縱軸",然後點擊"更新 Y 軸信息",完成 Y Axis 1 的設置。如圖五所示:設置控件屬性的"曲線"選項卡:設置"曲線 0"對應的 Y 軸為"Y Axis 0",設置"曲線
1"對應的 Y 周為"Y Axis 1"。如圖六所示:點擊"確定"完成超級 XY 曲線控件屬性的設置。如圖七所示:其他相關設置請參考組態王使用手冊。
3.4) 功能實現說明:
設置完超級 XY 曲線控件屬性後,我們通過調用控件的方法來實現描點的功能,主要用到
的控件方法為:
void AddNewPoint( double x,double y,short nIndex);
給指定曲線添加一個數據點,可以在程序開始時定義要顯示的曲線參數:x - 設置數據點的 x 軸座標值
y - 設置數據點的 y 軸座標值
nIndex -給出 X-Y 軸曲線控件中的曲線索引號,取值範圍 0-7
返回值:無
void ClearAll();
清除所有曲線數據。參數:無
返回值:無
點擊鼠標右鍵,彈出快捷菜單,選擇"畫面屬性",彈出畫面屬性窗口,點擊"命令語言"進入畫面命令語言編輯窗口,點擊"顯示時"選項卡,點擊編輯窗口下方的"控件"按鈕,彈出"控件屬性和方法"對話框,在"控件名稱"處選擇我們的 XY 曲線控件,名稱為"XY 曲線",在"查看類型"處選擇"控件方法",在"屬性或方法"項中選擇"ClearAll",如圖八所示:點擊"確定"。完成畫面命令語言的"顯示時"命令語言的編輯,如圖九所示。實現當畫面打開時清除所有的曲線數據。
切換到"存在時"選項卡,將"每 3000 毫秒"改為"每 1000 毫秒",通過上述方式調用控件的方法"AddNewPoint",如圖十所示,命令語言如下:
XY 曲線.AddNewPoint(\\\\本站點\\密度,\\\\本站點\\壓力,0);
XY 曲線.AddNewPoint(\\\\本站點\\密度,\\\\本站點\\溫度,1);
完成畫面命令語言的編輯後,點擊"確定",返回畫面編輯窗口。
在畫面中添加文本:溫度:,##,壓力:,##,密度:,##,對## 雙擊進行動畫連接,使用"模擬值輸出"分別連接對應的變量:溫度,壓力,密度。
編輯完成後保存畫面。在工程瀏覽器的"系統設置"中的"設置運行系統"中進行"主畫面配置",將畫面"超級 XY 曲線"畫面配置為主畫面。
4. 進入運行系統:
畫面開發完成點擊工程瀏覽器的"View"按鈕切換到運行系統。
系統運行後會將主畫面打開,溫度、壓力與密度關係的 XY 曲線顯示到畫面中,如圖十一所示:
可以通過控件本身帶的工具欄實現超級 XY 曲線的放大、縮小、平移、保存、調用、打印等等許多功能,工具欄的這些功能也可以通過調用超級 XY 曲線控件的方法通過命令語言來實現。
其他詳細的使用請參考組態王使用手冊或者組態王幫助文檔。
四、注意事項
1.多 Y 軸座標的使用時注意需要在"曲線"選項卡中對每一條曲線對應的座標軸進行設置, 默認所有的曲線對應的都是座標軸 Y Axis 0。
2.此控件無法在 WEB 上進行發佈。
有好的知識,就要與大家分享,分享是一種精神,無需隱藏!加油!!!
閱讀更多 Profit01 的文章