Skip to main content

Atributo: init_on_onlchange

Sin código de inicialización durante un cambio rápido en línea

Desde la versión del compilador >= 3.5.0.0, se realiza un "cambio rápido en línea" para cambios menores. Durante un cambio en línea rápido, solo se compilan y descargan las POU modificadas. En particular, no se genera ningún código de inicialización.

Para variables con la init_on_onlchange atributo, esto también resulta en No código de inicialización que se está generando. En los escenarios habituales, eso no tiene impacto porque el atributo generalmente se usa para inicializar variables con direcciones. Sin embargo, durante un cambio rápido en línea, no puede suceder que una variable cambie su dirección.

Sin embargo, para asegurarse del impacto de la init_on_onlchange atributo se aplica en todo el código de la aplicación, en general para la aplicación se puede utilizar el no_fast_online_change el compilador define para deshabilitar el cambio rápido en línea. Para hacer esto, seleccione su objeto de aplicación en el árbol de dispositivos y haga clic en Propiedades en el menú contextual. Bajo el Construir pestaña, agregue el no_fast_online_change definición del compilador.

Para más información, ver: Construir

El efecto de este pragma es que la variable a la que se aplica el pragma se inicializa con cada cambio en línea.

Sintaxis:

{attribute 'init_on_onlchange' }

Insertar ubicación: La línea arriba de la línea con la declaración de las variables.

ejemplo 273. Ejemplo
VAR_GLOBAL    
    {attribute 'init_on_onlchange'}    
    g_fastOnlineChange : BOOL := FALSE;
END_VAR
{attribute 'call_after_online_change_slot' := '4567'}
FUNCTION FUNC_OnlineChangeDetection : BOOL
VAR_INPUT
END_VAR
VAR
END_VAR 

IF GVL_OnlineChangeDetection.g_fastOnlineChange THEN    
    // here you know that you are inside a FastOnlineChange
END_IF
// reset for next detection
GVL_OnlineChangeDetection.g_fastOnlineChange := TRUE;