Praktikum Automatisierungstechnik - Versuch 5 Stern-Dreieck-Anlauf


Hilfe zur Ablaufsprache

Diese Hilfe dient dem Versuchsteilnehmer als Nachschlagewerk bei Fragen zur Ablaufsprache oder zum Umgang mit PC-Worx bei der Programmierung in Ablaufsprache. In dieser Hilfe wird nicht umfassend auf alle Aspekte der Programmiersprache eingegangen und es werden nur die Punkte angesprochen, die für die Ausführung des Versuches erforderlich sind. Teile der hier zu findenen Ausführungen sind Auszüge aus der Programmhilfe von PC-Worx und es wird empfohlen bei weiterhin bestehenen Fragen diese oder das Vorlesungsskript zu Rate zu ziehen.

1      Ablaufsprache

In der Ablaufsprache beschreibt der Programmcode mit Schritten, Aktionen, Transitionen und Verbindungslinien einen festen Ablauf. Ein solcher Ablauf beginnt mit dem Startschritt, welcher mit einem doppelten Rahmen gekennzeichnet ist. Dem Startschritt und allen anderen Schritten kann ein oder mehrere Aktionsblöcke zugewiesen werden, die bei aktivem Schritt ausgeführt werden. Ein Aktionsblock besteht dabei aus einer Aktion und einem Qualifier, der die Art und Weise vorgibt, in der der Schritt die angegebene Aktion beeinflusst. Ein Schritt ist solange aktiv bis die Bedingung, die von der nachfolgenden Transition beschrieben wird, erfüllt ist. Dann wird nämlich der Schritt nach der Transition aktiv und die dem Schritt zugewiesenen Aktionsblöcke werden ausgeführt.

Die nachfolgende Abbildung zeigt einen solchen in Ablaufsprache geschriebenen Programmcode. Der beschriebene Ablauf beginnt im Schritt „S001“. Der dem Schritt „S001“ zugeordnete Aktionsblock gibt durch den Qualifier „N“ (nicht gespeichert) an, dass die Aktion „A001“ ausgeführt wird, solange der Schritt aktiv ist. Ist die Transitionsbedingung von „T001“ erfüllt, so wird in den Schritt „S002“ gewechselt. Während der Schritt aktiv ist, wird die Aktion „A002“ ausgeführt (siehe Qualifier „N“). Nachdem die Transition „T002“ aktiv wird, wird wieder in den Startschritt gewechselt, womit der Ablauf wieder von vorne beginnt.

2      Schritte in AS

Schritte sind grundlegende Elemente eines AS-Netzwerks. Einem Schritt können ein oder mehrere Aktionsblöcke zugewiesen werden.

Der Zustand eines Schritts ist entweder aktiv oder inaktiv. Aktiv bedeutet, dass der Schritt in diesem Moment von der SPS ausgeführt wird. Die dem Schritt zugewiesene Aktion wird ausgeführt.

Der Zustand des Schritts wird durch die Variable 'schrittname.x' dargestellt. 'schrittname.x' ist TRUE, wenn der Schritt aktiv ist. Diese Variable wird auch als Schrittmerker bezeichnet. Dabei wird die Variable 'schrittname.x' intern vom System erzeugt und muss nicht in der Variablen-Deklaration der POE deklariert werden.

 

2.1     Einfügen eines neuen AS-Netzwerks

  1. Klicken Sie in das Arbeitsblatt, um eine Einfügemarke zu setzen.
  2. Klicken Sie in der Symbolleiste auf das Symbol „Transition-Schritt-Kette einfügen“
     
    Es wird ein Basis-AS-Netzwerk mit einem Anfangsschritt (S001), dem dazugehörigen Aktionsblock (A001) und einer Transition (T001) in das Arbeitsblatt eingefügt (wie im folgenden Bild gezeigt).

2.2     Einfügen neuer Schritte und Transitionen in ein AS-           Netzwerk

Um die gültige AS-Struktur sicherzustellen, werden Schritte und Transitionen immer paarweise eingefügt.

  1. Markieren Sie einen Schritt oder alternativ eine Transition, nach der das neue AS-Schritt-Transitions-Paar eingefügt werden soll.
  2. Klicken Sie in der Symbolleiste auf das Symbol „Transition-Schritt-Kette einfügen“.

    Haben Sie einen Schritt markiert, wird ein neues Transition-Schritt-Paar zwischen dem markierten Schritt und der nächsten Transition eingefügt.
    Haben Sie eine Transition markiert, wird der neue Schritt und die neue Transition nach der markierten Transition im Netzwerk eingefügt.

 

