龙空技术网

S7-1500PLC梯形图(LAD)基础指令——程序控制指令

Look自动化 1343

前言:

眼前兄弟们对“c语言布尔型变量”都比较着重,我们都需要分析一些“c语言布尔型变量”的相关知识。那么小编在网络上汇集了一些有关“c语言布尔型变量””的相关文章,希望看官们能喜欢,我们一起来了解一下吧!

---( JMP ):若 RLO = "1" 则跳转

说明

可以使用“若 RLO = "1" 则跳转”指令中断程序的顺序执行,并从其它程序段继续执行。目标程序段必须由跳转标签 (LABEL) 进行标识。在指令上方的占位符指定该跳转标签的名称。

指定的跳转标签与执行的指令必须位于同一数据块中。指定的名称在块中只能出现一次。一个程度段中只能使用一个跳转线圈。

如果该指令输入的逻辑运算结果 (RLO) 为“1”,则将跳转到由指定跳转标签标识的程序段。可以跳转到更大或更小的程序段编号。

如果不满足该指令输入的条件 (RLO = 0),则程序将继续执行下一程序段。

示例

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

如果操作数“TagIn_1”的信号状态为“1”,则执行“若 RLO = "1" 则跳转”指令。将中断程序的顺序执行,并继续执行由跳转标签 CAS1 标识的程序段 3。如果“TagIn_3”输入的信号状态为“1”,则置位“TagOut_3”输出。

---( JMPN ):若 RLO = "0" 则跳转

说明

当该指令输入的逻辑运算结果为“0”时,使用“若 RLO = "0" 则跳转”指令,可中断程序的顺序执行,并从其它程序段继续执行。目标程序段必须由跳转标签 (LABEL) 进行标识。在指令上方的占位符指定该跳转标签的名称。

指定的跳转标签与执行的指令必须位于同一数据块中。指定的名称在块中只能出现一次。一个程度段中只能使用一个跳转线圈。

如果该指令输入的逻辑运算结果 (RLO) 为“0”,则将跳转到由指定跳转标签标识的程序段。可以跳转到更大或更小的程序段编号。

如果该指令输入端的逻辑运算结果为“1”,则程序在下一个程序段中继续执行。

示例

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

如果操作数“TagIn_1”的信号状态为“0”,则执行“若 RLO = "0" 则跳转”指令。将中断程序的顺序执行,并继续执行由跳转标签 CAS1 标识的程序段 3。如果“TagIn_3”输入的信号状态为“1”,则置位“TagOut_3”输出。

LABEL:跳转标签

说明

可使用跳转标签来标识一个目标程序段。执行跳转时,应继续执行该程序段中的的程序。

跳转标签与指定跳转标签的指令必须位于同一数据块中。跳转标签的名称在块中只能分配一次。CPU S7-1200 最多可以声明 32 个跳转标签,而 CPU S7-1500 最多可以声明 256 个跳转标签。

一个程序段中只能设置一个跳转标签。每个跳转标签可以跳转到多个位置。

遵守跳转标签的以下语法规则:

字母(a 至 z,A 至 Z)字母和数字组合;需注意排列顺序,如首先是字母,然后字母(a - z,A - Z,0 - 9)不能使用特殊字符或反向排序字母与数字组合,如首先是数字,然后是字母(0 - 9,a - z,A - Z)

示例

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

如果操作数“TagIn_1”的信号状态为“1”,则执行“若 RLO = "1" 则跳转”指令。将中断程序的顺序执行,并继续执行由跳转标签 CAS1 标识的程序段 3。如果“TagIn_3”输入的信号状态为“1”,则置位“TagOut_3”输出。

JMP_LIST:定义跳转列表

说明

使用“定义跳转列表”指令,可定义多个有条件跳转,并继续执行由 K 参数的值指定的程序段中的程序。

可使用跳转标签 (LABEL) 定义跳转,跳转标签则可以在指令框的输出指定。可在指令框中增加输出的数量。CPU S7-1200 最多可以声明 32 个输出,而 CPU S7-1500 最多可以声明 256 个输出。

输出从值“0”开始编号,每次新增输出后以升序继续编号。在指令的输出中只能指定跳转标签。而不能指定指令或操作数。

K 参数值将指定输出编号,因而程序将从跳转标签处继续执行。如果 K 参数值大于可用的输出编号,则继续执行块中下个程序段中的程序。

仅在 EN 使能输入的信号状态为“1”时,才执行“定义跳转列表”指令。

参数

下表列出了“定义跳转列表”指令的参数:

参数

声明

数据类型

存储区

说明

EN

Input

BOOL

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

使能输入

K

Input

UINT

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

指定输出的编号以及要执行的跳转。

DEST0

-

-

-

第一个跳转标签

DEST1

-

-

-

第二个跳转标签

DESTn

-

-

-

可选跳转标签

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

示例

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

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

参数

操作数/跳转标签

K

Tag_Value

1

Dest0

LABEL0

跳转到由跳转标签“LABEL0”标识的程序段。

Dest1

LABEL1

跳转到由跳转标签“LABEL1”标识的程序段。

Dest2

LABEL2

跳转到由跳转标签“LABEL2”标识的程序段。

如果操作数“Tag_Input”的信号状态为“1”,则执行“定义跳转列表”指令。根据操作数“Tag_Value”的值在跳转标签“LABEL1”标识的程序段中继续执行程序。

SWITCH:跳转分支指令

说明

可以使用“跳转分支”指令,根据一个或多个比较指令的结果,定义要执行的多个程序跳转。

