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
での出力 メッセージ ビュー:
SA0042: 'CONCAT' の異なるアクセス パス
SA0042: 'Standard.CONCAT' の異なるアクセス パス
SA0042: 'instPOU' の異なるアクセス パス
SA0042: 「GVL.instPOU」の異なるアクセス パス
SA0042: 「iTemp」の異なるアクセス パス
SA0042: 「GVL.iTemp」の異なるアクセス パス