Skip to main content

SA0013: Dichiarazioni con lo stesso nome di variabile

Rileva variabili con nomi già utilizzati da altre variabili (ad esempio, variabili globali e locali con lo stesso nome). Vengono rilevate anche le variabili i cui nomi di funzioni, azioni, metodi o proprietà vengono utilizzati nello stesso intervallo di accesso. Vengono rilevate anche le variabili dichiarate in un GVL nel file Dispositivi vista o nel pool di POU. Per questo, però, la GVL dell' POU view devono essere utilizzate nel programma applicativo.

Motivazione: nomi identici possono creare confusione durante la lettura del codice e possono causare errori se si accede inavvertitamente all'oggetto sbagliato. Si consiglia di utilizzare convenzioni di denominazione che evitino tali situazioni.

Regola PLCopen: N5/N9

Importanza: Media

Esempio 25. 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;

Uscita in Messaggi vista:

  • sa_icon_message.png SA0013: La dichiarazione di 'iVar1' nasconde il simbolo 'GVL.iVar1'

  • sa_icon_message.png SA0013: La dichiarazione di 'xVar3' nasconde il simbolo 'GVL.xVar3'



Esempio 26. Esempio

IL FB_Pou il blocco funzione ha il ACT azione, il METH metodo e variabili locali con gli stessi nomi.

_san_rule_0013_fb.png
FUNCTION_BLOCK FB_Pou
VAR
    ACT : UINT;  // SA0013
    METH : BYTE; // SA0013
END_VAR
PROGRAM PLC_PRG
VAR
    fbPou : FB_Pou;
END_VAR
fbPou();

Uscita in Messaggi vista:

  • sa_icon_message.png SA0013: La dichiarazione di 'ACT' nasconde il simbolo 'FB_Pou.ACT'

  • sa_icon_message.png SA0013: La dichiarazione di 'METH' nasconde il simbolo 'FB_Pou.METH'