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 或其它条件无关。在处理完被调 用块后,调用块程序继续处理。逻辑块的地址可以绝对指定,也可相对指定。