动态控制WinCC趋势控件
原创作者:张占领 - 西门子工业技术支持中心经常遇到客户问:能否动态增、删趋势控件里曲线?能否动态设定曲线的属性,如颜色?能否动态选择控件的时间区间?总之,就是想,灵活!灵活!再灵活!本文以示例方式来介绍这个话题,包括:示例功能介绍示例实现步骤示例源程序下载链接功能介绍动态控制WinCC在线趋势控件
选择参数组名称(变量组),添加多条曲线设定各曲线的颜色设定曲线显示的时间范围组态步骤创建变量在WinCC变量管理中创建不同的变量组,并在变量组下创建相应的变量
本例中,每个变量组下包含的变量如表所示:
创建变量归档在WinCC变量记录下创建变量归档,并添加变量
每个变量归档下包含的归档变量如下。这些归档变量将会以曲线的形式显示在WinCC画面中。
WinCC查询画面添加画面对象本例中需要选择查询的参数以及查询的时间段,然后通过一个按钮来执行数据查询脚本,并把历史数据加载到在线表格控件上。因此,需要在画面中添加以下对象:- 选项组控件:用来选择所查询的参数,其对应的所有归档变量将会被加载到在线趋势控件中- 时间选择控件:用来设定曲线的开始和结束时间- 在线趋势控件:显示参数曲线- 按钮:执行查询事件
画面中个对象的名称将会在查询脚本中被使用到,因此需要设定各个控件的名称。本例中各控件名称设置如表所示。
选项组控件<选项组控件用来选择需要查询的参数,并且为单选控件。本文中介绍两种添加选项组控件的方法:直接拖拽控件、从Excel表格中拖拽。1、直接拖拽控件选项组控件可以直接从“窗口对象”下拖拽到画面中,设定其框数量(属性:“几何”->“框数量”)为5,并为不同的索引设定相应的文本。
2、从表格中拖拽下面介绍另外一种方法,可以直接从excel或者WinCC Configuration Studio中拖拽文本到WinCC画面自动创建选项组控件。首先,在excel中输入需要的文本。然后,在excel中选择所有文本,移动鼠标到选中区域的右下角,直到鼠标变成十字光标形状。按着鼠标右键拖拽文本到WinCC画面,松开鼠标,在弹出对话框中选择“插入选项组”。最后,选项组控件被插入到WinCC画面。
另外,也可以直接从WinCCConfiguration Studio中拖拽文本到WinCC画面自动创建选项组控件。
时间选择控件按如下步骤添加MicrosoftDate and Timer Picker Control控件到画面中。首先,在ActiveX控件上右键,选择“添加/删除”,然后在OCX控件列表中选择Microsoft Date andTimer Picker Control。
然后,添加控件到画面,拖拽MicrosoftDate and Timer Picker Control控件到画面中。
最后,设置控件的“Format”属性为“3-dptCustom”,“CustomFormat”属性为”yyyy-MM-dd hh:mm”。
在线趋势控件添加在线趋势控件到画面中,所有属性保持默认值即可。但是需要查看在线趋势控件中的“趋势窗口”名称、“时间轴”名称和“数值轴”名称。这些属性在设置曲线属性的脚本中需要用到。
查询脚本根据选项组所选定的参数加载相应的多个归档变量到在线趋势控件,根据设定的查询时间范围设定控件时间轴的开始时间及结束时间。注意:设定在线趋势控件的时间范围之前,需要取消在线趋势控件的“刷新”(Online)属性,否则设定的时间范围不起作用。本例中将通过脚本来设置在线趋势控件的“刷新”(Online)属性。画面中“数据查询”按钮的脚本
具体的VBS脚本如下:Dim OP1,myTrendDim TrendName(9),TrendCountSet myTrend =ScreenItems('myTrend') '在线趋势控件名称Dim iFor i=1 To myTrend.TrendCount myTrend.TrendIndex=i myTrend.TrendRemove=myTrend.TrendName'添加曲线前先删除所有曲线NextSet OP1=ScreenItems('OP1')'曲线选择选项组控件名称Select Case OP1.Process'根据选择项设定曲线条数及各个归档变量名称 Case 1'选择第1项 TrendName(0)='flow\flow1' ......TrendName(7)='flow\flow8' TrendCount=8 Case 2'选择第2项 TrendName(0)='level\level1' TrendName(1)='level\level2' TrendName(2)='level\level3' TrendCount=3 Case 4'选择第3项 TrendName(0)='press\press1' ...... TrendName(5)='press\press6' TrendCount=6 Case 8'选择第4项 TrendName(0)='quality\quality1' ...... TrendName(6)='quality\quality7' TrendCount=7 Case 16'选择第5项 TrendName(0)='temp\temp1' ...... TrendName(5)='temp\temp6' TrendCount=6End SelectFor i=1 To TrendCount'添加趋势并设定曲线的属性 myTrend.TrendAdd= TrendName(i-1) myTrend.TrendTagName= TrendName(i-1)'曲线名称 myTrend.TrendTrendWindow= 'Trend window 1''曲线窗口名称 myTrend.TrendTimeAxis= 'Time axis 1''时间轴 myTrend.TrendValueAxis= 'Value axis 1''数值轴 Select Casei '设定各曲线颜色 Case1 myTrend.TrendColor= RGb(0,0,0)'黑色 Case2 myTrend.TrendColor= RGb(255,0,0)'红色 Case3 myTrend.TrendColor= RGb(0,255,0)'绿色 Case4 myTrend.TrendColor= RGb(0,0,255)'蓝色 Case5 myTrend.TrendColor= RGb(255,255,0)'黄色 Case6 myTrend.TrendColor= RGb(0,255,255)'青色 Case7 myTrend.TrendColor= RGb(120,36,36)'棕色 Case8 myTrend.TrendColor= RGb(255,0,255)'深红 End SelectNext'设置曲线开始时间和结束时间Dim BeginTime,endTimeSet BeginTime=ScreenItems('BeginTime')Set endTime=ScreenItems('endTime')myTrend.TimeAxisIndex =0 '时间轴索引myTrend.Online =0myTrend.TimeAxisRangeType =1 '时间轴类型-时间范围myTrend.TimeAxisBeginTime = BeginTime.value '起始时间myTrend.TimeAxisEndTime =endtime.value '结束时间运行结果在WinCC计算机属性的启动列表中启动“变量记录运行系统”,并激活WinCC项目。
打开WinCC变量模拟器,选择需要需要仿真的变量并设置仿真函数,启动变量模拟器,效果如文中首图
本文源程序 (软件版本:WinCC V7.5 SP1)(完)