三菱FX5U PLC变址寻址的应用 三菱PLC的寻址方式有三种: 立即寻址:操作数是一个常数,比如K(十进制数)、H(十六进制数)、E(实数),不能改变。 直接寻址:操作数是一个软元件地址。通过改变软元件的内容,而改变操作数的内容。 变址寻址:利用变址寄存器V/Z/LZ的内容对操作数地址的修正而得到真正的操作数地址,是间接寻址。实际操作数地址=变址操作软元件编号+变址寄存器的数值。还有一种数组寻址的方式,本人认为也是变址寻址的一种形式。 变址操作需要注意的地方: 1,注意变址的操作软元件的编址方式,如八进制的XY,要按八进制数进行推算。 2,组合位元件也可以变址,但不能对组数Kn进行变址。 3,常数也可以变址。 4,V和Z可以组成32位的变址,V为高位,Z为低位,它们要编号一样,配对使用,如V0Z0。FX5U PLC已经用LZ取代了这个功能。 5,不能对特殊辅助继电器进行变址寻址。 6,不能对变址寄存器本身进行变址寻址。 有个项目,要求: 1,记录X0-X7,8个按钮每次按下的状态。 2,用指示灯显示对应编号的按钮。 3,X10,为启动;X11为停止。 首先我们用梯形图语言来编写,打开三菱PLC编程软件MELSOFT GX Works3,新建一个工程,选择系列、机型,选择梯形图语言编写: 普通梯形图方式编写完成如下程序: 其次,我们再用ST语言来编写,打开三菱PLC编程软件MELSOFT GX Works3,新建一个工程,选择系列、机型,选择ST语言编写: ST语言编程如下: RST(SM402,Z0); ZRST(SM402,D100,D199); /*上电初始化,复位D100-D199*/ IF LDP(1,X10)THEN MOV(1,K2X0,D100Z0); Z0:=Z0+1; END_IF; /*将键值存入D100开始的地址*/ IF LDP(1,X10) THEN SET(1,M1); Z0:=0; END_IF; /*Z0清零,读取键值开始*/ IF M1 AND LDP(1,SM413)THEN /*sm413为2秒时针脉冲*/ MOV(1,D100Z0,K2Y0); Z0:=Z0+1; END_IF; /*将键值读出送入y0开始的输出*/ IF X11 THEN M1:=0; K2Y0:=0; END_IF; 如有错漏,请求指正。 |
|