在 Twincat 上使用扩展时如何从基础 FB 调用代码

How to call the code from the basis FB when using extending at a Twincat

我想扩展一个FB但是我需要调用基础FB的代码

示例代码

FB_Basis

FUNCTION_BLOCK FB_Basis
VAR_INPUT
    bInTest : BOOL;
END_VAR
VAR_OUTPUT
    nOutTest    : INT;
END_VAR

IF bInTest THEN
    nOutTest    := nOutTest + 1;
END_IF

FB_Test

FUNCTION_BLOCK FB_Test EXTENDS FB_Basis
VAR_INPUT
    bInTest2    : BOOL;
END_VAR
VAR_OUTPUT
    nOutTest2   : INT;
END_VAR

IF bInTest2 THEN
    nOutTest2   := nOutTest2 + 1;
END_IF

电话:

FB_Test(  bInTest:= 
        , nOutTest=> 
        , bInTest2:= 
        , nOutTest2=> 
        );

如果我将 bInTest 设置为 TRUE,我希望输出 nOutTest 计数,但它没有。

我无法在 Beckhoff 的 InfoSys 中找到如何处理 FB_basis 中的代码的信息,只是解释了方法的行为。

不知道代码怎么调用,望解答

您可以使用SUPER^()调用父功能块的主体。您需要将其添加到 FB_Test:

的正文中
FUNCTION_BLOCK FB_Test EXTENDS FB_Basis
VAR_INPUT
    bInTest2    : BOOL;
END_VAR
VAR_OUTPUT
    nOutTest2   : INT;
END_VAR

SUPER^(); // Call the body of FB_Basis
IF bInTest2 THEN
    nOutTest2   := nOutTest2 + 1;
END_IF