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.
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;