三菱PLC编程技术及工程案例精选(第2版)
上QQ阅读APP看书,第一时间看更新

3.4 数据处理指令

3.4.1 求和指令与传送指令

1.求和指令

程序步数为4步。

(1)16位数据的求和计算指令(WSUM(P))

该指令的表达方式如图3-37所示。

978-7-111-36359-0-Chapter03-47.jpg

图3-37 WSUM(P)指令表达方式

图中,(S)表示存储参与总和计算数据的软元件起始号(BIN 16位);

(D)表示总和值的软元件起始号(BIN 32位);

n表示数据块(BIN 16位)。

该指令的功能:将从(S)指定的n块的所有16位BIN数相加,结果存于(D)指定的软元件D和D+1中。指令使用如图3-38所示。

当X1C(X1D)为ON时,执行完WSUMP(WSUM)指令后将D10~D14中的16位BIN数据加起来,并存储在D100和D101中。

978-7-111-36359-0-Chapter03-48.jpg

图3-38 WSUM(P)指令的应用

(2)32位数据总和计算指令(DWSUM(P))该指令的表达方式如图3-39所示。

978-7-111-36359-0-Chapter03-49.jpg

图3-39 DWSUM(P)指令表达方式

图中,(S)表示存储用于总和计算数据的软元件起始号(BIN 32位);

(D)表示存储总和计算结果的软元件起始号(BIN 64位);

n表示数据块的数目(BIN 16位)。

该指令的功能:将从(S)指定的n点的所有32位BIN数相加,结果存于(D)指定的软元件D~D+3中。指令使用如图3-40所示。

当X20(X21)为ON时,程序执行完DWSUM(P)指令后,将D100~D107的32位BIN数据相加,并将结果存储在D10~D13上。

978-7-111-36359-0-Chapter03-50.jpg

图3-40 DWSUM(P)指令的应用

注意:应用求和指令时,不管D中设定的十进制数还是十六进制数,在PLC监控时都以十进制进行显示。

2.传送指令

(1)16位和32位数据传送(MOV(P)、DMOV(P))

该指令的表达方式如图3-41所示。

978-7-111-36359-0-Chapter03-51.jpg

图3-41 MOV(P)/DMOV(P)指令的表达方式

图中,(S)表示传送源数据,或存储传送数据的软元件号(BIN16/32位);

(D)表示传送目标软元件号(BIN16/32位);

MOV:将(S)指令的软元件中的16位数据传送到(D)指定的软元件D;

DMOV:将(S)指令的软元件中的32位数据传送到(D)指定的软元件D和D+1中。

指令使用如图3-42所示。

978-7-111-36359-0-Chapter03-52.jpg

图3-42 MOV(P)/DMOV(P)指令的应用

当X1为ON时,执行完MOV(P)指令后,将M0~M11这12个继电器的状态存储在D20中;同时将常数十进制数150存储在D8中;

当PLC一通电,执行完DMOV(P)指令后,将来自D0和D1的数据存储在D5和D6中;同时将X0~X11的数据存储在D0和D1中。

(2)16位和32位数据反转传送(CML(P)、DCML(P))

CML、DCML是指分别对于16位、32位数据反转传送指令,其中带有(P)的是表示脉冲执行16位或32位数传送。在指令格式中的S表示反转传送源数据或其中存储了将被反转传送数据的软元件起始号(16/32位二进制数据)。在指令格式中的D表示反转传送目标数据的软元件起始号(16/32位二进制数据)。

1)将S中所指定软元件中的16位数据各个位反转,并传送到D所指定的软元件中,如图3-43所示。

2)将S中所指定软元件中的32位数据各个位反转,并传送到D所指定的软元件中,如图3-44所示。

978-7-111-36359-0-Chapter03-53.jpg

图3-43 CML反转16位数据指令

978-7-111-36359-0-Chapter03-54.jpg

图3-44 CML反转32位数据指令

3)应用举例

①CML指令的应用:梯形图如图3-45所示。当X3变为ON时将D0中的各个位反转,并将结果传送至D16中。

978-7-111-36359-0-Chapter03-55.jpg

图3-45 CML指令的应用

