Befehl Online-Change

Funktion: Der Befehl dient dem Anstoßen eines Online-Change auf das gerade aktive SPS-Projekt. Dabei lädt TwinCAT nur die geänderten Teile eines bereits auf der Steuerung laufenden SPS-Projekts neu in die Steuerung.

Aufruf: Menü PLC

Voraussetzung: Das SPS-Projekt ist im Onlinebetrieb.

Ein Online-Change ist nicht möglich nach den Befehlen Alles bereinigen und Bereinigen. Der Bereinigen-Prozess löscht die Compileinformationen (Übersetzungsprotokoll), die automatisch bei jeder Codeerzeugung gespeichert werden und die die Basis für einen Online-Change sind.

WARNUNG

Sach- und Personenschäden durch unerwartetes Verhalten der Maschine oder Anlage

Ein Online-Change verändert das laufende Anwendungsprogramm und bewirkt keinen Neustart. Abhängig von der gesteuerten Maschine können Schäden an Maschine und Werkstücken entstehen oder Gesundheit und Leben von Personen gefährdet werden.

  • Stellen Sie sicher, dass der neue Programmcode das gewünschte Verhalten des gesteuerten Systems bewirkt.
Befehl Online-Change 1:

Projektspezifische Initialisierungen

Wenn ein Online-Change durchgeführt wird, werden die projektspezifischen Initialisierungen (Referenzfahrt etc.) nicht ausgeführt, weil die Maschine ihren Status beibehält. Aus diesem Grund hat der neue Programmcode möglicherweise nicht den gewünschten Effekt.

Befehl Online-Change 2:

Schwerwiegende Änderungen im Downloadcode

Wenn der Online-Change schwerwiegende Änderungen im Downloadcode bewirkt (z. B. Verschieben von Variablen nötig), informiert ein Dialog über die Effekte und ermöglicht, den Online-Change abzubrechen.

Befehl Online-Change 3:

Schneller Online-Change

Für kleine Änderungen (z. B. kleine Änderung im Implementierungsbereich und Verschieben von Variablen nicht nötig) wird ein „schneller Online-Change“ durchgeführt. In diesem Fall wird nur der jeweils geänderte Baustein übersetzt und nachgeladen. Insbesondere wird in dem Fall kein Initialisierungscode erzeugt. Das bedeutet, dass auch kein Code zur Initialisierung von Variablen mit dem Attribut 'init_on_onlchange' erzeugt wird. In der Regel wird das keine Auswirkungen haben, da das Attribut meist dazu verwendet wird, um Variablen mit Adressen zu initialisieren, es kann aber beim schnellen Online-Change nicht dazu kommen, dass eine Variable ihre Adresse ändert.

Um die Wirkung des Attributs init_on_onlchange auf den gesamten Applikationscode sicherzustellen, schalten Sie den schnellen Online-Change mithilfe der Compiler-Definition no_fast_online_change generell für das SPS-Projekt aus. Fügen Sie die Definition zu diesem Zweck in den Eigenschaften des SPS-Projekts in der Kategorie Übersetzen ein.

Befehl Online-Change 4:

Keine Wirkung des Attributs 'init_on_onlchange' bei einzelnen FB-Variablen

Das Attribut 'init_on_onlchange' wirkt nur bei globalen Variablen, Programmvariablen und lokalen statischen Variablen von Funktionsbausteinen.

Um einen Funktionsbaustein bei einem Online Change neu zu initialisieren muss die Funktionsbausteininstanz mit dem Attribut deklariert werden. Für eine einzelne Variable in einem Funktionsbaustein wird das Attribut nicht ausgewertet.

Zeigervariablen

Zeiger behalten ihren Wert aus dem letzten Zyklus. Wenn ein Zeiger auf eine Variable zeigt, die durch den Online-Change ihre Größe verändert hat und dadurch im Speicher verschoben wurde, liefert die Zeigervariable nicht mehr die korrekte Position der Variablen. Stellen Sie sicher, dass Pointer in jedem Zyklus erneut zugewiesen werden.

Bei einem Online-Change mit möglicherweise unbeabsichtigten Konsequenzen listet TwinCAT in dem Details-Dialog die geänderten Schnittstellen, betroffenen Variablen und alle Bausteine, für die neuer Code generiert wurde. Wenn sich Speicherorte ändern, wird in einem Dialog auf mögliche Probleme in Zusammenhang mit Pointern hingewiesen.

Siehe auch:

Was verhindert einen Online-Change?

Es gibt Aktionen in TwinCAT, nach denen ein Online-Change auf einer Steuerung nicht mehr möglich ist. Danach ist immer ein Download des Projekts erforderlich. Ein typischer Fall sind die Aktionen Bereinigen und Alles bereinigen, die die beim letzten Download abgelegte Übersetzungsinformation löschen. Aber es gibt auch „normale“ Editieraktionen, die dazu führen, dass beim nächsten Einloggen ein Online-Change nicht mehr möglich ist. Folgende Aktionen können einen Online-Change verhindern:

Checkfunktionen

Aktivieren oder Entfernen einer Checkfunktion (CheckBounds, CheckRange, CheckDiv etc.).

Änderung in der Schnittstelle einer Checkfunktion (auch das Einfügen und Löschen von lokalen Variablen).

Taskkonfiguration

Ändern in den Konfigurationseinstellungen.

Projekteinstellungen

Kategorie Übersetzen: In der Sektion Einstellungen (Konstanten ersetzen), Änderung in den Compiler-Defines

Kategorie Common: ID-Änderungen in TwinCAT-Dateien minimieren.

 

Bausteineigenschaften

Änderung der Option Externe Implementierung

Funktionsbaustein

Ändern des Basisbausteins eines Funktionsbausteins (EXTENDS FB_Base), auch das Einfügen oder Löschen eines solchen Basisbausteins.

Änderung in der Schnittstellenliste (IMPLEMENTS I_Sample). Ausnahme: Hinzufügen einer neuen Schnittstelle am Ende der Liste.

Datentyp

Ändern des Datentyps einer Variable von einem benutzerdefinierten Datentyp zu einem anderen benutzerdefinierten Datentyp (beispielsweise von TON zu TOF).

Ändern des Datentyps von einem benutzerdefinierten Datentyp zu einem Basisdatentyp (beispielsweise von TON zu TIME).

Hinweis: Als Workaround ändern Sie gleichzeitig mit dem Datentyp immer auch den Namen der Variablen. Dann wird die Variable als neue Variable initialisiert und die alte entfernt. Ein Online-Change ist danach möglich.

Siehe auch: