搬家第44天-tep7STL练习18:累加器操作

前面的学习多次涉及了累加器,今天有点时间学习一下累加器的操作指令。先学习TAK指令,将累加器1和累加器2数据进行交换,写下面的STL代码
 L MD10
L MD14
<=R
JC DES1
-R
T MD18
DES1: TAK
-R
T MD18
上面的代码在累加器1中装入数值MD10,在累加器2中装入MD14,比较这两个数据,如果累加器1小于等于累加器2,跳转到DES1,把累加器1和累加器2数据交换,注意是累加器1和累加器2数据交换,不是MD10和MD14进行数据交换,交换后累加器1数值减去累加器2数值,结果放入MD18。如果前面累加器1数值大于累加器2,则直接做减法,累加器1数值减去累加器2数值,结果放入MD18
 
如果是300PLC有2个累加器,POP指令可以将累加器2的数值放入累加器1,累加器2的数值不变。如果是S7 400有四个累加器,POP指令把累加器2的数据给累加器1,累加器3的数据给累加器2,累加器4的数据给累加器3,累加器4数据不变。比如有下面的代码:
L 123
L 456
T MW10
POP
T MW12
这段代码先把123放入累加器1,然后把456放入累加器1,累加器2数值变成123,这么一来T MW10就是将累加器1的456给了MW10。POP指令一执行,累加器2的数值123给累加器1,累加器2还是123,T MW12的结果就是让MW12的数值为123.
 
PUSH指令与POP指令相反,如果只有2个累加器,就把累加器1的数值给累加器2,累加器1不变;如果有4个累加器,就把累加器3的数值给累加器4,累加器2的数值给累加器3,累加器1的数值给累加器2,累加器1数值不变。比如有以下代码:
L 123
L 456
T MW14
PUSH
+I
T MW16
这段代码先把123放入累加器1,然后然后把456放入累加器1,累加器2数值变成123,这么一来T MW14就是将累加器1的456给了MW14。PUSH指令一执行,累加器1的456传递给累加器2,两个累加器都变成了456,做加法数值就是912,最后累加器1数值为912,T MW16执行完,MW16数值为912
posted @ 2021-03-13 20:31  来自金沙江的小鱼  阅读(449)  评论(0编辑  收藏  举报