Skip to main content

SA0042:異なるアクセスパスの使用

同じ変数に対する異なるアクセスパスの使用を検出します。

理由:同じ要素へのアクセスが異なると、プログラムの可読性と保守性が低下します。一貫して使用することをお勧めします {attribute 'qualified-only'} ライブラリ、グローバル変数リスト、および列挙型の場合。これにより、完全に修飾されたアクセスが強制されます。

重要度:低

51.
VAR_GLOBAL
    iTemp:INT;
    instPOU:POU;
END_VAR
FUNCTION_BLOCK POU
VAR
    a:INT;
END_VAR
a := INT#1;
PROGRAM SA0042
VAR
    ptiTemp:POINTER TO INT;
    sTemp:STRING;
END_VAR
ptiTemp := ADR(iTemp);

ptiTemp^ := INT#1;
iTemp := INT#2;    //  SA0042 - direct access on variable
GVL.iTemp := INT#3;    //  SA0042 - access on variable via GVL

sTemp := CONCAT( 'ab', 'cd');    // SA0042 - direct access on function
sTemp := Standard.CONCAT( 'ab', 'cd');    // SA0042 - access on function via Standard

instPOU();    //  SA0042 - direct access on POU instance
GVL.instPOU();    //  SA0042 - access via GVL

での出力 メッセージ ビュー:

  • sa_icon_message.png SA0042: 'CONCAT' の異なるアクセス パス

  • sa_icon_message.png SA0042: 'Standard.CONCAT' の異なるアクセス パス

  • sa_icon_message.png SA0042: 'instPOU' の異なるアクセス パス

  • sa_icon_message.png SA0042: 「GVL.instPOU」の異なるアクセス パス

  • sa_icon_message.png SA0042: 「iTemp」の異なるアクセス パス

  • sa_icon_message.png SA0042: 「GVL.iTemp」の異なるアクセス パス