一、功能概述
常规需求:很多工业现场会用到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曲线
3.2)控件方法介绍:
1.voidAddNewPoint(doublex,doubley,shortnIndex);
给指定曲线添加一个数据点,可以在程序开始时定义要显示的曲线参数:x-设置数据点的x轴坐标值
y-设置数据点的y轴坐标值
nIndex-给出X-Y轴曲线控件中的曲线索引号,取值范围0-7
返回值:无
2.voidClear(shortnIndex);
清除一条曲线数据。

图二超级XY曲线
参数:nIndex–同1
返回值:无
3.voidClearAll();
清除所有曲线数据。参数:无
返回值:无
4.doubleGetValueAt(doublex,shortnIndex);
返回对应于X轴点值的Y值点插值。参数:x–X轴坐标值
nIndex-同1
返回值:相应于x值的Y轴的值。
5.longGetDataCount(shortnIndex);
返回某一曲线点的数目。参数:nIndex–同1
返回值:返回曲线索引号为nIndex的数据点数目。
6.doubleGetValueX(longnDataIndex,shortnCurveIndex);
返回曲线中设定点的X轴值。
参数:nDataIndex–数据点的序号
nCurveIndex–同1
返回值:返回序号为nDataIndex的数据点的X轴的值
7.doubleGetValueY(longnDataIndex,shortnCurveIndex);
返回曲线中设定点的Y轴值。
参数:nDataIndex–数据点的序号
nCurveIndex–同1
返回值:返回序号为nDataIndex的数据点的Y轴的值
8.voidZoomIn();绘图区放大一倍。参数:无
返回值:无
9.voidZoomOut();
绘图区缩小一倍。
参数:无返回值:无
10.voidZoomResume();
恢复原大小。参数:无
返回值:无
11.voidSetXAxesRange(doubleXMax,doubleXMin);
设置X轴的最大最小值。
参数:Xmax–X轴的最大值
Xmin–X轴的最小值返回值:无
12.voidSetYAxesRange(doubleYMax,doubleYMin);
设置Y轴的最大最小值。
参数:Ymax–Y轴的最大值Ymin–Y轴的最小值
返回值:无
13.voidSetXGrids(shortnGrids);
设置X轴的分度数。
参数:nGrids–分度数返回值:无
14.voidSetYGrids(shortnGrids);
设置Y轴的分度数。
参数:nGrids–分度数返回值:无
15.intSaveToFile(LPCSTRszFileName)
保存数据到文件。
参数:szFileName–文件名
返回值:返回错误代码。如果成功则返回0。否则:
-1-表示无法打开文件
-2-表示文件名无效
-3-表示写入异常
16.intLoadFromFile(LPCSTRszFileName)
从文件中加载数据。
参数:szFileName–文件名
返回值:返回错误代码。如果成功则返回0。否则
-1-表示文件无法打入
-2-表示文件名无效
-3-表示文件格式不正确
-4-表示读入错误
17.BOOLSetChartProperty(LPCSTRszName,LPCSTRszProperty);
设置XY控件的属性。
参数:szName–属性名
szProperty–属性值。
3.3)控件属性设置:

图三超级XY曲线控件属性
设置控件属性的"曲线"选项卡:设置"曲线0"对应的Y轴为"YAxis0",设置"曲线

图四坐标选项设置

图五坐标选项设置

图六曲线选项设置

图七超级XY曲线控件
3.4)功能实现说明:
设置完超级XY曲线控件属性后,我们通过调用控件的方法来实现描点的功能,主要用到
的控件方法为:
voidAddNewPoint(doublex,doubley,shortnIndex);
给指定曲线添加一个数据点,可以在程序开始时定义要显示的曲线参数:x-设置数据点的x轴坐标值
y-设置数据点的y轴坐标值
nIndex-给出X-Y轴曲线控件中的曲线索引号,取值范围0-7
返回值:无
voidClearAll();
清除所有曲线数据。参数:无
返回值:无

图八调用控件方法

图九画面命令语言-显示时
切换到"存在时"选项卡,将"每3000毫秒"改为"每1000毫秒",通过上述方式调用控件的方法"AddNewPoint",如图十所示,命令语言如下:
XY曲线.AddNewPoint(\\本站点\密度,\\本站点\压力,0);
XY曲线.AddNewPoint(\\本站点\密度,\\本站点\温度,1);
在画面中添加文本:温度:,,压力:,,密度:,,对双击进行动画连接,使用"模拟值输出"分别连接对应的变量:温度,压力,密度。
编辑完成后保存画面。在工程浏览器的"系统设置"中的"设置运行系统"中进行"主画面配置",将画面"超级XY曲线"画面配置为主画面。
4.进入运行系统:
系统运行后会将主画面打开,温度、压力与密度关系的XY曲线显示到画面中,如图十一所示:

图十画面命令语言-存在时
图十一超级XY曲线控件运行画面
可以通过控件本身带的工具栏实现超级XY曲线的放大、缩小、平移、保存、调用、打印等等许多功能,工具栏的这些功能也可以通过调用超级XY曲线控件的方法通过命令语言来实现。
其他详细的使用请参考组态王使用手册或者组态王帮助文档。
四、注意事项
1.多Y轴坐标的使用时注意需要在"曲线"选项卡中对每一条曲线对应的坐标轴进行设置,默认所有的曲线对应的都是坐标轴YAxis0。
2.此控件无法在WEB上进行发布。
有好的知识,就要与大家分享,分享是一种精神,无需隐藏!加油!!!