Skip to main content

Arbeiten im Zustandsdiagrammeditor

Im Zustandsdiagrammeditor implementieren Sie grafisch ein Zustandsdiagramm.

Zustandsdiagramm implementieren

Sie können Zustände einfügen, die Methoden oder Aktionen aufrufen. Wenn Sie Transitionen einfügen, können Sie Bedingungen für einen Zustandsübergang definieren. Beim Einfügen ist die Bedingung standardmäßig TRUE, dargestellt als _uml_icon_add_transition_condition.png. Danach können Sie diesen Wert ändern, so dass er eine Aktion oder Methode aufruft.

Sie können Kontrollstrukturen implementieren, indem Sie Pseudozustände einfügen. Um die Übersichtlichkeit zu verbessern, können Sie Zustände in zusammengesetzten Zuständen gruppieren, für die Sie mit Abschlusstransitionen ein gemeinsames Verhalten implementieren. Mit Ausnahmetransitionen können Sie das Verhalten im Fehlerfall programmieren.

CODESYS ist gestartet.

  1. Wählen Sie den Befehl Datei → Neues Projekt.

  2. Bestimmen Sie einen Namen und einen Ort und wählen Sie als Vorlage Standardprojekt.

    Der Dialog Standardprojekt öffnet sich.

  3. Wählen Sie in PLC_PRG und als Implementierungssprache UML-Zustandsdiagramm.

  4. Klicken Sie im Gerätebaum auf das Programm PLC_PRG.

    Der Editor besteht aus einem Fenster für die Deklaration und einem Fenster für die grafische Implementierung. In der Ansicht Werkzeuge sind die Elemente aufgelistet, aus denen Sie ein Zustandsdiagramm erstellen können.

    _uml_img_sc_simple_new_project.png
  5. Ziehen Sie einen Startzustand in die Implementierung.

    _uml_icon_start_state.png
  6. Klicken Sie auf den Startzustand.

    Das Symbol _uml_icon_transition_completion_outgoing.png für Abschlusstransitionen erscheint.

  7. Klicken Sie auf die Transition _uml_icon_transition_completion_outgoing.png.

    Ein Mauszeiger erscheint, dessen Linie eine Transition und dessen Zeiger das Element andeuten.

  8. Klicken Sie unter den Startzustand.

    Ein Zustand ist eingefügt.

  9. Doppelklicken Sie auf den Standardnamen.

    Ein Zeileneditor öffnet sich.

  10. Geben Sie als Namen PowerOff ein.

    _uml_img_sc_simple_first_result.png
  11. Klicken Sie auf den Zustand, dann auf die Transition und anschließend auf eine Stelle unterhalb des Zustands.

    Eine Transition mit weiterem Zustand wurde eingefügt.

  12. Geben Sie als Namen Idle ein.

  13. Fügen Sie eine Transition zu einem weiteren Zustand mit Namen DoIt ein.

  14. Fokussieren Sie mit dem Mauszeiger den Zustand DoIt.

    Im Zustand erscheinen Symbole, um Aktionen oder Methoden hinzuzufügen.

    _uml_img_simple_plc_chart_doit_focused.png
  15. Klicken Sie auf das Symbol _uml_icon_sc_action_do.png.

    Der Zustand ist um eine DO-Aktion erweitert.

  16. Fokussieren Sie das DO-Symbol.

    Rechts daneben erscheint das Symbol _uml_icon_sc_action_add.png.

  17. Klicken Sie auf das Symbol.

    Der Dialog Neues Aktionsobjekt öffnet sich. Dort können Sie die initialen Einstellungen für ein Programmierobjekt vornehmen, das dem Programm PLC_PRG untergeordnet ist. Das Objekt kann entweder eine Methode oder eine Aktion sein.

  18. Wählen Sie eine Aktion und beenden Sie den Dialog mit Hinzufügen.

    Im Gerätebaum unterhalb von PLC_PRG erscheint die neue und leere Aktion PLC_PRG_DoIt_DO. Im Zustand DoIt wird die DO-Aktion namentlich aufgelistet. Die Aktion ist im Editor geöffnet.

  19. Deklarieren Sie Steuervariablen und lokale Variablen im Deklarationsteil von PLC_PRG.

    PROGRAM PLC_PRG
    VAR
        iCounter: INT;
        bReady: BOOL;
        bDoIt: BOOL;
        bPowerOn : BOOL;
        bPowerOff : BOOL;
    END_VAR
  20. Implementieren Sie in der Aktion PLC_PRG_DoIt_DO Code für Ablauf und Steuerung.

    iCounter := iCounter + 1;
    IF iCounter > 100 THEN
        iCounter := 0;
        bReady := TRUE;
        RETURN;
    END_IF
  21. Fokussieren Sie den Zustand DoIt und wählen Sie das Symbol _uml_icon_sc_action_exit.png. Anschließend klicken Sie in der Section auf New und bestätigen Sie den Dialog.

    Beim Status Doit wurde die EXIT-Aktion PLC_PRG_DoIt_EXIT hinzugefügt.

  22. Implementieren Sie dort Code.

    bReady := FALSE;
    bDoIt := FALSE;
  23. Fügen Sie eine Transition vom Zustand DoIt zum Zustand Idle hinzu.

  24. Klicken Sie bei der Transition auf das Symbol _uml_icon_add_transition_condition.png.

    Der Zeileneditor öffnet sich. Wenn Sie die Funktionalität Intelligentes Kodieren aktiviert haben, erscheint eine Auswahlliste mit allen deklarierten Variablen.

  25. Wählen Sie die boolesche Variable bReady aus.

    Die Variable dient als Steuervariable, um in den Zustand Idle zu schalten.

  26. Fügen Sie eine Transition vom Zustand Idle zum Zustand PowerOff hinzu.

  27. Klicken Sie bei der Transition auf das Symbol _uml_icon_add_transition_condition.png.

    Der Zeileneditor öffnet sich. Wenn Sie die Funktionalität Intelligentes Kodieren aktiviert haben, erscheint eine Auswahlliste mit allen deklarierten Variablen.

  28. Geben Sie als Steuervariable bPowerOff an.

  29. Selektieren Sie im Gerätebaum das Programm PLC_PRG und fügen Sie ein Objekt Aktion mit dem Namen PowerDown darunter hinzu.

  30. Implementieren Sie die Aktion.

    bPowerOn := FALSE;
  31. Aktivieren Sie PLC_PRG im Editor.

  32. Klicken Sie bei der Transition von Idle zum Zustand PowerOff auf das Symbol _uml_icon_sc_transition_action.png, um eine Aktion aufzurufen.

    Eine Auswahlliste mit Aktionen erscheint.

  33. Wählen Sie die Aktion PowerDown.

    _uml_img_simple_plc_chart_powerdown.png
  34. Implementieren Sie die Bedingung vom Zustand PowerOff zum Zustand Idle.

    bPowerOn

  35. Selektieren Sie im Gerätebaum das Programm PLC_PRG und fügen Sie ein Objekt Aktion mit dem Namen PowerUp darunter hinzu.

  36. Implementieren Sie den Code der Aktion.

    bPowerOff := FALSE;
  37. Aktivieren Sie PLC_PRG im Editor.

  38. Klicken Sie bei der Transition von Idle zum Zustand PowerOff auf das Symbol _uml_icon_sc_transition_action.png.

    Eine Auswahlliste mit Aktionen erscheint.

  39. Wählen Sie die Aktion PowerUp und setzen Sie die Variable zwischen Idle und DoIt auf bDoIt.

    Das Zustandsdiagramm ist implementiert. Alle Transitionen haben eine Bedingung. Die Aktionen, die aufgerufen werden, sind implementiert.

    _uml_img_sc_simple.png
  40. Übersetzen Sie die Applikation mit dem Befehl Erstellen → Code erzeugen.

    Die Kompilierung wurde fehlerfrei abgeschlossen.

Elementeigenschaften bearbeiten

  1. Selektieren Sie im Zustandsdiagrammeditor ein Element.

    In der Ansicht Eigenschaften sind alle Eigenschaften des Elements aufgelistet.

  2. Editieren Sie die Eigenschaften in der Spalte Wert.

Beispiel 2. Beispiel

Sie können den Zustand DoIt in der Ansicht Eigenschaften → Eigenschaft bearbeiten.

  1. Selektieren Sie im Zustandsdiagrammeditor den Zustand Doit.

    _uml_img_simple_plc_chart_doit_selected.png

    In der Ansicht Eigenschaften ist die Option Zyklusintern (1) deaktiviert.

  2. Aktivieren Sie die Option.

    Der Zustand ist nicht mehr buszyklusgetaktet sondern zyklusintern.

    _uml_img_sc_simple_doit_incycle.png


Mehrfachauswahl

Wenn im Fenster WerkzeugeAuswahl aktiviert ist (Standardeinstellung), können Sie im Editor mit der Maus ein Rechteck über mehrere Elemente ziehen. Alle erfassten Elemente sind dann selektiert. Sie können die Elemente aber auch bei gedrückter Strg-Taste nacheinander anklicken.

Bild erstellen

Sie können von Ihrem Zustandsdiagrammobjekt eine Grafik im PNG-Format erstellen und weiterverwenden.

  1. Selektieren Sie im Gerätebaum ein Zustandsdiagrammobjekt.

  2. Öffnen Sie dessen Kontextmenü und wählen Sie dort den Befehl Bild erstellen.

    Der Dialog Bild erstellen öffnet sich.

  3. Aktivieren Sie die gewünschten Optionen.

  4. Bestätigen Sie den Dialog mit OK.

    Die Bilddatei wird gespeichert.

  5. Wechsel Sie zu ihrem Desktop.

  6. Öffnen Sie die Verknüpfung.

    Ein voreingestellter Editor öffnet sich und zeigt das Bild an.

Beispiel 3. Beispiel
_uml_img_sc_simple_bmp.png