Detecta variables con nombres ya utilizados por otras variables (por ejemplo, variables globales y locales con el mismo nombre). También detecta variables con nombres de funciones, acciones, métodos o propiedades que se utilizan en el mismo ámbito de acceso. También se detectan las variables declaradas en un GVL en la vista «Devices» o en el pool de POUs. Para ello, sin embargo, el GVL de la «POUs» vista tiene que ser utilizado en el programa de aplicación.
Justificación: Los mismos nombres pueden confundir a la hora de leer el código, y pueden provocar errores si se accede involuntariamente al objeto equivocado. Le recomendamos que utilice convenciones de nomenclatura para evitar estas situaciones.
Regla PLCopen: N5 / N9
Importancia: Medio
Ejemplo
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
Ejemplo
El bloque de función POU tiene la acción ACT y el método 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'