昆仑通态触摸屏McgsPro软件动画构件-历史曲线

日期:2023-09-05  点击:864
昆仑通态触摸屏McgsPro软件动画构件历史曲线
1、昆仑通态触摸屏McgsPro软件动画构件功能概述
历史曲线构件实现了历史数据的曲线浏览功能。运行时,历史曲线构件能够根据需要画出相应历史数据的趋势效果图。对于历史数据的变化有一个很好的体现和描述。支持16条曲线,每条曲线可加载并显示86400个数据点;曲线不宜过多,会消耗太多内存,影响体验速度。

2、昆仑通态触摸屏McgsPro软件动画构件组态配置
组态时用鼠标双击历史曲线构件,弹出构件的属性设置对话框。本构件包括基本属性、数据来源、标注设置、曲线设置、输出信息和高级属性六个属性页。

(1)基本属性
基本属性属性页如图1所示。

昆仑通态触摸屏
图1 基本属性

● 背景网格:设置坐标网格的数目、颜色、线型。
● 背景颜色:设置曲线的背景颜色(含透明色)。
● 边线颜色:设置曲线窗口的边线颜色。
● 边线线型:设置曲线窗口的边线线型。
● 不显示网格:选中此复选框,在构件的曲线窗口中不显示坐标网格。

(2)数据来源
数据来源属性页如图2,该属性是设置历史存盘数据的来源,设置组对象对应的存盘数据作为数据来源。

昆仑通态触摸屏
图2 数据来源
(3)标注设置
标注设置属性页如图3。

昆仑通态触摸屏
图3 标注设置

● X轴标识设置:组态X轴坐标数据来源和坐标范围。
1)对应的列:X轴数据来源,只能选择MCGS_Time;
2)坐标长度:取值范围为1~10000;
3)时间单位:可选择年、月、天、时、分、秒;
4)时间格式:组态X轴标注显示格式,可选择“年-月-日 时:分:秒”等格式;
5)标注间隔:取值范围为1~8;
6)标注颜色以及标注字体:
7)选中“不显示X轴坐标标注”复选框,将不显示X轴的标注文字;

● 曲线起始点:设置一个时间作为历史曲线开始绘制的起点时间。
1)存盘数据的开头:以数据来源中的组对象的存盘数据的开头作为曲线的起始点;
2)当前时刻的存盘数据:以系统当前时间倒推一个坐标长度得出的时间作为曲线的起始点;
3)zui近某时刻存盘数据:以系统当前时间为参考点,计算距离当前时间某一时刻的时间作为曲线的起始点;
4)当前某时的存盘数据:以当天指定时刻的时间作为曲线的起始点;
5)昨天某时的存盘数据:以昨天指定时刻的时间作为曲线的起始点;
6)本月某日的存盘数据:以本月指定日的零时刻的时间作为曲线的起始点;
7)上月某日的存盘数据:以上月指定日的零时刻的时间作为曲线的起始点;

(4)曲线设置
曲线设置属性页如图4所示。

昆仑通态触摸屏
图4 曲线设置

● 配置每条曲线的属性:
1)曲线内容:必须为数据来源中组对象的成员才会绘制该内容的曲线;
2)工程单位及小数位数在输出信息中体现,该文本支持多语言,详情请见第十三章;
3)zui小坐标及zui大坐标设置的是该条曲线Y的坐标值,只能显示曲线1的zui小zui大值;
4)选中“不显示Y轴标注”复选框,将不显示Y轴的标注文字;

(5)输出信息
输出信息属性设置项如图5所示。

昆仑通态触摸屏
图5 输出信息

● 曲线输出信息:可编辑每条曲线的输出信息,以便在曲线输出信息窗口中显示该条曲线的信息,该文本支持多语言,详情请参考第十三章。
● 对应数据对象:可对每条曲线关联一个变量,所关联的变量类型只能为浮点数或整数,建议为浮点数,可显示小数位。在检视曲线的当前值时,可用具有输出型控件,如编辑框、标签来显示该变量的当前值。
● 类型:无实际意义;
需勾选“高级属性”页中“运行时显示曲线显示窗口”即可观察输出信息。

(6)高级属性
高级属性设置项如图6所示,该属性页中的功能为用户自定义功能,选中某一功能的复选框则表示在运行时使用该功能,否则反之。

昆仑通态触摸屏
图6 高级属性

● 运行时显示曲线翻页操作按钮:表示在运行时将显示如图7所示按钮。

昆仑通态触摸屏
图7 翻页操作按钮

