上QQ阅读APP看书,第一时间看更新
1.2.5 堆栈指令
堆栈指令的指令助记符、名称、功能、梯形图及操作软元件和程序步长如表1-6所示。
表1-6 堆栈指令表
使用指令编程时,当出现多分支电路时,则需要使用堆栈指令。MP S、MRD和MP P指令分别为压入堆栈、读取堆栈和弹出堆栈指令。FX系列PLC有11个被称为堆栈的存储单元,用于存储逻辑运算的中间结果,堆栈采用先进后出的数据存取方式。
1)MPS指令用于存储电路中分支处的逻辑运算结果,以便以后处理有线圈或输出类指令的支路时可以调用该运算结果。使用一次MP S指令,当时的逻辑运算结果压入堆栈的第一层,堆栈中原来的数据依次向下一层推移。
2)MRD指令用于读取存储在堆栈最上层的电路中分支点处的运算结果,将下一个触点强制性地连接在该点。读取保存的数据后,堆栈内的数据不会上移或下移。
3)MPP指令用于弹出(调用并去掉)存储在堆栈最上层的电路分支点的运算结果。首先将下一触点连接到该点,然后从堆栈中去掉该点的运算结果。使用MP P指令时,堆栈中各层数据向上移动一层,最上层的数据在读出后从堆栈内消失。
图1-47和图1-48分别给出了使用一层堆栈和使用多层堆栈的例子。在编程及仿真软件中输入图1-47和图1-48中的梯形图程序后,不会显示图中的堆栈指令,如果使用GX Developer编程及仿真软件将该梯形图转换为指令表程序,会自动加入MPS、MRD和MPP指令,直接写入指令表程序时,必须由用户写入MP S、MRD和MP P指令。
图1-47 堆栈指令应用一
a)梯形图 b)指令表
图1-48 堆栈指令应用二
a)梯形图 b)指令表
每一条MP S指令必须有一条对应的MP P指令,处理最后一条支路时必须使用MP P指令,而不是MRD指令。在一块独立电路中,用压入堆栈指令同时保存在堆栈中的运算结果不能超过11个。