S7-200-PLC的指令系统基本指令3(堆栈指令)
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
堆栈操作指令
说明:
2、使用LRD,是读出最上端所存的最新数 据的专用指令,栈内的数据不发生移 动。
堆栈操作指令
堆栈使用示意图:LRD读栈
1
读取最上层的内
2
3
容,堆栈中的内
4
容不发生变化
5
6
7
8
9
堆栈操作指令
说明:
3、使用LPP指令,各数据按顺序向上 移动,后进的先出,将最上端的 数据读出,同该数据就从栈中消 失。
如果是最后一次使用栈内结果,就必须 是出栈指令LPP,若不是最后一次使用,则应 该用读栈指令LRD,去除结果后参加运算。
堆栈操作指令
说明2: 栈操作指令LPS、LRD、LPP在使用中可
以这样理解:除了对分支电路进行操作外,在 程序中没有其它作用。
在编写程序时,可以分两部分来分析: 一方面,要保证栈操作的正确性,入栈、 出栈要配对使用并且使用正确; 另一方面,在阅读程序时可以不看栈操 作指令,按梯形图掌握程序的正确性。
S7-200可编程序控制器
基本指令(三)
教学内容
LPS:进栈指令。 LRD:读栈指令。 LPP:出栈指令。
教学目标
价值目标:培养学生探索问题 的本质特 征的科学态度
知识目标:了解逻辑堆栈操作指令的基本 功能
能力目标:熟练运用堆栈指令进行梯形图 与 指令表的互换
教学难点
堆栈的原理及正确的运用
堆栈操作指令
说明:
逻辑堆栈指令可以嵌套使用,最多为9 层。为保证程序地址指针不发生错误,入栈指 令LPS和出栈指令LPP必须成对使用,最后一 次读栈操作应使用出栈指令LPP。下图为逻辑 堆栈指令的简单应用。
堆栈操作指令
堆栈使用示意图:LPS进栈
第一次使
1 2
用LPS指令
3
4
5
6
7
8
9
堆栈操作指令
堆栈操作指令
①LPS(入栈)指令:LPS指令把栈顶值复制后 压入堆栈,栈中原来数据依次下移一层,栈底值 压出丢失。
②LRD(读栈)指令:LRD指令把逻辑堆栈第二 层的值复制到栈顶,2-9层数据不变,堆栈没有 压入和弹出。但原栈顶的值丢失。
③LPP(出栈)指令:LPP指令把堆栈弹出一级 ,原第二级的值变为新的栈顶值,原栈顶数据从 栈内丢失。
堆栈操作指令
又称多分支回路指令 S7-200CN系列PLC使用一个9层堆栈来处 理所有逻辑操作。堆栈是一组能够存储和取 出数据的暂存单元,其特点是“先进后出”。 每一次进行入栈操作,新值放入栈顶,栈底 值丢失;每一次进行出栈操作,栈顶值出栈, 第2级堆栈内容上升到栈顶,栈底自动生成随 机数。逻辑堆栈指令主要用来完成对触点进 行复杂的连接
I0.3 I0.4
I0.L5PS
I0.6 I0.7
Q0.2 Q0.3 Q0.4
2 A I0.1 15 LD I0.6
3 LPS
16 LPS
4 A I0.2 17 A I0.7
5 = Q0.0 18 = Q0.4
6 LPP
I1.0 I1.1
Q0.5 Q0.6
7 = Q0.1 8 LD I0.3 9 LPS
I1.2
Q0.7
堆栈操作指令
I0.0 I0.1 I0.2 Q0.0
例1:一层堆栈 指令表
Q0.1
1 LD I0.0
I0.3 I0.4
Q0.2
I0.5 使用LPQP0指.3令
I0.6 I0.7
Q0.4
I1.0
Q0.5
2 A I0.1 3 LPS 4 A I0.2 5 = Q0.0 6 LPP 7 = Q0.1
I1L.P0 P
I1.1
Q0.5 Q0.6
7 = Q0.1 8 LD I0.3 9 LPS
I1.2
Q0.7
10 A I0.4
11 = Q0.2 12 LPP
I0.5 Q0.3
堆栈操作指令
I0.0 I0.1 I0.2 Q0.0
例1:一层堆栈
指令表
13 A I0.5
Q0.1
1 LD I0.0 14 = Q0.3
出栈
I1.1
Q0.6
I1.2
Q0.7
堆栈操作指令
例1:一层堆栈
I0.0 I0.1 I0.2 Q0.0
指令表
13 A
LPS
I0.3 I0.4
Q0.1 Q0.2
1 LD I0.0 2 A I0.1 3 LPS
14 =
I0.5 I0.6 I0.7
Q0.3 Q0.4
4 A I0.2 5 = Q0.0 6 LPP
堆栈操作指令
堆栈使用示意图:LPP出栈
1
2
第一次
3 4
使用LPP
5
6
7
8
9
堆栈操作指令
堆栈使用示意图:LPP出栈
第一次 使用LPP
1
2
第二层的内容上
3
移到第一层
4
5
第三层的内容上
6
移到第二层
7
8
9
堆栈操作指令
说明: 4、由于堆栈操作有其独特的顺序性,因
此要求堆栈的用法要求必须正确无误。堆栈只 要保证入栈次数和出栈次数相等就不会出现大 的问题,读栈不影响堆栈的指针的变化。
5、这些指令为独立指令,不带任何软元 件编号。
堆栈操作指令
I0.0 I0.1 I0.2 Q0.0
例1:一层堆栈 指令表
Q0.1
1 LD I0.0
I0.3 I0.4
2 A I0.1
Q0.2
3 LPS
入栈
分支点开I0.5
Q0.3
始,使用
LPSI指0.6令I0.7
Q0.4
I1.0 I1.1
Q0.5 Q0.6
I1.2
Q0.7
来自百度文库
10 A I0.4
11 = Q0.2 12 LPP
堆栈操作指令
例1:一层堆栈
I0.0 I0.1 I0.2 Q0.0
指令表
13 A I0.5
Q0.1
1 LD I0.0 14 = Q0.3
I0.3 I0.4
Q0.2
I0.L5PS
Q0.3
I0.6 I0.7
Q0.4
I1.0
LRD
Q0.5
I1.1
堆栈使用示意图:LPS进栈
第二次使
1 2
用LPS指令
3
4
5
6
7
8
9
堆栈操作指令
堆栈使用示意图:LPS进栈
第二次使 用LPS指令
1
2
3
4
将第一次内容
5 6
压入第2层
7
8
9
堆栈操作指令
堆栈使用示意图:LPS进栈
第三次使 用LPS指令
1
2
3
4
将第二次内容
5 6
压入第2层
7
8
9
又将第一次内
容从第2层再
压入第3层
读栈
20 A I1.0
21 = Q0.5
22 LRD
读栈
23 A Q1.1
24 = Q0.6 25 LPP
26 A I1.2
27 = Q0.7
堆栈操作指令
说明1: 入栈的目的就是要将当前的逻辑运算结
果暂时保存起来,然后就像没有入栈指令一样 完成本行指令。
再在入栈点上将逻辑运算结果读出来, 进行下一重输出行。
Q0.6
I1.2 LRD Q0.7
LPP
2 A I0.1 3 LPS 4 A I0.2 5 = Q0.0 6 LPP 7 = Q0.1 8 LD I0.3 9 LPS 10 A I0.4 11 = Q0.2 12 LPP
15 LD I0.6
16 LPS
17 A I0.7
18 = Q0.4
19 LRD