[西门子] 经典判断语句IF在ST语言中应用

[复制链接]
查看96 | 回复0 | 2024-10-29 16:04:55 | 显示全部楼层 |阅读模式
>

点击蓝字

关注不迷路,学习非标自动化编程

IF判断语句

说起IF语句算是最有用,最常见的了,几乎所有的计算机语言都有IF语句,并且用法基本都一样。只是表达方式有些差异,在ST语言中IF语句同样重要,有几种表示形式,下面就来看一下吧。

·IF….END_IF格式

IF<判断条件> THEN

      <语句>;

END_IF;

作用:如果判断条件成立,执行语句,否则不执行语句。判断条件可以是单个变量,也可以是表达式,但是表达式的结果必须是BOOL量就是我们常用的位标量,只有0或1状态。

在西门子博图或三菱work2或work3中,END_IF后面都是需要加“;”分号的,有的PLC可以不需要单也可以加分号,所以加上不会错。比如施耐德

如上面的梯形图就可以用IF语句写成:

IF #FWD THEN

“#Motro_M1”:= TRUE;

END_IF;

IF #STOP THEN

“#Motro_M1”:= FALSE;

END_IF;


·IF….ELSE….END_IF格式

IF <表达式> THEN

<语句1>;

ELSE

<语句2>;

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

<语句1>;

ELSE

IF <表达式2> THEN

<语句2>;

END_IF;

END_IF;

上面只是写了两层嵌套,还可以继续嵌套,但是需要注意END_IF与IF成套使用,不同层级之间的END_IF添加位置;一般在ST语言编程时IF多层嵌套,每层写完后敲回车会自动缩进。写END_IF也会自动缩进与本层对应,并且在编写完成进行编译时如果不成对会提示语句错误。

假如我们需要IF语句来写上篇ST语言中的说的电机正反转控制,该如何写呢?感兴趣的小伙伴可以自行写写,练习一下。

给偷懒的小伙伴,猛戳几下空白处

点击空白出现图片丨淡出动画


免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册哦

x
您需要登录后才可以回帖 登录 | 注册哦

本版积分规则