SA0042: Verwendung unterschiedlicher ZugriffspfadePermanentlink

Ermittelt die Verwendung unterschiedlicher Zugriffspfade für die gleiche Variable.

Begründung: Unterschiedlicher Zugriff auf das gleiche Element reduziert die Lesbarkeit und Wartbarkeit eines Programms. Wir empfehlen die konsequente Verwendung von ‎{attribute 'qualified-only'}‎ für Bibliotheken, globale Variablenlisten und Enumerationen. Dadurch wird der vollqualifizierte Zugriff erzwungen.

Wichtigkeit: Niedrig

Beispiel

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: Unterschiedliche Zugriffspfade für 'CONCAT'
--> SA0042: Unterschiedliche Zugriffspfade für 'Standard.CONCAT'
--> SA0042: Unterschiedliche Zugriffspfade für 'instPOU'
--> SA0042: Unterschiedliche Zugriffspfade für 'GVL.instPOU'
--> SA0042: Unterschiedliche Zugriffspfade für 'iTemp'
--> SA0042: Unterschiedliche Zugriffspfade für 'GVL.iTemp'