因为PLC的程序执行顺序是从左往右,从上到下。基于这个特性,因此必须保留相关数据。
0 LD X000 //X0的值送入寄存器1
1 OUT M0 //寄存器1的值送入M0
2 AND Y000 //将Y0的值送入寄存器1,原先X0的值送入寄存器2
//做与运算,结果送入寄存器1中,原先寄存器1中的Y0的值送入寄存器2
//原先在寄存器2中的X0的值被抛弃。
3 OUT Y004 //将寄存器1的值送入Y4。
而下面的梯形图指令语句表为
0 LD X000 //将X0的值送入寄存器1
1 MPS //将寄存器1的值进栈,用以保留X0的状态。
2 AND Y000 //将Y0的值送入寄存器1,原先X0的值送入寄存器2
//做与运算,结果送入寄存器1中,原先寄存器1中的Y0的值送入寄存器2
//原先在寄存器2中的X0的值被抛弃。
3 OUT Y004 //将寄存器1的值送入Y4。
4 MPP //出栈,将X0的值从栈中送入寄存器1
5 OUT M0 //将值送入M0
实际上,如果使用西门子的PLC,那么会比较清晰,RLO(逻辑运算结果)是掌控一切,或者对于汇编有所了解的话也会习惯于寄存器间的赋值与运算。
相反,着重于梯形图的话不需要对这些概念有着过于清晰的理解。
Regards