Analizar código estáticamente
También puede hacer que su código fuente sea analizado estáticamente ("linten") durante la generación del código. Determina si su código fuente sigue las pautas de codificación que estableció, en la línea de la herramienta de análisis "lint".
en diálogo configuración del proyecto bajo la categoría Luz de análisis estático habilite las reglas que se verificarán. La verificación en sí se realiza automáticamente con cada generación de código, por ejemplo, cuando ejecuta el comando Seleccione. Si se detectan desviaciones de las reglas, se clasifican como mensajes de error de la categoría Traducir que se muestra en la ventana de mensajes. Los errores informados tienen un prefijo:
SA<Zahl>
.
Importante
Para análisis de código estático con Luz de análisis estático sólo se comprueba el código de aplicación del proyecto. Las bibliotecas están excluidas del examen.
Variables de una GVL en la vista POU no están necesariamente marcados: si tiene un proyecto con varias aplicaciones, solo se comprueban los objetos bajo la aplicación actualmente activa. Si solo tiene una aplicación, también se verifican los objetos en el grupo general de POU.
Sugerencia
Luz de análisis estático solo se incluye con un conjunto reducido de reglas en el sistema de desarrollo estándar. Un conjunto ampliado de reglas, convenciones de nomenclatura adicionales y métricas están disponibles cuando instala el complemento CODESYS Static Analysis instalar.
Excluir líneas de código en implementaciones con pragma del análisis estático
Puedes con la ayuda de pragma {analysis ...}
Marca el código para que no se comprueben las reglas especificadas. En consecuencia, las líneas de código marcadas de esta manera no se analizan estáticamente. Durante la prueba, el código marcado se ignora.
Sintaxis:
{analysis <Vorzeichen><Regelnummer>|,<weitere Kombinationen von Vorzeichen und Regelnummern, kommasepariert>}
-<Regelnummer>
: Desactive la comprobación de la regla SA<número de regla>.
+<Regelnummer>
: Activar verificación de regla SA<número de regla>.
Excluir código de implementación
Requisito: Tienes el diálogo configuración del proyecto reglas habilitadas.
Agrega el pragma
{analysis -<number>}
sobre la línea de código que contiene el código que no desea verificar por primera vez. Por ejemplo, para la regla SA0024La línea de código es la primera línea del fragmento de código que no se compara con la regla 24.
Agrega el pragma
{analysis +<number>}
debajo de la línea de código que contiene el código que no se debe verificar por primera vez.Ejemplo: Para la regla SA0024
La línea de código anterior es la última línea del fragmento de código que no se compara con la regla 24.
{analysis -24} nTest := 99; iVar := INT#2; {analysis +24}
La regla SA0024: Literales sin tipo está deshabilitado para 2 filas. No se arroja ningún error, aunque el código no se corrige a: nTest := DINT#99;
{analysis -10, -24, -18} ... {analysis +10, +24, +18}
SA0010: Matrices con un solo componente
SA0018: Accesos a bits inusuales
SA0024: Literales sin tipo
Sugerencia
Sin embargo, puede gobernar SA0004
: Acceso de escritura múltiple a la salida no deshabilite a través de pragma.
Excluir objetos de programación del análisis estático con pragma
Sintaxis:
{attribute 'analysis' := '-<rule number>[,<other negative rule numbers, comma-separated>]'}
Si incluye el atributo pragma en la parte de declaración de un objeto de programación, las reglas especificadas se excluyen para todo el objeto de programación. Si se excluyen varias reglas, las reglas deben especificarse con un signo menos y un número, separados por comas. No se necesita una declaración de pragma para el encendido.
{attribute 'analysis' := '-33, -31'} TYPE LocalData : STRUCT iLocal : INT; uiLocal : UINT; udiLocal : UDINT; END_STRUCT END_TYPE
Las reglas SA0033 y SA0031 se utilizan en la estructura LocalData
ignorado
{attribute 'analysis' := '-100'} big: ARRAY[1..10000] OF DWORD;
La regla SA0100 se aplica a la matriz big
ignorado