Projektänderungen auf die Steuerung schreiben
Hinweis
Die Verfügbarkeit der hier beschriebenen Funktion 'Projektänderungen schreiben' hängt vom Steuerungstyp ab. |
Neben den beiden 'Projekt schreiben und starten'-Befehlen können im Kontextmenü der Steuerung und im Cockpit zwei Befehle 'Projektänderungen schreiben und starten' (mit und ohne Quellen) vorhanden sein. Der Zweck dieser Befehle ist es, Projektmodifikationen mit einem Mausklick auf die Steuerung zu schreiben und anzuwenden, ohne dafür die laufende Steuerung zu stoppen.
Falls möglich, erfolgt die gesamte Operation in Echtzeit. Abhängig von der Art der im Projekt durchgeführten Änderungen und der Performance/Auslastung der Steuerung, können jedoch beim Umschalten der Steuerung auf das neue Projekt Echtzeitverletzungen auftreten, weil Anwendertasks für eine kurze Zeit nicht ausgeführt werden können. Details hierzu finden Sie im Abschnitt "Hintergrund: Exakter Taskzeitplan contra Echtzeitverletzungen".
Unbeabsichtigter Betriebszustand des Geräts
- Stellen Sie sicher, dass auftretende Echtzeitverletzungen im Rahmen des Befehls 'Projektänderungen schreiben und starten' zu keinerlei Gefährdung führen können.
- Verifizieren Sie die Auswirkungen möglicher Echtzeitverletzungen hinsichtlich des Zeitverhaltens und der Performance Ihrer gesamten Applikation.
- Beachten Sie die vorgegebenen Richtlinien in relevanten Sektornormen, wenn die Maschine in einer anderen Betriebsart als "in Betrieb" läuft.
- Verwenden Sie geeignete Sicherheitsverriegelungen, wenn eine Gefahr für Personen und/oder Ausrüstung besteht.
|
'Projektänderungen schreiben und starten' ist möglich, während sich die Steuerung im Status STOP oder BETRIEB befindet. Wird der Befehl im Status STOP ausgeführt, wird die Steuerung anschließend automatisch gestartet. Falls möglich, erfolgt ein Heißstart. Andernfalls wird ein Warmstart oder Kaltstart durchgeführt. Wenn die Steuerung beim Aufruf von 'Projektänderungen schreiben und starten' im Status BETRIEB ist, übernimmt das Laufzeitsystem die erforderlichen Daten und Werte in Echtzeit von der "alten" Projektversion (falls möglich) und setzt damit die Programmausführung fort. Dies entspricht einem impliziten Heißstart.
Nachdem das Schreiben und Starten der Änderungen abgeschlossen ist und die Steuerung das geänderte Projekt ausführt, aktiviert PLCnext Engineer automatisch den Debug-Modus, wodurch alle geöffneten Variablentabellen und Code-Arbeitsblätter aus dem Zielsystem ausgelesene Variablenwerte anzeigen.
Hinweis
Die Beschreibungen in diesem Thema gelten auch für den Befehl 'Projektänderungen schreiben und starten (mit Quellen)', der darüber hinaus noch die Projektquellen auf die Steuerung überträgt und dort speichert. |
Beachten Sie die Einschränkungen (siehe Liste unten), d.h. die Situationen, in denen das Schreiben der Änderungen auf die Steuerung auf Grund der Art der getätigten Modifikationen nicht möglich ist.
Anwendungsfälle: Das Schreiben von Projektänderungen ist möglich nach...
Das Schreiben von Projektänderungen ist nach folgenden Modifikationen im Projekt möglich:
- Ändern von Code in vorhandenen POEs.
- Einfügen/Löschen lokaler und globaler Variablen.
- Ändern lokaler und globaler Variablen (einschließlich Anfangswert).
Das Ändern des Datentyps kann die Reinitialisierung der betreffenden Variablen zur Folge haben. Lesen Sie hierzu den Abschnitt "Verarbeitung von Datentypen".
- Deklarieren neuer FB-Instanzen (Anwender/Firmware).
- Hinzufügen/Löschen von Datentypen. Lesen Sie hierzu den Abschnitt "Verarbeitung von Datentypen".
- Ändern von Datentyp-Deklarationen. Variablen mit geändertem Datentyp werden möglicherweise initialisiert. Wenn der Wert einer betroffenen Variablen ohne Wertverlust in den neuen Datentyp umgewandelt werden kann, ist die Konvertierung zulässig. Lesen Sie hierzu den Abschnitt "Verarbeitung von Datentypen".
- Ändern von Kommentaren im Programmcode.
- Verwendung neuer POE-Typen.
- Hinzufügen/Löschen von Programminstanzen.
- Ändern der Zuordnung (Mapping) von IN- und OUT-Ports. Nachdem Sie eine Zuordnung eines IN-Port auf einen OUT-Port gelöscht haben, müssen Sie vor dem Schreiben der Projektänderungen auf die Steuerung folgendes beachten: Der betreffende IN-Port behält den letzten gültigen Wert, den der OUT-Port geschrieben hat, bevor das geänderte Projekt auf die Steuerung geschrieben wurde.
Einschränkungen
'Projektänderungen schreiben und starten' ist
nicht möglich
- während Breakpoints auf dem Zielsystem gesetzt sind. Entfernen Sie alle Breakpoints, bevor Sie Änderungen schreiben.
Hinweis
Falls Variablen geforct sind, ist das Schreiben von Änderungen möglich. Für diejenigen Variablen, die vor dem Schreiben der Projektänderungen geforct wurden, wird das Forcen automatisch aufgehoben (die Force-Liste wird zurückgesetzt und es wird eine entsprechende Desktop-Benachrichtigung ausgegeben). |
- wenn seit dem letzten Compilerlauf die Option 'Debug-/Optimierter Code' aktiviert oder deaktiviert wurde.
- wenn in der ANLAGE Module/Geräte eingefügt, gelöscht oder bearbeitet wurden.
- nachdem Tasks hinzugefügt/gelöscht oder beliebige Taskeigenschaften geändert wurden.
Verarbeitung von Datentypen
Bei den meisten Konvertierungen wird der Variablenwert nicht beeinflusst. Nachdem Sie den Datentyp einer vorhandenen Variablen geändert haben, wird der Wert der Variablen nur dann gehalten, wenn dies ohne Verlust möglich ist. Dafür ist der Wertebereich des Datentyps entscheidend. Wenn der Wert einer Variablen geändert werden muss, weil der alte und der neue Datentyp verschiedene Wertebereiche haben, wird die Variable nicht konvertiert, sondern gelöscht und anschließend wieder neu hinzugefügt und initialisiert.
Die folgende Tabelle zeigt die mögliche Migration grundlegender Datentypen. Lesen Sie die Tabelle wie folgt: Ein Datentyp wird von der ersten (ganz linken) Spalte in den entsprechenden Datentypen rechts davon konvertiert.
 | Konvertierung möglich ohne Verlust (alter Wert = neuer Wert) |
 | Konvertierung resultiert in neu hinzugefügter und initialisierter Zielvariablen |
