资源描述
张张 树树 成成 基本指令(三)S7-200可编程序控制器张张 树树 成成堆栈操作指令东东风风高高级级技技工工学学校校电电控控教教研研室室 又称多分支回路指令多分支回路指令 S7-200CN系列PLC使用一个9层堆栈来处理所有逻辑操作。堆栈是一组能够存储和取出数据的暂存单元,其特点是“先进后出”。每一次进行入栈操作,新值放入栈顶,栈底值丢失;每一次进行出栈操作,栈顶值出栈,第2级堆栈内容上升到栈顶,栈底自动生成随机数。逻辑堆栈指令主要用来完成对触点进行复杂的连接张张 树树 成成堆栈操作指令东东风风高高级级技技工工学学校校电电控控教教研研室室LPS:入栈指令(分支电路开始指令)作用:运算存储。从梯形图中的分支结构中可以形象地看出,它用于生成一条新的母线,其左侧为原来的主逻辑块,右侧为新的从逻辑块,因此可以直接编程。从堆栈使用上来讲,LPS指令的作用是把栈顶值复制后压入堆栈。张张 树树 成成堆栈操作指令东东风风高高级级技技工工学学校校电电控控教教研研室室LRD:读栈指令 作用:读出存储。中间分支电路使用。在梯形图分支结构中,当新母线左侧为主逻辑块时,LPS开始右侧的第一个从逻辑块编程,LRD开始第二个以后的从逻辑块编程。从堆栈使用上来讲,LRD读取最近的LPS压入堆栈的内容,而堆栈本身不进行Push和Pop工作。张张 树树 成成堆栈操作指令东东风风高高级级技技工工学学校校电电控控教教研研室室LPP:出栈指令 作用:读出存储或复位。分支电路结束 指令。在梯形图分支结构中,LPP用于LPS产生的新母线右侧的最后一个从逻辑块编程,它在读完离它最近的LPS压入堆栈内容同时复位该条新母线。从堆栈使用上来讲,LPP把堆栈弹处一级,堆栈内容依次上移。张张 树树 成成东东风风高高级级技技工工学学校校电电控控教教研研室室说明:1.在可编程控制器中有9个被称为栈的记忆运算中间结果的存储器。使用一次LPS指令,就将此时的运算结果送入栈的第一段存储。再用LPS指令,又将该时的运算结果送入的第一段存储,而将先前送入存储的数据依次移到栈的下一段。堆栈操作指令张张 树树 成成123456789东东风风高高级级技技工工学学校校电电控控教教研研室室堆栈使用示意图:堆栈使用示意图:LPS进栈进栈第一次使第一次使用用LPSLPS指令指令1堆栈操作指令张张 树树 成成123456789东东风风高高级级技技工工学学校校电电控控教教研研室室堆栈使用示意图:堆栈使用示意图:LPS进栈进栈第二次使第二次使用用LPSLPS指令指令1堆栈操作指令张张 树树 成成123456789东东风风高高级级技技工工学学校校电电控控教教研研室室堆栈使用示意图:堆栈使用示意图:LPS进栈进栈第二次使第二次使用用LPSLPS指令指令12将第一次内容将第一次内容压入第压入第2层层堆栈操作指令张张 树树 成成123456789东东风风高高级级技技工工学学校校电电控控教教研研室室堆栈使用示意图:堆栈使用示意图:LPS进栈进栈第三次使第三次使用用LPSLPS指令指令123将第二次内容将第二次内容压入第压入第2层层又将第一次内又将第一次内容从第容从第2层再层再压入第压入第3层层堆栈操作指令张张 树树 成成堆栈操作指令东东风风高高级级技技工工学学校校电电控控教教研研室室说明:2、使用LRD,是读出最上端所存的最新数 据的专用指令,栈内的数据不发生移 动。张张 树树 成成123456789东东风风高高级级技技工工学学校校电电控控教教研研室室堆栈使用示意图:堆栈使用示意图:LRD读栈读栈123读取最上层的内读取最上层的内容容,堆栈中的内堆栈中的内容不发生变化容不发生变化堆栈操作指令张张 树树 成成堆栈操作指令东东风风高高级级技技工工学学校校电电控控教教研研室室说明:3、使用LPP指令,各数据按顺序向上 移动,后进的先出,将最上端的 数据读出,同该数据就从栈中消 失。张张 树树 成成123456789东东风风高高级级技技工工学学校校电电控控教教研研室室堆栈使用示意图:堆栈使用示意图:LPP出栈出栈123第一次使用LPP堆栈操作指令张张 树树 成成123456789堆栈操作指令东东风风高高级级技技工工学学校校电电控控教教研研室室堆栈使用示意图:堆栈使用示意图:LPP出栈出栈12第一次使用LPP第二层的内容上移到第一层第三层的内容上移到第二层张张 树树 成成123456789东东风风高高级级技技工工学学校校电电控控教教研研室室堆栈使用示意图:堆栈使用示意图:LPP出栈出栈12第二次使用LPP堆栈操作指令张张 树树 成成123456789东东风风高高级级技技工工学学校校电电控控教教研研室室堆栈使用示意图:堆栈使用示意图:LPP出栈出栈1第二次使用LPP原第三层的内容又上移到第一层堆栈操作指令张张 树树 成成123456789东东风风高高级级技技工工学学校校电电控控教教研研室室堆栈使用示意图:堆栈使用示意图:LPP出栈出栈1第三次使用LPP堆栈操作指令张张 树树 成成东东风风高高级级技技工工学学校校电电控控教教研研室室说明:4、由于堆栈操作有其独特的顺序性,因此要求堆栈的用法要求必须正确无误。堆栈只堆栈只要保证入栈次数和出栈次数相等要保证入栈次数和出栈次数相等就不会出现大的问题,读栈不影响堆栈的指针的变化。5、这些指令为独立指令,不带任何软元件编号。堆栈操作指令张张 树树 成成东东风风高高级级技技工工学学校校电电控控教教研研室室例1:一层堆栈 指令表1LD I0.02A I0.1堆栈操作指令I0.0 I0.1 I0.2Q0.0Q0.1I0.3 I0.4Q0.2I0.5Q0.3I1.0 Q0.4Q0.5I0.6 I0.7Q0.6I1.2Q0.7I1.1分支点开分支点开始,使用始,使用LPSLPS指令指令3 LPS入栈张张 树树 成成东东风风高高级级技技工工学学校校电电控控教教研研室室例1:一层堆栈 指令表1LD I0.02A I0.13 LPS出栈4 A I0.25 Q0.06 LPP7 Q0.1I0.0 I0.1 I0.2Q0.0Q0.1I0.3 I0.4Q0.2I0.5Q0.3I1.0 Q0.4Q0.5I0.6 I0.7Q0.6I1.2Q0.7I1.1使用使用LPPLPP指令指令堆栈操作指令张张 树树 成成东东风风高高级级技技工工学学校校电电控控教教研研室室例1:一层堆栈 指令表1LD I0.02A I0.13 LPS4 A I0.25 Q0.06 LPP7 Q0.18 LD I0.3堆栈操作指令I0.0 I0.1 I0.2Q0.0Q0.1I0.3 I0.4Q0.2I0.5Q0.3I1.0 Q0.4Q0.5I0.6 I0.7Q0.6I1.2Q0.7I1.1LPS9 LPS10 A I0.411 Q0.2LPP12 LPP13 A I0.514 Q0.3张张 树树 成成东东风风高高级级技技工工学学校校电电控控教教研研室室例1:一层堆栈 指令表1LD I0.02A I0.13 LPS4 A I0.25 Q0.06 LPP7 Q0.18 LD I0.39 LPS10 A I0.411 Q0.213 A I0.514 Q0.312 LPPI0.0 I0.1 I0.2Q0.0Q0.1I0.3 I0.4Q0.2I0.5Q0.3I1.0 Q0.4Q0.5I0.6 I0.7Q0.6I1.2Q0.7I1.1LPS15 LD I0.616 LPS17 A I0.718 Q0.4堆栈操作指令张张 树树 成成东东风风高高级级技技工工学学校校电电控控教教研研室室例1:一层堆栈 指令表1LD I0.02A I0.13 LPS4 A I0.25 Q0.06 LPP7 Q0.18 LD I0.39 LPS10 A I0.411 Q0.213 A I0.514 Q0.312 LPP15 LD I0.616 LPS17 A I0.718 Q0.4I0.0 I0.1 I0.2Q0.0Q0.1I0.3 I0.4Q0.2I0.5Q0.3I1.0 Q0.4Q0.5I0.6 I0.7Q0.6I1.2Q0.7I1.1LRDLRDLPS19 LRD20 A I1.021 Q0.5读栈读栈22 LRD23 A Q1.124 Q0.6读栈读栈LPP25 LPP26 A I1.227 Q0.7堆栈操作指令张张 树树 成成东东风风高高级级技技工工学学校校电电控控教教研研室室例2:一层堆栈(并用ALD、OLD指令)指令表1 LD I0.0堆栈操作指令I0.0 I0.1Q0.0I0.2I0.3 I0.4Q0.1I0.5 I0.6I0.7Q0.2I1.0Q0.3I1.1LPS电路块2 LPS3 LD I0.14 A I0.2ALD5 ALD6 =Q0.0张张 树树 成成东东风风高高级级技技工工学学校校电电控控教教研研室室例2:一层堆栈(并用ALD、OLD指令)指令表1 LD I0.02 LPS3 LD I0.14 A I0.25 ALD6 =Q0.0堆栈操作指令I0.0 I0.1Q0.0I0.2I0.3 I0.4Q0.1I0.5 I0.6I0.7Q0.2I1.0Q0.3I1.1LRD张张 树树 成成东东风风高高级级技技工工学学校校电电控控教教研研室室例2:一层堆栈(并用ALD、OLD指令)指令表1 LD I0.02 LPS3 LD I0.14 A I0.25 ALD6 Q0.07 LRD8 LD I0.39 A I0.410 LD I0.511 A I0.612 OLD 堆栈操作指令I0.0 I0.1Q0.0I0.2I0.3 I0.4Q0.1I0.5 I0.6I0.7Q0.2I1.0Q0.3I1.1OLDLRD为并联为并联电路块电路块张张 树树 成成东东风风高高级级技技工工学学校校电电控控教教研研室室例2:一层堆栈(并用ALD、OLD指令)指令表1 LD I0.02 LPS3 LD I0.14 A I0.25 ALD6 Q0.07 LRD8 LD I0.39 A I0.410 LD I0.511 A I0.612 OLD 堆栈操作指令I0.0 I0.1Q0.0I0.2I0.3 I0.4Q0.1I0.5 I0.6I0.7Q0.2I1.0Q0.3I1.1ALD并联电并联电路块路块张张 树树 成成东东风风高高级级技技工工学学校校电电控控教教研研室室例2:一层堆栈(并用ALD、OLD指令)指令表1 LD I0.02 LPS3 LD I0.14 A I0.25 ALD6 Q0.07 LRD8 LD I0.39 A Q0.410 LD Q0.511 A Q0.612 OLD 13 ALD 14 Q0.1 堆栈操作指令I0.0 I0.1Q0.0I0.2I0.3 I0.4Q0.1I0.5 I0.6I0.7Q0.2I1.0Q0.3I1.1并联电并联电路块路块ALD张张 树树 成成东东风风高高级级技技工工学学校校电电控控教教研研室室例2:一层堆栈(并用ALD、OLD指令)指令表1 LD I0.02 LPS3 LD I0.14 A I0.25 ALD6 Q0.07 LRD8 LD I0.39 A I0.410 LD I0.511 A I0.612 OLD 13 ALD 14 Q0.1 15 LPP 16A I0.7 17 Q0.218 LD I1.0 19 A I1.120 ALD 21 Q0.322MEND 连连续续输输出出形形式式堆栈操作指令I0.0 I0.1Q0.0I0.2I0.3 I0.4Q0.1I0.5 I0.6I0.7Q0.2I1.0Q0.3I1.1ALD LPP并联电路块张张 树树 成成东东风风高高级级技技工工学学校校电电控控教教研研室室说明1:入栈的目的就是要将当前的逻辑运算结果暂时保存起来,然后就像没有入栈指令一样完成本行指令。再在入栈点上将逻辑运算结果读出来,进行下一重输出行。如果是最后一次使用栈内结果,就必须是出栈指令LPP,若不是最后一次使用,则应该用读栈指令LRD,去除结果后参加运算。堆栈操作指令张张 树树 成成东东风风高高级级技技工工学学校校电电控控教教研研室室说明2:栈操作指令LPS、LRD、LPP在使用中可以这样理解:除了对分支电路进行操作外,在程序中没有其它作用。在编写程序时,可以分两部分来分析:一方面,要保证栈操作的正确性,入栈、出栈要配对使用并且使用正确;另一方面,在阅读程序时可以不看栈操作指令,按梯形图掌握程序的正确性。堆栈操作指令张张 树树 成成东东风风高高级级技技工工学学校校电电控控教教研研室室例3:二层堆栈 指令表1 LD I0.1堆栈操作指令M1.1 M1.2M1.0I0.1 I0.2 I0.3Q0.0Q0.1Q0.2Q0.3I0.4张张 树树 成成东东风风高高级级技技工工学学校校电电控控教教研研室室例3:二层堆栈LPS 指令表1 LD I0.1堆栈操作指令M1.1 M1.2M1.0I0.1 I0.2 I0.3Q0.0Q0.1Q0.2Q0.3I0.4张张 树树 成成东东风风高高级级技技工工学学校校电电控控教教研研室室例3:二层堆栈 指令表1 LD I0.12 LPS第一层入栈3 A I0.2堆栈操作指令M1.1 M1.2M1.0I0.1 I0.2 I0.3Q0.0Q0.1Q0.2Q0.3I0.4LPS LPS张张 树树 成成东东风风高高级级技技工工学学校校电电控控教教研研室室例3:二层堆栈 指令表1 LD I0.12 LPS第一层入栈3 A I0.24 LPS第二层入栈5 A I0.36 Q0.07 LPP第二层出栈8 AN M1.09 Q0.1堆栈操作指令M1.1 M1.2M1.0I0.1 I0.2 I0.3Q0.0Q0.1Q0.2Q0.3I0.4LPS LPPLPS张张 树树 成成东东风风高高级级技技工工学学校校电电控控教教研研室室例3:二层堆栈 指令表1 LD I0.12 LPS3 A I0.24 LPS5 A I0.36 Q0.07 LPP8 AN M1.09 Q0.110 LPP第二层出栈11 A M1.112 LPS第一层入栈13 A M1.214 Q0.215 LPP第一层出栈16 A I0.417 Q0.318MEND堆栈操作指令M1.1 M1.2M1.0I0.1 I0.2 I0.3Q0.0Q0.1Q0.2Q0.3I0.4LPSLPP LPSLPP 张张 树树 成成东东风风高高级级技技工工学学校校电电控控教教研研室室例3:二层堆栈 指令表1 LD I0.12 LPS3 A I0.24 LPS5 A I0.36 Q0.07 LPP8 AN M1.09 Q0.110 LPP11 A M1.112 LPS13 A M1.214 Q0.215 LPP16 A I0.417 Q0.318MEND堆栈操作指令M1.1 M1.2M1.0I0.1 I0.2 I0.3Q0.0Q0.1Q0.2Q0.3I0.4张张 树树 成成东东风风高高级级技技工工学学校校电电控控教教研研室室例3:二层堆栈说明:确定堆栈的层数,只要看一个阶梯上有几条支路就是几层堆栈。例题中第二层出栈后就不是多层栈了。多重输出只要顺序不错,连续入栈、出栈的次数最多可达9层。堆栈操作指令张张 树树 成成东东风风高高级级技技工工学学校校电电控控教教研研室室例4:四层堆栈 指令表1 LD I0.02LPS3A I0.14 LPS5 A I0.26 LPS7 A I0.38 LPS9A I0.410 Q0.0堆栈操作指令 I0.0 I0.1 I0.2 I0.3 I0.4 Q0.0M1.1 M1.0M1.2Q0.1Q0.2Q0.3M1.3Q0.4LPSLPSLPSLPS张张 树树 成成东东风风高高级级技技工工学学校校电电控控教教研研室室例4:四层堆栈 指令表1 LD I0.02LPS3A I0.14 LPS5 A I0.26 LPS7 A I0.38 LPS9A I0.410 Q0.011 LPP12 AN M1.013 Q0.114 LPP15 A M1.116 Q0.217 LPP18 A M1.219 Q0.320 LPP21 A M1.322 Q0.4堆栈操作指令LPP I0.0 I0.1 I0.2 I0.3 I0.4 Q0.0M1.1 M1.0M1.2Q0.1Q0.2Q0.3M1.3Q0.4LPPLPPLPP张张 树树 成成例4:四层堆栈 指令表1 LD I0.02LPS3A I0.14 LPS5 A I0.26 LPS7 A I0.38 LPS9A I0.410 Q0.011 LPP12 A M1.013 Q0.114 LPP15 A M1.116 Q0.217 LPP18 A M1.219 Q0.320 LPP21 A M1.322 Q0.423MEND东东风风高高级级技技工工学学校校电电控控教教研研室室堆栈操作指令 I0.0 I0.1 I0.2 I0.3 I0.4 Q0.0M1.1 M1.0M1.2Q0.1Q0.2Q0.3M1.3Q0.4张张 树树 成成SB1SB2 KM1 SB3 KM2 SB4 KM3KM1 KM2KM1 KM2 KM3 I/O分配表SB1 停止按钮 I0.0SB2 启动按钮1 I0.1SB3 启动按钮2 I0.2SB4 启动按钮3 I0.3KM1 接触器 Q0.0KM2 接触器 Q0.1KM3 接触器 Q0.2东东风风高高级级技技工工学学校校电电控控教教研研室室例5:练习堆栈操作指令张张 树树 成成SB1SB2 KM1 SB3 KM2 SB4 KM3KM1 KM2KM1 KM2 KM3接线图接线图东东风风高高级级技技工工学学校校电电控控教教研研室室例5:练习堆栈操作指令SB1 SB2 SB3 SB4M I0.0 I0.1 I0.2 I0.3L1 Q0.0 Q0.1 Q0.2FUKM1 KM2 KM3220VPLC张张 树树 成成SB1SB2 KM1 SB3 KM2 SB4 KM3KM1 KM2KM1 KM2 KM3梯形图梯形图I0.0I0.1Q0.0I0.2Q0.0Q0.1I0.3Q0.1Q0.0Q0.1Q0.2Q0.2东东风风高高级级技技工工学学校校电电控控教教研研室室例5:练习LPSLPSLPPLPPLRDLRD堆栈操作指令张张 树树 成成SB1SB2 KM1 SB3 KM2 SB4 KM3KM1 KM2KM1 KM2 KM3 梯形图梯形图1 LD I0.02 LPS3 LD I0.14 O Q0.05 ALD6 Q0.07 LRD8 LD I0.29 O Q0.110 ALD11 A Q0.0东东风风高高级级技技工工学学校校电电控控教教研研室室例5:练习12 Q0.113LPP14LD I0.215O Q0.216ALD17A Q0.118 Q0.219MEND堆栈操作指令张张 树树 成成东东风风高高级级技技工工学学校校电电控控教教研研室室
展开阅读全文