数学状态标志

请遵循以下关于数学状态标志的使用规范。
说明
一组可通过指令直接访问的数学状态标志。这些标志仅能在梯形图例程中更新,它们并非标签,因此不适用别名。
状态标志
下表描述了该特定状态标志。
状态标志
说明
S:FS
“首次扫描”标志
以下情况下,控制器将首次扫描标志置位:
  • 控制器进入运行模式后首次对程序进行扫描
  • 在程序解除禁用后首次对程序进行扫描
  • 从 SFC 操作调用某个例程后,首次扫描该操作所属的步长。
首次扫描标志用于初始化数据,以便在后续扫描中使用。这也称为首次扫描位。
S:N
“负”标志
当算术或逻辑运算的结果是负数值时,控制器 (Controller) 会将“负”标志置位。可借助此标志来快速测试负值。
S:Z
“零”标志
当算术或逻辑运算的结果为零时,控制器 (Controller) 会将“零”标志置位。可借助此标志来快速测试零值。
启动可将该标志置位的指令时,将清除零标志。
S:V
“溢出”标志
控制器在以下情况下会将“溢出”标志置位:
  • 算术运算的结果导致溢出。
    例如,对 SINT 加 1 将在值从 127 变为 -128 时生成溢出。
  • 目标标签过小,无法容纳该值。
    例如,尝试将值 123,456 存储到 SINT 或 INT 标签中。
可以使用溢出标志来验证运算结果是否仍在范围内。
如果存储的数据为字符串类型,若字符串过长而超出目标标签的容纳范围,S:V 将置位。
如果适用,可以使用 OTE 或 OTL 指令将 S:V 置位。
选择
控制器属性 > “高级”选项卡 > 报告溢出故障
以启用或禁用报告溢出故障。
如果在计算数组下标时发生溢出,将触发一个轻微故障和一个严重故障,以指示索引超出范围。
S:C
“进位”标志
当算术运算导致生成最高有效位进位时,控制器会将“进位”标志置位。
只有使用整数值的 ADD 和 SUB 指令(而不是 + 和 – 运算符)时,才会影响此标志。
S:MINOR
轻微故障 (Minor Fault) 标志
当发生至少一个 轻微程序故障时,控制器将设置轻微故障标志。
可以使用轻微故障标签来测试是否发生了轻微故障。该位仅由编程故障(例如溢出)触发。而不会由电池故障触发。每次扫描开始时都将清除该位。
如果适用,可以使用 OTE 或 OTL 指令来显式将 S:MINOR 置位。
重要提示: 数学状态标志基于存储的值进行置位。对于通常不影响数学状态标志的指令,如果由于指令参数混合使用不同数据类型而进行类型转换,可能会影响数学状态标志。类型转换过程会将数学状态标志置位。
数组下标表达式
表达式不会根据算术运算的结果对状态标志进行置位。如果表达式溢出:
  • 若将控制器配置为触发轻微故障,则将触发一个轻微故障。
  • 将触发一个严重故障(类型 4,代码 20),因为结果值超出范围。
    小贴士: 如果数组下标过大(超出范围),则会触发一个严重故障(类型 4,代码 20)。
提供反馈
对本文档有问题或反馈吗? 请在这里提交您的反馈
Normal