Configuration et exécution d'une analyse statique
À l’aide d’un exemple de projet de base ci-dessous, vous trouverez les étapes et options les plus importantes pour configurer et exécuter une analyse statique.
Exigences : CODESYS Static Analysis est installé.
Exemple de projet
Si vous souhaitez reproduire l'exemple de projet, créez un projet standard et insérez les POU sous l'application dans l'arborescence des appareils. Configurez ensuite les paramètres de communication pour la connexion à votre réseau local. CODESYS Control Win.
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
iVar_fb2out:=iVar_fb2in - 1;
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);
Vérification du respect des règles
Cliquez sur Des règles languette.
. Passez à laUne liste s'affiche contenant toutes les vérifications de règles possibles. Ils sont organisés selon une arborescence par catégorie thématique. Le « numéro de règle » est ajouté entre parenthèses (exemple : Variables inutilisées (33) dans la catégorie Objets inutilisés).
Cochez plusieurs fois la case de la première ligne (Règles nœud).
Cliquer pour basculer l'état d'activation. Les cases à cocher dans l'ensemble de l'arborescence comportent une coche rouge ou orange, voire aucune coche du tout.
De cette manière, activez toutes les entrées avec une coche rouge. Cela signifie que CODESYS Static Analysis doit signaler toute violation de règle détectée comme une erreur.
Cliquez sur
.Les erreurs sont signalées dans la vue des messages. Les textes des messages sont marqués d'un
et commencer par le numéro d'erreur "SA<numéro de règle>".
Double-cliquez sur le message SA0033 : Variables inutilisées 'iVar_fb2out'.
Le focus se déplace vers la partie déclaration du bloc fonction
fb2
et la variable pertinente est sélectionnée. La variable est déclarée, mais pas utilisée. Ceci est vérifié dans la règle 33 (Variables inutilisées). Dans le code, les emplacements concernés sont soulignés par un trait ondulé.Pour tester l'exécution automatique de l'analyse, cliquez sur Paramètres onglet, sélectionnez l'onglet Effectuer une analyse statique automatiquement après la compilation option. Cliquez sur D'ACCORD pour quitter la boîte de dialogue.
. Sur leCliquez sur
.Une invite de dialogue indique que des erreurs de compilation existent. Les erreurs signalées par l'analyse du code sont à nouveau affichées dans la vue des messages.
Cliquez sur Règles languette. Effacez maintenant toutes les règles de la boîte de dialogue. Dans le Objets inutilisés catégorie, activez explicitement la règle SA0035 (Variables d'entrée inutilisées (35)) avec une coche de couleur orange pour signaler un « avertissement ». Consultez l'info-bulle pour le texte de la règle : Cette règle correspond aux règles PLCopen suivantes : CP24). Cliquez sur D'ACCORD pour quitter la boîte de dialogue.
. Passez auCliquez sur
.L'analyse est effectuée automatiquement. Dans la vue des messages, deux erreurs sont signalées au Messages d'analyse statique catégorie:
§ SA0035 : Entrée inutilisée 'iVar_fb1in2'
§ SA0035 : Entrée inutilisée 'iVar_fb1in3'
Double-cliquez sur le message et commentez ou supprimez la déclaration. Effectuez à nouveau l’analyse du code.
Aucun message d'erreur ne s'affiche.
Vérification de la conformité aux conventions de dénomination définies
Cliquez sur Conventions de nommage languette.
. Passez auVous voyez un tableau dans une structure arborescente divisée en catégories extensibles de variables et de blocs de programme.
Élargir la Préfixes pour les variables – Préfixes pour les types catégorie, et dans la Préfixe colonne, précisez
I
pour INT (14).Élargir la Préfixes pour les POU – Préfixes pour le type de POU catégorie. Dans le Préfixecolonne, précisez le
prog
pour PROGRAMME (122) etfb
pour BLOC FONCTIONNEL (103).Sélectionnez le Le premier caractère après le préfixe doit être une lettre majuscule option. Désactivez toutes les autres options.
Cliquez sur
.Messages d'erreur:
NC0102 : Nom non valide 'PLC_PRG' : attendez le préfixe 'prog' car PLC_PRG n'a pas le préfixe requis
Le premier caractère après le préfixe doit être en majuscule : 'ivar_fb1in2' parce que
ivar_fb1in2 : INT;
est dansfb1
.NC0014 : Nom de variable non valide P_fSampleProperty : Attendez-vous au préfixe « i » car cette variable entière n'a pas le préfixe requis.
Vérification des symboles interdits
Cliquez sur Symboles interdits languette.
. Passez à laUn éditeur de ligne permet de spécifier des chaînes à ne pas utiliser dans le code.
Par exemple, double-cliquez sur la ligne vide et saisissez la chaîne invalide
PRO
directement. Double-cliquez sur la ligne vierge suivante et cliquez sur lepour ouvrir l'assistant de saisie. À partir de Types standards, sélectionnez RÉEL. Cliquez sur d'accord pour quitter la boîte de dialogue.
Cliquez sur
.Les messages d'erreur
Forbidden symbol 'REAL'
etForbidden symbol 'PRO'
sont affichés dans la vue des messages. Double-cliquez sur le texte du message pour accéder à la ligne de code correspondante.
Affichage des métriques
CODESYS Static Analysis effectue des tests sélectionnés sur le code et vous pouvez afficher les résultats dans une vue.
Cliquez sur Métrique languette.
. Passez à laLes métriques qui CODESYS Static Analysis s'applique au code sont répertoriés dans un tableau.
Pour cet exemple, activez le Nombre de variables d'entrée métrique et spécifier la plage de valeurs autorisée : limite inférieure
1
et limite supérieure2
.Activez certaines mesures supplémentaires, telles que taille du code, nombre de vues Etc.
Cliquez sur
.La vue comprend un tableau avec une ligne pour chacun Unité de programme de l’exemple de programme. Pour chaque métrique activée, il existe une colonne affichant les valeurs mesurées. Les valeurs qui se situent en dehors de la plage de valeurs définie dans les paramètres sont surlignées en rouge. Dans le cas de cet exemple spécifique, c'est au moins le PLC_PRG/Entrées champ car le nombre de variables d'entrée dans ce POU est supérieur à la limite supérieure définie de
2
.