全文约800字,通读约4分钟
看完本章,你将掌握以下内容:
(1):两种循环语句及其用法
(2):跟我编程试一试
(3):问题拓展及上章问题答案
准备阶段:
打开Wincc V14→ 创建项目 → 添加设备 → 创建"画面_1"→创建"文本域_1"
如果上述步骤不会,请查看本头条号其他内容。
一:两种VB循环语句及用法
循环语句适用于什么情况?当程序中有重复的工作要做时,我们就可以用循环语句来实现。下面,介绍For…Next循环语句的两种形式。
1.1:For…To…Step…Next
当循环次数确定的时候,且每次循环的 "步长"不为1的时候使用。
语法格式如下:
For 循环变量 = 初值 To 终值 Step步长
需要循环的语句
Next
含义如下:
循环变量:用来存储参与循环次数计算的变量
初值:第一次循环时循环变量的值
终值:最后一次循环时循环变量的值
步长:每次循环循环变量的变化值
需要循环的语句:我们想要重复执行的语句
那么我们如何确定初值和终值?
循环次数-1=(终值-初值)/步长
1.2:For…To…Next
此语句与1.1相比,不设定步长,此时步长默认为1 。
结合1.1,假设循环变量为A,初值为0,终值为10,则
语法格式如下:
Dim A
For A = 0 To 10
需要循环的语句
Next
因为此时没有设定步长,因此默认步长为1,所以
当第一次循环的时候,A=0
当第二次循环的时候,A=1
当第十一次循环的时候,A=10
二:跟我编程试一试
分别利用For…Next的两种循环语句,编写程序实现如下功能:
在 "画面_1"的"文本域_1"中,输出10秒倒计时"几秒后项目锁定"。
利用不设定步长的语句,代码如下:
Sub VBFunction_1()
Dim A,B,C
C=11
For B=0 To 10
C=C-1
A=HmiRuntime.Screens("画面_1").ScreenItems("文本域_2").Text
HmiRuntime.Screens("画面_1").ScreenItems("文本域_2").Text= A & Chr(13)& C & "秒后项目锁定"
Next
End Sub
解释如下图:

默认步长程序解释
利用设定步长的语句,代码如下:
Sub VBFunction_2()
Dim A,B,C
For B=10 To 0 Step -1
A=HmiRuntime.Screens("画面_1").ScreenItems("文本域_2").Text
HmiRuntime.Screens("画面_1").ScreenItems("文本域_2").Text= A & Chr(13)& B & "秒后项目锁定"
Next
End Sub
很明显,设定步长之后代码简化了很多。代码解释如下图:
设定步长程序解释
将脚本与画面的载入事件关联后,仿真运行结果如下所示:
实际仿真结果显示
三:问题拓展及上章问题答案
3.1:上章问题答案(文末附上章连接)
答案:If…Then 适用于:不满足判断条件的情况不需要执行操作的情况。
If…Then…Else适用于:不满足判断条件的时候,需要对其进行一定操作,比如密码登录时提示"密码错误"或者"登录失败"等。
3.2:本章问题拓展
1:你能利用循环语句及之前学过的获取系统时钟,写出真正的倒计时吗?如何写?
单击下方,查看上章内容:
西门子Wincc V14 脚本编程,如何两个VB判断语句闯天下