数学状态标志

数学状态标志的确定应遵循本主题所述的原则。
说明
控制器
说明
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
首次扫描标志
以下情况下,控制器将首次扫描标志置位:
  • 控制器进入运行模式后首次对程序进行扫描
  • 在程序解除禁用后首次进行扫描
  • 从 SFC 操作调用某个例程后,首次扫描该操作所属的程序步。
可以借助首次扫描标志来初始化数据,以便在后续扫描中使用。这也称为首个传递位。
以下情况下,控制器将首次扫描标志置位:
  • 控制器进入运行模式后首次对程序进行扫描
  • 在程序解除禁用后首次进行扫描
  • 从 SFC 操作调用某个例程后,首次扫描该操作所属的程序步。
可以借助此标志来初始化数据,以便在后续扫描中使用。这也称为首个传递位。
S:N
负值标志
当算术或逻辑运算的结果为负值时,控制器将负值标志置位。可借助此标志来快速测试负值。
当算术或逻辑运算的结果为负值时,控制器将负值标志置位。可借助此标志来快速测试负值。
相比 CMP 指令,使用 S:N 的效率更高。
S:Z
零标志
当算术或逻辑运算的结果为零时,控制器将零标志置位。可借助此标志来快速测试零值。
启动可设置该标志的指令时,即可清除零标志。
当算术或逻辑运算的结果为零值时,控制器将零值标志置位。可借助此标志来快速测试零值。
S:V
溢出标志
控制器在以下情况下将溢出标志置位:
  • 数学运算的结果导致溢出。
    例如,当值从 127 到 -128 时,向 SINT 加 1 会生成溢出。
  • 目标标签太小,无法容纳该值。
    例如,如果尝试将值 123,456 存储到 SINT 或 INT 标签。
可以使用溢出标志来检查运算结果是否超出范围。
如果存储的数据为字符串型,若字符串过长而无法填入目标标签,S:V 将置位。
小贴士: 如果适用,可以使用 OTE 或 OTL 指令来设置 S:V。
单击“控制器属性”>“高级”选项卡 >“报告溢出故障”
以启用或禁用报告溢出故障。
如果在计算数组下标时发生溢出,将产生一个轻微故障和一个严重故障(指示索引超出范围)。
控制器在以下情况下将溢出标志置位:
  • 数学运算的结果导致溢出。
    例如,当值从 127...-128 时,向 SINT 加 1 会生成溢出。
  • 目标标签太小,无法容纳该值。
    例如,如果尝试将值 123,456 存储到 SINT 或 INT 标签。
可以使用溢出标志来检查运算结果是否超出范围。
每次溢出标志置位时都会产生一个轻微故障。
小贴士: 如果适用,可以使用 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 控制器
表达式不会根据算术运算的结果设置状态标志。如果表达式溢出:
  • 将产生一个轻微故障(前提是将控制器配置为产生轻微故障)。
  • 将产生一个严重故障(类型 4,代码 20),指示结果值超出范围。
CompactLogix 5370、ControlLogix 5570、Compact GuardLogix 5370 和 GuardLogix 5570 控制器
表达式根据算术运算的结果设置状态标志。如果数组下标以表达式表示,则表达式和指令都会产生轻微故障。
小贴士: 如果数组下标过大(超出范围),则会产生一个严重故障(类型 4,代码 20)。
提供反馈
对本文档有问题或反馈吗? 请在这里提交您的反馈
Normal