通过 CC 和 UC 指令使用寄存器传递值

时间:2021-07-09点击次数:388

通过 CC 和 UC 指令使用寄存器传递值

简介

在 S7-300/400 中,可使用指令 UC 和 CC 编程块调用。 参数是通过寄存器而非接口传递到调用块,例如 AR1、AR2、DB、DI、累加器或状态字。

这些调用会降低程序的执行速度,因而在 S7-1500 中不再设置为默认调用,而是使用 CALL 指令。但 CALL 指令不能进行间接块调用。 如果要使用 UC 或 CC 进行间接块调用,则需要在被调用块的属性中选择“通过寄存器传送参数”(Parameter passing via registers) 选项。 这样就可在不同块之间传递寄存器数据。 RLO 位属于例外情况: 在进行块转换时,该位将设置为“未定义”(undefined),而且在块调用后不再可用。

请注意,该选项仅适用于 STL 块中进行标准访问,而且该块可能没有形参。 启用该选项后,可以在块之间传送寄存器中的数据。 在此,RLO 位也属于例外情况: 在进行块转换时,该位将设置为“未定义”(undefined),而且在块调用后不再可用。

在创建受专有技术保护的库元素时,*再使用间接块调用。 TIA Portal 中可自动实现这一功能: 从库中插入块时,用户程序将自动解决块的编码冲突问题。

移植通过 "UC" 或 "CC" 进行的块调用

在移植过程中,将使用以下方式处理通过 "UC" 或 "CC" 进行的块调用:

将*有块编号的 "UC FC" 指令替换为 "CALL" 指令。

将*有块编号的 "CC FC" 指令替换为 "CALL" 指令。 并添加执行条件调用的跳转指令。

间接*了块编号的 "UC FC" 和 "CC FC" 指令保持不变。

间接*了块编号的 "UC FB" 和 "CC FB" 指令保持不变。

示例

以下举例说明如何移植通过 "UC" 进行的块调用。

在**个表中,为移植前的程序:

STL
 
UC FC 10
 
UC FC[#temp0]
 
UC FB 10
 
UC FB [#temp0]
 

下表为移植后的程序:

STL
说明
CALL FC 10
 
UC FC[#temp0]
必须在被调用块中设置选项“通过寄存器传送参数”(Parameter passing via registers)。
UC FB 10
必须在被调用块中设置选项“通过寄存器传送参数”(Parameter passing via registers)。
UC FB [#temp0]
必须在被调用块中设置选项“通过寄存器传送参数”(Parameter passing via registers)。


http://shtxjd.cn.b2b168.com

下一篇:删除 SQL 实例

产品推荐