Skip to main content

utiliser des pragmatiques

pragmatique dans CODESYS

Un texte dans le code source de l'application qui est entouré d'accolades est considéré comme un pragma. Les pragmas sont utilisés pour insérer des instructions spéciales dans le code que le compilateur peut évaluer. Un pragma peut ainsi influencer les propriétés d'une ou plusieurs variables vis-à-vis de la précompilation ou de la compilation (génération de code). Les pragmas que le compilateur ne connaît pas sont ignorés comme un commentaire.

La chaîne d'instructions d'un pragma peut également avoir plusieurs lignes.

Pour plus de détails sur la syntaxe, veuillez consulter les descriptions de chaque CODESYS-Pragmas.

Il existe des pragmas pour différents effets : initialisation d'une variable, surveillance d'une variable, ajout d'une variable à la configuration du symbole, forçage de la sortie d'un message lors du processus de compilation, comportement d'une variable sous certaines conditions, etc.

Important

Les majuscules et les minuscules doivent être respectées.

Exemple 17. exemples
{warning 'This is not allowed'}

{attribute 'obsolete' := 'datatype fb1 not valid!'}

{attribute 'Test':='TestValue1;
                    TestValue2;
                    TestValue3'}


Positions d'insertion possibles

Important

pragmatiques dans CODESYS ne sont pas des implémentations individuelles des directives du préprocesseur C. Vous devez positionner un pragma comme une instruction normale. Vous ne devez pas utiliser de pragma dans une expression.

Un pragma que le CODESYScompilateur doit évaluer, vous pouvez insérer dans les positions suivantes :

  • Dans la partie déclaration d'un bloc de programmation :

    • Dans l'éditeur de déclaration textuelle, vous saisissez directement les pragmas en ligne(s), soit en début de bloc, soit avant une déclaration de variable.

    • Dans l'éditeur tabulaire, vous entrez les pragmas qui doivent apparaître au-dessus de la première ligne de déclaration dans la boîte de dialogue Modifier la partie déclaration / les attributs un.

  • Dans une liste de variables globales

  • Dans la partie implémentation d'un bloc de programmation :

    • Le pragma doit être en "position d'instruction", c'est-à-dire au début d'un bloc de programmation sur une ligne distincte, ou après un ";" ou END_IF, END_WHILE Etc.

    • Éditeur FBD/LD/STL : Entrez des pragmas dans les réseaux de l'éditeur FBD/KOP/STL comme une étiquette de saut : Pour cela, sélectionnez la commande FBD/KOP/STL → Insérer une étiquette de saut. Remplacez ensuite le texte par défaut Étiquettes: dans le champ de texte de l'étiquette avec l'instruction pragma appropriée. Si vous souhaitez utiliser un pragma en plus d'une étiquette de saut, saisissez d'abord le pragma, puis l'étiquette de saut.

Exemple 18. Positionnement incorrect et correct d'un pragma conditionnel

PAS CORRECTE:

{IF defined(abc)}
IF x = abc THEN
{ELSE}
IF x = 12 THEN
{END_IF}
y := {IF defined(cde)} 12; {ELSE} 13; {END_IF}
END_IF

CORRECT:

{IF defined(abc)}
IF x = abc THEN
{IF defined(cde)}
    y := 12;
{ELSE}
   y := 13;
{END_IF}
END_IF
{ELSE}
IF x = 12 THEN
{IF defined(cde)}
    y := 12;
{ELSE}
   y := 13;
{END_IF}
END_IF
{END_IF}


Astuce

En dialogue Propriétés, Catégorie Traduire vous pouvez spécifier des définitions qui peuvent être interrogées dans les pragmas.

Sphère d'effet :

Selon le type et le contenu d'un pragma, un pragma affecte les éléments suivants :

  • les déclarations suivantes

  • exactement comme indiqué ci-dessous

  • sur toutes les instructions suivantes jusqu'à ce qu'il soit annulé à nouveau avec un pragma approprié

  • sur toutes les instructions suivantes jusqu'à ce que le même pragma soit exécuté avec des paramètres différents ou que la fin du code soit atteinte. "Code" dans ce contexte signifie : partie déclaration, partie implémentation, liste de variables globales, déclaration de type. Ainsi, un pragma qui se tient seul dans la première ligne de la partie déclaration et qui n'est pas remplacé ou annulé par un autre affecte l'objet entier.

Catégories de pragma dans CODESYS

la CODESYS-Les pragmas sont répartis dans les catégories suivantes :