2024年2月21日发(作者:)

项目 字逻辑指令

1 。字逻辑指令概述

说明:字逻辑指令按照布尔逻辑将成对的字(16 位)和双字(32 位)逐位进行比较。如果输出OUT 的结果不等于“0”,则状态字的位 CC 1 被置为“1”。

如果输出OUT 的结果等于“0”,则状态字的位 CC 1 被置为“0”。下述字逻辑指令可供使用:

• WAND_W 字和字相“与(AND)”

• WOR_W 字和字相“或(OR)”

• WXOR_W 字和字相“异或(XOR)”

• WAND_DW 双字和双字相“与(AND)”

• WOR_DW 双字和双字相“或(OR)”

• WXOR_DW 双字和双字相“异或(XOR)”

2 。WAND_W 字和字相“与”

符号:

参数

EN

ENO

IN1

IN2

OUT

说明:WAND_W(字和字相“与”指令)通过使能输入(EN)的信号状态“1”激活,并将输入IN1 和 IN2 表示的两个字值逐位进行“与(AND)”运算。数值用纯二进制位的形式表示。其结果可以在输出OUT 中扫描。ENO 和EN 具有相同的逻辑状态。

举例:

数据类型

BOOL

BOOL

WORD

WORD

WORD

存储区域

I,Q,M,L,D

I,Q,M,L,D

I,Q,M,L,D

I,Q,M,L,D

I,Q,M,L,D

说明

使能输入

使能输出

第一个逻辑运算值

第二个逻辑运算值

逻辑运算的结果字

如果 I0.0 = “1”,则执行指令。只有 MW0 的位 0 到位 3 与之相关,MW0 的其余位被IN2 字位屏蔽。

MW0 = 01010101 01010101

IN2 = 00000000 00001111

MW0 AND IN2 = MW2 = 00000000 00000101

如果执行指令,则 Q4.0 为“1”。

3. WOR_W 字和字相“或”

符号:

参数

EN

ENO

IN1

IN2

OUT

数据类型

BOOL

BOOL

WORD

WORD

WORD

存储区域

I,Q,M,L,D

I,Q,M,L,D

I,Q,M,L,D

I,Q,M,L,D

I,Q,M,L,D

说明:WOR_W(字和字相“或”指令)通过使能输入(EN)的信号状态“1”激活,并将输入 IN1和 IN2 表示的两个字值逐位进行“或(OR)”运算。数值用纯二进制位的形式表示。其结果可以在输出OUT 中扫描。ENO 和EN 具有相同的逻辑状态。

举例:

说明

使能输入

使能输出

第一个逻辑运算值

第二个逻辑运算值

逻辑运算的结果字

如果 I0.0 = “1”,则执行指令。位 0 到位 3 被置为“1”,所有其它 MW0 位不变。

MW0 = 01010101 01010101

IN2 = 00000000 00001111

MW0 OR IN2=MW2 = 01010101 01011111

如果执行指令,则 Q4.0 为“1”。

4. WAND_DW 双字和双字相“与”

符号:

参数

EN

ENO

IN1

IN2

OUT

数据类型

BOOL

BOOL

DWORD

DWORD

DWORD

存储区域

I,Q,M,L,D

I,Q,M,L,D

I,Q,M,L,D

I,Q,M,L,D

I,Q,M,L,D

说明:WAND_DW(双字和双字相“与”指令)通过使能输入(EN)的信号状态“1”激活,并将输入 IN1 和 IN2 表示的两个字值逐位进行“与(AND)”运算。数值用纯二进制位的形式表示。其结果可以在输出OUT 中扫描。ENO 和EN 具有相同的逻辑状态。

举例:

说明

使能输入

使能输出

第一个逻辑运算值

第二个逻辑运算值

逻辑运算的结果双字

如果 I0.0 = “1”,则执行指令。只有 MD0 的位 0 到位11 与之相关,MD0 的其余位被IN2 位屏蔽。

MD0 = 01010101 01010101 01010101 01010101

IN2 = 00000000 00000000 00001111 11111111

MD0 AND IN2 = MD4 = 00000000 00000000 00000101 01010101

如果执行指令,则 Q4.0 为“1”。

5 WOR_DW 双字和双字相“或”

符号:

