IF命令用途测试条件,然后指定要转到的语句编号。 语法IF 表达式 GOTO 步骤编号 参数表达式 –比较IF命令中的值。这些命令的表达式的语法是: 操作数1 关系运算符 操作数2 要获取关于这些参数的更多信息,请参阅使用命令参数主题。 GOTO 步骤编号 –指定当表达式为真时要转到的步骤编号。如果指定的步骤编号小于当前的步骤编号(向后跳转),iFIX则暂停处理程序块,在下一次扫描期间进行跳转。如果指定的步骤编号大于当前的步骤编号(向前跳转),则继续执行下个步骤而不会中断。 提示:在少数情况下,可能有等待块的具体值以测试条件的程序块,但因为数字系统中不可避免的舍入误差,块会一直发送一个永远不满足条件的、稍有差别的值。避免此问题的最简单方法是添加SETLIM命令 以对从块收到的值创建精确度限制。此命令让您为比较指派包含限制,如+/-0.1。 示例您可以使用IF命令来测试条件,然后跳转到特定命令。例如,如果模拟量输入块LEVEL的值大于3000,则继续到步骤12,使用的语句如下: 08 IF LEVEL > 3000 GOTO 12 操作数IF命令也可以使用操作数:
IF DATE要在执行步骤12之前测试日期是否为1997年6月29日,请输入: 04 IF DATE > 06-29-97 GOTO 12 如果日期为任何其它日期,则执行步骤05。 IF DAY要测试星期几是否正确,请使用以下语句:
注意:您只能使用 = 和 ! = 用于具有 DAY 操作数的运算符。星期几的有效标识符是SUN、MON、TUE、WED、THU、FRI和SAT。 IF TIMETIME操作数根据一天当中的时间执行指定的步骤编号。此命令与IFTIME GOTO命令不同,因为您无需将它与WAITSTAT命令一起使用。要区分这两个命令,请在IF命令和TIME操作数之间使用空格。 如果您使用等于(=)运算符,IF TIME命令把块的扫描时间用作+/-死区。您可以用24小时制输入时间HH:MM:SS。 考虑以下命令: 07 IF TIME = 12:00:00 GOTO 4 如果块有2分钟的扫描时间,命令值在11:58:00和12:02:00之间的任何时候都为真,如下所示。
因此,即使块不是确切地在12:00:00被扫描,IF TIME仍然尽可能接近扫描时间允许的12:00执行。 但是,由于死区,IF TIME命令也可能多次执行。例如,如果iFIX在-扫描时间到+扫描时间范围扫描块,则它被扫描两次,如下所示:
如果块精确地在死区边缘被扫描,则iFIX扫描块三次,如下所示:
要防止多次执行,IF命令可以和TIME和GOTO命令一起使用,如下所示:
|
让 iFIX 帮助您提高效率,降低成本。 |