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

[复制链接]
查看348 | 回复0 | 2024-5-10 12:03:46 | 显示全部楼层 |阅读模式
本期内容:
       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;



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










本帖子中包含更多资源

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

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

本版积分规则