参数

EN

ENO

IN1

IN2

OUT

说明:WOR_DW(双字和双字相“或”指令)通过使能输入(EN)的信号状态“1”激活,并将输入 IN1 和 IN2 表示的两个字值逐位进行“或(OR)”运算。数值用纯二进制位的形式表示。其结果可以在输出OUT 中扫描。ENO 和EN 具有相同的逻辑状态。

举例:

数据类型

BOOL

BOOL

DWORD

DWORD

DWORD

存储区域

I,Q,M,L,D

I,Q,M,L,D

I,Q,M,L,D

I,Q,M,L,D

I,Q,M,L,D

说明

使能输入

使能输出

第一个逻辑运算值

第二个逻辑运算值

逻辑运算的结果双字

如果 I0.0 = “1”,则执行指令。位 0 到位11 被置为“1”,所有其它 MD0 位不变。

MD0 = 01010101 01010101 01010101 01010101

IN2 = 00000000 00000000 00001111 11111111

MD0 OR IN2 = MD4 = 01010101 01010101 01011111 11111111

如果执行指令,则 Q4.0 为“1”。

6. WXOR_W 字和字相“异或”

符号:

参数

EN

ENO

IN1

IN2

OUT

数据类型

BOOL

BOOL

WORD

WORD

WORD

存储区域

I,Q,M,L,D

I,Q,M,L,D

I,Q,M,L,D

I,Q,M,L,D

I,Q,M,L,D

说明:WXOR_W(字和字相“异或”指令)通过使能输入(EN)的信号状态“1”激活,并将输入 IN1 和 IN2 表示的两个字值逐位进行“异或(XOR)”运算。数值用纯二进制位的形式表示。其结果可以在输出OUT 中扫描。ENO 和EN 具有相同的逻辑状态。

举例:

说明

使能输入

使能输出

第一个逻辑运算值

第二个逻辑运算值

逻辑运算的结果字

如果 I0.0 = “1”,则执行指令:

MW0 = 01010101 01010101

IN2 = 00000000 00001111

MW0 XOR IN2 = MW2 = 01010101 01011010

如果执行指令,则 Q4.0 为“1”。

7 。WXOR_DW 双字和双字相“异或”

符号:

参数

EN

ENO

IN1

IN2

OUT

数据类型

BOOL

BOOL

DWORD

DWORD

DWORD

存储区域

I,Q,M,L,D

I,Q,M,L,D

I,Q,M,L,D

I,Q,M,L,D

I,Q,M,L,D

说明

使能输入

使能输出

第一个逻辑运算值

第二个逻辑运算值

逻辑运算的结果双字

说明:WXOR_DW(双字和双字相“异或”指令)通过使能输入(EN)的信号状态“1”激活,并将输入 IN1 和 IN2 表示的两个字值逐位进行“异或(XOR)”运算。数值用纯二进制位的形式表示。其结果可以在输出OUT 中扫描。ENO 和EN 具有相同的逻辑状态。

举例:

如果 I0.0 = “1”,则执行指令:

MD0 = 01010101 01010101 01010101 01010101

IN2 = 00000000 00000000 00001111 11111111

MW2 = MD0 XOR IN2 = 01010101 01010101 01011010 10101010

如果执行指令,则 Q4.0 为“1”

举例:字逻辑指令

加热炉

操作员按启动按钮开始加热炉。操作员能够使用如图所示的拨码开关设定加热时间。操作员设定的值以二-十进制(BCD)格式用[秒]为单位显示。

梯形逻辑程序

程序段1:如果定时器运行,则接通加热器。

程序段2:如果定时器运行,则 Return 指令结束在此的处理。

程序段 3:屏蔽输入位I 0.4 至I 0.7(即将其复位为“0”)。不使用拨码开关输入这些位。按照字和字相“与”指令,将拨码开关输入的16 位与 W#16#0FFF 相结合。其结果装入存储器字 MW1 中。为了设定以[秒]为单位的时基,按照字和字相“或”指令将预置值和W#16#2000 相结合,将位13 置为“1”,位12 复位为“0”。

程序段 4:如果按动启动按钮,则启动定时器T1 为扩展脉冲定时器,以存储器字 MW2

装入(取自上述逻辑)预置时间值。