KingSCADA趋势曲线.doc_第1页
KingSCADA趋势曲线.doc_第2页
KingSCADA趋势曲线.doc_第3页
KingSCADA趋势曲线.doc_第4页
KingSCADA趋势曲线.doc_第5页
已阅读5页,还剩25页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

趋势曲线应用例程说明文档此文档由北京亚控公司提供,仅作为KingSCADA3.0趋势曲线应用的使用参考,其中涉及内容的详细说明请参考KingSCADA3.0的使用说明或咨询技术支持工程师。“趋势曲线应用例程”说明文档目 录1. 概述12. 例程12.1 定义变量12.2 创建趋势曲线32.3 趋势曲线设置42.4 趋势曲线的功能实现133. 注意事项26北京亚控科技发展有限公司 i1. 概述趋势曲线实现了以曲线的形式显示模拟量的数值变化趋势的功能,KingSCADA3.0的趋势曲线不仅具有多绘图区、多数据轴、多时间轴,并且能够进行实时趋势曲线和历史趋势曲线在线转换,可以方便用户进行个性化趋势曲线的查询、对比以及分析。再加上丰富的控制函数和控制脚本,使趋势曲线的查询显得更加灵活、方便。下面将通过一个例程来介绍趋势曲线的简单应用。2. 例程趋势曲线是用来反应变量随时间的变化情况,趋势曲线有两种:实时趋势曲线和历史趋势曲线。KingSCADA3.0提供的趋势曲线控件既可以显示实时趋势曲线又可以显示某一时间段的历史趋势曲线,并且提供了丰富的控件方法和控件事件,使趋势曲线的查询显得更加灵活、方便。2.1 定义变量本工程中我们要在趋势曲线内绘制4个变量的曲线,因此先在数据词典里定义这四个变量。l 变量名:templ 变量类型:基本变量l 数据类型:Mem Floatl 变量描述:温度l 初始值:0l 灵敏度:0l 最小值:-40l 最大值:100l 保存数值:选中l 变量名:liquid_levell 变量类型:基本变量l 数据类型:Mem Floatl 变量描述:液位l 初始值:0l 灵敏度:0l 最小值:-20l 最大值:100l 保存数值:选中l 变量名:pressurel 变量类型:基本变量l 数据类型:Mem Floatl 变量描述:压力l 初始值:0l 灵敏度:0l 最小值:0l 最大值:5l 保存数值:选中l 变量名:flowl 变量类型:基本变量l 数据类型:Mem Floatl 变量描述:流量l 初始值:0l 灵敏度:0l 最小值:0l 最大值:150l 保存数值:选中我们在“脚本”-“自定义脚本”-“数据变换脚本”里新建一个脚本,用来模拟上述变量的数值变化。以系统变量local$Second为条件。localtemp=localtemp+0.25;if (localtemp=100)localtemp=-40;localpressure=localpressure+0.1;if (localpressure=5)localpressure=0;localliquid_level=localliquid_level+0.5;if (localliquid_level=100)localliquid_level=-20;localflow=localflow+0.78;if (localflow=150)localflow=0;2.2 创建趋势曲线在KingSCADA3.0图形开发系统中打开任一画面,单击“对象”菜单 “扩展”“趋势曲线”命令或直接单击工具箱中的图标 鼠标移到画面中,光标呈+状,按住鼠标左键并拖动即可生成趋势曲线窗口,如图1所示。图1 趋势曲线2.3 趋势曲线设置2.3.1 趋势曲线属性趋势曲线具有多绘图区、多数据轴、多时间轴的功能,下面我们用两个绘图区分别显示两条曲线。在画面中选择趋势曲线,右侧会弹出控件属性对话框,如图2所示:图1 趋势曲线属性趋势曲线的名称默认为“TrendChart1”,把“ChartAreaCount”“和TimeAxisCount”属性的值设置为2(如图3所示),即把趋势曲线划分为2个绘图区,时间轴增加到2个。图3 趋势曲线属性2.3.2 趋势曲线标题区选中趋势曲线窗口 单击鼠标右键 在弹出的右键菜单中执行“编辑”命令 单击标题区,弹出标题区属性对话框,如图4、5所示:图4 趋势曲线右键菜单图5 标题区及属性通过“Text”属性我们可以设置标题区对象的名称,如把默认的 “趋势曲线”改为“Multi-Area Trend”。2.3.3 绘图区属性选中趋势曲线控件 单击鼠标右键 在弹出的右键菜单中执行“编辑”命令 单击上面第一绘图区“ChartArea1”,如图6所示: 图6 绘图区及属性在绘图区属性对话框中,我们可以在添加一个Y轴,即把“YaxisCount”设置为2,如图7所示:图7 绘图区属性2.3.4 曲线属性选中趋势曲线窗口 单击鼠标右键 在弹出的右键菜单中执行“编辑”命令 在上面第一个绘图区内单击曲线,修改曲线属性,如图8所示:图8 Curve1曲线属性XAxis:选择TimeAxis1。YAxis:选择DataAxis1。DataSource:选择变量temp。在下面第二个绘图区内单击曲线,修改曲线属性,如图9所示:图9 Curve2曲线属性XAxis:选择TimeAxis2。YAxis:选择DataAxis2。DataSource:选择变量pressure。2.3.5 网格区属性选中趋势曲线控件 单击鼠标右键 在弹出的右键菜单中执行“编辑”命令 在绘图区内单击网格区,如图10所示: 图10 网格区修改连个绘图区的网格区属性,如图11所示:图11 网格区属性Background:设置绘图区的背景颜色。MajorGridColumns:设置主网格线显示的列数为0,ShowMajorGrid属性为True时有效MajorGridRows:设置主网格线显示的行数为0,ShowMajorGrid主网格属性为True时有效2.3.6 数据轴属性选中趋势曲线窗口 单击鼠标右键 在弹出的右键菜单中执行“编辑”命令 单击数据轴(如图12所示),数据轴选中后可以通过鼠标拖放,例如上面第一绘图区“ChartArea1”我们设置了两个Y轴,分别是“DataAxis1”和“DataAxis4”,在2.2.4的部分,我们把变量“temp”关联到“DataAxis1”,那么Y轴“DataAxis1”的属性设置如图13所示。图12 数据轴图13 数据轴属性ShowType:设置数据轴显示数据的方式为实际值显示。LableText Color:设置标记文本显示的颜色为红色,“ShowLabel”属性为True时有效。MinValue:设置数据轴的显示最小值为-40,变量“tepm”的最小值。MaxValue:设置数据轴的显示最大值为100,变量“tepm”的最大值其他Y轴设置与此类似。2.3.7 时间轴2.3.8 时间轴属性选中趋势曲线窗口 单击鼠标右键 在弹出的右键菜单中执行“编辑”命令 单击时间轴,如图所示:图14 时间轴时间轴TimeAxis1属性对话框,如图15所示:图15 时间轴属性2.3.9 游标属性选中趋势曲线窗口 单击鼠标右键 在弹出的右键菜单中执行“编辑”命令 选中游标对象,即可通过拖曳游标查看趋势曲线某一具体时刻的数值及其它信息。游标属性对话框,如图16所示:图16 游标属性ShowVarName:运行环境中拖曳游标时,在游标和曲线焦点的信息中是否显示曲线对象的名称,设置为True。ShowValue:运行环境中拖曳游标时,在游标和曲线焦点的信息中是否显示曲线的数值,设置为True。ShowTime:运行环境中拖曳游标时,在游标和曲线焦点的信息中是否显示曲线的时间,设置为True。ShowCursorName:运行环境中拖曳游标时,在游标和曲线焦点的信息中是否显示游标对象的名称,设置为True。MultiLine:运行环境中拖曳游标时,在游标和曲线焦点的信息是否以多行的形式显示,设置为True。LabelPosition:设置游标和曲线焦点信息显示的位置:跟随曲线。LabelShowType:设置游标和曲线焦点信息显示的方式:总显示。LineColor:设置游标杆的颜色,四个游标分别设置为不同的颜色。至此,趋势曲线的基本设置就完成了。2.4 趋势曲线的功能实现以上是开发环境下的趋势曲线设置,在运行环境下要想查询、打印曲线必须通过KingSCADA3.0提供的控件方法来实现,下面具体介绍方法的使用。2.4.1 曲线实时模式、历史模式的切换打开精灵图,选择“Button”-“Buttons-Diamond”-“RedRound”按钮(如图17所示),确定后添加到画面上,用复制的方法再添加一个这样的按钮。图17 选择精灵图按钮选择 “工具箱”-“基本”-“文本”,添加两个文本,文本的属性如下: 图18 文本属性Name:分别设置为“Text9”和“Text10”。Text:分别设置为“RealTimeMode”和“HistoryMode”。TextBrush:设置为白色。为了使画面更美观,我们在数据词典里新建一个内存离散变量“RealorHist”,双击文本,定义文本的动画连接,如下图19、20所示。当变量“RealorHist”的值为true时,文本“Text9”进行闪烁。当变量“RealorHist”的值为false时,文本“Text10”进行闪烁。图19 文本动画连接图20 文本动画连接将文本“Text9”和按钮“PictureWrap7”组合成一个组“Group35”,文本“Text10”和按钮“PictureWrap8” 组合成一个组“Group36”,选择“Group35”添加连接“鼠标”“左键按下”,脚本如下:TrendChart1.HistToReal(1000);RealorHist=true;选择“Group36”添加连接“鼠标”“左键按下”,脚本如下:TrendChart1.RealToHist();RealorHist=false;即,当按下“Group35”按钮后,趋势曲线是实时趋势曲线,当按下“Group36”按钮后,趋势曲线是历史趋势曲线,同时按钮上的文本进行闪烁。2.4.2 曲线添加、修改、删除首先,我们用一个组合框控件显示趋势曲线里的曲线名称。在画面上添加“组合框”UI控件,单击“Items” 属性后面的,在弹出的“组合项集合”对话框中添加趋势曲线的曲线名称“Curve1” 和“Curve2”,如图21所示。图21 组合框添加曲线名称添加组合框的下拉列表选项改变时触发事件:OnSelectedIndexChange(int oldItemIndex, int newItemIndex);选中画面上“组合框”控件 单击“连接”窗口中的 图标 在弹出的菜单中执行“ComboBox”“OnSelectedIndexChange”命令,弹出对话框,写如下本。localTrendCurve=UIComboBox1.GetCurrentText();上面的脚本的作用是把组合框控件选中的曲线名称读出来赋值给变量localTrendCurve,localTrendCurve是内存字符串变量。(1) 添加、删除曲线我们通过树形控件来完成添加曲线的功能。执行“对象”菜单 “UI 控件”“树视图控件”命令或单击Windows UI工具箱中的图标,可在当前画面中添加“树视图”控件,选择其属性对话框,如下图所示:图21 树视图属性对话框单击“Nodes”树形后面的,在弹出的对话框中添加我们要显示的另外两个变量“liquid_level”和“flow”,如下图22所示。图22 树视图节点编辑对话框选中画面上“树视图”控件 单击“连接”窗口中的 图标 在弹出的菜单中 “TreeView”“OnCheckChange”事件,弹出对话框,写如下本。if(curChecked=true)ss1=nodeName;ss1=TrendChart1.AddCurve(ChartArea1,TimeAxis1,DataAxis4,nodeName);ss=/*int*/ StrLen(ss1);if(ss=6)ss1=/*string*/ StrRight(ss1, 1);ss2=/*int*/ StrToInt(ss1);UITreeView1.SetTreeNodeData(nodeName,ss2);if(ss=7)ss1=/*string*/ StrRight(ss1, 2);ss2=/*int*/ StrToInt(ss1);UITreeView1.SetTreeNodeData(nodeName,ss2);if(curChecked=false)ss2=UITreeView1.GetTreeNodeData(nodeName);ss1=StrFromInt(ss2,10);ss1=Curve+ss1;TrendChart1.DeleteCurve(ss1);当控件属性CheckBox设置为True时,并对树节点进行选定操作时可以触发该事件;nodeName与curChecked是树视图OnCheckChange方法的两个参数。curChecked:将其复选框被Check后置为True,取消选择则为False。ss、ss2:内存整形变量。ss1:内存字符串变量。当选中树视图节点“flow”时,在曲线的上面的绘图区“ChartArea1”将添加一个新的曲线变量“flow”,取消选择树视图节点“flow”,则该曲线被删除。(2) 变换曲线选中画面上“树视图”控件 单击“连接”窗口中的 图标 在弹出的菜单中 “TreeView”“OnSelectChange”事件,弹出对话框,写如下本。localTrendCurveName=UITreeView1.GetCurrentNodeName();TrendChart1.ChangeCurveDataSource(TrendCurve,TrendCurveName);TrendCurveName:内存字符串变量。动态更改曲线关联的变量。例如我们先选择“组合框”里面的“Curve1”,默认情况下,“Curve1”绘制的是变量“temp”的趋势曲线,如果这时我们再选择树视图里面的“flow”项,那么“Curve1”绘制的就是变量“flow”的趋势曲线,2.4.3 建立趋势曲线运行时的操作按钮因为画面运行时不自动更新趋势曲线画面,所以需要为趋势曲线建立操作按钮,通过命令语言或使用函数改变趋势曲线变量的域,完成查看、打印等功能。为了使画面美观,我们添加两个圆角矩形,更改相应的属性,使圆角矩形漂亮一些,再打开精灵图(如图23所示),选择“Button”,添加按钮“Buttonleft001”、“Buttonleft002”、“Buttonleft003”、“Buttonleft00”4、“Buttonleft005”,同时再添加“Button”-“Buttons-Diamond”下的按钮“BlueRound” 、“Reduce”、“Magnify”、“Preview”。接下来再选择“工具箱”-“基本”-“文本”,添加一个文本和矩形,完成后如下图24所示,把图24的内容再复制,去掉后面两个按钮,如图25所示。图23 精灵图图24 操作按钮图25 操作按钮下面我们对这些按钮进行动画连接。选择图25所示的第一个按钮,在“连接”“鼠标”“左键按下”里面写如下脚本:TrendChart1.ScrollLeft(TimeAxis1,localTrendZoomScale1*120);localTrendZoomScale1是内存整形变量。同样在第二个按钮里写脚本:TrendChart1.ScrollLeft(TimeAxis1,localTrendZoomScale1*60);第三个按钮的文本模拟值输出关联变量:localTrendZoomScale1。第四个按钮写脚本:TrendChart1.ScrollRight(TimeAxis1,localTrendZoomScale1*60);第五个按钮写脚本:TrendChart1.ScrollRight(TimeAxis1,localTrendZoomScale1*120);第六个按钮写脚本:TrendChart1.SetEndTimeAsCurrent(TimeAxis1,true);第七个按钮写脚本:TrendChart1.ZoomInTimeAxis(TimeAxis1,Center,localTrendZoomScale1*60);第八个按钮写脚本:TrendChart1.ZoomOutTimeAxis(TimeAxis1,Center,localTrendZoomScale1*60);以上按钮是实现趋势曲线绘图区ChartArea1的曲线查看功能的,控件方法的具体功能请参考用户手册。图24的操作按钮的动画连接与图25相似,是实现趋势曲线绘图区ChartArea1的曲线查看功能的,增加了曲线的打印及打印预览的功能。第九个按钮写脚本:TrendChart1.PrintPreview();第十个按钮写脚本:TrendChart1.PrintChart();最后,我们将图24、图25分别合成一个组,再做隐含和显示的功能,在“连接”“基本”“可见行”里面分别关联变量localTrendTimeAxis1Visiable和localTrendTimeAxis2Visiable,这个功能需要添加两个按钮来实现变量值的切换。添加一个圆角矩形,更改相应的属性,使圆角矩形漂亮一些,再添加一个文本,文本的“Text”属性设置为“TimeAxis1”,将他们组成一个组,在“连接”“值输入”“按钮输入”里面关联变量“localTrendTimeAxis1Visiable”,如下图26所示。图26 按钮输入动画连接对话框再复制这个按钮,在“按钮输入”里面关联变量localTrendTimeAxis2Visiable即可。2.4.4 获取曲线的数值我们可以利用趋势曲线提供的方法获取曲线的最大值、最小值、平均值、显示部分最左端值、显示部分最右端值、游标处曲线值等。我们在画面命令语言存在时写如下脚本:localPenAverageValue1=TrendChart1.GetCurveValue(Curve1,AverageValue);localPenMaxValue1=TrendChart1.GetCurveValue(Curve1,MaxValue);localPenMinValue1=TrendChart1.GetCurveValue(Curve1,MinValue);localPenLeftValue1=TrendChart1.GetCurveLeftValue(Curve1);localPenRightValue1=TrendChart1.GetCurveRightValue(Curve1);localPenValue1AtCursor1=TrendChart1.GetCurveValueAtCursor(Curve1,Cursor1);localPenValue1AtCursor2=TrendChart1.GetCurveValueAtCursor(Curve1,Cursor2);localPenValue1AtCursor3=TrendChart1.GetCurveValueAtCursor(Curve1,Cursor3);localPenValue1AtCursor4=TrendChart1.GetCurveValueAtCursor(Curve1,Cursor4);localPenAverageValue2=TrendChart1.GetCurveValue(Curve2,AverageValue);localPenMaxValue2=TrendChart1.GetCurveValue(Curve2,MaxValue);localPenMinValue2=TrendChart1.GetCurveValue(Curve2,MinValue);localPenLeftValue2=TrendChart1.GetCurveLeftValue(Curve2);localPenRightValue2=TrendChart1.GetCurveRightValue(Curve2);localPenValue2AtCursor1=TrendChart1.GetCurveValueAtCursor(Curve2,Cursor1);localPenValue2AtCursor2=TrendChart1.GetCurveValueAtCursor(Curve2,Cursor2);localPenValue2AtCursor

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论