If
条件
If
命令提供有条件地执行一条命令或多条命令的方法。条件 If
命令可以使用在可以发出其他命令的任何地方,只不过条件命令不能嵌套。这意味着,无法将 If
命令用作另一个 If
命令的 THEN
或 ELSE
操作。语法
If <
表达式
> THEN <
命令
>; <
命令
>;... [ELSE<
command
>; <
command
>;...] ENDIF
其中
<表达式>
是一个比较关系(例如 Tag1 = Tag2 或 Tag1 = Tag2+Tag3)或求值结果为数字值的任何表达式。求值结果为非零数字的表达式将被视为 True。求值结果为零的表达式将被当作 False。<command>
是任何 FactoryTalk View SE
命令或用户定义的宏。可以为 THEN 或 ELSE 操作指定单个或多个命令或宏,用分号隔开。备注
如果表达式求值结果为 True,则将执行 THEN 操作。如果表达式求值结果为 False 且指定了一个 ELSE 操作,则该操作将被执行。如果表达式求值结果为 False 且未指定 ELSE 操作,则将不执行任何操作。
使用
If
命令时,请注意:- If命令语句的所有部分必须在一行上。
- 最大命令长度为 5000 个字符。如果替换的标签值导致命令超过该长度,则命令将被截短。
- 关键字IF、THEN、ELSE和ENDIF不区分大小写。
- 无法在If命令的表达式中使用IF、THEN、ELSE或ENDIF操作符。
- If命令将在发出命令的 HMI 服务器、FactoryTalk View SE客户端或FactoryTalk View Studio上以本地方式运行。
- 指定为THEN或ELSE操作的命令将被执行,如同从If命令之外被发出时一样正常运行。
- If命令是同步处理的。这意味着,如果要在If命令之后发送其他命令,例如在宏中,则在If命令字符串中的任何THEN或ELSE命令被发送之前,或在If命令中发生错误之前,不会发送下一个命令。
- 如果在条件If命令之前放置一个与符号 (&),则系统将不等THEN或ELSE命令运行就处理后续命令。
- 不要将If命令与条件表达式(如在表达式编辑器中所创建的表达式)相混淆。虽然两者都在其结构中使用条件操作符,但是不能将命令用作使用FactoryTalk View SEIF、THEN、ELSE或ENDIF操作符的条件表达式的操作。
- 不要将表达式编辑器中的报警函数与If命令一起使用,因为该函数将始终返回 0(零)。但是,当在表达式的If-Then_Else逻辑中使用时,报警函数可正常工作。
提供反馈