②DCML指令的应用:梯形图如图3-46所示。当X3变为ON时将D0、D1中的各个位反转,并将结果传送到D16、D17中。

978-7-111-36359-0-Chapter03-56.jpg

图3-46 DCML指令的应用

(3)块16位数据传送(BMOV(P))

BMOV指令是位数据块的传送指令,其中带有(P)的是表示脉冲执行16位数据块传送。指令格式中的S表示存储了传送源数据软元件的起始号(16位二进制数据);指令格式中的D表示存储传送目标数据软元件的起始号(16位二进制数据);n表示要传送数据的笔数(16位二进制数据)。16位块传送指令也可以采用FMOV(P)。该指令的表达方式如图3-47所示。

指令说明如下:

978-7-111-36359-0-Chapter03-57.jpg

图3-47 BMOV(P)指令的表达方式

1)从中所指定的软元件批量传送n笔16位数据至D中指定的n个软元件中,说明如图3-48所示。

978-7-111-36359-0-Chapter03-58.jpg

图3-48 BMOV(P)指令说明

2)即使传送源软元件和传送目标软元件存在重叠,也可以完成传送。传送至更小的软元件号时,从S传送;传送至更大的软元件号时,从S+(n-1)传送。

3)当S为一字软元件而D为位软元件时,则字软元件的传送对象为通过位软元件位数指定的位数。

如果D指定为K1Y30,则S中指定的字软元件的低4位将为传送对象,说明如图3-49所示。

978-7-111-36359-0-Chapter03-59.jpg

图3-49 BMOV(P)指令说明

4)如果S和D指定的都是位软元件,则S和D的位数应当相同。

下面举例说明:图3-50是以4点为单位将X20至X2F中数据输出到D100~D103中。

978-7-111-36359-0-Chapter03-60.jpg

图3-50 S、D为位软元件时的传送

指令实现说明如图3-51所示。

另外还有浮点数据传送指令、数据交换指令和字符串传送指令,本书不做要求,具体见三菱公司的《指令手册》之“指令篇”。

978-7-111-36359-0-Chapter03-61.jpg

图3-51 S、D为位软元件时的传送说明

3.4.2 比较指令

1.BIN16位数据比较

指令表达方式如图3-52所示。

978-7-111-36359-0-Chapter03-62.jpg

图3-52 比较指令表达方式

图中,▭表示指令符号=、<>、>、<=、<、>=;S1,S2表示存储比较数据或软元件的起始号(BIN16)。后续出现与上述相同。

该指令功能如下:

1)把由S2指定的软元件的16位二进制数据和由S1指定的软元件的16位二进制数据当做常开触点,并执行比较运算。

2)单个指令的比较运算结果见表3-8。

表3-8 单个指令的比较

978-7-111-36359-0-Chapter03-63.jpg

3)当十六进制常数被S1和S2指定时,或最高位(b15)为1的数字值(8~F)被指定时,该值作为一个负的二进制数值被读取,用于比较。

举例:图3-53为比较二进制数值100和D3中的数据,并且当D3中的数据小于100时导通。

2.32位二进制数据比较(D=、D<>、D>、D<=、D<、D>=)

指令表达方式如图3-54所示。

978-7-111-36359-0-Chapter03-64.jpg

图3-53 比较指令的应用

978-7-111-36359-0-Chapter03-65.jpg

图3-54 32位二进制数据比较指令的表达方式

其中,S1、S2表示存储比较数据或软元件的起始号(32位二进制数据)。功能方面同16位数据的比较功能,唯一不同的是用于比较的数据应当通过32位指令进行指定(DMOV指令等)。如果是通过16位指令(MOV指令等),结果不正确。

举例:图3-55的程序为比较D0及D1和D3及D4中的数据,并且当D0及D1中的数据等于或者小于D3及D4中的数据时Y33导通。

978-7-111-36359-0-Chapter03-66.jpg

图3-55 32位二进制数据比较指令的应用

3.4.3 数据转换指令

1.从BIN数据到4位和8位BCD数据的转换指令(BCD(P)、DBCD(P))

该指令的表达式如图3-56所示。

978-7-111-36359-0-Chapter03-67.jpg

图3-56 BCD(P)/DBCD(P)指令的表达方式

