三菱PLC编程指令 下载本文

数据交换指令(D)XCH(P)的编号为FNC17,它是将数据在指定的目标元件之间交换。如图3-40所示,当X0为ON时,

将D1和D19中的数据相互交换。

图3-40 数据交换指令的使用

使用数据交换指令应该注意:

1)操作数的元件可取KnY、KnM、KnS、T、C、D、V和Z.。

2)交换指令一般采用脉冲执行方式,否则在每一次扫描周期都要交换一次。 3)16位运算时占5个程序步,32位运算时占9个程序步。 18、19 数据变换指令BCD BIN

(1)BCD变换指令BCD (D)BCD(P)指令的ALCE编号为FNC18。它是将源元件中的二进制数转换成BCD码送到目标元件中,如图3-41所示。 如果指令进行16位操作时,执行结果超出0~9999范围将会出错;当指令进行32位操作时,执行结果超过0~99999999范围也将出错。PLC中内部的运算为二进制运算,可用BCD指令将二进制数变

换为BCD码输出到七段显示器。 (2)BIN变换指令BIN (D)BIN(P)指令的编号为FNC19。它是将源元件中的BCD数据转换成二进制数据送到目标元件中,如图 3-41所示。常数K不能作为本指令的操作元件,因为在任何处理之前它们都会被转换成二进制

数。

使用BCD/BIN指令时应注意:

1)源操作数可取KnK、KnY、KnM、KnS、T、C、D、V和Z,目标操作数可取

KnY、KnM、KnS、T、C、D、V和Z;

2)16位运算占5个程序步,32位运算占9个程序步。

37

算术和逻辑运算指令—功能20~29

20加法指令ADD (D)ADD(P) 加法指令ADD (D)ADD(P)指令的编号为FNC20。它是将指定的源元件中的二进制数相加结果送到指定的目标元件中去。如图1所示,当X0为ON时,执行(D10)+(D12)→(D14)。图3-42加法指令的使用 21 减法指令SUB (D)SUB(P)

减法指令SUB (D)SUB(P)指令的编号为FNC21。它是将[S1.]指定元件中的内

容以二进制形式减去[S2.]指定元件的内容,其结果存入由[D.]指定的元件中。

图2减法指令的使用 当X0为ON时,如图3-43所示

执行(D10)—(D12)→(D14)。

使用加法和减法指令时应该注意:

1)操作数可取所有数据类型,目标操作数可取KnY、KnM、KnS、T、C、D、V

和Z.。

2)16位运算占7个程序步,32位运算占13个程序步。

3)数据为有符号二进制数,最高位为符号位(0为正,1为负)。 4)加法指令有三个标志:零标志(M8020)、借位标志(M8021)和进位标志(M8022)。当运算结果超过32767(16位运算)或2147483647(32位运算)则进位标志置1;当运算结果小于-32767(16位运算)或-2147483647(32位运

算),借位标志就会置1。

22乘法指令MUL (D)MUL(P) 乘法指令MUL (D)MUL(P))指令的编号为FNC22。数据均为有符号数。如图3-44所示,当X0为ON时,将二进制16位数

38

[S1.]、[S2.]相乘,结果送[D.]中。D为32位,即(D0)×(D2)→(D5,D4)(16位乘法);当X1为ON时,(D1,D0)×(D3,D2)→(D7,D6,D5,D4)

(32位乘法)

23除法指令DIV (D) DIV (P)

除法指令DIV (D) DIV (P)指令的编号为为FNC23。其功能是将[S1.]指定为被除数,[S2.]指定为除数,将除得的结果送到[D.]指定

的目标元件中,余数送到[D.]的下一个元件中。如图3-45所示,当X0为ON时(D0)÷(D2)→(D4)商,(D5)余数(16位除法);当X1为ON时(D1,

D0)÷(D3,D2)→(D5,D4)商,(D7,D6)余数(32位除法)。 使用乘法和除法指令时应注意:

1)源操作数可取所有数据类型,目标操作数可取KnY、KnM、KnS、T、C、D、

V和Z.,要注意Z只有16位乘法时能用,32位不可用。 2)16位运算占7程序步,32位运算为13程序步。

3)32位乘法运算中,如用位元件作目标,则只能得到乘积的低32位,高32位将丢失,这种情况下应先将数据移入字元件再运算;除法运算中将位元件指定为[D.],则无法得到余数,除数为0时发生运算错误。 4)积、商和余数的最高位为符号位。

24、25加1和减1指令(D)INC(P) 、(D)DEC(P)

加1指令(D) INC (P)的编号为FNC24;减1指令 (D) DEC (P)的编号为FNC25。INC和DEC指令分别是当条件满足则将指定元件的内容加1或减1。如图3-46所示,当X0为ON时,(D10)+1→(D10);当X1为ON时,(D11)+1→(D11)。若指令是连续指

令,则每个扫描周期均作一次加1或减1运算。

图3-46 加1和减1指令的使用

39

使用加1和减1指令时应注意:

1)指令的操作数可为KnY、KnM、KnS、T、C、D、V、Z;。 2)当进行16位操作时为3个程序步,32位操作时为5个程序步。 3)在INC运算时,如数据为16位,则由+32767再加1变为-32768,但标志不置位;同样,32位运算由+2147483647再加1就变为-2147483648时,标志

也不置位。

4)在DEC运算时,16位运算-32768减1变为+32767,且标志不置位;32位运算由-2147483648减1变为=2147483647,标志也不置位。 26-29 逻辑运算类指令WAND、WOR、WXOR和NEG 26逻辑与指令WAND (D)WAND(P)

逻辑与指令WAND (D)WAND(P)指令的编号为FNC26。是将两个源操作数按位

进行与操作,结果送指定元件。

27逻辑或指令WOR (D)WOR(P)

逻辑或指令WOR (D)WOR(P)指令的编号为FNC27。它是对二个源操作数按位进行或运算,结果送指定元件。如图4-48所示,当X1有效时,(D10)∨(D12)→(D14)

28逻辑异或指令WXOR (D) WXOR (P)

逻辑异或指令WXOR (D) WXOR (P)指令的编号为FNC28。它是对源操作数

位进行逻辑异或运算。

29求补指令NEG (D) NEG (P)

求补指令NEG (D) NEG (P)指令的编号为FNC29。其功能是将[D.]指定的元件内容的各位先取反再加1,将其结果再存入原来的元件中。 WAND、WOR、WXOR和NEG指令的使用如图3-47所示。

40