• 沒有找到結果。

8.3.4 /R 作为浮点数(32位,IEEE-FP),累加器2的内容除以累加器1的内容

10 程序控制指令

10 程序控制指令

10.1 程序控制指令概述

说明

下述程序控制指令可供使用:

• BE 块结束

• BEC 条件块结束

• BEU 无条件块结束

• CALL 块调用

• CC 条件调用

• UC 无条件调用

• 调用功能块

• 调用功能

• 调用系统功能块

• 调用系统功能

• 调用多背景块

• 从库中调用块

• MCR (主控继电器)

• 使用 MCR 功能的重要注意事项

• MCR( 将 RLO 存入 MCR 堆栈,开始 MCR

• )MCR 结束 MCR

• MCRA 激活 MCR 区域

• MCRD 去活 MCR 区域

长沙工控帮教育科技有限公司整理

10.2 BE 块结束

10-3

10.3 BEC 条件块结束

格式

BEC

说明

如果 RLO = 1,使用该指令,可以中断在当前块中的程序扫描,并跳转到调用当 前块的程序块。然后从块调用语句后的第一个指令开始,重新进行程序扫 描。并 将当前的本地数据区域释放,前一本地数据区域即成为当前本地数据区域 。调用 块时打开的数据块将被重新打开。调用块的 MCR 相关性被恢复。

RLO (= 1) 从被中止的块传送到调用块。如果 RLO = 0,则不执行该指令。RLO 被 置为“1”,程序扫描从该指令后的下一指令继续。

状态字

BR CC 1 CC 0 OV OS OR STA RLO /FC

写: - - - - x 0 1 1 0

举例

STL A I 1.0

BEC

L IW4 T MW10

// 刷新 RLO。

// 如果 RLO = 1,结束块。

// 如果没有执行 BEC,RLO = 0,则继此继续程序扫描。

长沙工控帮教育科技有限公司整理

10.4 BEU 无条件块结束

格式

BEU

说明

使用该指令,可以中止在当前块中的程序扫描,并跳转到调用当前块的程 序块。

然后从块调用语句后的第一个指令开始,重新进行程序扫描。并将当前的 本地数 据区域释放,前一本地数据区域即成为当前本地数据区域。调用块时打开 的数据 块将被重新打开。另外,还恢复调用块的 MCR 相关性,并将 RLO 从当前块传 送到调用当前块的程序块。该指令与任何条件无关。但是,如果该指令被 跳转,

则当前程序扫描不结束,而是从块内跳转目的地处继续。

状态字

BR CC 1 CC 0 OV OS OR STA RLO /FC

写: - - - - 0 0 1 - 0

举例

STL A I 1.0

JC NEXT L IW4 T IW10 A I 6.0 A I 6.1 S M 12.0 BEU

NEXT: NOP 0

// 如果 RLO = 1(I 1.0 = 1),则跳转到 NEXT 跳转标号。

// 如果没有执行跳转,则继此继续程序扫描。

// 无条件块结束

// 如果执行了跳转,则继此继续程序扫描。

长沙工控帮教育科技有限公司整理

10-5

10.5 CALL 块调用

格式

CALL <逻辑块标识符>

说明

使用该指令,可以调用功能(FC)或功能块(SFB)、系统功能(SFC)或系统 功能块(SFB),或调用由西门子公司提供的标准预编程块。使用该指令,可以 调用可作为地址输入的 FC 和 SFC 或 FB 和 SFB,与 RLO 或其它条件无关。

如果使用该指令调用一个 FB 或 SFB,必须提供具有相关背景数据块的程序块。

在被调用块处理完后,调用块程序继续逻辑处理。逻辑块的地址可以绝对 指定,

也可相对指定。在 SFB/SFC 调用后,保存寄存器的内容。

例如:CALL FB1,DB1 或 CALL FILLVAT1,RECIPE1

逻辑块 块类型 绝对地址调用语法

FC 功能 CALL FCn

SFC 系统功能 CALL SFCn

FB 功能块 CALL FBn1,DBn2

SFB 系统功能块 CALL SFBn1,DBn2

注意

如果使用的是语句表编辑器(STL Editor),上表中的 n、n1 和 n2 必须是有效 的现有块。同样,在使用之前必须定义符号名。