其中:
按钮点击后,曲线将向后(X轴左端)滚动曲线一页;
按钮点击后,曲线将向后(X轴左端)滚动曲线半页;
按钮点击后,曲线将向后(X轴左端)滚动一个主划线位置;
按钮点击后,曲线将向前(X轴右端)滚动一个主划线位置;
按钮点击后,曲线将向前(X轴右端)滚动曲线半页;
按钮点击后,曲线将向前(X轴右端)滚动曲线一页;
按钮点击后,将弹出曲线起始点时间设置对话框,可重新设置曲线的起点时间,如图8所示。

昆仑通态触摸屏
图8 时间设置对话框

“设置时间范围”对话框中选项说明:
1)zui近时间:如zui近3分钟,读取以当前系统时间倒推3分钟的数据。
2)固定时间:(时间长度为3分钟)如当天9时,读取当天9:00:00~9:03:00。
3)指定时间:构件以指定时间为起点,读取时间长度的数据。
此对话框在弹出前,可调用!SetDialogBy9Palace、!SetDialogByXYPosition脚本函数改它的弹出位置和窗口大小。
● 运行时显示曲线放大操作按钮:表示在运行时将显示X轴和Y轴的缩放按钮,如图9所示,可通过拖动该缩放按钮实现查看不同区间的曲线。

昆仑通态触摸屏
图9 放大操作按钮

运行时显示曲线信息显示窗口:表示在运行时,当鼠标在曲线上移动,则可检视鼠标当前位置上曲线的值并输出到如图10所示的信息输出窗口上。

昆仑通态触摸屏
图10 信息输出窗口

● 运行时自动刷新:在设置刷新周期为t1,在经过t2时间后恢复自动刷新状态,则表示历史状态时,曲线当前界面无任何操作的情况下,至少经过t2时间后进入实时刷新状态并将zui近一段X轴长度的历史数据刷新到界面上,在实时状态下,至少每经过t1时间就自动将zui近一段X轴长度的历史数据刷新到界面上。
● 运行时自动处理间隔点:设置断点间隔时间t后,则表示若两个数据之间的时间差大于t则认为这两个点是不连续的,在绘制曲线时,不会将这两个点连成一条直线。
● 信息显示窗口跟随光标移动:该功能只在使用了“运行时显示曲线信息显示窗口”功能的条件下有效,表示运行时,当鼠标在曲线上移动时,信息输出窗口始终跟随光标移动。

3、昆仑通态触摸屏McgsPro软件动画构件构件方法
SetXStart(Stime)
函数意义: 设置X轴起始时间
返 回 值: 浮点数
= 0,操作成功
<>0,操作失败
参 数: Stime,字符串,X轴的起始时间。
时间格式: “YYYY-MM-DD HH:MM:SS”、 “YYYY-MM-DD”、 “HH:MM:SS”,当设置时间为“YYYY-MM-DD”时,其时分秒部分与当前X轴起点时间的时分秒保持一致;当设置时间为“HH:MM:SS”时,其年月日部分与当前X轴起点时间的年月日部分保持一致。
实 例: 脚本方法.控件1.SetXStart (“2000-01-01 03:12:12”),表示将X轴的起点时间设置为2000年1月1日,3点12分12秒
注意事项: McgsPro系列产品的时间格式仅支持三种:
(1)年-月-日 时:分:秒
(2)年-月-日
(3)时:分:秒

GetXStart()
函数意义: 获取X轴的起始时间
返 回 值: 字符串,以格式“YYYY-MM-DD HH:MM:SS”表示X轴起始时间
参 数: 无
实 例: 脚本方法.控件1.GetXStart()
注意事项: 时间返回格式固定为“年-月-日 时:分:秒”

SetXLength(Xlen)
函数意义: 设置x轴长度
返 回 值: 浮点数
= 0,为操作成功
<>0,为操作失败
参 数: Xlen,整数,X轴长度,长度的单位与设置的X轴的单位保持一致。
实 例: 脚本方法.控件1.SetXLength(5),如果X轴单位为小时,设置X轴长度为5小时

GetXLength()
函数意义: 获取X轴的长度
返 回 值: 浮点数
X轴长度
参 数: 无
实 例: 脚本方法.控件1.GetXLength()

SetXUnit(Xunit)
函数意义: 设置X轴长度的单位
返 回 值: 浮点数
= 0,为操作成功
<> 0,为操作失败。
参 数: Xunit,字符串,需要设置的长度单位,可以选择的值包括:“秒”、“分”、“分钟”、“时”、“小时”、“天”、“月”、“年”。
实 例: 脚本方法.控件1.SetXUnit(“分”),设置X轴长度的单位为分钟

GetXUnit()
函数意义: 获取X轴长度的单位
返 回 值: 字符串,为X轴长度的单位,可能得到的值包括:“秒”、“分钟”、“小时”、“天”、“月”、“年”
参 数: 无
实 例: 脚本方法.控件1.GetXUnit()

