在块中找不到匹配的 FB_Init 方法

问题描述

运行 CodeSys 3.5 的 Ecostruxure 机器专家

我有以下程序结构:

Main:两个块,Init 和 Step0,由转换链接

在那个 main 的变量中:

VAR
   My_Encoder : ENC_REF_M262;
   ...
END_VAR

那么在我的 Init 块中我有 My_Encoder.FB_Init(...)

但我收到的错误消息指向 Main 中的变量声明,其中显示“在 ENC_REF_M262 的此实例化中找不到 C0138 匹配的 FB_Init 方法”。

解决方法

尝试使用实例化 FB 上方的 no_init 属性。

VAR
   { attribute 'no_init'}
   My_Encoder : ENC_REF_M262;
   ...
END_VAR

每当一个功能块被实例化时,预期会发生 FB_Init 方法的匹配实现(即使在包装 fb 内)。

注意如果它具有关键功能,您将需要在某处显式运行初始化代码 (My_Encoder.fb_Init())