设为首页
收藏本站
PLC技术网
开启辅助访问
切换到宽版
登录
注册哦
只需一步,快速开始
微信扫码登录
门户
Portal
论坛
BBS
导读
Guide
排行榜
Ranklist
搜索
搜索
本版
文章
帖子
用户
PLC论坛-全力打造可编程控制器专业技术论坛
»
论坛
›
工控技术交流区
›
『国外:三菱/西门子/欧姆龙/松下』
›
三菱ST语言:第7课 IF语句的使用
返回列表
发新帖
[三菱]
三菱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
回复
举报
返回列表
发新帖
高级模式
B
Color
Image
Link
Quote
Code
Smilies
您需要登录后才可以回帖
登录
|
注册哦
本版积分规则
发表回复
回帖后跳转到最后一页
Hello工控
回复楼主
返回列表
『国外:三菱/西门子/欧姆龙/松下』
『国产:台达/汇川/信捷产品交流区』