产品描述
1FL6042-2AF21-1MB1参数详细
在STEP 7中可以对整数、长整数和实数进行加、减、乘、除算术运算。算术运算指令在累加器1和2中进行,在累加器2中的值作为被减数或被除数。算术运算的结果保存在累加器1中,累加器1原有的值被运算结果覆盖,累加器2中的值保持不变。
CPU在进行算术运算时,不必考虑RLO,对RLO也不产生影响。学习算术运算指令必须注意算术运算的结果将对状态字的某些位产生影响,这些位是:CC1和CC0,OV,OS。在位操作指令和条件跳转指令中,经常要对这些标志位进行判断来决定进行什么操作。
l +I 16位整数相加指令
l -I 16位整数相减指令
l *I 16位整数相乘指令
l / I 16位整数除法指令
l +D 32位整数相加指令
l -D 32位整数相减指令
l * D 32位整数相乘指令
l / D 32位整数除法指令
l MOD 32位整数除法取余数指令
例3.7.1
L MW0 // 将MW 0中的值装入累加器1低字
L MW2 // 将MW 2中的值装入累加器1低字,累加器1低字中的原值移入累加器2低字
+I // 将累加器l低字和累加器2中的低字相加
T MW10 // 将运算结果送到MW 10
* FBD 格式
与STL语句表指令不同处在于多了使能输入端EN和使能输出端ENO。只有当I 0.0=1时,才进行加法运算。如果运算的超出范围或者I 0.0=0,则Q 4.0=0。
指 令 | 说 明 |
RND | 将实数化整为较接近的整数。 |
RND+ | 将实数化整为大于或等于该实数的较小整数 |
RND- | 将实数化整为小于或等于该实数的较大整数 |
TRUNC | 取实数的整数部分(截尾取整) |
因为实数的数值范围远大于32位整数,所以有的实数不能成功地转换为32位整数。如果被转换的实数格式非法或超出了32位整数的表示范围,则在累加器1中得不到有效结果,而且状态字中的OV和OS被置1。
上面的指令都是将累加器1中的实数化整为32位整数,因化整的规则不同,所以在累加器1中得到的结果也不一致,如下表
执行的 指令 | 累加器l内容 | 说 明 | |
化整前 | 化整结果 | ||
RND | +99.5 | +100 | 将实数化整为较接近的整数 |
RND+ | +99.5 | +100 | 将实数化整为大于或等于该实数的较小整数 |
RND- | +99.5 | +99 | 将实数化整为小于或等于该实数的较大整数 |
TRUNC | +99.5 | +99 | 只取实数的整数部分(截尾取整) |
产品推荐