Analyser le code de manière statique
Vous pouvez également faire analyser statiquement votre code source ("linten") lors de la génération du code. Il détermine si votre code source suit les directives de codage que vous avez définies - à l'instar de l'outil d'analyse "lint".
En dialogue paramètres du projet sous la catégorie Lumière d'analyse statique activer les règles qui seront vérifiées. La vérification elle-même a alors lieu automatiquement à chaque génération de code, par exemple lorsque vous exécutez la commande Sélectionner. Si des écarts par rapport aux règles sont détectés, ceux-ci sont classés comme messages d'erreur de la catégorie Traduire affiché dans la fenêtre des messages. Les erreurs signalées ont un préfixe :
SA<Zahl>
.
Important
Pour l'analyse de code statique avec Lumière d'analyse statique seul le code applicatif du projet est vérifié. Les bibliothèques sont exclues de l'examen.
Variables d'un GVL dans la vue POU ne sont pas nécessairement cochés : Si vous avez un projet avec plusieurs applications, seuls les objets sous l'application actuellement active sont cochés. Si vous n'avez qu'une seule application, les objets du pool général de POU sont également vérifiés.
Astuce
Lumière d'analyse statique n'est inclus qu'avec un ensemble réduit de règles dans le système de développement standard. Un ensemble étendu de règles, des conventions de dénomination supplémentaires et des métriques sont disponibles lorsque vous installez le module complémentaire CODESYS Static Analysis à installer.
Exclure les lignes de code dans les implémentations avec pragma de l'analyse statique
Vous pouvez avec l'aide de pragma {analysis ...}
Marquez le code afin que les règles spécifiées ne soient pas vérifiées. Par conséquent, les lignes de code ainsi marquées ne sont pas analysées statiquement. Lors des tests, le code marqué est ignoré.
Syntaxe:
{analysis <Vorzeichen><Regelnummer>|,<weitere Kombinationen von Vorzeichen und Regelnummern, kommasepariert>}
-<Regelnummer>
: désactive la vérification de la règle SA<numéro de règle>.
+<Regelnummer>
: Activer la vérification de la règle SA<numéro de règle>.
Exclure le code d'implémentation
Prérequis : Vous disposez de la boîte de dialogue paramètres du projet règles activées.
Ajouter le pragma
{analysis -<number>}
au-dessus de la ligne de code qui contient du code que vous ne voulez pas vérifier pour la première fois. Par exemple, pour la règle SA0024La ligne de code est la première ligne de l'extrait de code qui n'est pas vérifiée par rapport à la règle 24.
Ajouter le pragma
{analysis +<number>}
sous la ligne de code qui contient du code à ne pas vérifier pour la première fois.Exemple : Pour la règle SA0024
La ligne de code ci-dessus est la dernière ligne de l'extrait de code qui n'est pas vérifiée par rapport à la règle 24.
{analysis -24} nTest := 99; iVar := INT#2; {analysis +24}
La règle SA0024 : Littéraux non typés est désactivé pour 2 lignes. Aucune erreur n'est renvoyée, bien que le code ne soit pas corrigé : nTest := DINT#99;
{analysis -10, -24, -18} ... {analysis +10, +24, +18}
SA0010 : Tableaux avec un seul composant
SA0018 : Accès inhabituels aux bits
SA0024 : Littéraux non typés
Astuce
Cependant, vous pouvez régner SA0004
: Accès en écriture multiple à la sortie ne pas désactiver via pragma.
Exclure les objets de programmation de l'analyse statique avec pragma
Syntaxe:
{attribute 'analysis' := '-<rule number>[,<other negative rule numbers, comma-separated>]'}
Si vous incluez l'attribut pragma dans la partie déclaration d'un objet de programmation, les règles spécifiées sont exclues pour l'ensemble de l'objet de programmation. Si plusieurs règles sont exclues, les règles doivent être séparées par une virgule avec un signe moins et un chiffre. Une instruction pragma pour la mise sous tension n'est pas nécessaire.
{attribute 'analysis' := '-33, -31'} TYPE LocalData : STRUCT iLocal : INT; uiLocal : UINT; udiLocal : UDINT; END_STRUCT END_TYPE
Les règles SA0033 et SA0031 sont utilisées dans la structure LocalData
ignoré.
{attribute 'analysis' := '-100'} big: ARRAY[1..10000] OF DWORD;
La règle SA0100 est appliquée au tableau big
ignoré.