搬家第13天-
西门子官网有一个“跟我做”教学,介绍了利用折线来模拟管道内水流的动画效果,还可以控制水流快慢,顺流逆流。但是有一个群友反映说V7.3中使用教学里面的代码不好使。我看了一下教学,按照思路做了一下,也稍稍修改了一下vbs代码,亲测在wincc v7.3好使。西门子官方教学的地址如下:
http://www.ad.siemens.com.cn/service/elearning/cn/VideoBig.aspx?CourseID=1166
前面建立变量画折线,我就略过了,说说折线当前x值和几个按钮的vbs脚本吧。
当前折线x值的vbs代码如下:
Function ActualPointLeft_Trigger(ByVal Item)
Dim poly,lft,speed
Set poly=ScreenItems("polyline01")
poly.Index =1
lft=poly.ActualPointLeft '取当前x坐标值
If HMIRuntime.Tags("WaterFlowDirection").Read Then
If HMIRuntime.Tags("WaterFlowSpeed").Read =2 Then
poly.ActualPointLeft=lft+5
'ActualPointLeft_Trigger=lft+5 ‘使用ActualPointLeft_Trigger也是可以的
Else If HMIRuntime.Tags("WaterFlowSpeed").Read =1 Then
poly.ActualPointLeft=lft+3
'ActualPointLeft_Trigger=lft+3 ‘使用ActualPointLeft_Trigger也是可以的
Else If HMIRuntime.Tags("WaterFlowSpeed").Read =0 Then
poly.ActualPointLeft=lft+1
'ActualPointLeft_Trigger=lft+1 ‘使用ActualPointLeft_Trigger也是可以的
End If
End If
End If
If lft>=58 Then
poly.ActualPointLeft=40
'ActualPointLeft_Trigger=40
End If
Else
If HMIRuntime.Tags("WaterFlowSpeed").Read =2 Then
poly.ActualPointLeft=lft-5
'ActualPointLeft_Trigger=lft-5 ‘使用ActualPointLeft_Trigger也是可以的
Else If HMIRuntime.Tags("WaterFlowSpeed").Read =1 Then
poly.ActualPointLeft=lft-3
'ActualPointLeft_Trigger=lft-3 ‘使用ActualPointLeft_Trigger也是可以的
Else If HMIRuntime.Tags("WaterFlowSpeed").Read =0 Then
'ActualPointLeft_Trigger=lft-1 ‘使用ActualPointLeft_Trigger也是可以的
poly.ActualPointLeft=lft-1
End If
End If
End If
If lft<=40 Then
poly.ActualPointLeft=58
'ActualPointLeft_Trigger=58 ‘使用ActualPointLeft_Trigger也是可以的
End If
End If
End Function
启动按钮脚本如下:
Sub OnClick(ByVal Item)
Dim poly
Set poly=ScreenItems("polyline01")
poly.Visible=True
Select Case HMIRuntime.Tags("WaterFlowSpeed").Read
Case 0
poly.ActivateDynamic "ActualPointLeft","CycleTime500ms"
Case 1
poly.ActivateDynamic "ActualPointLeft","CycleTime250ms"
Case 2
poly.ActivateDynamic "ActualPointLeft","CycleTime125ms"
End Select
HMIRuntime.Tags("WaterFlowStart").Write True
End Sub
停止按钮vbs脚本如下
Sub OnClick(ByVal Item)
Dim poly
Set poly=ScreenItems("polyline01")
poly.Visible=False
poly.DeactivateDynamic "ActualPointLeft"
HMIRuntime.Tags("WaterFlowStart").Write False
End Sub
从左到右按钮vbs脚本如下
Sub OnClick(ByVal Item)
hmiruntime.Tags("WaterFlowDirection").Write true
End Sub
从右到左按钮vbs脚本如下
Sub OnClick(ByVal Item)
hmiruntime.Tags("WaterFlowDirection").Write false
End Sub
慢速按钮vbs脚本如下
Sub OnClick(ByVal Item)
Dim poly
Set poly=ScreenItems("polyline01")
poly.ActivateDynamic "ActualPointLeft","CycleTime500ms"
hmiruntime.Tags("WaterFlowSpeed").Write 0
End Sub
中速按钮vbs脚本如下
Sub OnClick(ByVal Item)
Dim poly
Set poly=ScreenItems("polyline01")
poly.ActivateDynamic "ActualPointLeft","CycleTime250ms"
hmiruntime.Tags("WaterFlowSpeed").Write 1
End Sub
快速按钮vbs脚本如下
Sub OnClick(ByVal Item)
Dim poly
Set poly=ScreenItems("polyline01")
poly.ActivateDynamic "ActualPointLeft","CycleTime125ms"
hmiruntime.Tags("WaterFlowSpeed").Write 2
End Sub