Hinweis
- Bitweise Datentypen werden bei der Konvertierung grundsätzlich als Datentypen ohne Vorzeichen (unsigned) behandelt. Ein BYTE basiert beispielsweise auf demselben .Net-Datentyp wie ein USINT. Folglich werden die Variablenwerte immer übernommen.
- Für die Konvertierung eines Datentyps ohne Vorzeichen in einen Datentyp mit Vorzeichen (unsigned > signed) gilt: Das Vorzeichen wird nicht berücksichtigt. Beispiel: Konvertierung BYTE nach INT: BYTE#16#FF (BYTE#255) ergibt den Integer-Wert 255 (INT#16#00FF oder INT#255).
|
Verarbeitung anwenderdefinierter Datentypen (ARRAYs, STRUCTs und Zeichenfolgen)
- Wurde ein anderer Datentyp angegeben (wodurch ein neuer Datentypname entsteht), wird der Anfangswert des neuen Datentyps verwendet.
- Wurde der Datentyp modifiziert (d.h. der Name bleibt unverändert) und die Datentyp-Definition editiert, dann werden die enthaltenen Member (von elementaren Datentypen) gemäß den oben beschriebenen Regeln behandelt.
- Wurde die Länge eines anwenderdefinierten Datentyps verändert, dann werden so viele Werte aus dem alten Datentyp übernommen, wie die neue Variable aufnehmen kann. (Dabei ist der Offset am Beginn entscheidend, nicht der Index.) Überschüssige Werte, die nicht mehr in die neue Variable passen, werden verworfen.Wird z.B. ein ARRAY gekürzt (bei unverändertem Datentyp), so behalten die verbleibenden Elemente ihren Wert. Wird ein ARRAY verlängert (bei unverändertem Datentyp), behalten bereits vorhandene Elemente ihren Wert und neue Elemente werden initialisiert. Dasselbe gilt für Strukturen: Übernommene Elemente behalten ihren Wert, neue Elemente werden initialisiert.
So schreiben Sie Projektänderungen
- Ändern Sie das Projekt.
- Führen Sie die Anweisungen aus, wie im Thema "Inbetriebnahme der Applikation:. Von Kompilieren bis Debuggen" beschrieben, wählen Sie aber statt des Befehls 'Projekt schreiben und starten' einen der folgenden Befehle:
Hinweis
Falls die Befehle nicht verfügbar sind, lesen Sie den Abschnitt "Einschränkungen". Möglicherweise verhindert die Art der durchgeführten Projektmodifikationen die Verwendung des Befehls 'Projektänderungen schreiben und starten'. |
- 'Projektänderungen schreiben und starten'
- 'Projektänderungen schreiben und starten (mit Quellen)' schließt die Projektquellen mit ein und speichert diese auf dem Zielsystem:
Die Änderungen werden nur dann auf das Zielsystem geschrieben, wenn der Compiler keine Fehler entdeckt. Andernfalls wird die Operation abgebrochen und die Steuerung führt die Ausführung des aktuellen Programms fort.Ist das Projekt fehlerfrei, so werden Änderungen (je nach Befehl auch mit den Projektquellen) auf das Zielsystem geschrieben und die Steuerung schaltet vom "alten" auf das modifizierte Projekt um.Falls die Echtzeitbedingungen verletzt werden oder die Operation gar nicht abgeschlossen werden kann, wird eine entsprechende Meldung ausgegeben und es erfolgt ein Eintrag in das Online-Protokoll, der die Ursache für die gescheiterte Operation erläutert.
Hintergrund: Exakter Taskzeitplan contra Echtzeitverletzungen
Je nach Änderungen, die Sie im Projekt durchgeführt haben, und nach Performance/Auslastung der Steuerung, wird der gesamte Prozess in Echtzeit durchgeführt, d.h. ohne die Echtzeitbedingungen der auf der Steuerung laufenden Tasks zu verletzen. Die Gewährleistung der Echtzeit ist nur möglich, wenn die Steuerung in der Lage ist, alle geänderten Daten, d.h. die Daten aller geänderten POE-Instanzen, zwischen zwei Steuerungs-(Anwendertask-)Zyklen zu kopieren. In diesem Fall wird der Taskzeitplan auf der Steuerung eingehalten, d.h. es wird kein Anwendertask mit Verzögerung aufgerufen und das gesteuerte Automatisierungssystem läuft innerhalb der gewünschten Grenzen.
Je nach Umfang der Änderungen im Projekt (Anzahl der modifizierten POE-Instanzen) und abhängig vom freien Zeitfenster zwischen zwei Taskzyklen, kann das verfügbare Zeitintervall zu kurz sein, um ohne Unterbrechung durch den nächsten Taskaufruf alle geänderten Daten der POE-Instanzen vom "alten" in das geänderte Projekt zu kopieren und die Steuerung auf die neue Projektversion umzuschalten. Die Echtzeitbedingungen einzuhalten bedeutet aber, dass kein Anwendertask mit Verzögerung aufgerufen werden darf. Aus diesem Grund hat die pünktliche Taskausführung stets Vorrang vor dem "Änderungen schreiben"-Prozess.
Hinweis
Werden Echtzeitbedingungen verletzt, erscheint eine entsprechende Meldung in PLCnext Engineer und es erfolgt ein Eintrag im Online-Protokoll. |
Änderungen in AS-POEs: Potenziell gefährliche Modifikationen
Änderungen in AS-POEs sind prinzipiell erlaubt, werden jedoch als potenziell gefährlich erachtet, da sie zu kritischen Zuständen der Steuerung führen können, wenn bei laufender Steuerung Änderungen auf diese geschrieben werden. Beispielsweise könnte die Abarbeitung einer AS-Schrittkette blockiert werden, wenn ein gerade aktiver Schritt gelöscht wird. Das Löschen von Aktionen wird ebenfalls als kritisch eingestuft und gemeldet.
In diesen Fällen erhalten Sie eine Meldung und sollten das bestehende Risiko verifizieren, bevor Sie den Prozess durch Bestätigen der Warnmeldung fortsetzen.
Unbeabsichtigter Betriebszustand des Geräts
- Verifizieren Sie die Auswirkungen von Änderungen in AS-POEs, insbesondere hinsichtlich möglicherweise blockierter AS-Schrittketten, beispielsweise durch gelöschte Schritte oder Aktionen.
- Betreten Sie den Betriebsbereich nicht, während die Maschine in Betrieb ist.
- Stellen Sie sicher, dass keine anderen Personen den Betriebsbereich betreten können, während die Maschine in Betrieb ist.
- Beachten Sie die vorgegebenen Richtlinien in relevanten Sektornormen, wenn die Maschine in einer anderen Betriebsart als "in Betrieb" läuft.
- Verwenden Sie geeignete Sicherheitsverriegelungen, wenn eine Gefahr für Personen und/oder Ausrüstung besteht.
|