S7-200 PLC的指令系统基本指令3(堆栈指令)
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
高
级
第二次使 用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层
张树成
堆栈操作指令
说明:
东 风
校 电
可以直接编程。从堆栈使用上来讲,LPS指令 控
的作用是把栈顶值复制后压入堆栈。
教 研
室
张树成
堆栈操作指令
东
LRD:读栈指令
风
作用:读出存储。中间分支电路使用。
高 级
在梯形图分支结构中,当新母线左侧为
技 工
主逻辑块时,LPS开始右侧的第一个从逻辑块 学
编程,LRD开始第二个以后的从逻辑块编程。
学 校
I0.6 I0.7
Q0.4
6 LPP
电 控
I1.0
Q0.5
7 = Q0.1
教
I1.1
Q0.6
8 LD I0.3 9 LPS
研 室
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
东 风
例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
2 A I0.1 3 LPS
15 LD I0.6 16 LPS
级 技 工
I0.L5PS
Q0.3
4A 5=
I0.2 17 A Q0.0 18 =
I0.7 Q0.4
校 电
控
I0.4 Q0.3
教 研
室
张树成
堆栈操作指令 例3:二层堆栈 东
LPS
指令表
风
I0.1 I0.2 I0.3 Q0.0
1 LD I0.1
高 级
技
M1.0 Q0.1
工
学
M1.1 M1.2 Q0.2
校 电
控
I0.4 Q0.3
教 研
室
张树成
堆栈操作指令 例3:二层堆栈 东
LPS
指令表
风
I0.1 I0.2 I0.3 Q0.0
堆栈操作指令
ALDI0.0 I0.1
I0.2
LPS 电路块
I0.3 I0.4 I0.5 I0.6
I0.7
I1.0 I1.1
Q0.0 Q0.1
Q0.2 Q0.3
例2:一层堆栈(并用ALD、OLD指令)
东
指令表
风
1 LD I0.0
高
级
2 LPS
技
3 LD I0.1
工
4 A I0.2
学
5 ALD
校
6 = Q0.0
6 LPP
19 LRD
读栈
20 A I1.0
7 = Q0.1
21 = Q0.5
8 LD I0.3 22 LRD
读栈
9 LPS
23 A Q1.1
电 控 教 研 室
I1.2 LRD Q0.7
10 A 11 =
I0.4 24 = Q0.6
Q0.2 25 LPP
LPP
12 LPP
张树成
26 A
I1.2
27 = Q0.7
3 A I0.2
4 LPS
第二层入栈
工 学
M1.1 M1.2 Q0.2
5 A I0.3
校 电
6 = Q0.0
高
级
2、使用LRD,是读出最上端所存的最新数 技
据的专用指令,栈内的数据不发生移
工 学
动。
校
电
控
教
研
室
张树成
堆栈操作指令
东
堆栈使用示意图:LRD读栈
风
高
级
1 2 3 4 5
读取最上层的内 容,堆栈中的内 容不发生变化
技 工 学 校
6
电
7
控
8
教
9
研
室
张树成
堆栈操作指令
说明:
东 风
高
3、使用LPP指令,各数据按顺序向上
级 技
移动,后进的先出,将最上端的
工 学
数据读出,同该数据就从栈中消
校 电
失。
控
教
研
室
张树成
堆栈操作指令
东
堆栈使用示意图:LPP出栈
风
高
级
1
2
第一次
3 4
技 工 学
使用LPP
5
校
6
电
7
控
8
教
9
研
室
张树成
堆栈操作指令
东
堆栈使用示意图:LPP出栈
风
高
级
第一次
1
2
第二层的内容上
3
移到第一层
4
技 工 学
电 控
教
研
室
张树成
堆栈操作指令
I0.0 I0.1
LRD
I0.2
I0.3 I0.4 I0.5 I0.6
I0.7
为并联 电路块
OLD
I1.0 I1.1
Q0.0 Q0.1
Q0.2 Q0.3
例2:一层堆栈(并用ALD、OLD指令)
东
指令表
风
1 LD I0.0
高
级
2 LPS
技
3 LD I0.1
工
4 A I0.2
I0.3 I0.4
I0.5 I0.6 ALD
I0.7
并联电 路块
I1.0 I1.1
Q0.0 Q0.1
Q0.2 Q0.3
例2:一层堆栈(并用ALD、OLD指令)
东
指令表
风
1 LD I0.0 13 ALD
高
2 LPS
14 = Q0.1
级 技
3 LD I0.1
工
4 A I0.2
学
5 ALD
校
6 = Q0.0
1 LD I0.1
2 LPS
第一层入栈
高 级 技
LPS
M1.0 Q0.1
3 A I0.2
工
学
M1.1 M1.2 Q0.2
校 电
控
I0.4 Q0.3
教 研
室
张树成
堆栈操作指令
例3:二层堆栈
东
LPS
指令表
风
I0.1 I0.2 I0.3 Q0.0
1 LD I0.1
2 LPS
第一层入栈
高 级 技
LPS
M1.0 Q0.1
学
5 ALD
校
6 = Q0.0
电 控
7 LRD
教
8 LD I0.3
研
9 A I0.4
室
10 LD I0.5
11 A I0.6
12 OLD
张树成
堆栈操作指令
I0.0 I0.1 I0.2
I0.3 I0.4
I0.5 I0.6 ALD
I0.7
并联电 路块
I1.0 I1.1
Q0.0 Q0.1
Q0.2 Q0.3
校 电
从堆栈使用上来讲,LRD读取最近的LPS压入 控
堆栈的内容,而堆栈本身不进行Push和Pop工
教 研
作。
室
张树成
堆栈操作指令
东
LPP:出栈指令
风
作用:读出存储或复位。 分支电路结束
高 级
指令。
技 工
在梯形图分支结构中,LPP用于LPS产生 学
的新母线右侧的最后一个从逻辑块编程,它
校 电
在读完离它最近的LPS压入堆栈内容同时复位 控
教 研
的下一段。
室
张树成
堆栈操作指令
东
堆栈使用示意图:LPS进栈
风
高
级
第一次使
1 2
用LPS指令
3
4
技 工 学
5
校
6
电
7
控
8
教
9
研
室
张树成
堆栈操作指令
东
堆栈使用示意图:LPS进栈
风
高
级
第二次使
1 2
用LPS指令
3
4
技 工 学
5
校
6
电
7
控
8
教
9
研
室
张树成
堆栈操作指令
东
堆栈使用示意图:LPS进栈
风
例2:一层堆栈(并用ALD、OLD指令)
东
指令表
风
1 LD I0.0
高
级
2 LPS
技
3 LD I0.1
工
4 A I0.2
学
5 ALD
校
6 = Q0.0
电 控
7 LRD
教
8 LD I0.3
研
9 A I0.4
室
10 LD I0.5
11 A Baidu Nhomakorabea0.6
12 OLD
张树成
堆栈操作指令
I0.0 I0.1 I0.2
校
I0.6 I0.7
Q0.4
6 LPP
出栈
电 控
I1.0
Q0.5
7 = Q0.1
教
I1.1
Q0.6
研 室
I1.2
Q0.7
张树成
堆栈操作指令
例1:一层堆栈
I0.0 I0.1 I0.2 Q0.0
指令表
13 A I0.5
东 风
Q0.1
1 LD I0.0 14 = Q0.3
高
LPS
I0.3 I0.4
Q0.2
如果是最后一次使用栈内结果,就必须
教 研
是出栈指令LPP,若不是最后一次使用,则应 室
该用读栈指令LRD,去除结果后参加运算。
张树成
堆栈操作指令
东
说明2:
风
栈操作指令LPS、LRD、LPP在使用中可
高 级
以这样理解:除了对分支电路进行操作外,在
技 工
程序中没有其它作用。
学
在编写程序时,可以分两部分来分析:
电 控
7 LRD
教
8 LD I0.3
研
9 A Q0.4
室
10 LD Q0.5
11 A Q0.6
12 OLD
张树成
堆栈操作指令
I0.0 I0.1 I0.2
Q0.0
I0.3 I0.4
Q0.1
并联电 I0.5 I0.6
路块
I0.7
ALD Q0.2
I1.0 Q0.3 LPP
I1.1
例2:一层堆栈(并用ALD、OLD指令)
Q0.1
1 LD I0.0 14 = Q0.3
高
I0.3 I0.4
Q0.2
2 A I0.1 3 LPS
15 LD I0.6 16 LPS
级 技 工
I0.L5PS
Q0.3
4A 5=
I0.2 Q0.0
17 A 18 =
I0.7 Q0.4
学 校
I0.6 I0.7 I1.0 I1.1
Q0.4
LRD
Q0.5 Q0.6
电 控
教
研
室
张树成
堆栈操作指令
I0.0 I0.1
LRD
I0.2
I0.3 I0.4 I0.5 I0.6
I0.7
I1.0 I1.1
Q0.0 Q0.1
Q0.2 Q0.3
例2:一层堆栈(并用ALD、OLD指令)
东
指令表
风
1 LD I0.0
高
级
2 LPS
技
3 LD I0.1
工
4 A I0.2
学
5 ALD
校
6 = Q0.0
第2级堆栈内容上升到栈顶,栈底自动生成随
教 研
机数。逻辑堆栈指令主要用来完成对触点进 室
行复杂的连接
张树成
堆栈操作指令
东
LPS:入栈指令(分支电路开始指令)
风
作用:运算存储。
高 级
从梯形图中的分支结构中可以形象地看
技 工
出,它用于生成一条新的母线,其左侧为原 学
来的主逻辑块,右侧为新的从逻辑块,因此
2 A I0.1
级 技
3 LPS
工
I0.5
Q0.3
4 A I0.2
学
5 = Q0.0
校
I0.6 I0.7
Q0.4
6 LPP
电 控
I1L.P0 P
Q0.5
7 = Q0.1
教
I1.1
Q0.6
8 LD I0.3 9 LPS
研 室
I1.2
Q0.7
10 A I0.4
11 = Q0.2
12 LPP
张树成
堆栈操作指令
东
指令表
风
1 LD I0.0 13 ALD
高
2 LPS
14 = Q0.1
级 技
3 LD I0.1 15 LPP
工
4 A I0.2 16 A I0.7
学
5 ALD 6 = Q0.0 7 LRD 8 LD I0.3
17 = 18 LD 19 A 20 ALD
Q0.2
连 续
I1.0 输
I1.1
出 形
式
校 电 控 教 研
使用LPP
5
第三层的内容上
校
6
移到第二层
电
7
控
8
教
9
研
室
张树成
堆栈操作指令
东
堆栈使用示意图:LPP出栈
风
高
级
1
2
第二次
3 4
技 工 学
使用LPP
5
校
6
电
7
控
8
教
9
研
室
张树成
堆栈操作指令
东
堆栈使用示意图:LPP出栈
风
高
级
第二次
1
2
原第三层的内容
3
又上移到第一层
4
技 工 学
使用LPP
5
校
6
电
7
控
8
教
9
研
室
张树成
堆栈操作指令
东
堆栈使用示意图:LPP出栈
风
高
级
1
2
第三次
3 4
技 工 学
使用LPP
5
校
6
电
7
控
8
教
9
研
室
张树成
堆栈操作指令
说明:
东 风
4、由于堆栈操作有其独特的顺序性,因
高 级
此要求堆栈的用法要求必须正确无误。堆栈只 技
要保证入栈次数和出栈次数相等就不会出现大
工 学
的问题,读栈不影响堆栈的指针的变化。
校
电
控
5、这些指令为独立指令,不带任何软元
教 研
件编号。
室
张树成
堆栈操作指令
例1:一层堆栈
I0.0 I0.1 I0.2 Q0.0
指令表
东 风
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
该条新母线。从堆栈使用上来讲,LPP把堆栈
教 研
弹处一级,堆栈内容依次上移。
室
张树成
堆栈操作指令
说明:
东 风
高
级
1.在可编程控制器中有9个被称为栈的记 技
忆运算中间结果的存储器。使用一次LPS指令,工学
就将此时的运算结果送入栈的第一段存储。再 校
用LPS指令,又将该时的运算结果送入的第一
电 控
段存储,而将先前送入存储的数据依次移到栈
S7-200可编程序控制器
基本指令(三)
张树成
堆栈操作指令
东
又称多分支回路指令
风
S7-200CN系列PLC使用一个9层堆栈来处
高 级
理所有逻辑操作。堆栈是一组能够存储和取
技 工
出数据的暂存单元,其特点是“先进后出”。 学
每一次进行入栈操作,新值放入栈顶,栈底
校 电
值丢失;每一次进行出栈操作,栈顶值出栈, 控
9 A I0.4 21 = Q0.3
室
10 LD I0.5 22 MEND
11 A I0.6
12 OLD
张树成
堆栈操作指令
东
说明1:
风
入栈的目的就是要将当前的逻辑运算结
高 级
果暂时保存起来,然后就像没有入栈指令一样 技
完成本行指令。
工 学
再在入栈点上将逻辑运算结果读出来,
校 电
进行下一重输出行。
控
校 电
一方面,要保证栈操作的正确性,入栈、控
出栈要配对使用并且使用正确;
教 研
另一方面,在阅读程序时可以不看栈操 室
作指令,按梯形图掌握程序的正确性。
张树成
堆栈操作指令 例3:二层堆栈 东
指令表
风
I0.1 I0.2 I0.3 Q0.0
1 LD I0.1
高 级
技
M1.0 Q0.1
工
学
M1.1 M1.2 Q0.2
电
控
I1.0
Q0.5
教
I1.1
Q0.6
研 室
I1.2
Q0.7
张树成
堆栈操作指令
例1:一层堆栈
I0.0 I0.1 I0.2 Q0.0
指令表
东 风
Q0.1
1 LD I0.0
高
I0.3 I0.4
Q0.2
2 A I0.1
级 技
3 LPS
工
I0.5 使用LPQP0指.3令 4 A I0.2
学
5 = Q0.0