在参数 K 中指定要比较的值。将该值与各个输入提供的值进行比较。可以为每个输入选择比较方法。各比较指令的可用性取决于指令的数据类型。

下表根据选定的数据类型列出了可用的比较指令:

数据类型

指令

语法

S7-1200

S7-1500

位字符串

位字符串

等于

==

不等于

<>

整数、浮点数、TIME、DATE、TOD

整数、浮点数、TIME、LTIME、DATE、TOD、LTOD、LDT

等于

==

不等于

<>

大于或等于

>=

小于或等于

<=

大于

>

小于

<

可以从指令框的“???”下拉列表中选择该指令的数据类型。如果选择了比较指令而尚未定义指令的数据类型,“???”下拉列表将仅列出所选比较指令允许的那些数据类型。

该指令从第一个比较开始执行,直至满足比较条件为止。如果满足比较条件,则将不考虑后续比较条件。如果未满足任何指定的比较条件,将在输出 ELSE 处执行跳转。如果输出 ELSE 中未定义程序跳转,则程序从下一个程序段继续执行。

可在指令框中增加输出的数量。输出从值“0”开始编号,每次新增输出后以升序继续编号。在指令的输出中指定跳转标签 (LABEL)。不能在该指令的输出上指定指令或操作数。

输入将自动插入到每个附加输出中。如果满足输入的比较条件,则将执行相应输出处设定的跳转。

参数

下表列出了“跳转分支指令”指令的参数:

参数

声明

数据类型

存储区

说明

S7-1200

S7-1500

EN

Input

BOOL

BOOL

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

使能输入

K

Input

UINT

UINT

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

指定要比较的值。

<比较值>

Input

位字符串、整数、浮点数、TIME、DATE、TOD

位字符串、整数、浮点数、TIME、LTIME、DATE、TOD、LTOD、LDT

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

参数 K 的值要与其比较的输入值。

DEST0

-

-

-

-

第一个跳转标签

DEST1

-

-

-

-

第二个跳转标签

DEST(n)

-

-

-

-

可选跳转标签:

S7-1200:n = 2 到 32S7-1500:n = 2 到 256

ELSE

-

-

-

-

不满足任何比较条件时,执行的程序跳转。

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

示例

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

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

参数

操作数/跳转标签

K

Tag_Value

23

==

Tag_Value_1

20

>

Tag_Value_2

21

<

Tag_Value_3

19

DEST0

LABEL0

跳转到跳转标签“LABEL0”(如果参数 K 的值等于 20)。

DEST1

LABEL1

跳转到跳转标签“LABEL1”(如果参数 K 的值大于 21)。

DEST2

LABEL2

跳转到跳转标签“LABEL2”(如果参数 K 的值小于 19)。

ELSE

LABEL3

如果不满足任何比较条件,则跳转到跳转标签“LABEL3”。

如果操作数“Tag_Input”的信号状态变为“1”,则执行“跳转分支指令”指令。继续在跳转标签“LABEL1”标识的程序段中执行程序。

--(RET):返回

说明

可使用“返回”指令停止有条件执行或无条件执行的块。程序块退出时,返回值(操作数)的信号状态与调用程序块的使能输出ENO 相对应。

可通过以下三种方式结束程序块的执行:

终止程序块

说明

无指令调用

在执行完最后一个程序段后,退出程序块。并将该调用程序块使能输出ENO 的信号状态置位为“1”。

通过前置逻辑运算调用该指令(请参见示例)

如果满足前置逻辑运算的条件,则在程序块结束在当前所调用程序块中的运行。(条件程序块结束)在程序块调用后继续在调用程序块中执行该程序。并将该调用程序块的使能输出ENO 与该操作数相匹配。

不通过前置逻辑运算调用该指令,或者将指令直接连接到左侧电源线上。

程序块无条件退出。(无条件程序块结束)并将该调用程序块的使能输出ENO 与该操作数相匹配。

如果结束了某个组织块 (OB),则执行等级系统将选择另一个程序块开始执行或继续执行。

在该 OB 程序循环结束时,重新启动。如果 OB 结束并中断了其它块(如,中断 OB),则中断的程序块(如,程序循环 OB)将继续执行。

说明

RET 与 JMP 和 JMPN 指令相关

如果程序段中已包含有“JMP:若 RLO = "1" 则跳转”或“JMPN:若 RLO = "0" 则跳转”指令,则不得使用 RET:返回指令。每个程序段中只能使用一个跳转线圈。

返回值的可能设置(操作数):

该指令的返回值可以为:

Ret(RLO,即逻辑运算结果 RLO。由于当条件为 TRUE 时,RET 指令只能运行为条件指令,因此调用程序块使能输出 ENO 的信号状态为“1”。Ret TRUE 或 Ret FALSE(常量的对应值,调用程序块的值为 TRUE 或 FALSE。)Ret TRUE(调用程序块的值为布尔型变量 <操作数> 的值。)

要设置该指令的返回值,可单击该指令旁的黄色小三角并在下拉列表中选择相应值。

下表列出了当所调用程序块中的程序段写入该指令时调用调用函数的状态:

RLO

返回值

调用程序块的 ENO

1

RLO

1

TRUE

1

FALSE

0

<操作数>

布尔型变量的存储区 I、Q、M、D、L、T 和 C

<操作数>

0

RLO

该程序块在所调用程序块的下一段程序中继续执行。

TRUE

FALSE

<操作数>

示例

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

如果操作数“TagIn”的信号状态为“1”,则执行该指令。在所调用的程序块中结束程序执行,然后在正调用块中继续执行。并将调用程序块使能输出ENO 的信号状态复位为“0”。

标签: #c语言布尔型变量