西门子S7-300授权总经销商 6ES7370-0AA01-0AA0 假体模块 DM 370
6ES7370-0AA01-0AA0 SIMATIC S7-300,假体模块 DM 370,占位模块 更换模块时应用 |
算术指令组合累加器1和累加器2的内容。对于带有两个累加器的CPU,累加器2的内容保持不变。
对于带4个累加器的CPU,将累加器3的内容复制到累加器2中,将累加器4的内容复制到累加器3
中。累加器4的旧内容保持不变。
使用整数运算,您可以对
两个整数(16和32位)执行以下运算:
• +I ACCU 1 + ACCU 2,整型(16位)
• -I
• *I
• /I
ACCU 2 - ACCU 1,整型(16位)
ACCU 1 * ACCU 2,整型(16位)
ACCU 2 / ACCU 1,整型(16位)
• + 整型常数相加(16、32位)
• +D ACCU 1 + ACCU 2,长整型(32位)
• -D ACCU 2 - ACCU 1,长整型(32位)
• *D ACCU 1 * ACCU 2,长整型(32位)
• /D ACCU 2 / ACCU 1,长整型(32位)
• MOD 除法余数,长整型(32位)
参见使用整数算术指令时得出状态字的位数值。
S7-300 和S7-400 编程的语句表(STL)
参考手册, 05/2017, A5E41525031-AA
101
整型数学运算指令
7.2 使用整数算术指令时得出状态字的位数值
7.2 使用整数算术指令时得出状态字的位数值
描述
整数算术指令影响状态字中的下列位:CC1和CC0、OV和OS。
下表显示指令结果为整数(16位和32位)时状态字中各位的信号状态:
结果的有效范围 CC 1 CC 0 OV OS
0 (零) 0 0 0 *
16位:-32 768 0 (正数)
32位:2 147 483 647 >= 结果 > 0 (正数)
1 0 0 *
* 指令结果不影响OS位。
结果的无效范围 A1 A0 OV OS
下溢(加法)
16位:结果 = -65536
32位:结果 = -4 294 967 296
0 0 1 1
下溢(乘法)
16位:结果 < -32 768 (负数)
32位:结果 < -2 147 483 648 (负数)
0 1 1 1
溢出(加法、减法)
16位:结果 > 32 767 (正数)
32位:结果 > 2 147 483 647 (正数)
0 1 1 1
溢出(乘法、除法)
16位:结果 > 32 767 (正数)
32位:结果 > 2 147 483 647 (正数)
1 0 1 1
下溢(加法、减法)
16位:结果 < -32. 768 (负数)
32位:结果 < -2 147 483 648 (负数)
1 0 1 1
被0除 1 1 1 1
操作 A1 A0 OV OS
+D:结果 = -4 294 967 296 0 0 1 1
/D或MOD:除以0 1 1 1 1
S7-300和S7-400编程的语句表(STL)
102 参考手册, 05/2017, A5E41525031-AA
整型数学运算指令
7.3 +I ACCU 1 + ACCU 2,整型(16位)
7.3 +I ACCU 1 + ACCU 2,整型(16位)
格式
+I
描述
+I (16位整数相加)将ACCU 1-L的内容与ACCU 2-L中的内容相加,并将结果存储在ACCU 1-L中。
将ACCU 1-L和ACCU 2-L的内容解释为16位整数。执行该指令时不涉及RLO,也不会影响RLO。
作为指令运算结果的一个功能,将对状态字的位CC 1、CC 0、OS和OV进行设置。在发生溢出/下
溢时,该指令生成一个16位整数,而不是一个32位整数。
对于带2个累加器的CPU而言,累加器2的结果保持不变。
对于带4个累加器的CPU,还将累加器3的内容复制到累加器2中,将累加器4的内容复制到累加
器3中。累加器4的内容保持不变。
参见使用整数算术指令时得出状态字的位数值。
状态字
BR CC 1 CC 0 OV OS OR STA RLO /FC
写: - x x x x - - - -
生成状态位 CC 1 CC 0 OV OS
总和 = 0 0 0 0 - -32768 = 总和 > 0 1 0 0 -
总和 = -65536 0 0 1 1
65534 >= 总和 > 32767 0 1 1 1 -65535 0 1 0 0 -
65535 >= 差 > 32767 0 1 1 1 -65535 0 1 0 0 -
1073741824 >= 乘积 > 32767 1 0 1 1 -1073709056 I //当ACCU 2 > ACCU 1或IW12 > (IW14 + 100)时
JC NEXT //则条件跳转到跳转标签NEXT。
实例3
STL 解释
L MD20
L MD24
+D //ACCU 1和ACCU 2相加;将结果存储在ACCU 1中。
+ l# -200 //ACCU 1与-200相加;将结果存储在ACCU 1中。
T MD28
S7-300和S7-400编程的语句表(STL)
参考手册,05/2017,A5E41525031-AA 109
整型数学运算指令
7.8 +D ACCU 1 + ACCU 2,长整型(32位)
7.8 +D ACCU 1 + ACCU 2,长整型(32位)
格式
+D
描述
+D (32位整数相加)将ACCU 1的内容与ACCU 2中的内容相加,并将结果存储在ACCU 1中。将
ACCU 1的内容和ACCU 2的内容解释为32位整数。执行该指令时不涉及RLO,也不会影响RLO。
作为指令运算结果的一个功能,将对状态字的位CC 1、CC 0、OS和OV进行设置。
对于带2个累加器的CPU而言,累加器2的结果保持不变。
对于带4个累加器的CPU,还将累加器3的内容复制到累加器2中,将累加器4的内容复制到累加
器3中。累加器4的内容保持不变。
参见使用整数算术指令时得出状态字的位数值。
状态字
BR CC 1 CC 0 OV OS OR STA RLO /FC
写: - x x x x - - - -
生成状态位 CC 1 CC 0 OV OS
总和 = 0 0 0 0 - -2147483648 = 总和 > 0 1 0 0 -
总和 = -4294967296 0 0 1 1
4294967294 >= 总和 > 2147483647 0 1 1 1 -4294967295