保持区域中的功能块实例

可以将功能块的实例分配到保持区域,即功能块的变量的所有条件在电源故障后保持原样。在此情况下,必须在POU头中的类别VAR_RETAINVAR_EXTERNAL_RETAIN下输入变量。对于VAR_EXTERNAL_RETAIN,FB实例必须已在全局变量列表中声明为VAR_GLOBAL_RETAIN

如果类别VAR_RETAINVAR_EXTERNAL_RETAIN用于实例,则编译器将保持区域中的地址分配给类别VARVAR_INPUTVAR_OUTPUTVAR_IN_OUT的非保持变量,这些变量仅在下载程序后初始化。类别VAR的子实例被视为类别VAR_RETAIN的子实例。类别VAR_RETAINVAR_OUTPUT_RETAINVAR_EXTERNALVAR_EXTERNAL_RETAIN的子实例或其他变量的地址被分配给类别VARVAR_EXTERNAL的实例。类别VAR_CONSTANTVAR_EXTERNAL_CONSTANT的变量值在程序代码中作为常量值输入。

如果类别VARVAR_EXTERNAL用于实例,功能块中的变量或子实例的声明确定其为保持(VAR_RETAIN)或为不保持(VAR)。

实例

程序Prog的POU头

程序Prog访问功能块FB1两次:

功能块FB1的POU头

功能块FB1的POU头有以下项目。功能块FB1也利用功能块FB2的两个实例。

功能块FB2的POU头

功能块FB2的POU头有以下项目。

程序Prog的内存分配:

相关主题

最后更新日期: 2020-08-12此页面上的反馈松下热线