如何在組態王中使用超級 XY 曲線控件?作為工控人,你值得擁有

一、功能概述

常規需求:很多工業現場會用到 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 曲線。保存畫面。

如何在組態王中使用超級 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 );

清除一條曲線數據。

如何在組態王中使用超級 XY 曲線控件?作為工控人,你值得擁有

圖二 超級 XY 曲線

參數: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 的設置。如圖五所示:

如何在組態王中使用超級 XY 曲線控件?作為工控人,你值得擁有

圖三 超級 XY 曲線控件屬性

設置控件屬性的"曲線"選項卡:設置"曲線 0"對應的 Y 軸為"Y Axis 0",設置"曲線

1"對應的 Y 周為"Y Axis 1"。如圖六所示:點擊"確定"完成超級 XY 曲線控件屬性的設置。如圖七所示:其他相關設置請參考組態王使用手冊。

如何在組態王中使用超級 XY 曲線控件?作為工控人,你值得擁有

圖四 座標選項設置

如何在組態王中使用超級 XY 曲線控件?作為工控人,你值得擁有

圖五 座標選項設置

如何在組態王中使用超級 XY 曲線控件?作為工控人,你值得擁有

圖六 曲線選項設置

如何在組態王中使用超級 XY 曲線控件?作為工控人,你值得擁有

圖七 超級 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",如圖八所示:點擊"確定"。完成畫面命令語言的"顯示時"命令語言的編輯,如圖九所示。實現當畫面打開時清除所有的曲線數據。

如何在組態王中使用超級 XY 曲線控件?作為工控人,你值得擁有

圖八 調用控件方法

如何在組態王中使用超級 XY 曲線控件?作為工控人,你值得擁有

圖九 畫面命令語言-顯示時

切換到"存在時"選項卡,將"每 3000 毫秒"改為"每 1000 毫秒",通過上述方式調用控件的方法"AddNewPoint",如圖十所示,命令語言如下:

XY 曲線.AddNewPoint(\\\\本站點\\密度,\\\\本站點\\壓力,0);

XY 曲線.AddNewPoint(\\\\本站點\\密度,\\\\本站點\\溫度,1);

完成畫面命令語言的編輯後,點擊"確定",返回畫面編輯窗口。

在畫面中添加文本:溫度:,##,壓力:,##,密度:,##,對## 雙擊進行動畫連接,使用"模擬值輸出"分別連接對應的變量:溫度,壓力,密度。

編輯完成後保存畫面。在工程瀏覽器的"系統設置"中的"設置運行系統"中進行"主畫面配置",將畫面"超級 XY 曲線"畫面配置為主畫面。

4. 進入運行系統:

畫面開發完成點擊工程瀏覽器的"View"按鈕切換到運行系統。

系統運行後會將主畫面打開,溫度、壓力與密度關係的 XY 曲線顯示到畫面中,如圖十一所示:

如何在組態王中使用超級 XY 曲線控件?作為工控人,你值得擁有

圖十 畫面命令語言-存在時

如何在組態王中使用超級 XY 曲線控件?作為工控人,你值得擁有

圖十一超級 XY 曲線控件運行畫面

可以通過控件本身帶的工具欄實現超級 XY 曲線的放大、縮小、平移、保存、調用、打印等等許多功能,工具欄的這些功能也可以通過調用超級 XY 曲線控件的方法通過命令語言來實現。

其他詳細的使用請參考組態王使用手冊或者組態王幫助文檔。

四、注意事項

1.多 Y 軸座標的使用時注意需要在"曲線"選項卡中對每一條曲線對應的座標軸進行設置, 默認所有的曲線對應的都是座標軸 Y Axis 0。

2.此控件無法在 WEB 上進行發佈。

有好的知識,就要與大家分享,分享是一種精神,無需隱藏!加油!!!


分享到:


相關文章: