状态位指令用于对状态字的位进行处理。各状态位指令分别对下列条件之一做出反应,其中每个条件以状态字的一个或多个位来表示。
2)数学运算指令发生溢出()或存储溢出()。
3)算术运算功能的结果无序()。
4)数学运算函数的结果与0的关系有:
==0、<>0、>0、<0、≥0、≤0。
当状态位指令以串联方式连接时,该指令将根据与真值表将其信号状态校验的结果与前一逻辑运算结果合并。当状态位指令以并联方式连接时,该指令将根据“或”真值表将其结果与前一RLO合并。
1.异常位溢出
指令(异常位溢出)或(异常位溢出取反)触点符号用于识别上次执行数学运算指令时的溢出。检查指令执行后的结果是否超出了允许的正、负范围。串联使用时,扫描的结果将通过AND与RLO连接;并联使用时,扫描结果通过OR与RLO连接。
【例】 在图4-20所示程序中,I0.0的信号状态为“1”时将激活减法运算。相减的结果超出了整数的允许范围,则置位OV位。如果OV扫描的信号状态为“1”且程序段2的RLO为“1”,则置位Q4.0。
2.存储的异常位溢出(www.xing528.com)
(存储的异常位溢出)或(存储的异常位溢出取反)触点符号用于识别和存储数学运算函数中的锁存溢出。如果指令的结果超出了允许的负或正范围,则置位状态字中的OS位。与需要在执行后续数学运算函数前重写的OV位不同,OS位在溢出发生时存储。OS位将保持置位状态,直至离开该块。串联使用时,扫描的结果将通过AND与RLO连接;并联使用时,扫描结果通过OR与RLO连接。
图4-20 溢出位检测
3.无序异常位
(无序异常位)或(无序异常位取反)触点符号用于识别含浮点数的数学运算是否无序(也就是说,数学运算函数中的值是否有无效浮点数)。如果含浮点数的数学运算函数的结果无效,则信号状态扫描为“1”。如果CC1和CC0中的逻辑运算显示“无效”,信号状态扫描的结果将是“0”。串联使用时,扫描的结果将通过AND与RLO连接;并联使用时,扫描结果通过OR与RLO连接。
4.异常位BR存储器
(异常位BR存储器)或(异常位BR存储器取反)触点符号用于测试状态字中BR位的逻辑状态。串联使用时,扫描的结果将通过AND与RLO连接;并联使用时,扫描结果通过OR与RLO连接。BR位用于字处理向位处理的转变。
5.数学运算结果判断
这些触点符号用于识别数学运算函数的结果与“0”的大小关系。指令扫描状态字的条件代码位CC1和CC0,以确定结果与“0”的关系。串联使用时,扫描的结果将通过AND与RLO连接;并联使用时,扫描结果通过OR与RLO连接。
例如,触点符号是判断结果位不等于0,是判断结果位取反后是否小于等于“0”等。可参见本书4.5节内容。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。