3      Aktionsblöcke in AS

Aktionsblöcke sind grundlegende Elemente in AS-Netzwerken. Ein Aktionsblock besteht aus einer Aktion (siehe (2) im folgenden Bild) und einem Qualifier (1) (Bestimmungszeichen). Ein Aktionsblock ist immer einem Schritt zugewiesen.

3.1     Aktion

Eine Aktion kann eine einzelne boolesche Variable oder eine Lupe sein. Ist eine Aktion eine boolesche Variable, wird ihr Zustand gemäß dem Qualifier verändert. Ist die Aktion eine Lupe, so wird der in der Lupe geschriebene Programmcode gemäß dem Qualifier ausgeführt.
Aktionsblöcke, die einen eigenen Code besitzen, d. h. als Lupe definiert sind, werden im Editor grün dargestellt. Aktionen, die als Variablen definiert sind, erscheinen rot (siehe Bild oben).

3.2     Qualifier

Qualifier für Aktionen geben an, welchen Einfluss der zugehörige Schritt auf die zugewiesene Aktion hat. Die folgende Tabelle enthält die Liste der möglichen Aktions-Qualifier:

Aktions-Qualifier

Beschreibung

Funktion

N

nicht gespeichert

Der Code der Aktion wird ausgeführt oder die boolesche Variable wird gesetzt, solange der Schritt aktiv ist.

R

vorrangiges Rücksetzen

Der Code der Aktion wird nicht länger ausgeführt oder die boolesche Variable wird zurückgesetzt.

S

setzen (gespeichert)

Der Code der Aktion wird ausgeführt oder die boolesche Variable wird gesetzt. Dieser Zustand wird gespeichert, sobald der Schritt aktiv wird. Er kann nur explizit rückgesetzt werden, indem dieselbe Aktion mit dem Qualifier „R“ einem anderen Schritt zugewiesen wird.

L

zeitbegrenzt

Der Code der Aktion wird ausgeführt oder die boolesche Variable wird gesetzt, solange der Schritt aktiv ist, jedoch maximal für das festgelegte Zeitintervall.

D

zeitverzögert

Der Code der Aktion wird ausgeführt oder die boolesche Variable wird gesetzt, nachdem die festgelegte Zeitverzögerung abgelaufen ist. Die Aktion bleibt aktiv, solange der Schritt aktiv ist. Wenn der Schritt für einen kürzeren Zeitraum aktiv ist als die festgelegte Zeitverzögerung, wird die Aktion nicht aktiv.

P

Impuls (Flanke)

Sobald der Schritt aktiv ist, wird für einen Arbeitszyklus der Code der Aktion ausgeführt oder die boolesche Variable gesetzt.

SD

gespeichert und zeitverzögert

Der Code der Aktion wird ausgeführt oder die boolesche Variable gespeichert und gesetzt, wenn die festgelegte Zeitverzögerung nach Aktivierung des Schritts abgelaufen ist, auch wenn der Schritt inaktiv wird. Die Aktion bleibt aktiv, bis sie rückgesetzt wird. Wenn der Schritt für einen kürzeren Zeitraum aktiv ist als die festgelegte Zeitverzögerung, wird die Aktion trotzdem aktiv.

DS

verzögert und gespeichert

Der Code der Aktion wird ausgeführt oder die boolesche Variable wird gesetzt, wenn die festgelegte Zeitverzögerung nach Aktivierung des Schrittes abgelaufen ist. Die Aktion bleibt aktiv, bis sie rückgesetzt wird. Wenn der Schritt für einen kürzeren Zeitraum aktiv ist als die festgelegte Zeitverzögerung, wird die Aktion nicht aktiv.

SL

gespeichert und zeitbegrenzt

Der Code der Aktion wird für ein festgelegtes Zeitintervall ausgeführt oder die boolesche Variable gesetzt und gespeichert, sobald der Schritt aktiv ist. Wenn der Schritt kürzere Zeit aktiv ist, als das Zeitintervall andauert, ist die Aktion trotzdem für die ganze Dauer des Intervalls aktiv. Wenn die Aktion während des Zeitintervalls rückgesetzt wird, wird die Aktion inaktiv, sobald sie rückgesetzt wird.

 

 

