S7-1500PLC梯形图(LAD)基础指令——字逻辑运算3

S7-1500PLC梯形图(LAD)基础指令——字逻辑运算3

编码文章call10242025-01-14 10:30:5427A+A-

SEL:选择


说明

“选择”指令根据开关(输入 G)的情况,选择输入 IN0 或 IN1 中的一个,并将其内容复制到输出 OUT。如果输入 G 的信号状态为“0”,则移动输入 IN0 的值。如果输入 G 的信号状态为“1”,则将输入 IN1 的值移动到输出 OUT 中。

所有参数的所有变量都必须具有相同的数据类型。

参数

下表列出了“选择”指令的参数:

参数

声明

数据类型

存储区

说明

S7-1200

S7-1500

S7-1200

S7-1500

EN

Input

BOOL

BOOL

I、Q、M、D、L 或常量

I、Q、M、D、L 或常量

使能输入

ENO

Output

BOOL

BOOL

I、Q、M、D、L

I、Q、M、D、L

使能输出

G

Input

BOOL

BOOL

I、Q、M、D、L 或常量

I、Q、M、D、L、T、C 或常量

开关

IN0

Input

位字符串、整数、浮点数、定时器、TOD、CHAR、WCHAR、DATE

位字符串、整数、浮点数、定时器、TOD、LTOD、LDT、CHAR、WCHAR、DATE

I、Q、M、D、L、P 或常量

I、Q、M、D、L、P 或常量

第一个输入值

IN1

Input

位字符串、整数、浮点数、定时器、TOD、CHAR、WCHAR、DATE

位字符串、整数、浮点数、定时器、TOD、LTOD、LDT、CHAR、WCHAR、DATE

I、Q、M、D、L、P 或常量

I、Q、M、D、L、P 或常量

第二个输入值

OUT

Output

位字符串、整数、浮点数、定时器、TOD、CHAR、WCHAR、DATE

位字符串、整数、浮点数、定时器、TOD、LTOD、LDT、CHAR、WCHAR、DATE

I、Q、M、D、L、P

I、Q、M、D、L、P

结果

可以从指令框的“???”下拉列表中选择该指令的数据类型。

有关有效数据类型的更多信息,请参见“另请参见”。

示例

以下示例说明了该指令的工作原理:

下表将通过具体的操作数值对该指令的工作原理进行说明:

参数

操作数

G

TagIn_G

0

1

IN0

TagIn_Value0

W#16#0000

W#16#4C

IN1

TagIn_Value1

W#16#FFFF

W#16#5E

OUT

TagOut_Value

W#16#0000

W#16#5E

如果操作数“TagIn”的信号状态为“1”,则执行该指令。根据“TagIn_G”输入的信号状态,选择“TagIn_Value0”或“TagIn_Value1”输入的值并将其移动到“TagOut_Value”输出。如果成功执行了该指令,则使能输出 ENO 的信号状态为“1”,同时置位输出“TagOut”。

MUX:多路复用


说明

可以使用指令“多路复用”将选定输入的内容复制到输出 OUT。可以扩展指令框中可选输入的编号。最多可声明 32 个输入。

输入会在该框中自动编号。编号从 IN0 开始,每次新增输入后将连续递增。可以使用参数 K 定义其内容要复制到输出 OUT 中的输入。如果参数 K 的值大于可用输入数,则参数 ELSE 的内容将复制到输出 OUT 中,并且使能输出 ENO 的信号状态会被指定为“0”。

仅当所有输入和输出 OUT 中变量的数据类型都相同时,才能执行“多路复用”指令。参数 K 有所例外,因为只能为其指定整数。

如果满足下列条件之一,则使能输出 ENO 的信号状态为“0”:

  • 使能输入 EN 的信号状态为“0”。
  • 参数 K 的输入超出了可用输入。这不受是否使用输入 ELSE 的影响。输出 OUT 中的值将会改变。
  • 执行该指令期间出错。

参数

下表列出了“多路复用”指令的参数:

参数

声明

数据类型

存储区

说明

S7-1200

S7-1500

EN

Input

BOOL

BOOL

I、Q、M、D、L 或常量

使能输入

ENO

Output

BOOL

BOOL

I、Q、M、D、L

使能输出

K

Input

整数

整数

I、Q、M、D、L、P 或常量

指定要复制哪个输入的数据。

  • 如果 K = 0,则参数 IN0
  • 如果 K = 1,则参数 IN1,依此类推

IN0

Input

二进制数、整数、浮点数、定时器、CHAR、WCHAR、TOD、DATE

二进制数、整数、浮点数、定时器、CHAR、WCHAR、TOD、LTOD、DATE、LDT

I、Q、M、D、L、P 或常量

第一个输入值

IN1

Input

二进制数、整数、浮点数、定时器、CHAR、WCHAR、TOD、DATE

二进制数、整数、浮点数、定时器、CHAR、WCHAR、TOD、LTOD、DATE、LDT

I、Q、M、D、L、P 或常量

第二个输入值

INn

Input

二进制数、整数、浮点数、定时器、CHAR、WCHAR、TOD、DATE

二进制数、整数、浮点数、定时器、CHAR、WCHAR、TOD、LTOD、DATE、LDT

I、Q、M、D、L、P 或常量

可选的输入值

ELSE

Input

