MySQL, Oracle, Linux, 软件架构及大数据技术知识分享平台

网站首页 > 精选文章 / 正文

[三菱] 三菱ST语言:第7课 IF语句的使用

2025-05-24 14:35 huorong 精选文章 3 ℃ 0 评论

本期内容:
if语句基础
if语句 IF语句的保持性
if.....else......语句 IF语句嵌套
ELS IF语句


往期内容:
三菱ST语言:第6课 FB、标签的用法
三菱ST语言:第5课 数据处理与算法
三菱ST语言:第4课 赋值指令的应用
三菱ST语言:第3课 传送指令的应用
三菱ST语言:第2课 定时器计数器的应用



1. if 语句基础

大会读书时都学过语文,记得上小学的时候那会班级刚刚讲完造句时,班上的同学总是喜欢造一些古怪的语句,像什么
如果明天下雨,我就不来上学。。。。
如果我不上学,我就不会写作业。。。
如果我不写作业,我就会被爸爸打。。。
诸如此类
其实我们的IF语句就像我们的语文一样就是把中文换成了机器能听地懂的语言,而IF语句就是如果..........就...........造句。

在我们的ST语言中IF语言是这样体现的

IF ?条件式? THEN ?执行语句? ;END_IF;




IF ?条件式? THEN

?执行语句? ;

END_IF;

表示
如果 干嘛干嘛 逗号
我就干嘛 干嘛 句号
结束会话;

比如 D0=1时,我就输出Y0 END—IF;
IF D0=1 THENY0:=1;END_IF;





这就是IF语句最简单的运用了,我们要注意的是 THEN END-IF这二个是不能漏的分号也是要写上不能不写除去THEN

如果 D0 不等于 1, Y0就不输出,这个时候了不输出Y0我可以输出Y1啊,怎么做了 ?
可以这么写

如果 D0 不等于 1THEN
Y0就不输出 ;
不然(ELSE)
 Y1输出;
END-IF;

这个就是我们的 如果........就..........不然..........语句

IF ?条件式? THEN ?执行语句? ;ELSE ?执行语句? ;END_IF;

IF D0=1 THENY0:=1 ;ELSEY1:=1 ;END_IF;

这就是我们的 如果........就..........不然..........语句
if.....else......语句


IF语句 BOOL表达示的写法

我们的X、Y、M 在IF语句中可以简写比如我的置位电路
可以这么写
IF X2 THEN Y0:=1;END_IF;
只要我们不写ELSE语句时,我们的X2接通过一次Y0就会一直动作




2.这就是IF语句的保持性

那我们怎么停止Y0了,二个办法要么加一条ESLE语句进行复位或做其它,要么在外面复位

IF X2 THENY0:=1;ELSEY0:=0;END_IF;
IF X2 THEN Y0:=1;END_IF;
RST(X1, Y0);










IF语句比较指令使用

IF D0>1 AND D0<8 THEN Y0:=1;END_IF;

IF语句作为比较条件使用

IF (D0+12/2)>6 THENY0:=1;END_IF;
都是可以这么写的




3.IF语句嵌套

我们可以套着使用IF语句
比如我们M0启动后,Y0输出
等待D0 D1输入数值,如果输入了
就D0 D1相加然后复位M0

IF ?条件式? THEN ?执行语句? ;IF ?条件式? THEN ?执行语句? ; END_IF;END_IF;
set(X1,M0);IF M0 THENY0:=1;IF D0 <> 0 AND D1<>0 THEND3:=D0+D1;M0:=0;Y0:=0;END_IF;END_IF;

IF语句嵌套
必须满足前提条件也就是例子上的M0要接通
然后才能接通另一条判断条件。

当然IF ELSE一样能用

IF ?条件式? THEN ?执行语句? ;IF ?条件式? THEN ?执行语句? ;ELSE ?执行语句? ; END_IF;ELSE ?执行语句? ;END_IF;



4.ELS IF语句


运用一个或多个ELSE_IF语句可以实现多个不同的条件,
而不用使用多个简单的IF语句创建复杂的程序逻辑

IF?条件式? THEN?执行语句?;ELSIF?条件式? THEN?执行语句?;ELSIF?条件式? THEN?执行语句?;ELSIF?条件式? THEN?执行语句?; ELSE?执行语句?; END_IF;




什么意思了???
就是当我们条件一不满足时执行条件二
条件二不满足时执行条件三
条件三不满足时执行条件四
都不满足就执行ELSE语句

比如经典的仓位判断
仓库有三个原料仓,
分另是A,B,C每个仓位重量50KG
放料小车依次从A、B、C三个仓位进行取放原料
已知小车每次载重5KG,A仓位要8000个脉冲
B仓位要12000个脉冲
C仓位要15000个脉冲

例如我们的IO分配如下
D0为A仓位的当前重量
D2为B仓位的当前重量
D4为B仓位的当前重

D10为小车重量

我们可这么写

IF D0+D10<50 THEN (*A仓位*)D0:=D0+D10 ;
ELSIFD2+D10<50 THEN (*B仓位*)D2:=D0+D10 ;
ELSIFD4+D10<50 THEN (*C仓位*)D4:=D0+D10 ;ELSE报警:=0; END_IF;




当然然还有脉冲数发送给小车,我们就不细写了,
还有什么时候进行加法,我也不细写,
只是一个大至的思路

三菱ST语言:第7课 IF语句的使用

http://bbs.plcjs.com/forum.php?mod=viewthread&tid=493925&fromuid=17

(出处: PLC论坛-全力打造可编程控制器专业技术论坛)

Tags:if else if else语句格式

控制面板
您好,欢迎到访网站!
  查看权限
网站分类
最新留言