说起IF语句算是最有用,最常见的了,几乎所有的计算机语言都有IF语句,并且用法基本都一样。只是表达方式有些差异,在ST语言中IF语句同样重要,有几种表示形式,下面就来看一下吧。
·IF….END_IF格式
IF<判断条件> THEN
<语句>;
END_IF;
作用:如果判断条件成立,执行语句,否则不执行语句。判断条件可以是单个变量,也可以是表达式,但是表达式的结果必须是BOOL量就是我们常用的位标量,只有0或1状态。
在西门子博图或三菱work2或work3中,END_IF后面都是需要加“;”分号的,有的PLC可以不需要单也可以加分号,所以加上不会错。比如施耐德
如上面的梯形图就可以用IF语句写成:
IF #FWD THEN
·IF….ELSE….END_IF格式
IF <表达式> THEN
END_IF;
作用:如果判断条件成立,则执行语句1,否则执行语句2;注意语句后面都需要加英文状态下的“;”分号。在梯形图中可以用来控制线圈的通断,而非上面的置为和复位。比如:
·IF语句的嵌套格式IF….ELSEIF….END_IF判定语句
IF <表达式1> THEN
<语句1>;
ELSEIF<表达式2> THEN
<语句2>;
END_IF;
语句执行作用:如果判断表达式1成立,则执行语句1,否则,判断表达式2成立,则执行语句2。
·另外IF也可以采用多层嵌套格式:
IF <表达式1> THEN
IF <表达式2> THEN
<语句2>;
END_IF;
END_IF;
上面只是写了两层嵌套,还可以继续嵌套,但是需要注意END_IF与IF成套使用,不同层级之间的END_IF添加位置;一般在ST语言编程时IF多层嵌套,每层写完后敲回车会自动缩进。写END_IF也会自动缩进与本层对应,并且在编写完成进行编译时如果不成对会提示语句错误。
假如我们需要IF语句来写上篇ST语言中的说的电机正反转控制,该如何写呢?感兴趣的小伙伴可以自行写写,练习一下。