二进制数、整数、浮点数、定时器、CHAR、WCHAR、TOD、DATE

二进制数、整数、浮点数、定时器、CHAR、WCHAR、TOD、LTOD、DATE、LDT

I、Q、M、D、L、P 或常量

指定 K > n 时要复制的值。

OUT

Output

二进制数、整数、浮点数、定时器、CHAR、WCHAR、TOD、DATE

二进制数、整数、浮点数、定时器、CHAR、WCHAR、TOD、LTOD、DATE、LDT

I、Q、M、D、L、P

要将值复制到的输出。

可以从指令框的“???”下拉列表中选择该指令的数据类型。

有关有效数据类型的更多信息,请参见“另请参见”。

示例

以下示例说明了该指令的工作原理:

下表将通过具体的操作数值对该指令的工作原理进行说明:

参数

操作数

K

Tag_Number

1

IN0

Tag_Value_0

DW#16#00000000

IN1

Tag_Value_1

DW#16#003E4A7D

ELSE

Tag_Value_2

DW#16#FFFF0000

OUT

Tag_Result

DW#16#003E4A7D

如果操作数“Tag_Input”的信号状态为“1”,则执行该指令。根据操作数“Tag_Number”的值,复制输入“Tag_Value_1”的值,并将其分配给输出“Tag_Result”的操作数。如果成功执行该指令,则置位使能输出“ENO”和“Tag_Output”。

DEMUX:多路分用


说明

可以使用指令“多路分用”将输入 IN 的内容复制到选定的输出。可以在指令框中扩展选定输出的编号。在此框中自动对输出编号。编号从 OUT0 开始,对于每个新输出,此编号连续递增。可以使用参数 K 定义要将输入 IN 的内容复制到的输出。其它输出则保持不变。如果参数 K 的值大于可用的输出数目,则将输入 IN 的内容复制到参数 ELSE 中,并将使能输出 ENO 的信号状态指定为“0”。

只有当所有输入 IN 与所有输出具有相同数据类型时,才能执行指令“多路分用”。参数 K 有所例外,因为只能为其指定整数。

如果满足下列条件之一,将复位使能输出 ENO:

  • 使能输入 EN 的信号状态为“0”。
  • 参数 K 的值大于可用输出数。
  • 执行该指令期间出错。

参数

下表列出了指令“多路分用”的参数:

参数

声明

数据类型

存储区

说明

S7-1200

S7-1500

EN

Input

BOOL

BOOL

I、Q、M、D、L 或常量

使能输入

ENO

Output

BOOL

BOOL

I、Q、M、D、L

使能输出

K

Input

整数

整数

I、Q、M、D、L、P 或常量

指定要将输入值 (IN) 复制到的输出。

  • 如果 K = 0,则复制参数 OUT0
  • 如果 K = 1,则复制参数 OUT1,依此类推

IN

Input

二进制数、整数、浮点数、定时器、CHAR、WCHAR、TOD、DATE

二进制数、整数、浮点数、定时器、CHAR、WCHAR、TOD、LTOD、DATE、LDT

I、Q、M、D、L、P 或常量

输入值

OUT0

Output

二进制数、整数、浮点数、定时器、CHAR、WCHAR、TOD、DATE

二进制数、整数、浮点数、定时器、CHAR、WCHAR、TOD、LTOD、DATE、LDT

I、Q、M、D、L、P

第一个输出

OUT1

Output

二进制数、整数、浮点数、定时器、CHAR、WCHAR、TOD、DATE

二进制数、整数、浮点数、定时器、CHAR、WCHAR、TOD、LTOD、DATE、LDT

I、Q、M、D、L、P

第二个输出

OUTn

Output

二进制数、整数、浮点数、定时器、CHAR、WCHAR、TOD、DATE

二进制数、整数、浮点数、定时器、CHAR、WCHAR、TOD、LTOD、DATE、LDT

I、Q、M、D、L、P

可选输出

ELSE

Output

二进制数、整数、浮点数、定时器、CHAR、WCHAR、TOD、DATE

二进制数、整数、浮点数、定时器、CHAR、WCHAR、TOD、LTOD、DATE、LDT

I、Q、M、D、L、P

要将输入值(K > n 中的 IN)复制到的输出。

可以从指令框的“???”下拉列表中选择该指令的数据类型。

有关可用数据类型的更多信息,请参见“另请参见”。

示例

以下示例说明了该指令的工作原理:

下表将通过具体的操作数值对该指令的工作原理进行说明:

执行程序段之前“多路分用”指令的输入值

参数

操作数

K

Tag_Number

1

4

IN

Tag_Value

DW#16#FFFFFFFF

DW#16#003E4A7D

执行程序段之后“多路分用”指令的输出值

参数

操作数

OUT0

Tag_Output_0

不变

不变

OUT1

Tag_Output_1

DW#16#FFFFFFFF

不变

ELSE

Tag_Output_2

不变

DW#16#003E4A7D

如果操作数“Tag_Input”的信号状态为“1”,则执行该指令。根据操作数“Tag_Number”的值,将输入“IN”的值复制到对应的输出。

点击这里复制本文地址 以上内容由文彬编程网整理呈现,请务必在转载分享时注明本文地址!如对内容有疑问,请联系我们,谢谢!
qrcode

文彬编程网 © All Rights Reserved.  蜀ICP备2024111239号-4