Skip to main content

Onlinebetrieb

Während der Laufzeit können Sie im Editor das Verhalten des Diagramms im Monitoring überwachen und steuern.

Tipp

Um die folgenden Beispiele nachvollziehen zu können, steht Ihnen das Beispielprojekt UML_SC_CoffeeMachine.project zur Verfügung.

Zeitverhalten einer Transition

Zustandsdiagramme reagieren auf Ereignisse. Wenn ein Ereignis eintritt und infolgedessen eine Bedingung wahr wird, erfolgt mit dem nächsten Buszyklustakt ein Zustandsübergang. Transitionen können Sie aber auch so gestalten, dass der Zustandsübergang flankengesteuert mit der zugehörigen Bedingung schaltet. In der Implementierung wird die Transition dann mit dem Symbol _uml_icon_rising_edge.png gekennzeichnet.

Aktiveren Sie dazu in der Ansicht Eigenschaften → Eigenschaft die Option Steigende Flanke.

Zeitverhalten eines Zustands

Zur Laufzeit eines Zustandsdiagramms werden dessen Zustände üblicherweise mit dem Taskzyklus ausgeführt. Allerdings können Sie einen Zustand so gestalten, dass er zyklusintern ausgeführt wird und der Zustand innerhalb eines Buszyklus alle Aktionen schnell ausführt. In der Implementierung wird ein solcher Zustand rot dargestellt.

_uml_img_sc_red_state_grind.png

Bei Funktionen und Methoden sind die lokalen Variablen üblicherweise temporär. Zur Laufzeit werden beim Verlassen des Programmierobjekts die lokalen Variablen somit nicht gespeichert, sondern freigegeben. Folglich wird die Information, in welchem Zustand sich das Zustandsdiagramm befindet, nicht gespeichert. Ein Schaltverhalten, das vom Buszyklus gesteuert wird, ist also nicht möglich. Deshalb werden Zustandsdiagramme in Funktionen oder Methoden zyklusintern ausgeführt. Wenn Sie also eine Methode als Zustandsdiagramm implementieren, wird dieses Diagramm schnell geschaltet. Auch in der Ansicht Werkzeuge steht nur ein roter Zustand _uml_icon_fast_state.png zur Verfügung.

Sie können dieses Verhalten vermeiden, indem Sie in der Funktion oder Methode keine lokalen Variablen, sondern Instanzvariablen VAR_INST deklarieren. Instanzvariablen werden beim Verlassen der Methode beim aufrufenden Programmierbaustein - das ist ein Programm oder eine Funktionsbausteininstanz - gespeichert. Die Zustandsübergänge werden dann flankengesteuert mit dem Buszyklus langsam geschaltet.

Tipp

Voraussetzung dafür ist, dass im Dialog Eigenschaften in der Registerkarte UML die Option Statusbehaftete Implementierung (durch VAR_INST) aktiviert ist.

Monitoring und Forcen

Wenn eine Applikation geladen und gestartet wurde, können Sie deren Programmierbausteine im Monitoring überwachen. Bei Programmierbausteinen in der Implementierungssprache UML-Zustandsdiagramm können Sie grafisch überwachen, welcher Zustand aktiv ist, da der gerade aktive Zustand blau gekennzeichnet ist. Das Zustandsdiagramm wird ständig aktualisiert.

Sie können in der Deklaration mit Hilfe der Spalte Vorbereiteter Wert Variablen forcen. Bei booleschen Variablen können Sie das auch in der Implementierung, indem Sie auf den Monitoringwert klicken. Wenn ein Wert vorbereitet ist, wird in der Implementierung der Monitorwert in der rechten oberen Ecke gekennzeichnet.

Außerdem können Sie während des Onlinebetriebs die Bedingungsvariablen von Transitionen in Überwachungslisten monitoren.

