SA0013: Dichiarazioni con lo stesso nome di variabilePermalink

Rileva le variabili con nomi già utilizzati da altre variabili (ad esempio, variabili globali e locali con lo stesso nome). Rileva anche le variabili con nomi di funzioni, azioni, metodi o proprietà utilizzate nello stesso ambito di accesso. Vengono rilevate anche le variabili dichiarate in un GVL nella vista «Devices» o nel pool POUs. Per questo, tuttavia, nel programma applicativo è necessario utilizzare la GVL della vista «POUs».

Giustificazione: Gli stessi nomi possono confondere la lettura del codice e possono causare errori se si accede involontariamente all'oggetto sbagliato. Si consiglia di utilizzare le convenzioni di denominazione per evitare queste situazioni.

Regola PLCopen: N5 / N9

Importanza: Medio

Esempio

VAR_GLOBAL
	xVar1 : BOOL;
	iVar3 : INT;
END_VAR

PROGRAM PLC_PRG
VAR
	xVar1 : BOOL;  // SA0013
	iVar3 : INT;   // SA0013
END_VAR

xVar1 := NOT GVL.xVar1;
iVar3 := iVar3 + INT#2;
iVar3 := GVL.iVar3;

--> SA0013: Declaration of 'iVar1' hides symbol 'GVL.iVar1
--> SA0013: Declaration of 'xVar3' hides symbol 'GVL.xVar3

Esempio

Il blocco funzione ‎POU‎ ha l'azione ‎ACT‎ e il metodo ‎METH‎.

FUNCTION_BLOCK POU 
VAR
	ACT : UINT;  // SA0013
	METH : BYTE; // SA0013
END_VAR

--> SA0013: Declaration of 'ACT' hides symbol 'POT.ACT'
--> SA0013: Declaration of 'METH' hides symbol 'POT.METH'