第 5章 三菱 FX 2系列 PLC的功能指令本章要求
– 本章介绍 FX2系列 PLC功能指令及其编程方法 。
功能指令编号为 FNC00~ FNC99,将其中主要指令归纳为八大类来讲述,限于篇幅从 5.6节起的功能指令只作简讲 。 对于 FX2系列 PLC的功能指令,
将以表格形式归纳其基本的格式,类型及每条功能指令的使用要素 。 对于具体的控制对象,选择合适的功能指令,将使编程更加方便和快捷 。 要求掌握各类功能指令及运用功能指令编程的方法 。
5.3 数据传送指令在 FX2系列 PLC中设置了 8条数据传送指令,2条数据比较指令,其功能号是 FNCl0~ FNCl9。
传送指令,
MOV(传送) SMOV( BCD码移位传送)
CML (取反传送) BMOV(数据块传送)
FMOV(多点传送) XCH(数据交换)
BCD(二进制数转换成 BCD码并传送)
BIN( BCD码转换为二进制数并传送)
比较指令,
CMP(比较)
ZCP(区间比较)
5.3.1 比较指令 1
1,指令用法比较指令,FNC10 CMP [S1·] [S2·] [D·]
其中 [S1·],[S2·] 为两个比较的源操作数,[D·]为比较结果标志软组件,指令中给出的是标志软组件的首地址 。
2,指令说明比较指令的概要如表 5.10所示 。
35
5.3.1 比较指令 2
比较指令 CMP可对两个数进行代数减法操作,将源操作数 [S1·] 和 [S2·] 的数据进行比较,结果送到目标操作数
[D·]中,再将比较结果写入指定的相邻三个标志软组件中 。 指令中所有源数据均作为二进制数处理 。
图 5.23所示为比较指令 CMP的梯形图,对应的指令为
,CMP Kl00 D10 M0。
在图 5.23中,如 X010接通,
则将执行比较操作,即将
100减去 D10中的内容,再将比较结果写入相邻三个标志软组件 M0~ M2中 。 标志位操作规则是:
5.3.1 比较指令 3
若 K100> ( D10),则 M0被置 1;
若 K100= ( D10),则 M1被置 1;
若 K100< ( D10),则 M2被置 1。
可见 CMP指令执行后,标志位中必有一个被置 1,而其余二个均为 0。
CMP指令在作 32位操作时,使用前缀 ( D),
( D) CMP [S1·] [S2·] [D·]。
CMP指令也可有脉冲操作方式,使用后缀 ( P),
( D) CMP( P) [S1·] [S2·] [D·],只有在驱动条件由
OFF→ ON时进行一次比较 。
注意:指令中的三个操作数必须按表 5.10所示编写,如果缺操作数,或操作组件超出此表中指定范围等都要引起出错 。 清除比较结果,可用 RST或 ZRST复位指令 。
1,指令用法区间比较指令,FNC11 ZCP [S1·] [S2·] [S3·] [D·]
[S1·]和 [S2·]为区间起点和终点,[S3·]为另一比较软组件,[D·]为标志软组件,给出的是标志软组件的首地址

2,指令说明区间比较指令概要如表 5.11所示 。
5.3.2 区间比较指令 1
由表 5.11可见,能够充当标志位的软组件只有输出继电器 Y,辅助继电器 M和状态组件 S;能够充当源操作数的如表中 [S1·],[S2·]和 [S3·]所指定的范围内的所有软组件 。 区间比较指令 ZCP可将某个指定的源数据 [S3·]
与一个区间的数据进行代数比较,源数据 [S1·]和 [S2·]
分别为区间的下限和上限,比较结果送到目标操作数
[D·]中,[D·]由三个连续的标志位软组件组成 。 标志位操作规则是:若源数据 [S3·]处在上下限之间,则第二个标志位置 1;若源数据 [S3·]小于下限,则第一个标志置 1;若源数据 [S3·]大于上限,则第三个标志置 1。
ZCP指令执行后标志位必定有一个是 1,其余两个是 0
。 如果 [S1·] 不比 [S2·]小,则把 [S1·]和 [S2·]看作一样大

