更新时间: 2023-01-26
在具体实现时,采用了另一种形式的栈。由于三菱fx系列plc的ld连续使用不能超过八次,因此采用一个可以位寻址的片内ram字节作为栈空间来存放当前状态值。如果使用栈空间的**高位作为当前状态值,每次压栈就把该字节进行不带进位的循环右移,出栈时反之。在ld x000指令执行后,进栈状态a没有出栈,ld x010指令又进栈保存当前状态值,以前的压栈值a废之不用,即每条与母线相连的ld指令产生压栈值都不出栈。这样避免了因使用pushpop指令用一个字节的空间来保存一位的当前状态值造成的ram利用效率低的问题。
ld x010后的指令执行过程如下:ld x010 把当前状态值h压栈,取x010的状态作为当前状态值i;ld x011把当前状态值i压栈,取x011的状态作为当前状态值j;and x012 把当前状态值j和x012的状态与运算后得到当前状态值k;ld x013把当前状态值k压栈,取x013的状态作为当前状态值l;and x014把当前状态值l和x014的状态与运算后得到当前状态值m;orb 弹出压栈值k和当前状态值m或运算后得到新的当前状态值m;or x015把当前状态值m和x015的状态或运算后得到当前状态值n;anb弹出压栈值i和当前状态值n与运算后得到新的当前状态值o;outy002 把当前状态值写到y002的输出镜像寄存器。
Allen Bradley Terminal Base 1794-TB3/A
Allen Bradley Analog I/O Modul 1734-0E2V
mens Schütz 3TF2031-0BB4
mens Simatic Digital Eingabe 6ES7131-4BF50-0AA0
Simatic NET Busanschlusstecker 6GK1500-0EA02
Simatic NET industrial Ethernet OMC 6GK1100-2AB00
Simatic Net Steckleitung 6XV1850-2CH10
上一篇:51306975-175工控
下一篇:51306803-100