SetXZoomFactor(Xzoom)
函数意义: 设置X轴放大倍数
返 回 值: 浮点数
= 0,为操作成功
<> 0,为操作失败。
参 数: Xzoom,浮点数,用户要设置的放大倍数,正数为放大;负数为缩小;0为复位。zui大放大倍数和缩小倍数都不能大于20,也就是说,Xzoom取值在-20~20之间,大于20将取20,小于-20则取-20,且只能放大整数倍,如脚本方法.控件1.SetXZoomFactor(3.6),结果为将X轴放大3倍。
实 例: 脚本方法.控件1.SetXZoomFactor(2),将X轴放大2倍

GetXZoomFactor()
函数意义: 获取X轴放大倍数
返 回 值: 浮点数,放大倍数,值范围在-20~20之间
参 数: 无
实 例: 脚本方法.控件1.GetXZoomFactor()

SetYZoomFactor(Yzoom)
函数意义: 设置Y轴放大倍数
返 回 值: 浮点数
= 0,为操作成功
<> 0,为操作失败
参 数: Yzoom,浮点数,用户要设置的放大倍数,正数为放大;负数为缩小;0为复位。zui大放大倍数和缩小倍数都不能大于20,也就是说,Yzoom取值在-20~20之间,大于20将取20,小于-20则取-20,且只能放大整数倍,如脚本方法.控件1.SetYZoomFactor(3.6),结果为将Y轴放大3倍。
实 例: 脚本方法.控件1.SetYZoomFactor(2),将Y轴放大2倍

GetYZoomFactor()
函数意义: 获取Y轴放大倍数
返 回 值: 浮点数,放大倍数,值范围在-20~20之间
参 数: 无
实 例: 脚本方法.控件1.GetYZoomFactor()

SetInfoWndVisible(Vstate)
函数意义: 设置信息窗口的显示/隐藏状态
返 回 值: 浮点数
= 0,为操作成功
<> 0,为操作失败
参 数: Vstate,整数,
= 1,表示显示信息窗口
= 0,表示隐藏信息窗口
实 例: 脚本方法.控件1.SetInfoWndVisible(1)

GetInfoWndVisible()
函数意义: 获取信息窗口的显示/隐藏状态
返 回 值: 浮点数
= 1,显示信息窗口
= 0,隐藏信息窗口
参 数: 无
实 例: 脚本方法.控件1.GetInfoWndVisible()

SetZoomCursorVisible(Cstate)
函数意义: 设置游标的显示/隐藏状态
返 回 值: 浮点数
= 0,为操作成功
<> 0,为操作失败
参 数: Cstate,整数
= 1,表示显示游标
= 0,表示隐藏游标
实 例: 脚本方法.控件1.SetZoomCursorVisible(1)

GetZoomCursorVisible()
函数意义: 获取游标的显示/隐藏状态
返 回 值: 浮点数
= 1,显示游标
= 0,隐藏游标
参 数: 无
实 例: 脚本方法.控件1.GetZoomCursorVisible()

SetTrendVisible(Tno,Tvisible)
函数意义: 设置指定曲线的显示/隐藏状态
返 回 值: 浮点数
= 0,为操作成功
<> 0,为操作失败
参 数: Tno,整数,曲线的索引,取值范围[1,16]
Tvisible,整数,1表示显示指定的曲线,0表示隐藏指定曲线
实 例: 脚本方法.控件1.SetTrendVisible(1,1),设置曲线1可见

GetTrendVisible(Tno)
函数意义: 获取指定曲线的显示/隐藏状态
返 回 值: 浮点数
= 1,表示该曲线可见
= 0,表示该曲线不可见
参 数: Tno,整数,曲线的索引,取值范围[1,16]
实 例: 脚本方法.控件1.GetTrendVisible (1)

SetTrendRange(Tno,Max,Min)
函数意义: 设置指定曲线的Y坐标的zui大、zui小值
返 回 值: 浮点数
= 0,为操作成功
<>0,为操作失败
参 数: Tno,整数,曲线的索引,取值范围[1,16]
Max,浮点数,设定Y坐标zui大值
Min,浮点数,设定Y坐标zui小值
当输入的值Max = Min时,程序会将Max的值处理为Max = Min + 100
实 例: 脚本方法.控件1.SetTrendRange(1,100,0)设置曲线1的zui大值为100,zui小值为0

GetTrendRange(Tno,Max,Min)
函数意义: 获取指定曲线的Y坐标的zui大、zui小值
返 回 值: 浮点数
= 0,为操作成功
<>0,为操作失败
参 数: Tno,整数,曲线的索引,取值范围[1,16]
Max,浮点数变量,获取Y坐标zui大值
Min,浮点数变量,获取Y坐标zui小值
实 例: 脚本方法.控件1.GetTrendRange(1, Max, Min)