3.3     Einfügen von Aktionsblöcken

Einem Schritt können ein oder mehrere Aktionsblöcke (als Lupe oder Variable spezifiziert) zugewiesen werden. Mehrere Aktionsblöcke, die zu einem Schritt gehören, werden als aneinandergereihte Aktionsblöcke dargestellt.

  1. Markieren Sie einen Schritt, an dem Sie einen neuen Aktionsblock einfügen möchten.
  2. Klicken Sie in der Symbolleiste auf das Symbol „Aktion einfügen“.

    Es erscheint der Dialog „Eigenschaften: Aktion“.
  3. Geben Sie im Dialog 'Eigenschaften: Aktion' einen Namen für den neuen Aktionsblock ein und wählen Sie im Bereich 'Aktion' den Aktionstyp (Lupe oder Variable) und den Qualifier. Wenn Sie eine Lupe einfügen, erzeugen Sie anschließend das Arbeitsblatt für die Lupe und entwickeln den Code. Wenn Sie den Aktionstyp 'Variable' wählen, definieren Sie anschließend die Eigenschaften der Variable wie in der zugehörigen Dialogbeschreibung gezeigt.

 

3.4     Bearbeiten von Aktionstypen

  1. Um die Eigenschaften einer Aktions zu ändern, gehen Sie wie folgt vor:
  2. Rechtsklicken Sie auf den Aktionsblock und wählen Sie den Kontextmenüpunkt 'Objekteigenschaften...', um den Dialog 'Eigenschaften: Aktion' zu öffnen.
  3. Wählen Sie im Bereich 'Aktion' den Aktionstyp (siehe untenstehende Beschreibung).
  4. Im Fall des Aktionstyps 'Lupe' müssen Sie das zugehörige Arbeitsblatt für die Lupe einfügen.
  5. Wählen Sie den gewünschten Aktions-Qualifier.

3.5     Erzeugen einer Aktionslupe

  1. Doppelklicken Sie auf die Aktion, für die Sie eine Aktionslupe erzeugen möchten. Es erscheint der Dialog 'Einfügen'.
  2. Wählen Sie die Programmiersprache für die Lupe aus.
  3. Bestätigen Sie den Dialog.
  4. Das Aktionsarbeitsblatt (Lupe) wird im Projektbaum eingefügt und dann geöffnet.
  5. Entwickeln Sie den Code der Aktionslupe.
  6.  

4      Transitionen in AS

Transitionen sind grundlegende Elemente eines AS-Netzwerks. Eine Transition charakterisiert die Bedingung, wann die SPS-Abarbeitung von einem Schritt zum nächsten übergeht.

Zu einer Transition gehört immer eine Transitionsbedingung. Diese kann eine boolesche Variable oder ein Code in AWL, ST, KOP oder FBS sein. Folglich können zwei Arten von Transitionen in AS verwendet werden: Lupen und direkte Verbindungen.

Lupen sind Transitionen, die einen eigenen Code als Transitionsbedingung besitzen. Direkte Verbindungen sind Transitionen mit Variablen oder FBS-Objekten, sie besitzen keinen eigenen Code. Transitionen werden graphisch als horizontale Linie dargestellt.

4.1     Bearbeiten des Transitionstyps

Um die Eigenschaften einer Transition zu ändern, gehen Sie wie folgt vor:

  1. Rechtsklicken Sie auf die betreffende Transition und wählen Sie aus dem Kontextmenü 'Objekteigenschaften...', um den Dialog 'Transition' zu öffnen.
  2. Wählen Sie den Transitionstyp (siehe untenstehende Beschreibungen).
  3. Im Fall einer Lupe müssen Sie das zugehörige Arbeitsblatt für die Lupe einfügen.

4.1.1      Verfügbare Transitionstypen

Transitionen können wie folgt realisiert sein:

  • Als direkte Verbindung, d.h. mit angeschlossenen Variablen oder KOP-/FBS-Objekten aber ohne eigenes Code-Arbeitsblatt, in dem die Transitionsbedingung programmiert ist. Direkte Verbindungen haben keinen Transitionsnamen. Das folgende Beispiel zeigt eine direkte Verbindung.

  • oder als Lupe, d.h. mit eigenem Code in einer der verfügbaren Programmiersprachen.

    Die direkte Transition und die Lupe „T001“ haben dieselbe Funktion. Bei beiden wird die Bedingung erfüllt und vom Schritt „S001“ in den Schritt „S002“ gewechselt, wenn der Schritt „S001“ zwei Sekunden aktiv gewesen ist.

