新浪博客

122.Wincc V7.3 MSChart控件初步使用1-简单外观设置,使用数组画一条曲线

2016-06-17 13:04阅读:
前面的博客中,介绍了如何将数据表内容导出到excel生成曲线图表,实际上wincc自身提供了微软的MSChart曲线控件,用这个空控件可以做出统计图表--虽然功能不像excel那样强大和丰富。
在画面上放置一个ListView控件,作为曲线数据来源,名字叫做LV,假设已经装入了一批数据,是这个样子的:
122.Wincc <wbr>V7.3 <wbr>MSChart控件初步使用1-简单外观设置,使用数组画一条曲线
本文只是介绍功能,所以只采集了20个数据。再放置一个Microsoft Chart control 控件,名字修改为Chart,画面上放置一个按钮,用于生成曲线。按钮的是表点击事件中添加以下代码:
Sub OnClick(ByVal Item)
br>
Dim LV,Chart,flow(),mytime(),RowCount,i
Set LV=ScreenItems('LV')
Set Chart=ScreenItems('Chart')
RowCount=LV.listitems.count
Redim flow(RowCount),MyTime(RowCount)
For i=1 To RowCount
flow(i)=CInt(LV.listItems.item(i).listsubitems.item(4).text)
MyTime(i)=CStr(LV.listItems.item(i).listsubitems.item(3).text)
Next
'初始化chart控件
'.Axis坐标轴有两个参数,第一个axisId指坐标轴编号;第二个参数为保留参数,此处为1,可以不写
'坐标轴编号0,1,2,3,4
'0为x轴,1为y轴,2位第二y轴,3为z轴,4表示无坐标轴
With Chart
.TitleText = '流量'
.Column = 1
.ColumnLabel = '流量1'
.ColumnCount=1 '只有一个曲线
.RandomFill=False '不是用随机数填充
' '设置图线的外观
' '设置XY轴
.Plot.Axis(0).ValueScale.Auto = 0
.Plot.Axis(1).ValueScale.Auto = 0
'// '设置最大值
.Plot.Axis(0).ValueScale.Maximum = RowCount '设置横轴标注最大值
.Plot.Axis(1).ValueScale.Maximum = 200 '设置纵轴标注最大值
'// '设置最小值
.Plot.Axis(0).ValueScale.Minimum = 0
.Plot.Axis(1).ValueScale.Minimum = 0
.RowCount =RowCount
.Plot.Axis(0).AxisGrid.MajorPen.Style = 1
.Plot.Axis(1).AxisGrid.MajorPen.Style = 1
.Plot.AutoLayout = 1
.Plot.UniformAxis = 0
.chartType = 3
.ShowLegend = 1 '显示图例
For i = 1 To RowCount
.Row = i
.RowLabel = '' '先清空标签
.data=flow(i)
Next
.Row=1
.RowLabel=CStr(MyTime(1))
For i=1 To 5
.Row = i*4
.RowLabel = CStr(MyTime(i*4))
Next
End With
End Sub

保存运行,最终是这个效果,可以看出这是一个很简洁的界面,右面的博客会丰富功能。
122.Wincc <wbr>V7.3 <wbr>MSChart控件初步使用1-简单外观设置,使用数组画一条曲线
有点不好理解的是VB里面mschart.chartdata=array就可以把数组用曲线显示出来,但是wincc里面不认.chartdata这个属性,这折腾了我很长时间,后来慢慢的对照属性列表数值和曲线效果才找到了窍门所在。

我的更多文章

下载客户端阅读体验更佳

APP专享