搬家第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

posted @ 2021-02-10 20:40  来自金沙江的小鱼  阅读(342)  评论(0编辑  收藏  举报