Palabras clave de atributo para los tipos de variables
Puede añadir las palabras clave de atributo siguientes a la declaración del tipo de variable para especificar el ámbito:
oRETAIN: consulte Variables Retain
oPERSISTENT: consulte Variables persistentes
oCONSTANT: consulte Constantes - CONSTANT, Literales con tipo
Variables remanentes - RETAIN, PERSISTENT
Las variables remanentes pueden conservar sus valores durante el periodo de ejecución del programa habitual. Declárelas como variables Retain o, para una mayor exigencia, como variables persistentes.
La declaración determina el grado de resistencia de una variable remanente en caso de restablecimientos, descargas o un reinicio del controlador. En las aplicaciones se utiliza principalmente la combinación de ambos indicadores remanentes (consulte Variables persistentes).
NOTA: Una declaración VAR PERSISTENT se interpreta de la misma manera que una VAR PERSISTENT RETAIN o VAR RETAIN PERSISTENT.
NOTA: Utilice el comando Agregar todas las rutas de instancia para tomar las variables declaradas como persistentes en el objeto Persistent list.
Las variables declaradas como Retain se almacenan en un área de memoria no volátil. Para declarar este tipo de variable, utilice la palabra clave RETAIN en la parte de declaración de una POU o en una lista de variables globales.
Ejemplo
VAR RETAIN
iRem1 : INT; (* 1. Retain variable*)
END_VAR
Las variables Retain conservan su valor incluso después de un apagado imprevisto del controlador o después de una operación de apagado y encendido normal del controlador (o cuando se ejecuta el comando En línea Reset caliente). Al reiniciar el programa, los valores conservados se seguirán procesando. Las otras variables (que no son Retain) se inicializan de nuevo, ya sea con sus valores de inicialización o con sus valores de inicialización predeterminados (en el caso de que no se haya declarado un valor de inicialización).
Por ejemplo, puede utilizar un valor conservado cuando una operación (por ejemplo, el conteo de piezas en una máquina de producción) debe continuar tras un corte en el suministro eléctrico.
Las variables Retain, sin embargo, se reinicializan al ejecutar el comando En línea Reset origen y, a diferencia de las variables persistentes, al ejecutar el comando En línea Reset frío o durante la descarga de una aplicación.
NOTA: Solamente las variables definidas como VAR RETAIN se almacenan en la memoria no volátil. Sin embargo, las variables locales definidas como VAR RETAIN en las funciones NO se almacenan en la memoria volátil. La definición de VAR RETAIN localmente en las funciones no tiene efecto alguno.
Si utiliza interfaces o bloques de funciones fuera de las bibliotecas de configuración del sistema en la sección del programa de retención (VAR_RETAIN), provocará excepciones en el sistema que podrían dejar al controlador inoperativo, por lo que sería necesario un reinicio.
|
FUNCIONAMIENTO IMPREVISTO DEL EQUIPO |
oNo utilice interfaces fuera de la biblioteca SystemConfigurationItf en la sección del programa de retención (VAR_RETAIN). oNo utilice bloques de funciones fuera de la biblioteca SystemConfiguration en la sección del programa de retención (VAR_RETAIN). |
El incumplimiento de estas instrucciones puede causar la muerte, lesiones serias o daño al equipo. |
NOTA: Las bibliotecas SystemConfigurationItf y SystemConfiguration solo están disponibles para los controladores PacDrive (PacDrive LMC Eco, PacDrive LMC Pro/Pro2).
Las variables persistentes se identifican por la palabra clave PERSISTENT (VAR_GLOBAL PERSISTENT). Solamente se reinicializan al ejecutar el comando En línea Reset origen. A diferencia de las variables Retain, conservan sus valores después de una descarga.
NOTA: No utilice la declaración AT en combinación con VAR PERSISTENT.
Ejemplo de aplicación:
Un contador de horas de funcionamiento, que debe continuar contando incluso después de un corte en el suministro eléctrico o una descarga. Consulte la tabla sinóptica referente al comportamiento de las variables remanentes.
Las variables persistentes solamente se pueden declarar en una lista de variables globales especial de variables persistentes de tipo de objeto, que se asigna a una aplicación. Solamente se puede añadir una única lista de este tipo a una aplicación.
NOTA: Una declaración con VAR_GLOBAL PERSISTENT tiene el mismo efecto que una declaración con VAR_GLOBAL PERSISTENT RETAIN o VAR_GLOBAL RETAIN PERSISTENT.
Al igual que las variables Retain, las variables persistentes se almacenan en un área de la memoria por separado.
Ejemplo
VAR_GLOBAL PERSISTENT RETAIN
iVarPers1 : DINT; (* 1. Persistent+Retain Variable App1 *)
bVarPers : BOOL; (* 2. Persistent+Retain Variable App1 *)
END_VAR
NOTA: Las variables persistentes solamente se pueden declarar dentro del objeto Persistent list. Si se declaran en otro lugar, se comportarán como variables Retain y se notificarán como un error de compilación detectado en la vista Mensajes. (Las variables Retain se pueden declarar en las listas de variables globales o en las POU).
Cada vez que la aplicación se vuelva a cargar, la lista de variables persistentes del controlador se comparará con la del proyecto. La lista del controlador se identifica por la aplicación. En caso de incoherencia, se le solicitará que reinicialice todas las variables persistentes de la aplicación. La discrepancia puede ser el resultado de cambiar el nombre de las declaraciones existentes en la lista, de eliminar dichas declaraciones o de realizar otro tipo de modificaciones en ellas.
NOTA: Reflexione detenidamente sobre cualquier modificación en la parte de declaración de la lista de variables persistentes y el efecto de los resultados en lo que respecta a la reinicialización.
Puede añadir declaraciones nuevas únicamente al final de la lista. Durante una descarga, se detectarán como nuevas y no exigirán una reinicialización de toda la lista. Si modifica el nombre o el tipo de datos de una variable, esta se gestionará como una nueva declaración, lo cual provocará la reinicialización de la variable en la próxima descarga o modificación que se realice en línea.
Comportamiento de las variables remanentes
Consulte la guía de programación específica de su controlador para obtener más información sobre el comportamiento de las variables remanentes.
Las constantes se identifican mediante la palabra clave CONSTANT. Puede declararlas local o globalmente.
Sintaxis
VAR CONSTANT<identificador>:<tipo> := <inicialización>;END_VAR
Ejemplo
VAR CONSTANT
c_iCon1:INT:=12; (* 1. Constant*)
END_VAR
Consulte el capítulo Operandos para ver una lista de las constantes posibles.
Al utilizar constantes IEC, se utilizará básicamente el tipo de datos más pequeño posible. Si tiene que utilizarse otro tipo de datos, se puede hacer con la ayuda de literales con tipo sin necesidad de declarar explícitamente las constantes. Para ello, la constante se proporcionará con un prefijo que indica el tipo.
Sintaxis
<tipo>#<literal>;
<tipo> |
Especifica el tipo de datos que se desea. Entradas posibles: BOOL, SINT, USINT, BYTE, INT, UINT, WORD, DINT, UDINT, DWORD, REAL, LREAL Escriba el tipo con letras mayúsculas. |
<literal> |
Especifica la constante. Introduzca datos que se ajusten al tipo de datos especificado en <tipo>. |
Ejemplo
iVar1:=DINT#34;
Si la constante no se puede convertir al tipo de destino sin sufrir una pérdida de datos, aparece un mensaje.
Puede utilizar los literales con tipo allí donde se pueda utilizar una constante normal.
Constantes en modalidad online
Siempre que la configuración predeterminada Replace constants (Archivo > Configuración del proyecto > Opciones de compilador) esté activada, las constantes en modalidad online tendrán un símbolo delante del valor en la columna Valor de la vista de supervisión o declaración. En este caso, no se puede acceder a ellas mediante forzado o escritura, por ejemplo.