Beispiel 5. Beispiel
Prozedur. Zustandsdiagramm überwachen und forcen
  1. Laden und starten Sie die Applikation des Beispielprojekts UML_SC_CoffeeMachine.project.

    Die Applikation wird ausgeführt.

  2. Öffnen Sie den Editor des Programmierobjekts Kaffeemaschine, das als UML-Zustandsdiagramm implementiert wurde.

    Der Zustand, der blau ausgefüllt ist, ist der aktuelle, aktive Zustand, in dem sich das Programmierobjekt befindet.

    _uml_img_coffeemaker_online_power_off.png
  3. Klicken Sie im Zustandsdiagramm auf den Wert der Variablen bPowerUp.

    In der Deklaration in der Spalte Vorbereiteter Wert ist für die Variable ein FALSE vorbereitet. In der Implementierung ist der Monitoringwert mit einer blauen Ecke gekennzeichnet.

    _uml_img_coffeemaker_online_prepared_value.png
  4. Wählen Sie den Befehl Debug → Werte schreiben (Strg + F7).

    Die Transition bPowerUp wird TRUE. Das Zustandsdiagramm schaltet in den Zustand Idle.

    _uml_img_coffeemaker_online.png
  5. Klicken Sie mit der linken Maustaste auf die Variable bPowerUp.

    Ein Kontextmenü erscheint.

  6. Wählen Sie den Befehl Zur Überwachungsliste hinzufügen.

    In der Ansicht Überwachungsliste 1 wird die Variable Coffeemaker.bPowerUp und deren Kontext aufgelistet.



Haltepunkte

Im Zustandsdiagramm während des Onlinebetriebs können Sie Haltepunkte festlegen, um die Ausführung der Applikation an diesen Stellen zu stoppen und um dort die Variablen oder die Überwachungslisten zu überprüfen. Im Zustandsdiagramm während dem Onlinebetrieb werden alle möglichen Positionen für Haltepunkte als grauer Kreis dargestellt: _uml_icon_breakpoint.png. Mit Klick auf den Kreis können Sie eine Position selektieren und danach wieder deselektieren. Mit dem Befehl Debug → Haltepunkt umschalten oder mit F9 können Sie einen selektieren Punkt als Haltepunkt festlegen und auch wieder freigeben.

Außerdem können Sie eine an einem Haltepunkt gestoppte Applikation in Einzelschritten fortführen.

. Darstellung im Zustandsdiagramm:
  • _uml_icon_breakpoint.png: mögliche Position

  • _uml_icon_breakpoint_selected.png: selektierte Position

  • _uml_icon_breakpoint_activated.png: aktivierter Haltepunkt

  • _uml_icon_breakpoint_deactivated.png: deaktivierter Haltepunkt

  • _uml_icon_breakpoint_stopped.png: Ausführungsstopp am Haltepunkt. Zusätzlich ist der zugehörige Status oder die zugehörige Transition gelb gekennzeichnet.

Prozedur. Haltepunkte einfügen und Ausführung dort stoppen
  1. Laden und starten Sie die Applikation des Beispielprojekts UML_SC_CoffeeMachine.project.

    Die Applikation wird ausgeführt.

  2. Öffnen Sie den Editor des Programmierobjekts Kaffeemaschine, das als UML-Zustandsdiagramm implementiert wurde.

    Mögliche Stellen für Haltepunkte sind als hellgrauer Kreis _uml_icon_breakpoint.png gekennzeichnet.

    _uml_img_coffeemaker_online_power_off.png
  3. Klicken Sie auf einen Kreis _uml_icon_breakpoint.png.

    Die Position ist selektiert: _uml_icon_breakpoint_selected.png.

  4. Wählen Sie den Befehl Debug → Haltepunkt umschalten.

    Alternativ: F9

    Die Position ist als Haltepunkt aktiviert: _uml_icon_breakpoint_activated.png. Wenn bei der Ausführung die Stelle erreicht wird, stoppt die Applikation und die Stelle wird gelb.

    _uml_img_coffeemaker_online_halt_on_breakpoint.png

Tipp

Allgemeine Informationen zu Haltepunkten finden Sie unter Verwenden von Haltepunkten

Online-Change

Wenn Sie bei einem bestehenden Zustandsdiagramm Offline-Bearbeitungen wie beispielsweise das Ändern von Transitionen, Bedingungen, Prioritäten, Aktionen oder Namen vornehmen, können Sie das Diagramm beim Einloggen mit einem Online-Change auf die Steuerung laden. Das Diagramm benötigt keine Reinitialisierung.

Wenn Sie allerdings einen Zustand oder eine Region hinzufügen, entfernen oder ersetzen, benötigt das Diagramm eine Reinitialisierung. Das betrifft auch Änderungen an impliziten Zustände wie beispielsweise das Element Auswahl oder wenn Sie bei einem Zustandsdiagramm in dessen Eigenschaftendialog die Bedingung Abbrechbare Implementierung aktivieren. Loggen Sie daraufhin mit einem Download auf die Steuerung ein.