ShowTimeDialog()
函数意义: 显示曲线起始时间对话框
返 回 值: 浮点数
= 0,为操作成功
<>0,为操作失败
参 数: 无
实 例: 脚本方法.控件1.ShowTimeDialog()

XMovePrev()
函数意义: X坐标向前移动一个主刻度
返 回 值: 浮点数
= 0,为操作成功
<>0,为操作失败
参 数: 无
实 例: 脚本方法.控件1.XMovePrev()

XMoveNext()
函数意义: X坐标向后移动一个主刻度
返 回 值: 浮点数
= 0,为操作成功
<>0,操作失败
参 数: 无
实 例: 脚本方法.控件1.XMoveNext()

XPageUp()
函数意义: X坐标向前移动一页
返 回 值: 浮点数
= 0,操作成功
<>0,为操作失败
参 数: 无
实 例: 脚本方法.控件1.XpageUp()

XPageDown()
函数意义: X坐标向后移动一页
返 回 值: 浮点数
= 0,为操作成功
<> 0,为操作失败
参 数: 无
实 例: 脚本方法.控件1.XpageDown()

XMoveToBegin()
函数意义: X坐标移动zui前面
返 回 值: 浮点数
= 0,为操作成功
<>0,为操作失败
参 数: 无
实 例: 脚本方法.控件1.XmoveToBegin()

XMoveToEnd()
函数意义: X坐标移动到zui后面
返 回 值: 浮点数
= 0为操作成功
<>0,为操作失败
参 数: 无
实 例: 脚本方法.控件1.XmoveToEnd()

YMoveUp()
函数意义: Y坐标向上移动一个主刻度
返 回 值: 浮点数
= 0,为操作成功
<>0,为操作失败
参 数: 无
实 例: 脚本方法.控件1.YmoveUp()

YMoveDown()
函数意义: Y坐标向下移动一个主刻度
返 回 值: 浮点数
= 0,为操作成功
<> 0,为操作失败
参 数: 无
实 例: 脚本方法.控件1.YmoveDown()

YPageUp()
函数意义: Y坐标向上移动一页。
返 回 值: 浮点数
= 0,为操作成功
<>0,为操作失败
参 数: 无
实 例: 脚本方法.控件1.YpageUp()

YPageDown()
函数意义: Y坐标向下移动一页
返 回 值: 浮点数
= 0为操作成功
<>0为操作失败
参 数: 无
实 例: 脚本方法.控件1.YpageDown()

SetAutoRefresh(Rstate)
函数意义: 设置自动刷新状态
返 回 值: 浮点数
= 0,为操作成功
<>0,为操作失败
参 数: Rstate,整数,1表示打开自动刷新,0表示关闭自动刷新当开启自动刷新时,刷新周期与进入刷新状态的时间与属性框中显示的值一致
实 例: 脚本方法.控件1.SetAutoRefresh(1),开启自动刷新状态

GetAutoRefresh()
函数意义: 获取设置自动刷新状态
返 回 值: 浮点数
= 1,当前自动刷新功能处于开启状态
= 0,当前自动刷新功能处于关闭状态
参 数: 无
实 例: 脚本方法.控件1.GetAutoRefresh()

5、昆仑通态触摸屏McgsPro软件动画构件构件属性
构件属性请参考昆仑通态触摸屏McgsPro软件动画构件-公共属性

5、昆仑通态触摸屏McgsPro软件动画构件构件事件
构件属性请参考昆仑通态触摸屏McgsPro软件动画构件-公共属性

6、昆仑通态触摸屏McgsPro软件动画构件注意事项
历史曲线在使用过程中请注意一下几点:

(1)坐标长度取值范围:
表8.14-1 坐标长度取值范围

X轴长度单位

X轴长度取值范围

取值范围[1,2147483647]

取值范围[1,35791394]

取值范围[1,596523]

取值范围[1,24855]

取值范围[1,801]

取值范围[1,66]


(2)曲线起始点输入值取值范围:
表8.14-2 曲线起始点输入值取值范围

曲线起始点设置项

输入值取值范围

zui近某时刻存盘数据

与选择的时间单位有关,可参见上表

当天某时存盘数据

限制输入值范围为0~23

昨天某时存盘数据

限制输入值范围为0~23

本月某日的存盘数据

限制输入值范围为1~月末

上月某日的存盘数据

限制输入值范围为1~月末


(3)实时刷新有效需满足以下的条件:
高级属性中的实时刷新功能已选中,或通过脚本函数开启了实时刷新功能。

(4)实时刷新中设置的刷新周期t1与进入刷新状态时间t2只是个参考值,进入刷新状态的时间将不小于t2,刷新周期的时间将不小于t1,具体时间值是多少与组态设置的中闪时间有关。

昆仑通态触摸屏(MCGS)

本文摘自:网络