Skip to main content

SA0105:多个实例调用

检测被多次调用的功能块的实例。为此,必须使用以下编译指示来标记功能块:

{attribute 'analysis:report-multiple-instance-calls'}

理由: 某些功能块的设计方式是在一个循环中只能调用一次。此测试检查是否在多个位置进行呼叫。

重要性:低

PLCopen规则:CP16 / CP20

93. 例子
// {attribute 'analysis:report-multiple-instance-calls'} Deactivated
FUNCTION_BLOCK FB_DoA
VAR_INPUT
END_VAR
VAR_OUTPUT
END_VAR
VAR
    iA : INT;
END_VAR
iA := iA + 1;
{attribute 'analysis:report-multiple-instance-calls'}
FUNCTION_BLOCK FB_DoB
VAR_INPUT
END_VAR
VAR_OUTPUT
END_VAR
VAR
    iB : INT;
END_VAR
iB := iB + 1;
PROGRAM PLC_PRG
VAR
    fbA : FB_DoA;
    fbB : FB_DoB;
END_VAR
fbA();
fbB();    // SA0105
fbA();
fbB();    // SA0105

输出在 留言 看法:

  • sa_icon_message.png SA0105:多次调用实例“fbB”