4.2     Erzeugen einer Transitionslupe

  1. Doppelklicken Sie auf die Transition, für die Sie eine Lupe erzeugen möchten. Es erscheint der Dialog 'Einfügen'.
  2. Wählen Sie die Programmiersprache für die Lupe aus.
  3. Bestätigen Sie den Dialog.
  4. Entwickeln Sie den Code der Lupe.

5      Alternativverzweigungen

Alternative Zweige werden wahlweise ausgeführt. Das bedeutet, dass bei einem Durchlauf der Schrittkette nur ein Zweig der Verzweigung ausgeführt wird. Alternative Zweige werden im graphischen Editor durch eine fette, horizontale Linie dargestellt.

Im folgenden Beispiel werden die Transitionen „T001“ und „T003“ ausgewertet, solange Schritt „S003“ aktiv ist. Wird „T001“ als erstes „TRUE“, wird der Schritt „S002“ aktiv. Wenn „T002“ als erstes aktiv wird, wird in den Schritt „S003“ gewechselt. Die Transitionen „T002“ und „T004“ führen jeweils aus den ihr vorangegangen Schritten in den Schritt „S004“.

5.1        Einfügen einer Alternativverzweigung

  • Möglichkeit 1:
    1. Markieren Sie im Arbeitsblatt den Schritt, nach dem die Alternativverzweigung eingefügt werden sollen (siehe Bild (1) im folgenden Beispiel).
    2. Klicken Sie in der Symbolleiste auf das Symbol 'Simultan-/Alternativverzweigung' einfügen.
    3. Geben Sie im Dialog 'Verzweigung' in das Feld 'Anzahl Verzweigungen' die Anzahl der Zweige an, die eingefügt werden sollen. Bestätigen Sie den Dialog.
  • Möglichkeit 2:
    1. Markieren Sie eine oder mehrere Transitionen, die einen Zweig der neuen Alternativverzweigung bilden sollen (siehe Bild (1) im folgenden Beispiel). Mehrfachauswahl: Halten Sie die <Strg>-Taste gedrückt während Sie auf die gewünschten Transitionen klicken.
    2. Klicken Sie in der Symbolleiste auf das Symbol 'AS-Zweig einfügen'.
    3. Die neue Simultanverzweigung wird parallel zu den zuvor markierten Transitionen eingefügt (siehe Bild (2) im folgenden Beispiel).

 

6      Demo-Programm

In diesem Demo-Programm ist ein beispielhafter Ampelablauf programmiert, der jedoch nicht der im Versuch geforderten Ampelfolge entspricht. Dieses Beispiel soll zeigen, wie Schritte zeitlich begrenzt werden und wie die Ausgänge der Ampeln in den Aktionen korrekt adressiert werden.

Die Schrittkette in dem Programm besteht aus vier Schritten. Alle Schritte sind jeweils für eine Sekunde aktiv, bevor in den nächsten Schritt gewechselt wird. Die zeitliche Begrenzung der Schritte wird erreicht, indem jeweils die nachfolgende Transition mit dem Ausgang eines einschaltverzögerten Timers verbunden ist, welcher von dem jeweiligen Schritt selber aktiviert wird.

Im ersten Schritt wird der Ausgang "Autoampel_Rot" auf "TRUE" speichernd gesetzt (siehe Qualifier "S"). Aufgrund der speichernden Aktion, leuchte die rote Leuchte der Autoampel deshalb solange, bis die Aktion im letzten Schritt zurückgesetzt wird (siehe Qualifier "R"). Im Schritt "S002" wird die gruene Leuchte der Autoampel nichtspeichernd gesetzt und im Schritt "S003" wird die gelbe Leuchte der Autoampel nichtspeichernd gesetzt (siehe Qualifier "N"). Dies bedeutet, dass die Leuchten nur für die Dauer leuchten, in der der jeweilige Schritt aktiv ist. Alle Aktionen sind in dem Beispiel als boolesche Variablen ausgeführt, die mit den entsprechenden Ausgängen der SPS verknüpft sind (siehe die Zuordnungstabelle der Ein- und Ausgänge in der Praktikumsanleitung).