Utilizando un proyecto de ejemplo básico, a continuación encontrará los pasos y opciones más importantes para configurar y ejecutar un análisis estático.
Requisitos: CODESYS Static Analysis está instalado.
Proyecto tipo
Si desea reproducir el proyecto de ejemplo, cree un proyecto estándar e inserte los POU debajo de la aplicación en el árbol de dispositivos. A continuación, configure los ajustes de comunicación para la conexión con su CODESYS Control Win V3 local.
FUNCTION_BLOCK fb1
VAR_INPUT
iVar_fb1in1 : INT;
ivar_fb1in2 : INT;
rVar_fb1in3 : REAL;
END_VAR
VAR_OUTPUT
iVar_fb1out:INT;
END_VAR
VAR
P_fSampleProperty : INT;
rVar : REAL;
PRO : BOOL;
END_VAR
iVar_fb1out:=iVar_fb1in1 + 1;
FUNCTION_BLOCK fb2
VAR_INPUT
iVar_fb2in:INT;
END_VAR
VAR_OUTPUT
iVar_fb2out:INT;
END_VAR
VAR
END_VAR
PROGRAM PLC_PRG
VAR
fb1_inst: fb1;
fb2_inst: fb2;
END_VAR
fb1_inst(iVar_fb1in1 := 99);
fb2_inst(iVar_fb2in := 22);
fb2_inst(iVar_fb2in := 1);
Control del cumplimiento de las normas
-
Haga clic en «Build Static Analysis Settings». Vaya a la pestaña «Rules».
Aparece una lista con todas las posibles comprobaciones de reglas. Están organizados en una estructura de árbol por categorías temáticas. El número de la regla se añade entre paréntesis (por ejemplo, «Variables no utilizadas (33)» en la categoría «Objetos no utilizados»).
-
Haga clic varias veces en la casilla de verificación de la primera línea (nodo«Rules» ).
Al hacer clic se cambia el estado de activación. Las casillas de verificación de todo el árbol tienen una marca de verificación roja o naranja, o no tienen ninguna marca de verificación.
-
De este modo, active todas las entradas con una marca de verificación roja. Esto significa que CODESYS Static Analysis debe informar de cualquier infracción de las normas detectada como error.
-
Haga clic en «Construir Análisis estático Ejecutar análisis estático».
Los errores se notifican en la vista de mensajes. Los textos de los mensajes se etiquetan con
y comienzan con el número de error "SA<número de regla>". -
Haga doble clic en el primer mensaje
SA0033: Unused variables 'iVar_fb2out'.El foco se desplaza a la parte de la declaración del bloque de funciones
fb2y se selecciona la variable correspondiente. La variable se declara, pero no se utiliza. Esto se comprueba en la regla 33 («Variables no utilizadas»). En el código, los lugares correspondientes aparecen subrayados con una línea ondulada. -
Para probar la ejecución automática del análisis, haga clic en «Build Static Analysis Settings». En la pestaña «Settings», seleccione la opción «Perform static analysis automatically». Pulse «OK» para salir del diálogo.
-
Haga clic en «En línea Inicio de sesión».
Un cuadro de diálogo indica que existen errores de compilación. Los errores notificados por el análisis de código se muestran de nuevo en la vista de mensajes.
-
Haga clic en «Build Static Analysis Settings». Cambie a la pestaña «Rules». Ahora borre todas las reglas del cuadro de diálogo. En la categoría «Objetos no utilizados», active explícitamente la regla SA0035 («Variables de entrada no utilizadas (35)») con una marca de verificación de color naranja para informar de una advertencia. Consulte el texto de la regla en la descripción emergente: «Esta regla corresponde a las siguientes reglas de PLCopen: CP24»). Pulse «OK» para salir del diálogo.
En la configuración del proyecto, haga clic en «OK».
-
Haga clic en «Construir Generar código».
El análisis se realiza automáticamente. En la vista de mensajes aparecen dos errores:
§ SA0035: Unused input variable 'iVar_fb1in2y§ SA0035: Unused input variable 'iVar_fb1in3. -
Haga doble clic en el mensaje y comente o elimine la declaración. Vuelva a realizar el análisis del código.
No se muestra ningún mensaje de error.
Comprobación del cumplimiento de las convenciones de nomenclatura definidas
-
Haga clic en «Build Static Analysis Settings». Haga clic en la pestaña «Naming Conventions».
Verá una tabla en una estructura de árbol que se divide en categorías ampliables de variables y bloques de programa.
-
Expanda la categoría «Prefijos para variables» - «Prefijos para tipos», y en la columna «Prefijo», especifique
Ipara «INT (14)».Amplíe la categoría «Prefijos para POUs» - «Prefijos para POU Tipo»: En la columna «Prefijo», especifique
progpara «PROGRAMA (122)» yfbpara «FUNCTIONBLOCK (103)». -
Seleccione la opción «El primer carácter después del prefijo debe ser una letra mayúscula». Borra todas las demás opciones.
-
Haga clic en «Construir Análisis estático Ejecutar análisis estático».
Mensajes de error:
-
NC0102: Invalid name 'PLC_PRG': Expect prefix 'prog'porque PLC_PRG no tiene el prefijo requerido -
First character after prefix should be uppercase: 'ivar_fb1in2'porqueivar_fb1in2 : INT;enfb1 -
NC0014: Invalid variable name P_fSampleProperty: Expect prefix 'i'porque esta variable entera no tiene el prefijo requerido
-
Comprobación de símbolos prohibidos
-
Haga clic en «Build Static Analysis Settings». Haga clic en la pestaña «Símbolos prohibidos».
Un editor de líneas permite especificar cadenas de caracteres que no deben utilizarse en el código.
-
Como ejemplo, haga doble clic en la línea en blanco y escriba directamente la cadena de caracteres no válida
PRO. Haga doble clic en la siguiente línea en blanco y pulse
para abrir la ayuda de entrada. En «Tipos estándar», seleccione «REAL». Pulse «OK» para salir del diálogo. -
Haga clic en «Construir Análisis estático Ejecutar análisis estático».
Los mensajes de error
Forbidden symbol 'REAL'yForbidden symbol 'PRO'se muestran en la vista de mensajes. Haga doble clic en el texto del mensaje para saltar a la línea de código correspondiente.
Visualización de métricas
CODESYS Static Analysis realiza pruebas seleccionadas en el código y puede mostrar los resultados en una vista.
-
Haga clic en «Build Static Analysis Settings». Haga clic en la pestaña «Metrics».
Las métricas que CODESYS Static Analysis aplica al código figuran en una tabla.
-
Para este ejemplo, active la métrica «Número de variables de entrada» y especifique el rango de valores permitido: límite inferior
1y límite superior2. Active algunas métricas más, por ejemplo «Tamaño del código» y «Número de llamadas». -
Haga clic en «Construir Análisis estático Ver métricas estándar».
La vista incluye una tabla con una línea para cada unidad de programa del programa de muestra. Para cada métrica activada, hay una columna que muestra los valores medidos. Los valores que están fuera del rango de valores definidos en los ajustes se resaltan en rojo. En el caso de este ejemplo concreto, se trata como mínimo del campo «PLC_PRG/Inputs» porque el número de variables de entrada en este POU es superior al límite superior definido de
2.
Ver también