Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
13
Добавлен:
11.10.2020
Размер:
3.68 Mб
Скачать

48 Ein Beispielprogramm

Die Steuerung einer Ampelanlage

3 Ein Beispielprogramm

Gehen wir nun daran, ein kleines Beispielprogramm zu schreiben. Es soll eine Mini-Ampelanlage werden, die zwei Autoampeln an einer Kreuzung steuern soll. Beide Ampeln werden sich in ihren rot/grün-Phasen abwechseln, und um Unfälle zu vermeiden, werden wir zwischen den Phasen auch noch gelb bzw. gelb/rot-Umschaltphasen vorsehen. Letztere werden länger dauern als erstere.

3.1 Die Steuerung einer Ampelanlage

In diesem Beispiel werden Sie sehen, wie sich zeitabhängige Programme mit den Sprachmitteln der IEC61131-3 darstellen lassen, wie man mit Hilfe von WAGO-I/O-PRO 32 die verschiedenen Sprachen der Norm editiert, und wie man sie problemlos verbinden kann, und nicht zuletzt lernen Sie die Simulation von WAGO-I/O-PRO 32 kennen.

3.1.1Bausteine erzeugen

Aller Anfang ist leicht: starten Sie zunächst WAGO-I/O-PRO 32, und wählen Sie 'Datei' 'Neu'.

In der erscheinenden Dialogbox 'Zielsystemeinstellungen' können Sie ein Zielsystem oder die Einstellung 'None' auswählen. Letztere entspricht der Einstellung Simulationsmodus, was für unser Beispiel ausreicht. Bestätigen Sie mit OK und Sie erhalten den Dialog 'Neuer Baustein', bereits vorbelegt mit dem Eintrag PLC_PRG. Behalten Sie diesen Namen bei, und die Art des Bausteins sollte auf jeden Fall ein Programm sein, jedes Projekt benötigt ein Programm diesen Namens. Für unseren Fall wählen wir als Sprache dieses Bausteins den freigraphischen Funktionsplaneditor (CFC).

Erzeugen Sie nun drei weitere Objekte mit dem Befehl 'Projekt' 'Objekt' 'einfügen' über die Menüleiste oder über das Kontextmenü (rechte Maustaste drücken im Object Organizer). Ein Programm in der Sprache Ablaufsprache (AS) namens ABLAUF, einen Funktionsblock in der Sprache Funktionsplan (FUP) namens AMPEL, sowie einen Baustein WARTEN, ebenfalls von dem Typ Funktionsblock, den wir als Anweisungsliste (AWL) programmieren wollen.

3.1.2Was macht AMPEL?

Im Baustein AMPEL werden wir die einzelnen Ampelphasen den Ampellichtern zuordnen, d.h. wir werden dafür sorgen, daß die rote Lampe bei der Phase rot und bei der Phase gelb/rot leuchtet, die gelbe Lampe bei der Phase gelb und gelb/rot, usw.

3.1.3Was macht WARTEN?

In WARTEN werden wir einen einfachen Timer programmieren, der als Eingabe die Dauer der Phase in Millisekunden bekommen wird, und der als Ausgabe TRUE liefert, sobald die Zeit abgelaufen ist.

WAGO-I/O-SYSTEM 759 WAGO-I/O-PRO 32

Ein Beispielprogramm 49

Die Steuerung einer Ampelanlage

3.1.4Was macht ABLAUF?

In ABLAUF wird alles miteinander verbunden, so daß das richtige Ampellicht zur richtigen Zeit und mit der gewünschten Dauer leuchten wird.

3.1.5Was macht PLC_PRG ?

In PLC_PRG wird das eingehende Startsignal mit dem Ampelphasenablauf gekoppelt und die ‚Farbanweisungen' für die einzelnen Lampen beider Ampeln als Ausgänge zur Verfügung gestellt.

3.1.6"AMPEL"-Deklaration

Widmen wir uns zunächst dem Baustein AMPEL. Im Deklarationseditor deklarieren Sie als Eingabevariable (zwischen den Schlüsselwörtern VAR_INPUT und END_VAR) eine Variable namens STATUS vom Typ INT. STATUS wird vier mögliche Zustände haben, nämlich jeweils einen für die Ampelphasen grün, gelb, gelb-rot, und rot.

