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