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 SE
    命令用作使用
    IF
    THEN
    ELSE
    ENDIF
    操作符的条件表达式的操作。
  • 不要将
    表达式
    编辑器中的报警函数与
    If
    命令一起使用,因为该函数将始终返回 0(零)。但是,当在表达式的
    If-Then_Else
    逻辑中使用时,报警函数可正常工作。
提供反馈
对本文档有问题或反馈吗? 请在这里提交您的反馈
Normal