Ausgaben hat unsere Ampel dementsprechend drei, nämlich ROT, GELB, GRUEN (Umlaute werden für Variablen nicht akzeptiert.Deklarieren Sie diese drei Variablen; dann sieht der Deklarationsteil unseres Funktionsblocks AMPEL folgendermaßen aus:

x Funktionsblock AMPEL, Deklarationsteil

3.1.7"AMPEL"-Rumpf

Nun gilt es, aus der Eingabe STATUS des Bausteins die Werte der Ausgabevariablen zu ermitteln. Gehen Sie dazu in den Rumpf des Bausteins. Klicken Sie in das Feld links neben dem ersten Netzwerk (das graue Feld mit der Nummer 1). Sie haben jetzt das erste Netzwerk selektiert. Wählen Sie nun den Menüpunkt 'Einfügen' 'Baustein'.

Es wird im ersten Netzwerk eine Box mit dem Operator AND und zwei

Eingängen eingefügt:

WAGO-I/O-SYSTEM 759 WAGO-I/O-PRO 32

50 Ein Beispielprogramm

Die Steuerung einer Ampelanlage

Klicken Sie auf den Text AND mit dem Mauszeiger und ändern Sie den Text in EQ. Selektieren Sie die drei Fragezeichen vom oberen der beiden Eingänge und tragen Sie die Variable STATUS ein. Anschließend selektieren Sie die unteren drei Fragezeichen und überschreiben ihn mit einer 1. Sie erhalten folgendes Netzwerk:

Klicken Sie nun an eine Stelle hinter der EQ Box. Es wird nun der Ausgang der EQ-Operation selektiert. Wählen Sie 'Einfügen' 'Zuweisung'. Die drei Fragezeichen ??? ändern Sie in GRUEN. Sie haben nun ein Netzwerk der folgenden Gestalt erstellt:

STATUS wird mit 1 verglichen, das Ergebnis wird GRUEN zugewiesen. Dieses Netzwerk schaltet also auf GRUEN, wenn der vorgegebene Status wert 1 ist.

Für die anderen Ampelfarben benötigen wir zwei weitere Netzwerke. Sie erzeugen diese durch den Befehl 'Einfügen' 'Netzwerk (danach)'. . Der fertige Baustein sieht nun folgendermaßen aus:

x Funktionsblock AMPEL, Anweisungsteil

Um vor einem Operator einen weiteren Operator einzufügen, müssen Sie die Stelle selektieren, wo der Eingang, an den Sie den Operator anhängen wollen, in die Box mündet.

Anschließend führen Sie ein 'Einfügen' 'Baustein' aus. Ansonsten können Sie beim Erstellen dieser Netzwerke ebenso vorgehen wie beim ersten Netzwerk.

Nun ist unser erster Baustein bereits fertig. AMPEL steuert uns, je nach

Eingabe des Wertes STATUS, die jeweils gewünschte Ampelfarbe.

WAGO-I/O-SYSTEM 759 WAGO-I/O-PRO 32

Ein Beispielprogramm 51

Die Steuerung einer Ampelanlage

3.1.8Anbinden der standard.lib

Für den Timer im Baustein WARTEN benötigen wir einen Baustein aus der Standardbibliothek. Öffnen Sie den Bibliotheksverwalter mit 'Fenster' 'Bibliotheksverwaltung'. Sollte die Standardbibliothek noch nicht eingebunden sein, wählen Sie 'Einfügen' 'Weitere Bibliothek'. Der Dialog zum Öffnen von Dateien erscheint. Aus der Liste der Bibliotheken wählen Sie ‘standard.lib‘.

3.1.9"WARTEN" Deklaration

Gehen wir nun zum Baustein WARTEN. Dieser soll ein Timer werden, mit dem wir die Länge jeder Ampelphase angeben können. Unser Baustein erhält als Eingabevariable eine Variable ZEIT vom Typ TIME, und als Ausgabe liefert er einen boolschen Wert, den wir OK nennen wollen, und der TRUE sein soll, wenn die gewünschte Zeit abgelaufen ist. Diesen Wert besetzen wir mit FALSE vor, indem wir an das Ende der Deklaration (aber vor dem Strichpunkt)" := FALSE " einfügen.

WAGO-I/O-SYSTEM 759 WAGO-I/O-PRO 32

Соседние файлы в папке 759-332