IF_THEN

IF_THEN 用于在满足特定条件时执行某项操作。
操作数
IF bool_expression THEN
<语句>;
操作数
类型
格式
输入
Bool_
表达式
BOOL
标签表达式
赋值为 BOOL 值的 BOOL 标签或表达式
(BOOL 表达式)
说明
语法在下表中说明。
Structured Text Syntax_If_Then
根据以下原则使用 ELSIF 或 ELSE。
要从多个可能的语句组中选择,添加一个或多个 ELSIF 语句。
每个 ELSIF 表示一个候选路径。
根据需要指定多个 ELSIF 路径。
控制器执行首个为真的 IF 或 ELSIF,并跳过其余的 ELSIF 和 ELSE。
要在所有 IF 或 ELSIF 条件为假时执行某项操作,则添加一条 ELSE 语句。
下表汇总了 IF、THEN、ELSIF 和 ELSE 语句的不同组合。
如果
使用以下结构
当条件为真时,执行某项操作
如果条件为假,则不执行操作
IF_THEN
如果条件为假,则执行其他操作
IF_THEN_ELSE
根据输入条件,从多个候选语句或语句组中进行选择
如果条件为假,则不执行操作
IF_THEN_ELSIF
如果所有条件均为假,则分配默认语句
IF_THEN_ELSIF_ELSE
影响数学状态标志
严重/轻微故障
无。
示例
示例 1
IF...THEN
如果执行此操作
输入以下结构化文本
如果拒绝数 > 3,则
IF rejects > 3 THEN
传送带 = 关闭 (0)
conveyor := 0;
报警 = 开启 (1)
alarm := 1;
END_IF;
示例 2
IF_THEN_ELSE
如果执行此操作
输入以下结构化文本
如果传送带方向触头 = 正向 (1),则
IF conveyor_direction THEN
指示灯 = 灭
light := 0;
否则指示灯 = 亮
ELSE
light [:=] 1;
END_IF;
每当控制器发生以下情况时,[:=] 都会指示控制器将 light 清空:
进入运行模式。
在配置 SFC 为自动复位的情况下,离开 SFC 的程序步。(仅适用于在步进操作中嵌入该赋值语句,或通过该操作使用 JSR 指令调用结构化文本例程时。)
示例 3
IF...THEN...ELSIF
如果执行此操作
输入以下结构化文本
如果糖料低限位开关 = 低(接通)且糖料高限位开关 = 不高
(接通),则
IF Sugar.Low & Sugar.High THEN
进给阀 = 打开(导通)
Sugar.Inlet [:=] 1;
直至糖料高限位开关 = 高(断开)
ELSIF NOT(Sugar.High) THEN
Sugar.Inlet := 0;
END_IF;
每当控制器发生以下情况时,[:=] 都会指示控制器将 Sugar.Inlet 清空:
进入运行模式。
在配置 SFC 为自动复位的情况下,离开 SFC 的程序步。(仅适用于在步进操作中嵌入该赋值语句,或通过该操作使用 JSR 指令调用结构化文本例程时。)
示例 4
IF...THEN...ELSIF...ELSE
如果执行此操作
输入以下结构化文本
如果罐温度 > 100
IF tank.temp > 200 THEN
则泵 = 缓慢运转
pump.fast :=1; pump.slow :=0; pump.off :=0;
如果罐温度 > 200
ELSIF tank.temp > 100 THEN
则泵 = 快速运转
pump.fast :=0; pump.slow :=1; pump.off :=0;
否则泵 = 关闭
ELSE
pump.fast :=0; pump.slow :=0; pump.off :=1;
END_IF;
提供反馈
对本文档有问题或反馈吗? 请在这里提交您的反馈
Normal