Skip to main content

usar pragmas

pragma en CODESYS

Un texto en el código fuente de la aplicación que está encerrado entre corchetes se considera pragma. Los pragmas se utilizan para insertar declaraciones especiales en el código que el compilador puede evaluar. Por lo tanto, un pragma puede influir en las propiedades de una o más variables con respecto a la precompilación o compilación (generación de código). Los pragmas que el compilador no conoce se saltan como un comentario.

La cadena de instrucciones de un pragma también puede tener varias líneas.

Para obtener detalles sobre la sintaxis, consulte las descripciones de cada CODESYS-Pragmas.

Hay pragmas para diferentes efectos: inicializar una variable, monitorear una variable, agregar una variable a la configuración del símbolo, forzar la salida de mensajes durante el proceso de compilación, comportamiento de una variable bajo ciertas condiciones, etc.

Importante

Se deben observar mayúsculas y minúsculas.

ejemplo 17. ejemplos
{warning 'This is not allowed'}

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

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


Posibles posiciones de inserción

Importante

Pragmas en CODESYS no son implementaciones uno a uno de las directivas de preprocesador de C. Debe colocar un pragma como una declaración normal. No debe usar un pragma dentro de una expresión.

Un pragma que el CODESYScompilador debe evaluar, puede insertar en las siguientes posiciones:

  • En la parte de declaración de un bloque de programación:

    • En el editor de declaraciones textuales, ingresa pragmas directamente como línea(s), ya sea al comienzo del bloque o antes de una declaración de variable.

    • En el editor tabular, ingresa pragmas que deberían aparecer sobre la primera línea de declaración en el cuadro de diálogo Editar parte de la declaración / atributos una.

  • En una lista de variables globales

  • En la parte de implementación de un bloque de programación:

    • El pragma debe estar en una "posición de instrucción", es decir, al comienzo de un bloque de programación en una línea separada, o después de un ";" o END_IF, END_WHILE Etc

    • Editor FBD/LD/STL: Introduzca pragmas en las redes del editor FBD/KOP/STL como una etiqueta de salto: Para ello, seleccione el comando FBD/KOP/STL → Insertar etiqueta de salto. Luego reemplace el texto predeterminado Etiquetas: en el campo de texto de la etiqueta con la declaración de pragma adecuada. Si desea utilizar un pragma además de una etiqueta de salto, primero ingrese el pragma y luego la etiqueta de salto.

ejemplo 18. Posicionamiento incorrecto y correcto de un pragma condicional

INCORRECTO:

{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

CORRECTO:

{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}


Sugerencia

en diálogo propiedades, categoría Traducir puede especificar definiciones que se pueden consultar en pragmas.

Esfera de efecto:

Dependiendo del tipo y contenido de un pragma, un pragma afecta lo siguiente:

  • las siguientes declaraciones

  • exactamente como se indica a continuación

  • en todas las instrucciones subsiguientes hasta que sea cancelado nuevamente con un pragma apropiado

  • en todas las declaraciones posteriores hasta que se ejecuta el mismo pragma con diferentes parámetros, o se alcanza el final del código. "Código" en este contexto significa: parte de declaración, parte de implementación, lista de variables globales, declaración de tipo. Así, un pragma que se encuentra solo en la primera línea de la parte de declaración y no es reemplazado o cancelado por otro afecta a todo el objeto.

Categorías pragmáticas en CODESYS

el CODESYS-Los pragmas se dividen en las siguientes categorías: