数学状态标志
数学状态标志的确定应遵循本主题所述的原则。
说明
控制器 | 说明 |
|---|---|
CompactLogix 5380、ControlLogix 5580、Compact GuardLogix 5380、GuardLogix 5580 和 ControlLogix 5590 控制器 | 一组可通过指令直接访问的数学状态标志。这些标志仅能在梯形图例程中更新,它们并非标签,因此不适用别名。 |
CompactLogix 5370、ControlLogix 5570、Compact GuardLogix 5370 和 GuardLogix 5570 控制器 | 一组可通过指令直接访问的数学状态标志。这些标志可在所有类型的图例程中更新,但它们并非标签,因此不适用别名。 |
状态标志
状态标志 | 说明 (适用于 CompactLogix 5380、ControlLogix 5580、Compact GuardLogix 5380、GuardLogix 5580 和 ControlLogix 5590 控制器) | 说明 (适用于 CompactLogix 5370、ControlLogix 5570、Compact GuardLogix 5370 和 GuardLogix 5570 控制器) |
|---|---|---|
S:FS 首次扫描标志 | 以下情况下,控制器将首次扫描标志置位:
可以借助首次扫描标志来初始化数据,以便在后续扫描中使用。这也称为首个传递位。 | 以下情况下,控制器将首次扫描标志置位:
可以借助此标志来初始化数据,以便在后续扫描中使用。这也称为首个传递位。 |
S:N 负值标志 | 当算术或逻辑运算的结果为负值时,控制器将负值标志置位。可借助此标志来快速测试负值。 | 当算术或逻辑运算的结果为负值时,控制器将负值标志置位。可借助此标志来快速测试负值。 相比 CMP 指令,使用 S:N 的效率更高。 |
S:Z 零标志 | 当算术或逻辑运算的结果为零时,控制器将零标志置位。可借助此标志来快速测试零值。 启动可设置该标志的指令时,即可清除零标志。 | 当算术或逻辑运算的结果为零值时,控制器将零值标志置位。可借助此标志来快速测试零值。 |
S:V 溢出标志 | 控制器在以下情况下将溢出标志置位:
可以使用溢出标志来检查运算结果是否超出范围。 如果存储的数据为字符串型,若字符串过长而无法填入目标标签,S:V 将置位。
小贴士:
如果适用,可以使用 OTE 或 OTL 指令来设置 S:V。
单击“控制器属性”>“高级”选项卡 >“报告溢出故障”以启用或禁用报告溢出故障。 如果在计算数组下标时发生溢出,将产生一个轻微故障和一个严重故障(指示索引超出范围)。 | 控制器在以下情况下将溢出标志置位:
可以使用溢出标志来检查运算结果是否超出范围。 每次溢出标志置位时都会产生一个轻微故障。
小贴士:
如果适用,可以使用 OTE 或 OTL 指令来设置 S:V。
|
S:C 进位标志 | 当算术运算结果导致最高有效位进位时,控制器将进位标志置位。 只有针对整型值使用 ADD 和 SUB 指令(非 +/- 运算符)时,才会影响此标志。 | 当算术运算结果导致最高有效位进位时,控制器将进位标志置位。 |
S:MINOR 轻微故障标志 | 当发生至少一个轻微程序故障时,控制器将轻微故障标志置位。 可以使用轻微故障标签来测试是否发生了轻微故障。该位仅能由编程故障触发(例如溢出),而不会由电池故障触发。每次扫描开始时都将清除该位。
小贴士:
如果适用,可以使用 OTE 或 OTL 指令来显式设置 S:MINOR。
| 当发生至少一个轻微程序故障时,控制器将轻微故障标志置位。 可使用轻微故障标签来测试是否发生了轻微故障并采取适当措施。该位仅能由编程故障触发(例如溢出),而不会由电池故障触发。每次扫描开始时都将清除该位。
小贴士:
如果适用,可以使用 OTE 或 OTL 指令来显式设置 S:MINOR。
|
重要提示:
数学状态标志基于存储的值进行设置。对于通常不影响数学状态标志的指令,如果由于指令参数混合使用不同数据类型而进行类型转换,可能会影响数学状态标志。类型转换过程会设置数学状态标志。
数组下标表达式
控制器 | 说明 |
|---|---|
CompactLogix 5380、ControlLogix 5580、Compact GuardLogix 5380、GuardLogix 5580 和 ControlLogix 5590 控制器 | 表达式不会根据算术运算的结果设置状态标志。如果表达式溢出:
|
CompactLogix 5370、ControlLogix 5570、Compact GuardLogix 5370 和 GuardLogix 5570 控制器 | 表达式根据算术运算的结果设置状态标志。如果数组下标以表达式表示,则表达式和指令都会产生轻微故障。 |
小贴士:
如果数组下标过大(超出范围),则会产生一个严重故障(类型 4,代码 20)。
提供反馈