激活和去活 MCR 区域
12 状态位指令
12.1 状态位指令概述
描述
状态位指令是对状态字的位进行操作的逻辑指令(请参见 CPU 寄存器)。其中的各条 指令分别对下列条件之一做出反应,每条指令以状态字的一个或多个位来表示:
• 二进制结果位(BR)被置位(信号状态为 1)。
• 运算的结果通过下列方式之一与 0 相关: == 0、<> 0、> 0、< 0、>= 0、<= 0
。
• 运算发生溢出(UO)。
• 运算发生溢出(OV)或存储溢出(OS)。
当状态位指令以串联方式连接时,该指令将根据 And 真值表将其信号状态校验的结 果与前一逻辑运算结果合并。当状态位指令以并联方式连接时,该指令将根据 Or 真 值表将其结果与前一 RLO 合并。
状态字
状态字是 CPU 存储器中的一个寄存器,它所包含的位可通过位地址和字逻辑指令来 参照。状态字的结构:
BR CC1 CC0 OV OS OR STA RLO /FC 28 27 26 25 24 23 22 21 20 ...29
215...
可以通过下列函数求状态字位的值
• 通过整数算术运算
• 通过浮点数算术运算
长沙工控帮教育科技有限公司整理
12.2 OV:溢出异常位
符号
OV
描述
可使用溢出异常位指令来检测最后一个算术运算是否有溢出(OV)。如果在系统执行 算术运算后,结果超出了许可的负数范围或许可的正数范围,则会设置状态字(参见 CPU 寄存器)的 OV 位。指令将检查此位的信号状态。如果算术运算未出错,则复位 该位。
状态字
BR CC 1 CC 0 OV OS OR STA RLO FC 写 - - - X X X 1
举例
程序段 1 SUB_I EN
ENO IN2
OUT IN1 IW2
IW0 I 0.0
MW10
程序段 2
&
M 3.3
>=1 I 0.1
I 0.2
I 0.3
程序段 3
OV S Q 4.0
长沙工控帮教育科技有限公司整理
状态位指令
在输入 I0.0 的信号状态为 1 时会激活 SUB_I 框。如果算术运算(输入字 IW0 减输入 字 IW2)的结果超出了整数值的许可范围,则会置位状态字的 OV 位。OV 位的信号 检查结果为 1。如果 OV 位的检查结果为 1 且程序段 2 的 RLO 为 1 (如果输出 Q4.0 之前的 RLO 为 1),则会置位输出 Q4.0。
如果输入 I0.0 的信号状态为 0 (未激活),则 EN 和 ENO 的信号状态均为 0。如果 EN 的信号状态为 1 (已激活)且算术运算的结果超出范围,则 ENO 的信号状态为 0。
12.3 OS:存储的溢出异常位
符号
OS
描述
在与运算中,本指令将按照与运算真值表组合自身的检查结果和先前的逻辑运算结 果。在或运算运算中,则将按照或运算真值表组合。
可使用存储溢出异常位指令判断先前算术运算结果是否有溢出(存储溢出,OS)。如 果在系统执行算术运算后,结果超出了许可的负数范围或许可的负数值范围或者正 数值范围,则会设置状态字(参见 CPU 寄存器)的 OS 位。指令将检查此位的信号状 态。与 OV(溢出)位不同,即使在执行随后的算术运算时未出现错误,OS 位仍将保 留设置(参见溢出异常位)。
状态字
BR CC 1 CC 0 OV OS OR STA RLO FC 写 - - - X X X 1
长沙工控帮教育科技有限公司整理
举例
程序段 1 MUL_I EN
IN2 ENO OUT
IN2 ENO OUT
状态位指令
12.5 BR:BR 存取区异常位
符号
BIE BR
English German
描述
可以使用 BR 存取区异常位指令来检查状态字 BR 位(二进制结果)的信号状态(请参 见 CPU 寄存器)。
状态字
BR CC 1 CC 0 OV OS OR STA RLO FC 写 - - - X X X 1
举例
& Q 4.0
>=1 I 0.0
I 0.2
BR S
如果输入 I0.0 的信号状态为 1,或者输入 I0.2 的信号状态为 0,将会置位输出端 Q4.0;除了此逻辑运算结果外,BR 位的信号状态为 1 时也会如此。
长沙工控帮教育科技有限公司整理
状态位指令