5.3.2 区间比较指令 2
图 5.24 所示为区间比较指令示例梯形图,对应指令为:
ZCP Kl00 K200 C0 M0。
如果 X010接通,
则将执行区间比较操作,即将 C0的内容与区间的上下限去比较,比较结果写入相邻三个标志位软组件 M0~ M2中 。
标志位操作规则是:
若 K100> C0,则 M0被置 1;
若 K100< C0< K200,则 M1被置 1;
若 K200< C0,则 M2被置 1。
5.3.2 区间比较指令 3
ZCP指令的 32位方式:
( D) ZCP [S1·] [S2·] [S3·] [D·]。
ZCP指令的脉冲方式:
( D) ZCP( P) [S1·] [S2·] [S3·] [D·]
有关 ZCP指令操作数等注意事项同 CMP指令 。
5.3.3 传送指令
1,指令用法数据传送指令,FNC12 MOV [S·] [D·]
[S·]为源数据,[D·]为目软组件 。
功能:将源数据传送到目软组件中去 。
2,指令说明数据传送指令概要如表 5.12。
5.3.2 区间比较指令 4
5.3.3 传送指令 2
图 5.25为 MOV的示例梯形图,对应的指令为:
MOV D10 D20。
如 X010接通,将 D10的内容传送到 D20中去,传送结果
D10内容保持不变,D20中内容被 D10内容转化为二进制后取代 。
可以将 D10中的内容通过多条传送指令传送到多个目标单元中去,传送结果 D10的内容还是不变,也就是说源存储器是,取之不尽,的,而目存储器则是,后入为主
” 。
MOV指令的 32位脉冲方式:
( D) MOV( P) [S·] [D·]。
5.3.4 移位传送指令
1.指令用法移位传送指令,FNC13 SMOV [S·] m1 m2 [D·] n
[S·]为源数据,m1为被传送的起始位,m2为传送位数
,[D·]为目软组件,n为传送的目起始位 。
5.3.3 传送指令 3
功能:将 [S·]第 m1位开始的 m2个数移位到 [D·]的第 n位开始的 m2个位置去,ml,m2和 n取值均为,1~ 4。 分开的 BCD码重新分配组合,一般用于多位 BCD拨盘开关的数据输入 。
2,指令说明移位传送指令 概要如表 5.13。
5.3.4 移位传送指令 2
功能:将 [S·]第 m1位开始的 m2个数移位到 [D·]的第 n位开始的 m2个位置去,ml,m2和 n取值均为,1~ 4。 分开的 BCD码重新分配组合,一般用于多位 BCD拨盘开关的数据输入 。
2,指令说明图 5.26为 SMOV的示例梯形图,对应指令为:
SMOV D10 K4 K2 D20 K3。
5.3.4 移位传送指令 3
移位传送示意图如图 5.27。 设 D10=BCD 码 4321,
D20=BCD码 9008。 如 X010接通,执行移位传送指令 。
将 D10中的二进制数转换成 BCD码 4321;然后将第 4位
( m1=K4) 开始的共 2位 ( m2=K2) BCD码 4和 3,分别移到 D20的第 3位 ( n=K3) 和第 2位的 BCD码位置上去,所以移位传送后
D20=9438。
移位传送指令只能对
16位数据进行操作,所以 BCD码值超过 9999
时将会出错 。
SMOV指令脉冲方式:
SMOV( P) [S·] m1 m2 [D·] n。
5.3.4 移位传送指令 4
1,指令用法取反传送指令,FNC14 CML [S·] [D·]
[S·]为源数据,[D·]为目软组件。
功能,将 [S·]按二进制的位取反后送到目 [D·]中。
2.指令说明取反传送指令 概要如表 5.14。
5.3.5 取反传送指令 1
图 5.28为取反传送指令 CML示例梯形图,对应指令为
,CML D10 K1Y001。
5.3.5 取反传送指令 2
在图 5.28中,如 X010接通,则将执行取反传送指令 。 首先将 D10中的各个位取反 。 然后根据 K1Y001指定,将
D10的低 4位送到 Y004,Y003,Y002,Y001四位目组件中去,因此 Y005以上的输出继电器不会有任何变化
。 如果被取反的软组件是 K或 H型的都将被变换成二进制数后,再取反传送 。 CML指令 32位脉冲格式:
( D) CML( P) [S·] [D·]。
1,指令用法块传送指令,FNC15 BMOV [S·] [D·] n
[S·]为源软组件,[D·]为目标软组件,n为数据块个数。
功能:将源中的 n个数据组成的数据块传送到指定的目中去。如果组件号超出允许组件号的范围,数据仅传送到允许范围内。
2,指令说明 块传送指令 概要如表 5.15。
5.3.6 块传送指令 1
图 5.29( a)为块传送指令示例梯形图,对应指令为:
BMOV D0 D10 K3。
5.3.6 块传送指令 2
在图 5.29( a)中,如 X010接通,执行块传送指令。 K3
指定数据块个数为 3,将 D0~ D2内容传送到 D10~ D12
,如图 5.29( b)。当源、目类型相同时,传送顺序自动决定。如源、目类型不同,只要位数相同就可正确传送。如源、目软组件号超出允许范围,则只对符合规定的数据传送。 BMOV指令没有 32位操作方式,但有脉冲方式,BMOV( P) [S·] [D·] n。
1.指令用法多点传送指令,FNC16 FMOV [S·] [D·] n
[S·]为源软组件,[D·]为目软组件,n为目软组件个数。
功能:将一个源中的数据传送到指定的 n个目中去。指令中给出的是目的首地址。常用于对某一段数据寄存器清零或置相同的初始值。
2,指令说明 多点传送指令 概要如表 5.16。
5.3.7 多点传送指令 1
图 5.30( a)为多点传送指令示例梯形图,对应指令:
FMOV D0 D10 K3。
5.3.7 多点传送指令 2
在图 5.30( a)中,如 X010接通,按 K3指定目组件个数为 3,则将 D0中的内容传送到 D10~ D12中去,如图 5.30
( b)。传送后 D0中的内容不变,而 D10~ D12内容被
D0内容取代。如果目软组件号超出允许范围,则只对符合规定的数据进行传送。 FMOV指令没有 32位操作方式,但有脉冲方式,FMOV( P) [S·] [D·] n
1.指令用法数据交换指令,FNC17 XCH [D1·] [D2·]
[D1·],[D2·]为两个目软组件。
功能:将两个指定的目软组件的内容交换。
2,指令说明数据交换指令 概要如表 5.17。
图 5.31为数据交换指令示例梯形图,对应指令为:
5.3.8 数据交换指令 1
XCH D10 D20。
在图 5.31中,如 X010接通,则将执行数据交换指令 。 将
D10的内容传送到 D20中去,而 D20中的内容则传送到
D10中去,两个软组件的内容互换 。
5.3.8 数据交换指令 2
注意:按图 5.31中的梯形图,数据在每个扫描周期都要交换 1次,而经过两次交换后 D10和 D20的内容将复原
。 解决的办法是使用 XCH指令的脉冲方式,只有在驱动条件由 OFF→ ON时进行一次交换操作 。 XCH指令的
32位脉冲方式为,( D) XCH( P) [D1·] [D2·]。
1.指令用法
BCD码变换指令,FNC18 BCD [S·] [D·]
[S·]为被转换的软组件,[D·]为目标软组件。
功能:将指定软组件的内容转换成 BCD码并送到指定的目软组件中去。再译成 7段码,就能输出驱动 LED。
2.指令说明
BCD码变换指令概要如表 5.18。
5.3.9 BCD变换指令 1
图 5.32为 BCD码变换指令的示例梯形图,对应指令为
,BCD D10 K2Y000。
在图 5.32中,如 X010接通,
则将执行 BCD码变换指令,
即将 D10中的二进制数转换成 BCD码,然后将低八位内容送到 Y007~ Y000中去 。
指令执行过程的示意如图 5.33所示 。 注意,如果超出了
5.3.9 BCD变换指令 2
BCD码变换指令能够转换的最大数据范围就会出错,
16位操作时为 0~ 9999; 32位操作时为 0~ 99999999
。 BCD码变换指令的 32位脉冲操作格式为:
( D) BCD( P) [S·] [D·]。
5.3.10 BIN变换指令
1.指令用法
BIN变换指令,FNC19 BIN [S·] [D·]
[S·]为被转换的软组件,[D·]为目软组件。
功能:将指定软组件中的 BCD码转换成二进制数并送到指定的目软组件中去。此指令作用正好与 BCD变换指令相反,用于将软组件中的 BCD码转换成二进制数
2.指令说明
BIN变换指令概要如表 5.19。
5.3.9 BCD变换指令 3
图 5.34为 BIN变换指令的示例梯形图,对应指令为:
BIN K2X000 D10。
这条指令可将 BCD拨盘的设定值通过 X007~ X000输入到
PLC中去 。 如 X010接通,则将执行 BIN变换指令,把从 X007~ X000上输入的两位
BCD码,变换成二进制数,传送到 D10的低八位中 。
5.3.10 BIN变换指令 2
指令执行过程如图 5.35,设输入的 BCD码= 63,如直接输入,是二进制 01100011( 十进制 99),就会出错 。 如用 BIN变换指令输入,将会先把 BCD码 63转化成二进制
00111111,不会出错了 。
注意:如 [S·]中内容不是 BCD码就会出错,也不能是常数 K,因为在操作前,程序自动将其变换成二进制数 。
BIN变换指令 32位脉冲方式,( D) BIN( P) [S·] [D·]
5.3.10 BIN变换指令 3
10条算逻运算指令的功能号是 FNC20~ FNC29。
5.4.1 BIN加法指令
1,指令用法二进制加法指令,FNC20 ADD [S1·] [S2·] [D·]
[S1·],[S2·]为加数源组件,[D·]为和的目组件。
功能:将指定的两个源中有符数,进行二进制加法,然后将和送入指定的目中。
2.指令说明 二进制加法 指令概要如表 5.20。
5.4 算术和逻辑运算指令 1
加法指令影响三个标志位:
① 若相加和= 0,零标志位 M8020=1;
② 若发生进位,则进位标志位 M8022=1;
③ 若发生借位,则借位标志 M8021=1。
若浮点数标志位 M8023置 1,则可进行浮点加法运算 。
图 5.36为加法指令 ADD的示例梯形图,对应的指令为:
ADD Kl0 D10 D20。
在图 5.36中,如 X010接通,
执行加法运算,即将 10与
D10中的内容相加,结果送入 D20中,并根据运算的结果使相应的标志位置 1。
ADD指令 32位方式,( D) ADD D10 D20 D30。
指令中给出的源,目是其首地址,如对加数 1来说,低
5.4.1 BIN加法指令 2
16位在 D10中,高 16位在相邻下一数据寄存器 D11中,
两者组成一个 32位的加数 1。 同理,D21和 D20组成了另一个加数 2; D31和 D30组成和数 。 为避免重复使用某软组件,建议用偶数组件号 。 源,目可用相同的组件号,
如,ADD Dl0 D20 D10。
ADD指令脉冲方式,ADD( P) Dl0 D20 D10。
5.4.2 BIN减法指令
1,指令用法二进制减法指令,FNC21 SUB [S1·] [S2·] [D·]
[S1·],[S2·]为被减数和减数源组件,[D·]为差目组件。
功能:将指定两个源软组件中有符数,进行二进制代数减法,相减结果差送入指定的目组件中。
2.指令说明 二进制减法指令概要如表 5.21。
5.4.1 BIN加法指令 3
SUB指令进行的是二进制有符数减法代数运算,减法指令影响标志位:
① 相减结果为 0,零标志位 M8020=1;
② 相减发生借位,借位标志 M8021=1;
③ 若相减发生进位,进位标志 M8022=1。 若将浮点数标志位 M8023置 1,则可以进行浮点数减法运算 。
5.4.2 BIN减法指令 2
图 5.37为减法指令 SUB的示例梯形图,对应的指令为:
SUB Kl0 D10 D20。
在图 5.37中,如 X010接通,
执行减法运算,将 10与 D10
中的内容相减,结果送入 D20
中,并根据运算的结果使相应的标志位置 1。
SUB指令的 32位脉冲操作格式为:
( D) SUB( P) [S·] [D·],
这时,指令中给出的是源,目软组件的首地址 。
5.4.3 BIN乘法指令
1,指令用法二进制乘法指令,FNC22 MUL [S1·] [S2·] [D·]
[S1·],[S2·]为被乘数和乘数的源组件,[D·]为乘积的目
5.4.2 BIN减法指令 3
组件的首地址 。
功能:将指定的两个源软组件中的数,进行二进制有符数乘法,然后将相乘的积送入指定的目标组件中 。
2.指令说明二进制乘法指令 概要如表 5.22。
图 5.38为乘法指令示例梯形图,对应的指令为:
5.4.3 BIN乘法指令 2
MUL D10 D20 D30。
在图 5.38中,如 X010接通,
执行有符数乘法运算,将
D10与 D20中的两内容相乘,积送入 D31和 D30中两个目单元中去 。 MUL指令进行的是有符数乘法,被乘数和乘数最高位是符号位,分为 16位和 32位操作两种情况:
( 1) 16位乘法运算源都是 16位的,但积却是 32位的 。 积将按照,高对高,
低对低,的原则存放到目中,即积的低 16位存放到指令中给出的低地址目组件中,高 16位存放到高一号地址的目组件中 。 如果积用位组件 ( Y,M,S) 组合来存放
,则目组件要用 K8来给定,小于 K8将得不到 32位的积
,如用 K4则只能得到低 16位 。
5.4.3 BIN乘法指令 3
16位乘法允许使用脉冲执行方式:
MUL( P) [S1·] [S2·] [D·]。
( 2) 32位乘法运算
32位的脉冲方式的 MUL指令:
( D) MUL( P) D10 D20 D30。
指令中的源都是 32位的,被乘数的 32位在 D11和 D10中
,乘数的 32位在 D21和 D20中;但是积却是 64位的,并将存放到 D33,D32,D31和 D30中 。 如果积用位组件 (
Y,M,S) 组合来存放,即使用 K8来指定,也只能得到积的低 32位,积的高 32位将丢失 。 解决的办法是先用字元件存放积,然后再传送到位组件组合 。
若将浮点数标志位 M8023置 1,可进行浮点数乘法运算
5.4.3 BIN乘法指令 4
1,指令用法二进制除法指令,FNC23 DIV [S1·] [S2·] [D·]
[S1·],[S2·] 为存放被除数和除数源组件,[D·]为商和余数的目组件首地址 。 功能:将指定两个源组件中的数,
进行二进制有符数除法,将相除的商和余数送入从首地址开始的相应的目标组件中 。
2,指令说明 二进制除法指令 概要如表 5.23 。
5.4.4 BIN除法指令 1
图 5.39为除法指令 DIV示例梯形图,对应的指令为
DIV D10 D20 D30。
在图 5.39中,如 X010接通,
执行除法运算,将 D10与 D20
中的两内容相除,商送入 D30
中,而余数放入 D31中 。
DIV指令分为 16位和 32位操作两种情况 。
( 1) 16位除法运算
16位除法运算的源,目都是 16位的,虽然商是不会超过 16位 。 如商用位组件组合来存放,能得到相应指定的位数的商,如用 K4M0指定能得到 16位,但这时余数将丢失 。 解决的办法是先用字元件存放商和余数,然后再传送到位组件组合去 。
5.4.4 BIN除法指令 2
16位除法脉冲方式,DIV( P) [S1·] [S2·] [D·]。
( 2) 32位除法运算
32位脉冲方式 DIV指令,( D) DIV( P) D10 D20 D30

