前言:
当前看官们对“if赋值表达式”大致比较关怀,我们都需要了解一些“if赋值表达式”的相关内容。那么小编也在网上网罗了一些有关“if赋值表达式””的相关内容,希望小伙伴们能喜欢,同学们快快来学习一下吧!一、IF(条件执行)指令1.第一种表达式---IF分支
IF "Tag_1" THEN
“Tag_2” := 3*3;
END_IF;
使用博途仿真运行,程序运行效果图如图1、图2所示:
图1 条件不成立
图2 条件成立
程序说明:如果条件“Tag_1”为1,那么执行计算指令“3 * 3 ”,将运算结果9赋值给“Tag_2”;如果条件“Tag_1”为0,那么程序将从 END_IF 后的下一条指令开始继续执行。
2.第二种表达式---IF 和 ELSE 分支
IF "Tag_3 " >= 10 AND "Tag_3 " < 15 THEN
“Tag_4” := 10 / 2 ;
ELSE
“Tag_4” := "Tag_3 " ;
END_IF;
使用博途仿真运行,程序运行效果图如图3、图4所示:
图3 条件不成立
图4 条件成立
程序说明:如果条件"Tag_3" >= 10 AND "Tag_3"成立,那么执行计算指令“10/2”,将运算结果5赋值给“Tag_4”;如果条件"Tag_3" >= 10 AND "Tag_3"不成立,那么程序将执行 ELSE 后编写的指令,将"Tag_3" 赋值给“Tag_4”。
3.第三种表达式---IF、ELSIF 和 ELSE 分支
IF ("Tag_5" > "Tag_6") AND "Tag_6" <> 0 THEN
“Tag_7” := 10 - 2 ;
ELSIF "Tag_6" > "Tag_5" THEN
“Tag_7” := 10 ** 2 ;
ELSE
“Tag_7” := 2 * 3 + 5 ;
END_IF;
使用博途仿真运行,程序运行效果图如图5、图6、图7所示:
图5 ("Tag_5" > "Tag_6") AND "Tag_6" <> 0条件成立
图6 "Tag_6" > "Tag_5"条件成立
图7 条件全部不成立
程序说明:如果条件("Tag_5" > "Tag_6") AND "Tag_6" <> 0成立,那么执行计算指令“10 -2”,将运算结果8赋值给“Tag_7”,执行完本条指令后,程序将从“END_IF”后继续执行;如果条件("Tag_5" > "Tag_6") AND "Tag_6" <> 0不成立,那么将执行第二个条件,即“ELSIF”后的条件,如果条件"Tag_6" > "Tag_5"成立,那么执行计算指令“10 ** 2”(10的平方),将计算结果100赋值给“Tag_7”,执行完本条指令后,程序将从“END_IF”后继续执行;如果("Tag_5" > "Tag_6") AND "Tag_6" <> 0与"Tag_6" > "Tag_5"条件全部不成立,那么将执行“ELSE”后的指令,那么执行计算指令“2 * 3 + 5”,将计算结果11赋值给“Tag_7”,再执行 END_IF 后的程序部分。
在 IF 指令内可以嵌套任意多个 ELSIF 和 THEN 组合。可以选择对 ELSE 分支进行编程。
注:Tag_1如果是开关量可以不用表达出“=”“<”“>”等条件(因为开关量非0即1),如果是模拟量则需要进行条件设定。本文章仅供参考,具体情况还需根据实际工艺需求进行程序编写。
二、CASE OF(创建多路分支)指令
使用“创建多路分支”指令,可以根据数字表达式的值执行多个指令序列中的一个。表达式的值必须为整数。执行该指令时,会将表达式的值与多个常数的值进行比较。如果表达式的值等于某个常数的值,则将执行紧跟在该常数后编写的指令。其中常数值可以为以下值:
a.整数(例如,5)
b.整数范围(例如,15 到20 ,表达方式为 15..20)
c.由整数和范围组成的枚举(例如,10、11、21 到 25,表达方式为10,11,21..25)
CASE “Tag_8” OF
5:
”Tag_9” := 2;
10,11:
”Tag_9” := 3;
15...20:
”Tag_9” := 4;
25,27,29...32:
”Tag_9” := 5;
ELSE
”Tag_9” := 6;
END_CASE;
使用博途仿真运行,程序运行效果图如图8、图9、图10、图11、图12所示:
图8“Tag_8”为5时
图9“Tag_8”为11时
图10“Tag_8”为18时
图11“Tag_8”为29时
图12“Tag_8”为0时
程序说明:如果表达式“Tag_8”的值为5,那么程序将执行指令,将常数“2”赋值给“Tag_9”,程序将从 END_CASE 后继续执行;如果表达式“Tag_8”的值为0或11,那么程序将执行指令,将常数“3”赋值给“Tag_9”,程序将从 END_CASE 后继续执行;如果表达式“Tag_1”的值为15到20中的任意一个整数,那么程序将执行指令,将常数“4”赋值给“Tag_9”,程序将从 END_CASE 后继续执行;如果表达式“Tag_9”的值为25或27或29到32中的任意一个整数,那么程序将执行指令,将常数“5”赋值给“Tag_9”,程序将从 END_CASE 后继续执行;如果表达式“Tag_9”的值不是以上条件内任何一个整数,那么程序将执行ELSE后的指令,将常数“6”赋值给“Tag_9”。
注:CASE 指令也可通过使用 CASE 替换一个指令块来进行嵌套。END_CASE 表示 CASE 指令结束。ELSE 是一个可选的语法部分,可以省略。
博途仿真程序图
不足之处还望海涵,请多多指教。
标签: #if赋值表达式