Declaración de variables
Declaración de variables: ¿dónde y cómo?
Puede declarar variables en las siguientes ubicaciones:
Declaración como parte de una POU
El Declarar variable El diálogo te ayuda con esto.
Listas de variables (editor GVL, editor NVL)
Configuración de mapeo de E/S de un objeto de dispositivo de E/S
Para obtener más información, consulte: Configurar dispositivos y configurar la asignación de E/S
Para obtener más información, consulte: Atajos para la declaración de variables
Sintaxis
<pragma>
<scope> <type qualifier>
<identifier> AT <address> : <data type> := <initial value> ;
END_VAR
| Repetido opcional (nunca, una o varias veces) Pragma Un pragma es una declaración del compilador (por ejemplo, para lograr optimizaciones como los requisitos de memoria o las mejoras en el tiempo de ejecución). | |
| Necesario Alcance
| |
| Opcional Calificador de tipo
| |
| Necesario Identificador, nombre de variable Nota: Las reglas enumeradas en el capítulo «Designación del identificador» deben seguirse sin excepción al asignar un identificador. Además, encontrará recomendaciones para una nomenclatura uniforme | |
| Opcional La dirección se compone de la siguiente manera: <área de memoria> <prefijo de tamaño opcional> <posición de memoria> El área de memoria se subdivide en área de memoria de entrada, área de memoria de salida o área de memoria de bandera ( Ejemplo
| |
| Necesario Tipo de datos
| |
| Opcional Valor inicial; inicialización como literal, variable o expresión |
Lista global de variables GVL
{attribute 'qualified_only'} {attribute 'linkalways'} VAR_GLOBAL CONSTANT g_ciMAX_A : INT := 100; g_ciSPECIAL : INT := g_ciMAX_A - 10; END_VAR
Variables de configuración GVL_CONFIG
{attribute 'qualified_only'} VAR_CONFIG // Generated instance path of variable at incomplete address PLC_PRG.fbDoItNow.XLOCINPUT AT %I*: BOOL := TRUE; END_VAR
Bloque de funciones FB_DoIt
METHOD METH_Last : INT VAR_INPUT iVar : INT; END_VAR VAR_INST iLast : INT := 0; END_VAR METH_Last := iLast; iLast := iVar; FUNCTION_BLOCK FB_DoIt VAR_INPUT wInput AT %IW0 : WORD; (* Input variable *) END_VAR VAR_OUTPUT wOutput AT %QW0 : WORD; (* Output variable *) END_VAR VAR_IN_OUT aData_A : ARRAY[0..1] OF DATA_A; // Formal variable END_VAR VAR_EXTERNAL GVL.g_ciMAX_A : INT; // Declared in object GVL END_VAR VAR_STAT iNumberFBCalls : INT; END_VAR VAR iCounter: INT; xLocInput AT %I* : BOOL := TRUE; // VAR_CONFIG END_VAR iNumberFBCalls := iNumberFBCalls + 1;
Programa IEC PLC_PRG
PROGRAM PLC_PRG VAR iLoop: INT; iTest: INT; fbDoItNow : FB_DoIt; iTest_200: INT; aData_Now : ARRAY[0..1] OF DATA_A := [(iA_1 := 1, iA_2 := 10, dwA_3 := 16#00FF),(iA_1 := 2, iA_2 := 20, dwA_3 := 16#FF00)]; END_VAR iTest := GVL.g_ciMAX_A; iTest_200 := 2 * GVL.g_ciMAX_A; fbDoItNow(aData_A := aData_Now); FOR iLoop := 0 TO GVL.g_ciSPECIAL DO ; END_FOR