指令中的源,目都是 32位的,给出的都只是它们的首地址 。 被除数的 32位在 D11和 D10中,除数的 32位在
D21和 D20中;商的 32位在 D31和 D30中,余数的 32位在 D33和 D32中 。 都是按照,高对高,低对低,的原则存放的 。
如果商用位组件组合来存放,能得到相应指定位数的商
,如用 K8M0指定能得到 32位,但这时余数将丢失 。 解决的办法是先用字元件存放商和余数,然后再传送到位组件组合去 。
除法运算中除数不能为 0,否则要出错 。 若将浮点数标
5.4.4 BIN除法指令 3
1,指令用法二进制加 1指令,FNC24 INC [D·]
[D·]是要加 1的目组件 。
功能:将指定的目软组件的内容增加 1。
2,指令说明二进制加 1指令 概要如表 5.24 。
5.4.5 BIN加 1指令 1
图 5.40为加 1指令 INC的示例梯形图,对应的指令为:
INC( P) D10。
5.4.5 BIN加 1指令 2
INC指令常使用的是脉冲操作方式 。 在图 5.40中,如
X010由 OFF→ ON时,则将执行一次加 1运算,即将老的 D10内容加 1后作为新的 D10内容 。
INC指令不影响标志位 。 比如,用 INC指令进行 16位操作时,当正数 32767再加 1时,将会变为 -32768;这种情况下进位或借位标志都不受影响 。
INC指令最常用于循环次数,变址操作等情况 。
1,指令用法二进制减 1指令,FNC26 DEC [D·]
[D·]是要减 1的目组件 。
功能:将指定的目组件的内容增减 1。
2,指令说明二进制减 1指令 概要如表 5.25 。
5.4.6 BIN减 1指令 1
图 5.41为减 1指令 DEC的示例梯形图,对应的指令为:
DEC( P) D10。
5.4.5 BIN加 1指令 2
DEC指令经常使用的是脉冲操作方式 。 在图 5.41中,如
X010由 OFF→ON 时,则将执行一次减 1运算,即将老的
D10内容减 1后作为新的 D10内容 。
DEC指令不影响标志位 。 比如,用 DEC指令进行 16位操作时,当负数- 32768再减 1时,将会变为 32767;
这种情况下进位或借位标志都不受影响 。
DEC指令也常用于循环次数,变址操作等情况 。
1,指令用法逻辑,与,指令,FNC26 WAND [S1·] [S2·]
[D·] [S1·],[S2·]为两个相,与,的源组件,[D·]为放相
,与,结果的目组件 。 功能:将指定两源组件中数,进行二进制按位,与,,然后将相,与,结果送入指定的目软组件中 。
2,指令说明逻辑,与,指令 概要如表 5.26 。
5.4.7 逻辑,与,指令 1
图 5.42为逻辑,与,指令示例梯形图,对应的指令为:
WAND D10 D20 D30。
WAND前面的,W”表示 16位操作,以与,与,基本指令中的数据宽度仅一位的 AND指令相区别 。 如 X010接通,则将执行逻辑,与,运算,
即将 D10“与,D20中的内容,进行二进制按位,与,,
相,与 D10= 12,D20= 10,则送入 D30的相,与,结果为 8,相,与,的示意如图 5.43所示 。,与,运算的规则是:,全 1出 1,有 0出 0”。 在 D10与 D20相,与,
运算中,只有第 3位满足,全 1出 1”,在第 2至第 0位相
,与,中,至少有一位是 0,所以相,与,结果都是,
有 0出 0”。
5.4.7 逻辑,与,指令 2
逻辑,与,指令的 32位脉冲操作格式为:
( D) AND( P) [S1·] [S2·] [D·]。
指令中给出的 [S1·],[S2·]和 [D·]分别为源和目软组件的首地址 。
5.4.7 逻辑,与,指令 3
1,指令用法逻辑,或,指令,FNC27 WOR [S1·] [S2·]
[D·]
[S1·],[S2·] 为两个相,或,的源组件,[D·]为放相,或
” 结果的目组件 。
功能:将指定的两个源组件中的数,进行二进制按位,
或,,然后将相,或,结果送入指定的目标组件中 。
2,指令说明 逻辑,或,指令概要如表 5.27。
5.4.8 逻辑,或,指令 1
图 5.44为逻辑,或,指令示例梯形图,对应的指令为:
WOR D10 D20 D30。
WOR前面的,W”表示 16位操作,以与,或,基本指令中的数据宽度仅一位的 OR
指令相区别 。
如 X010接通,则将执行逻辑,或,运算,即将 D10“或
” D20中的内容,进行二进制按位,或,,相,或,结果将送入 D30中 。 假设 D10中的数据为 12,D20中的数据为 10,则送入 D30的相,或,结果为 14,相,或,的示意如图 5.45所示 。 或运算的规则是:,全 0出 0,有 1
出 1”。 在 D10或 D20相,或,运算中,只有第 0位满足,
全 0出 0”,在
5.4.7 逻辑,或,指令 2
第 3至第 1位相,或,中,至少有一位是 1,所以相,或
” 结果都是,有 1出 1”。
逻辑,或,指令的 32位脉冲操作格式为:
( D) OR( P) [S1·] [S2·] [D·]。 指令中给出的 [S1·]、
[S2·]和 [D·]分别为源和目软组件的首地址 。
5.4.7 逻辑,或,指令 3
1,指令用法逻辑,异或,指令,FNC28 WXOR [S1·] [S2·]
[D·]
[S1·],[S2·]为两个相,异或,的源组件,[D·]为放相,
异或,结果的目标组件 。
功能:将指定的两个源软组件中的数,进行二进制按位
,异或,,然后将相,异或,结果送入指定的目组件中

2,指令说明 逻辑,异或,指令概要如表 5.28。
5.4.9 逻辑,异或,指令 1
图 5.46为逻辑,异或,指令示例梯形图,对应的指令为
,WXOR D10 D20 D30。 WOR D10 D20 D30。
WXOR前面的,W”表示 16位操作 。 在图 5.46中,如果
X010接通,则将执行逻辑
,异或,运算,即将 D10“异或,D20中的内容,进行二进制按位,异或,,相,异或,结果将送入 D30中 。
设 D10= 12,D20= 10,则送入 D30相,异或,结果为 6
,相,异或,的示意如图 5.47所示 。,异或,运算可以理解为不考虑进位的按位加,其规则是:,相同出 0,
相异出 1”。 在 D10与 D20相,异或,运算中,第 3和第 0
位满足,相同出 0”,第 2和第 1位满足,相异出 1”。
5.4.9 逻辑,异或,指令 2
逻辑,异或,指令的 32位脉冲操作格式为:
( D) XOR( P) [S1·] [S2·] [D·]。
同样,指令中给出的 [S1·],[S2·]和 [D·]分别为源和目组件的首地址 。
5.4.9 逻辑,异或,指令 3
1,指令用法求补指令,FNC29 NEG [D·]。
[D·]为存放求补结果的目组件 。
功能:将将指定的目组件 [D·]中的数,进行二进制求补运算,然后将求补结果再送入目组件中 。
2,指令说明求补 指令概要如表 5.29。
5.4.10 求补指令 1
图 5.48为求补指令 NEG的示例梯形图,对应的指令为:
NEG D10
如果 X010接通,执行求补运算,即将 D10中的二进制数,
进行,连同符号位求反加 1”,再将求补结果送入 D10中求补示意如图 5.49。 设 D10= H000C,求补就要对它进行,连同符号位求反加 1”,最高位的符号位也得参加,
求反加 1”,求补结果为 HFFF4再存入 D10中 。
5.4.10 求补指令 2
求补同求补码是不同的,求补码的规则是:
,符号位不变,数值位求反加 1”,
对 H000C求补码的结果将是 H7FF4,两者的结果不一样
。 求补指令是绝对值不变的变号运算,求补前的 H000C
的真值是十进制+ 12,而求补后的 HFFF4的真值是十进制- 12。
求补指令的 32位脉冲操作格式为:
( D) NEG( P) [D·],
[D·]为目软组件的首地址 。 求补指令一般使用其脉冲执行方式,否则每个扫描周期都将执行一次求补操作 。
注意,5.5~ 5.8中的功能指令,不再做课件,需要时请查阅教材相关章节 。
5.4.10 求补指令 3