累加器ACCU是是常用语句表关键指令,应用非常广泛,通常都是用装载指令L把数据装载进累加器,在累加器中进行运算或处理之后,再用传送指令T把结果送至目的地址。特别备注:1、累加器ACCU用于语句表STL编程,梯形图LAD编程不使用ACCU;2、S7-300有两个累加器,即ACCU1和ACCU2。S7-400有四个累加器,即ACCU1~ACCU4。 装载指令L:把ACCU1的数据装载到ACCU2,然后清零ACCU1,再把目标地址数据装载到ACCU1。例如“L MW1”。 传送指令T:把ACCU1的数据传送至目标地址,此时ACCU1的数据保持不变。例如“T MW6”。 综上,在程序中,各地址数据之间的数据交换只能通过累加器进行,即累加器作用相当于数据中转站。 在STEP7输入下图中的语句表指令STL,打开仿真器并下载运行,点击程序监视(眼镜按钮),在仿真器中打开变量监控器观察MW1、MW3、MW5,为便于观察,所有数据类型设定为十进制Decimal:(见图1) ![]() 图1 新建STL程序并下载至仿真器运行 在仿真器中输入MW1数据为10,(见图2): ![]() 图2 观察程序运行后各累加器数据变化情况(见图3) ![]() 图3 继续,然后在仿真器中把MW3数据改为20(见图4) ![]() 图4 继续观察各累加器数据变化情况(见图5) ![]() 图5 仿真器(图6) ![]() 图6 总结一下: 1、第一行程序“L MW2”运行后,MW2的数据“10”装载至ACCU1; 2、第二行程序“L MW3”运行后,ACCU1中的数据“10”中转至ACCU2,然后MW3的数据“20”装载至ACCU1; 3、第三行程序“+I”运行后,ACCU1和ACCU2中的数据相加,计算结果数据“30”放在ACCU1,同时ACCU2清零; 4、第四行程序“T MW6”运行后,ACCU1中的数据“30”传送至MW6,此时ACCU1数据不变。 |
|