原创作者:张占领 - 西门子工业技术支持中心
经常遇到客户问: 能否动态增、删趋势控件里曲线? 能否动态设定曲线的属性,如颜色? 能否动态选择控件的时间区间? 总之,就是想,灵活!灵活!再灵活!
本文以示例方式来介绍这个话题,包括:
动态控制WinCC在线趋势控件 
选择参数组名称(变量组),添加多条曲线 设定各曲线的颜色
设定曲线显示的时间范围 在WinCC变量管理中创建不同的变量组,并在变量组下创建相应的变量 
本例中,每个变量组下包含的变量如表所示: 
创建变量归档在WinCC变量记录下创建变量归档,并添加变量
 每个变量归档下包含的归档变量如下。这些归档变量将会以曲线的形式显示在WinCC画面中。
添加画面对象本例中需要选择查询的参数以及查询的时间段,然后通过一个按钮来执行数据查询脚本,并把历史数据加载到在线表格控件上。- 选项组控件:用来选择所查询的参数,其对应的所有归档变量将会被加载到在线趋势控件中 画面中个对象的名称将会在查询脚本中被使用到,因此需要设定各个控件的名称。本例中各控件名称设置如表所示。 选项组控件 <选项组控件用来选择需要查询的参数,并且为单选控件。本文中介绍两种添加选项组控件的方法:直接拖拽控件、从Excel表格中拖拽。选项组控件可以直接从“窗口对象”下拖拽到画面中,设定其框数量(属性:“几何”->“框数量”)为5,并为不同的索引设定相应的文本。 下面介绍另外一种方法,可以直接从excel或者WinCC Configuration Studio中拖拽文本到WinCC画面自动创建选项组控件。然后,在excel中选择所有文本,移动鼠标到选中区域的右下角,直到鼠标变成十字光标形状。按着鼠标右键拖拽文本到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)属性。 Dim TrendName(9),TrendCountSet myTrend =ScreenItems('myTrend') '在线趋势控件名称For i=1 To myTrend.TrendCount myTrend.TrendRemove=myTrend.TrendName'添加曲线前先删除所有曲线Set OP1=ScreenItems('OP1')'曲线选择选项组控件名称Select Case OP1.Process'根据选择项设定曲线条数及各个归档变量名称 TrendName(0)='flow\flow1' TrendName(7)='flow\flow8' TrendName(0)='level\level1' TrendName(1)='level\level2' TrendName(2)='level\level3' TrendName(0)='press\press1' TrendName(5)='press\press6' TrendName(0)='quality\quality1' TrendName(6)='quality\quality7' TrendName(0)='temp\temp1' TrendName(5)='temp\temp6'For 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''数值轴 myTrend.TrendColor= RGb(0,0,0)'黑色 myTrend.TrendColor= RGb(255,0,0)'红色 myTrend.TrendColor= RGb(0,255,0)'绿色 myTrend.TrendColor= RGb(0,0,255)'蓝色 myTrend.TrendColor= RGb(255,255,0)'黄色 myTrend.TrendColor= RGb(0,255,255)'青色 myTrend.TrendColor= RGb(120,36,36)'棕色 myTrend.TrendColor= RGb(255,0,255)'深红Set BeginTime=ScreenItems('BeginTime')Set endTime=ScreenItems('endTime')myTrend.TimeAxisIndex =0 '时间轴索引myTrend.TimeAxisRangeType =1 '时间轴类型-时间范围myTrend.TimeAxisBeginTime = BeginTime.value '起始时间myTrend.TimeAxisEndTime =endtime.value '结束时间运行结果在WinCC计算机属性的启动列表中启动“变量记录运行系统”,并激活WinCC项目。
 打开WinCC变量模拟器,选择需要需要仿真的变量并设置仿真函数,启动变量模拟器,效果如文中首图
(完)
|