Commande : modification en ligne
Fonction : La commande permet de déclencher un changement en ligne sur l'application en cours. Lorsque cela est fait, CODESYS télécharge à nouveau uniquement les parties modifiées d'une application qui s'exécute déjà sur le contrôleur.
Appel : menue ; menu contextuel d'une Application objet
Exigence : L'application est en mode en ligne.
La commande est disponible dans le menu contextuel lorsqu'une application est sélectionnée dans l'arborescence des appareils. Par conséquent, vous pouvez effectuer une modification en ligne pour une seule application, même si cette application n'est pas actuellement "active".
Attention
Une modification en ligne modifie le programme d'application en cours d'exécution et ne provoque pas de redémarrage.
Assurez-vous que le nouveau code d'application provoque toujours le comportement souhaité du système contrôlé.
Selon le système commandé, des dommages au système et aux pièces à usiner peuvent se produire ou la santé et la vie des personnes peuvent être mises en danger.
Important
Lorsqu'un changement en ligne est effectué, les initialisations spécifiques à l'application (exemple : homing) ne sont pas exécutées car la machine conserve son état. Pour cette raison, le nouveau code du programme peut ne pas avoir l'effet escompté.
Les variables vers les pointeurs conservent leur valeur du dernier cycle. Lorsqu'un pointeur fait référence à une variable dont la valeur a été modifiée lors d'une modification en ligne, la variable ne renvoie plus la valeur correcte. Assurez-vous que les pointeurs sont réaffectés à chaque cycle.
Après avoir modifié « l'application parent », une « application enfant » est supprimée du contrôleur lors d'une modification en ligne.
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
Lors du chargement des listes CODESYS dans la fenêtre de message dans la catégorie Traduire également les interfaces modifiées, les variables affectées et tous les blocs pour lesquels un nouveau code a été généré. Si les emplacements de stockage changent, une boîte de dialogue vous avertira des éventuels problèmes liés au pointeur.
Astuce
Dans la vue Réserve de mémoire pour le changement en ligne les réserves de mémoire pour le changement en ligne peuvent être configurées pour les blocs fonctionnels d'un projet, de sorte que lorsque des modifications sont apportées à un bloc fonctionnel pendant le changement en ligne, les variables d'instance dans la mémoire n'ont pas besoin d'être déplacées .
Pour plus d'informations, voir : Réserve de mémoire des paramètres pour modification en ligne
Qu'est-ce qui empêche un changement en ligne ?
Dans CODESYS, il existe des actions après lesquelles une modification en ligne sur un contrôleur n'est plus possible. Après cela, l'application doit toujours être entièrement recompilée. Un cas typique est celui Nettoie tout commande qui supprime les informations de compilation stockées lors du dernier téléchargement. Cependant, ce type d'actions génère généralement un avertissement dont vous devez prendre connaissance.
Mais il existe également des actions d'édition "normales" qui font qu'une modification en ligne n'est pas possible lors de la prochaine connexion. Par conséquent, vous devez faire attention au symbole suivant dans la barre d'état lors de l'édition dans les POU du programme : . Lorsque ce symbole devient rouge
, seul un téléchargement complet vers le contrôleur peut être effectué. Double-cliquez sur le symbole pour ouvrir les Informations sur la candidature boîte de dialogue avec une liste des différences par rapport au dernier téléchargement. Dans la boîte de dialogue, vous trouverez également des informations sur les modifications qui empêchent une modification en ligne.
Pour plus d'informations, voir : Commande : Connexion
Vérifier les fonctions | Activer ou supprimer une fonction de contrôle ( Modification de l'interface d'une fonction de contrôle (y compris l'insertion et la suppression de variables locales) |
Configuration de la tâche | Modification des paramètres de configuration |
Paramètres du projet | Changement des de compilation dans les Paramètres section (Unicode, remplacement des constantes, connexion, points d'arrêt) Changement dans le Le compilateur définit |
Propriétés de l'application | Changement de les Paramètres de mémoire du système cible (Construire languette) |
Propriétés POU | Changement de la Implémentation externe option (Construire languette) |
Liste des variables globales locales de la tâche | Toutes les modifications |
Bloc fonction | Changer le module de base d'un module fonction ( Changement dans la liste des interfaces ( Exception : ajout d'une nouvelle interface en fin de liste |
Type de données | Modification du type de données d'une variable d'un type de données défini par l'utilisateur à un autre type de données défini par l'utilisateur (par exemple, de Modification du type de données d'un type de données défini par l'utilisateur à un type de données de base (par exemple, de Remarque : comme solution de contournement, vous devez toujours modifier le nom de la variable en même temps que le type de données. Ensuite, la variable est initialisée en tant que nouvelle variable et l'ancienne est supprimée. Un changement en ligne est alors possible. |
Configuration d'alarme | Modification de la configuration de la base de données des alarmes Modification du nombre de variables de verrouillage (affecte également le format de stockage dans la base de données) Modification de la configuration des alarmes distribuées |
La source de données | Toutes les modifications de configuration |
Configuration de l'appareil | Modification de l'arborescence des appareils (également par commande mettre à jour l'appareil) Modification de la configuration d'un appareil : Dans le cas standard, les modifications des paramètres de l'appareil ne peuvent pas être modifiées en ligne. Cependant, des exceptions peuvent être configurées dans la description de l'appareil. Remarque : le mappage des E/S aux variables est possible via une modification en ligne. |
Visualisation | Basculer la fonction de superposition Avant V3.5 SP6 : Modification de la configuration de l'oligo-élément Remarque : Ce qui suit s'applique à partir de la V3.5 SP6 : En cas de modifications en ligne affectant les visualisations ou affectant les données de l'application (par exemple : nouvelle variable insérée), la visualisation est entièrement réinitialisée. Pour TargetVisu cela signifie, par exemple, que la visualisation se ferme et s'ouvre à nouveau avec la page de démarrage. Dans le cas du WebvVisu, la visualisation redémarre également avec la visualisation de démarrage après un court temps d'attente. |
Conversion d'unité | Insérer ou supprimer des objets de conversion d'unités |
S'orienter | Modification du nombre de variables ou du nombre maximum de variables Modification du nombre de variables avec description ou paramètres de ligne spéciaux |
Pour plus d'informations, voir : Exécuter le changement en ligne et init_on_onlchange