长沙工控帮教育科技有限公司整理

传送参数(增量编辑方式)

调用块可通过一个变量表与被调用块交换参数。

当你输入一个有效的调用语句时,语句表程序中的变量表可自动扩展。

如果调用一个功能块(FB)、系统功能块(SFB)、功能(FC)或系统功能(SFC),

并且被调用块的变量声明表中有 IN、OUT 和 IN_OUT 声明,则这些变量作为一 个形式参数表被添加到调用块中。

如果调用的是一个功能(FC)和系统功能(SFC),则必须在调用逻辑块中为声 明的形式参数赋值实际参数。

如果调用的是功能块(FB)和系统功能块(SFB),只需定义与以前调用相比必 须进行修改的实际参数。在处理完功能块后,实际参数保存在背景数据块 中。如 果实际参数是一个数据块,则必须指定完整的绝对地址,例如 DB1,DBW2。

IN 参数可作为常数、绝对地址或符号地址定义。OUT 和 IN_OUT 参数必须作为 绝对地址或符号地址定义。必须保证所有地址和常数与要传送的数据类型相符。

调用指令可将返回地址(选择符和相对地址)、两个当前数据块的选择符以及 MA 位保存在 B(块)堆栈中。除此之外,调用指令还可去活 MCR 的相关性,然后 生成被调用块的本地数据范围。

状态字

BR CC 1 CC 0 OV OS OR STA RLO /FC

写: - - - - 0 0 1 - 0

长沙工控帮教育科技有限公司整理

10-7

10.6 调用功能块

格式

CALL FB n1,DB n1

说明

使用该指令,可调用用户定义的功能块(FB)。调用指令能够调用你作为地址输 入的功能块,与 RLO 或其它条件无关。如果使用调用指令调用一个功能块,必 须为它提供一个背景数据块。在处理完被调用块后,调用块程序继续处理 。逻辑 块的地址可以绝对指定,也可相对指定。

传送参数(增量编辑方式)

调用块可通过一个变量表与被调用的块交换参数。当你输入一个有效的调 用语句 时,语句表程序中的变量表可自动扩展。

如果调用一个功能,并且调用块的变量声明表中有 IN、OUT 和 IN_OUT 声明,

则这些变量作为一个形式参数表被添加到用于调用块的程序中。

由于在功能块处理完之后,实际参数保存在背景数据块中,当调用功能块 时,只 需定义与以前调用相比必须修改的实际参数。如果实际参数是一个数据块 ,则必 须指定完整的绝对地址,例如 DB1,DBW2。

IN 参数可作为常数、绝对地址或符号地址定义。OUT 和 IN_OUT 参数必须作为 绝对地址或符号地址定义。必须保证所有地址和常数与要传送的数据类型相符。

调用指令可将返回地址(选择符和相对地址)、两个当前数据块的选择符以及 MA 位保存在 B(块)堆栈中。除此之外,调用指令还可去活 MCR 的相关性,然后 生成被调用块的本地数据范围。

状态字

BR CC 1 CC 0 OV OS OR STA RLO /FC

写: - - - - 0 0 1 - 0

长沙工控帮教育科技有限公司整理

10-9 举例1:使用背景数据块 DB1 调用 FB99

CALL FB99,DB1 形式参数

MAX_RPM MIN_RPM MAX_POWER MAX_TEMP

实际参数 := #RPM1_MAX := #RPM1 := #POWER1 := #TEMP1

举例2:使用背景数据块 DB2 调用 FB99

CALL FB99,DB2 形式参数

MAX_RPM MIN_RPM MAX_POWER MAX_TEMP

实际参数 := #RPM2_MAX := #RPM2 := #POWER2 := #TEMP2

注意

每一次功能块(FB)调用都必须有一个背景数据块。在上述举例中,数据块 DB1 和 DB2 必须在调用之前已存 在。

长沙工控帮教育科技有限公司整理

10.7 调用功能

格式

CALL FC n

注意

如果使用的是语句表 编辑器(STL Editor),“n”必须指向现有有效块。在使用之前,

还必须定义符号名。

说明

使用该指令,可调用功能(FC)。调用指令能够调用你作为地址输入的功能(FC),

