设为首页
收藏本站
PLC技术网
开启辅助访问
切换到宽版
登录
注册哦
只需一步,快速开始
微信扫码登录
门户
Portal
论坛
BBS
导读
Guide
排行榜
Ranklist
搜索
搜索
本版
文章
帖子
用户
PLC论坛-全力打造可编程控制器专业技术论坛
»
论坛
›
工控技术交流区
›
『国外:三菱/西门子/欧姆龙/松下』
›
西门子SCL基础教学---if then
返回列表
发新帖
[西门子]
西门子SCL基础教学---if then
[复制链接]
85428
|
0
|
2024-3-11 16:17:38
|
显示全部楼层
|
阅读模式
上期说了基础教程,这期讲解下关于if then语句
关于if...then的解释:
执行该指令时,将对条件进行运算
如果条件为真(true),则条件成立,将会执行then后面的语句。
如果条件为假(false),则条件不成立,将不会执行then后面的语句。
下面1到3里面的in和out声明为bool型数据类型
下面4里面的in和out声明为int型数据类型
if...then...如果条件成立,则执行then后面的语句。如果条件不成立,则执行end_if后面的语句举例:if #inthen #out:=1;end_if;当in=0,条件不成立,那么then后面的语句不执行,out=0。当in=1,条件成立了,执行then后面的语句,out=1。然后你就会发现,当in再次等于0的时候,条件不满足,out还是等于1的。这就相当于你在梯形图中写了个置位指令,没写复位指令。那么如何复位,你可以再写一个if...then...if #in=0then #out:=0;end_if;这时候你就需要把in的条件加上去了。因为你需要在in=0的时候你要让条件成立。条件成立才能执行then后面的语句。
由于in是bool型数据类型,则可以省去in后面的=0(false),或者=1(true)。仅限bool数据类型。如果省去了,默认是in=0的时候条件不成立。in=1的时候条件成立。
if...then...else...
如果条件成立,则执行then后面的语句。执行完之后,程序将从end_if后继续执行。如果有的话。
如果条件不成立,则执行else后面的语句。执行完之后,程序将从end_if后继续执行。如果有的话。
举例:
if #in
then
#out:=1;
else
#out:=0;
end_if;
当in=0的时候,条件不成立,那么执行else,out=0。
当in=1的时候,条件成立,那么执行then后面的语句,out=1。
其实你可以看出,上面1里面两个if简化之后,就是这一语句。
if...then...elsif...
如果第一个if条件成立,则执行第一个then后面的语句,执行完之后,程序将从end_if后继续执行。如果有的话。
如果条件1不成立,则检查第二个条件,也就是elsif的条件,如果这个条件成立,则执行elsif后面的then的语句,执行完之后,程序将从end_if后继续执行。如果有的话。以此类推
举例:
if #in
then
#out:=1;
elsif #in=0
then
#out:=0;
end_if;
当in=1的时候,执行第一个then后面的语句,out=1。
当in=0的时候,第一个条件不成立,那么第一个then后面的语句不执行,此时会去检查第二个条件,当第二个条件成立,则会执行第二个then后面的语句,out=0。
in这个条件变量,不只是bool量,也可以是别的。比如int啊,real啊等等,也可以参杂and,or等一系列指令进去。
举例:
if #in=10
then
#out:=100;
elsif #in=20
then
#out:=200;
elsif #in>50 and #in<100
then
#out:=1000;
else
#out:=888;
end_if;
当in=10的时候,第一个if条件成立,那么第一个then后面的语句会执行,out=100。
当in=20的时候,第一个条件不成立,则第一个then后面的语句不执行。此时会判断第二个条件,发现第二个条件成立,则执行第二个then后面的语句,out=200。
当in大于50且小于100的时候,第一第二个条件不成立,那么第一第二个then后面的语句都不会执行。此时就判断第三个条件,当第三个条件成立,那么第三个then后面的语句会被执行,也就是out=1000。
当in不在这个范围内,也就是上述的if条件都不成立,那么最终执行else后面的语句,则out=888。
到此,if...then的基础讲解也就结束了,大家可以慢慢练习下,然后可以搭配各种指令去用一下,比如if嵌套if,if套个for等等操作。
回复
举报
返回列表
发新帖
高级模式
B
Color
Image
Link
Quote
Code
Smilies
您需要登录后才可以回帖
登录
|
注册哦
本版积分规则
发表回复
回帖后跳转到最后一页
工控亿点点
回复楼主
返回列表
『国外:三菱/西门子/欧姆龙/松下』
『国产:台达/汇川/信捷产品交流区』