Attribut : init_on_onlchange
Pas de code d'initialisation lors d'un changement en ligne rapide
Depuis la version du compilateur >= 3.5.0.0, une "modification rapide en ligne" est effectuée pour les modifications mineures. Lors d'un changement en ligne rapide, seules les POU modifiées sont compilées et téléchargées. En particulier, aucun code d'initialisation n'est généré.
Pour les variables avec le init_on_onlchange
attribut, cela se traduit également par Non code d'initialisation en cours de génération. Dans les scénarios habituels, cela n'a aucun impact car l'attribut est généralement utilisé pour initialiser des variables avec des adresses. Cependant, lors d'un changement en ligne rapide, il ne peut pas arriver qu'une variable change d'adresse.
Cependant, pour s'assurer de l'impact de la init_on_onlchange
L'attribut est appliqué dans tout le code de l'application, en général pour l'application, vous pouvez utiliser l'attribut no_fast_online_change
définition du compilateur pour désactiver le changement en ligne rapide. Pour ce faire, sélectionnez votre objet d'application dans l'arborescence des appareils et cliquez sur Propriétés dans le menu contextuel. Sous le Construire onglet, ajoutez le no_fast_online_change
définition du compilateur.
Pour plus d'informations, consultez : Construire
L'effet de ce pragma est que la variable à laquelle le pragma est appliqué est initialisée à chaque changement en ligne.
Syntaxe:
{attribute 'init_on_onlchange' }
Emplacement d'insertion : La ligne au-dessus de la ligne avec la déclaration des 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;