甘肃西门子S7-200SMART代理经销商
PLC用指令框调用SFC指令符号
该指令符号和SFC有关(SFC是否含有参数以及有多少项参数)。指令必须有EN和ENO项,以及SFC名称或SFC号。
表4-147为用指令框调用SFC指令说明表。
表4-147 用指令框调用SFC指令说明表
参 数 | 数据类型 | 存储器区域 | 说 明 |
EN | BOOL | I、Q、M、L、D | 允许输入 |
ENO | BOOL | l、Q、M、L、D | 允许输出 |
SFCno. - | BLOCK_SFC - | - - | SFC标识号,其范围与CPU的技术 指标有关 |
CALL_SFC(用指令框调用SFC)指令,是用来调用SFC(系统功能),如果允许输入端EN的逻辑状态为“1”,则执行指令,在执行CALL_SFC指令时:
1)保存调用方块时的返回地址;
2)先前的本地数据区被当前的本地数据区替换;
3) MA位(激活MCR的状态位),被转移到B堆栈;
4)建立被调用功能的新的本地数据区。
在完成以上处理后,程序继续处理被调用的SFC程序。如果SFC被调用(EN=“1”)以及没有错误出现,则ENO=“1”。
表4-148为用指令框调用SFC指令对状态位的影响。
表4-148 用指令框调用SFC指令对状态位的影响
- | BR | CC1 | CC0 | OV | OS | OR | STA | RLO | /FC |
无条件 | 写状态位 | x | - | - | - | 0 | 0 | x | x | x |
有条件 | 写状态位 | - | - | - | - | 0 | 0 | x | x | x |
1.指令符号
表4-149为用指令框调用多背景数据块指令说明表。
表4-149 用指令框调用多背景数据块指令说明表
参 数 | 数据类型 | 存储器区域 | 说 明 |
EN | BOOL | I、Q、M、L、D | 允许输入 |
ENO | BOOL | I、Q、M、L、D | 允许输出 |
# Variable name - | FB SFB | - - | 多背景数据块名 |
2.指令功能说明
在功能块变量登记表的静态变量中用功能块作为数据类型,建立一个多背景数据块。只有已经登记的多背景数据块,会包括在程序单元的目录中。多背景数据块的指令符号是随有没有参数和有多少参数而变化的。指令符号中总是包括EN、ENO和变量名。
表4-150为用指令框调用多背景数据块指令对状态位的影响。
表4-150 用指令框调用多背景数据块指令对状态位的影响
- | BR | CC1 | CC0 | OV | OS | OR | STA | RLO | /FC |
写状态位 | - | - | - | - | 0 | 0 | x | x | x |
要注意那些在MCRA区域内用主控继电器激活的方块:
1)如果MCR没有激活,在-(MCR<)和-(MCR>)之间的程序段,对全部分配值写“0”值。这一点对所有的指令框都有效,包含对一个分配值,也包括转移到方块的参数。
2)如果-( MCR<)指令之前的RLO =0,则解除MCR功能。
由于使用不当,有一些指令操作在MCR影响下有以下的危险性,会导致PLC停机或造成不确定的实时运行特性。
对定义在VAR_TEMP中的暂存变量本地数据,PLC的编译也会对此进行写访问,目的是进行地址计算。这种情况下,下述命令顺序有以下的危险性,可能会导致PLC停机或造成不确定的实时运行特性。
这样的命令顺序包括:
(1)对形式参数的访问
1)访问FC的复杂参数类型单元:STRUCT(结构)、UDP(用户定义数据类型)、ARRAY(阵列)、STRING(字符串)。
2)从具有多背景数据块能力的FB (version 2 block)中的IN_OUT区域中,访问FB的复杂参数类型单元:STRUCT(结构)、UDP(用户定义数据类型)、ARRAY(阵列)、STRING(字符串)。
3)从具有多背景数据块能力的FB(version 2 block)中,访问地址大于8180.0的参数。
4)从具有多背景数据块能力的FB (version 2 block)中打开DBO,访问BLOCK_DB类参数。任何随后的数据访问将置CPU到STOP状态。对T0、C0、FC0或FB0总是应用于TIMER(定时器)、COUNTER(计数器)、BLOCK_FC和BLOCK_FB。
(2)参数消失(Parameter passing)
调用已经被转移的参数。
(3)在LAD(梯形图编程语言)和FBD(功能块图编程语言)中有T形分支的情况
在LAD/FBD中的T形分支和中间输出以RLO=“0”开始。
为了避免上述命令顺序可能带来的危险性,解决办法( Remedy)是:
在与MCR相关时,避免使用上述命令:
1)在语句或网络梯节有问题时,应用解除主控继电器的指令,不去激活主控继电器。
2)在有问题的语句或网络梯节之后,重新应用激活主控继电器指令,激活主控继电器功能。
总之,用户在使用主控继电器功能时,要额外地小心。
在SIMATIC管理器中有一程序库,可以应用程序库来选择方块,这些方块包括:
1)集成在CPU操作系统中的“标准库”(Standard Library)方块;
2)用户自己创建希望多次使用的方块。
如图4-75所示,在图上表示的梯形图梯节是用户编写的功能块FB中的一段程序,在这一FB中,表示打开DB10数据块以及激活MCR功能。如果无条件执行SFC20的调用,则首先作以下处理:保留FB调用时的返回地址,保留所选择的DB10中的数据,保留调用FB背景数据块的数据。在执行MCRA指令时,将主控继电器状态位MA置成“1”并且推入B堆栈。在调用SFC20时,将MA置成“0”,然后处理SFC20的程序。当SFC20程序执行结束后,程序返回在FB调用时的地址,恢复被保存的MA位。
图4-75 用指令框调用SFC指令应用举例
在SFC20执行后,程序在FB中的继续执行与ENO的状态有关:ENO=“1”,则Q4.0=“1”;ENO=“0”,则Q4.0=“0”。
在返回到调用方块之后,以前打开的DB块不一定总是再一次打开。请确认你已经阅读“README”文件中的注意事项。
甘肃西门子S7-200SMART代理经销商