与 RLO 或其它条件无关。在处理完被调用块后,调用块程序继续处理。逻辑块 的地址可以绝对指定,也可相对指定。

传送参数(增量编辑方式)

调用块可通过一个变量表与被调用的块交换参数。当你输入一个有效的调 用语句 时,语句表程序中的变量表可自动扩展。

如果调用一个功能,并且调用块的变量声明表中有 IN、OUT 和 IN_OUT 声明,

则这些变量作为一个形式参数表被添加到用于调用块的程序中。

在调用功能时,必须在调用逻辑块中为声明的形式参数赋值实际参数。

IN 参数可作为常数、绝对地址或符号地址定义。OUT 和 IN_OUT 参数必须作为 绝对地址或符号地址定义。必须保证所有地址和常数与要传送的数据类型相符。

调用指令可将返回地址(选择符和相对地址)、两个当前数据块的选择符以及 MA 位保存在 B(块)堆栈中。除此之外,调用指令还可去活 MCR 的相关性,然后 生成被调用块的本地数据范围。

长沙工控帮教育科技有限公司整理

10-11 状态字

BR CC 1 CC 0 OV OS OR STA RLO /FC

写: - - - - 0 0 1 - 0

例如:为 FC6 调用赋值参数

CALL FC6 形式参数 NO OF TOOL TIME OUT FOUND ERROR

实际参数 := MW100 := MW110 := Q0.1 := Q100.0

长沙工控帮教育科技有限公司整理

10.8 调用系统功能块

格式

CALL SFB n1,DB n2

说明

使用该指令,可调用由西门子公司提 供的标准功能块(SFB)。调用指令能够调 用你作为地址输入的系统功能块(SFB),与 RLO 或其它条件无关。如果使用 调用指令调用一个系统功能块,必须为它提供一个背景数据块。在处理完 被调用 块后,调用块程序继续处理。逻辑块的地址可以绝对指定,也可相对指定。

传送参数(增量编辑方式)

调用块可通过一个变量表与被调用的块交换参数。当你输入一个有效的调 用语句 时,语句表程序中的变量表可自动扩展。

如果调用一个系统功能块,并且调用块的变量声明表中有 IN、OUT 和 IN_OUT 声明,则这些变量作为一个形式参数表被添加到用于调用块的程序中。

由于在系统功能块处理完之后,实际参数保存在背景数据块中,当调用系 统功能 块时,只需定义与以前调用相比必须修改的实际参数。如果实际参数是一 个数据 块,则必须指定完整的绝对地址,例如 DB1,DBW2。

IN 参数可作为常数、绝对地址或符号地址定义。OUT 和 IN_OUT 参数必须作为 绝对地址或符号地址定义。必须保证所有地址和常数与要传送的数据类型相符。

调用指令可将返回地址(选择符和相对地址)、两个当前数据块的选择符以及 MA 位保存在 B(块)堆栈中。除此之外,调用指令还可去活 MCR 的相关性,然后 生成被调用块的本地数据范围。

长沙工控帮教育科技有限公司整理

10-13 状态字

BR CC 1 CC 0 OV OS OR STA RLO /FC

写: - - - - 0 0 1 - 0

举例

CALL SFB4,DB4 形式参数 IN:

PT:

Q:

ET:

实际参数 I0.1 T#20s M0.0 MW10

注意

每一次系统功能块调用都必须有一个背景数据 块。在上述举例中,数据块 SFB4 和 DB4 必须在调用之前已存在。

长沙工控帮教育科技有限公司整理

10.9 调用系统功能

格式

CALL SFC n 注意

如果使用的是语句表编辑器(STL Editor),“n”必须指向现有有效块。在使用 之前,还必须定义符号名。

说明

使用该指令,可调用由西门子公司提 供的标准功能(SFC)。调用指令能够调用 你作为地址输入的系统功能(SFC),与 RLO 或其它条件无关。在处理完被调 用块后,调用块程序继续处理。逻辑块的地址可以绝对指定,也可相对指定。

使用该指令,可调用由西门子公司提 供的标准功能(SFC)。调用指令能够调用 你作为地址输入的系统功能(SFC),与 RLO 或其它条件无关。在处理完被调 用块后,调用块程序继续处理。逻辑块的地址可以绝对指定,也可相对指定。