www.infoPLC.net Variables “Retain” en SoMachine SoMachine v2.0RL3 Autor: Ramón A. Hormigo Luque Versión Autor Fecha Comentarios V 1.0 02/11/10 Creación de documento R. Hormigo Al crear un proyecto en SoMachine se pueden declarar algunas variables como “Retain” (remanentes), dichas variables retienen sus valores durante reinicios, resets, descarga de programa… En Somachine se podrán tener variables, variables Retain y variables Persistent o Retain-Persistent. Las variables declaradas como Persistent tienen el mismo comportamiento que las variables declaradas Retain-Persistent. • • Retain: Variables que se identifican mediante la palabra clave Retain. Este tipo de variables mantienen su valor aunque el controlador pierda y vuelva a recuperar la tensión, tras un cambio on-line del programa, parada del controlador, así como en un reset en caliente; cuando el programa arranca de nuevo los valores almacenados son procesados. Estas variables son inicializadas si se realiza una transferencia completa de programa, un reset en frío o un reset origen. Persistent o Retain-Persistent: variables que se identifican mediante la palabra clave Persistent o Retain-Persistent. Estas variables mantienen su valor tras descargar el programa o realizar un reset en frío. La siguiente tabla describe le comportamiento de las variables. Centro de Competencia Técnica. CCT.______________ Página 1/4 www.infoPLC.net En función tipo de controlador se dispondrá de un mapa de memoria u otro: Continúa en la siguiente página. Centro de Competencia Técnica. CCT.______________ Página 2/4 www.infoPLC.net Por ejemplo en una XBTGC HMI la distribución de memoria es la siguiente: Centro de Competencia Técnica. CCT.______________ Página 3/4 www.infoPLC.net Las variables persistentes son declaradas en una zona de variables globales llamada Persistent Variables. Para añadirla se deben seguir los siguientes pasos: Para declarar una variable como retain se debe añadir la palabra Retain en el Pou correspondiente o en la lista de variables globales. VAR RETAIN iRem1 : INT; (* 1. Retain variable*) END_VAR Centro de Competencia Técnica. CCT.______________ Página 4/4