图中,(S)是BIN数据或存储BIN数据软元件的起始号(BIN16/32位);

(D)存储BCD数据的软元件起始号(BCD4/8位)。

指令功能如下:

(1)BCD指令是将(S)指定的软元件中的BIN数据(0~9999)转换成BCD数据,并将它存储在(D)指定的软元件中。示意图如图3-57所示。

978-7-111-36359-0-Chapter03-68.jpg

图3-57 BCD指令示意图

(2)DBCD指令是将(S)指定的软元件中的BIN数据(0~99999999)转换成BCD数据,并将它存储在(D)指定的软元件中。示意图如图3-58所示。

978-7-111-36359-0-Chapter03-69.jpg

图3-58 DBCD指令示意图

举例说明:

(1)图3-59的程序将位于Y20~Y2F上C4的当前值输出到BCD显示设备。

978-7-111-36359-0-Chapter03-70.jpg

图3-59 BCD指令的应用及说明

(2)图3-60的程序为从D0、D1输出32位数据到Y40~Y67。

2.从BCD4位和8位数据到BIN数据的转换指令(BIN(P)、DBIN(P))

该指令的表达方式如图3-61所示。

978-7-111-36359-0-Chapter03-71.jpg

图3-60 DBCD指令的应用及说明

978-7-111-36359-0-Chapter03-72.jpg

图3-61 BIN(P)/DBIN(P)指令的表达方式

图中,(S)是BCD数据或者存储BCD数据的软元件的起始号(BCD4/8位)。

(D)是存储BIN数据的软元件的起始号(BIN16/32位)。

BIN指令是将(S)指定的软元件中的BCD数据(0~9999)转换成BIN数据,并将它存储在(D)指定的软元件中。其示意图如图3-62所示。

978-7-111-36359-0-Chapter03-73.jpg

图3-62 BIN(P)指令示意图

DBIN指令是将(S)指定的软元件中的BCD数据(0~99999999)转换成BIN数据,并将它存储在(D)指定的软元件中。其示意图如图3-63所示。

举例说明:

1)图3-64中,当X8为ON时,指令BIN(P)执行完后,将X10~X1B中的BCD数据转换成BIN数据,并将存储在D8中。

978-7-111-36359-0-Chapter03-74.jpg

图3-63 DBIN指令示意图

978-7-111-36359-0-Chapter03-75.jpg

图3-64 BIN(P)指令举例

2)图3-65中,当X8变为ON时,下面程序将X10~X37中的BCD数据转换成BIN数据,并将其存储在D0和D1中。最后一个指令“D+D3 D5 D0”是将X20~X37中的BCD数据转换来的BIN数据与从X10~X1F中的BCD数据转换来的BIN数据相加。

3.从格雷码到BIN16位和32位数据的转换指令(GBIN(P)、DGBIN(P))

该指令的表达方式如图3-66所示。

图中,(S)表示格雷码或存储格雷码的软元件的起始号(BIN16/32位)。

(D)表示存储转换后的BIN数据的软元件的起始号(BIN16/32位)。

GBIN(P)指令示意图如图3-67所示。

DGBIN指令是将(S)指定的软元件中的格雷码数据转换成BIN 32位数据,并存储在(D)指定的软元件中。其示意图如图3-68所示。

举例说明:

1)如图3-69所示,当X10为ON时,将D100中的格雷码数据转换成BIN数据,并将

978-7-111-36359-0-Chapter03-76.jpg

图3-65 BIN(P)/DBIN(P)指令举例

978-7-111-36359-0-Chapter03-77.jpg

图3-66 GBIN(P)/DGBIN(P)指令表达

978-7-111-36359-0-Chapter03-78.jpg

图3-67 GBIN(P)指令示意图

978-7-111-36359-0-Chapter03-79.jpg

图3-68 DGBIN(P)指令示意图

其结果存储在D200中。

978-7-111-36359-0-Chapter03-80.jpg

图3-69 GBIN(P)指令举例

2)如图3-70所示,当X10为ON时,将D10和D11中的格雷码数据转换成BIN数据,并将其结果存储在D0和D1中。

978-7-111-36359-0-Chapter03-81.jpg

图3-70 DGBIN(P)指令举例