- •Wichtige Erläuterungen
- •Rechtliche Grundlagen
- •Urheberschutz
- •Personalqualifikation
- •Bestimmungsgemäßer Gebrauch
- •Symbole
- •Schriftkonventionen
- •Darstellungen der Zahlensysteme
- •Gültigkeitsbereich
- •Abkürzungen
- •Lieferumfang
- •Systemvoraussetzungen
- •Installation
- •Deinstallation
- •Programmstart
- •Wichtige Hinweise
- •WAGO-I/O-PRO 32 V2.2 Übersicht
- •Was ist WAGO-I/O-PRO 32
- •Wie ist ein Projekt strukturiert?
- •Wie erstelle ich mein Projekt?
- •Wie kann ich mein Projekt testen?
- •Debugging
- •Fazit
- •Bestandteile eines Projekts
- •Projekt
- •Baustein
- •Funktion
- •Funktionsblock
- •Instanzen von Funktionsblöcken
- •Aufruf eines Funktionsblocks
- •Programm
- •Aktion
- •Resourcen
- •Bibliotheken
- •Datentypen
- •Visualisierung
- •Die Sprachen
- •Anweisungsliste (AWL)
- •Modifikatoren und Operatoren in AWL
- •Strukturierter Text (ST)
- •Ausdrücke
- •Auswertung von Ausdrücken
- •Zuweisungsoperator
- •Aufruf von Funktionsblöcken in ST
- •RETURN-Anweisung
- •IF-Anweisung
- •CASE-Anweisung
- •FOR-Schleife
- •WHILE-Schleife
- •REPEAT-Schleife
- •EXIT-Anweisung
- •Ablaufsprache (AS)
- •Schritt
- •Aktion
- •Transition / Transitionsbedingung
- •Aktiver Schritt
- •IEC-Schritt
- •Qualifier
- •Implizite Variablen in AS
- •AS-Flags
- •Alternativzweig
- •Parallelzweig
- •Sprung
- •Funktionsplan (FUP)
- •Der freigraphische Funktionsplaneditor (CFC)
- •Kontaktplan (KOP)
- •Kontakt
- •Spule
- •Funktionsblöcke im Kontaktplan
- •Set/Reset-Spulen
- •Debugging, Onlinefunktionalitäten
- •Traceaufzeichnung
- •Debugging
- •Breakpoint
- •Einzelschritt
- •Einzelzyklus
- •Werte Online verändern
- •Monitoring
- •Simulation
- •Logbuch
- •Die Norm
- •Ein Beispielprogramm
- •Die Steuerung einer Ampelanlage
- •Bausteine erzeugen
- •Was macht AMPEL?
- •Was macht WARTEN?
- •Was macht ABLAUF?
- •Was macht PLC_PRG ?
- •"AMPEL"-Deklaration
- •"AMPEL"-Rumpf
- •Anbinden der standard.lib
- •"WARTEN" Deklaration
- •"WARTEN"-Rumpf
- •"ABLAUF" erste Ausbaustufe
- •Aktionen und Transitionsbedingungen
- •ABLAUF zweite Ausbaustufe
- •Das Ergebnis
- •Ampelsimulation
- •Die Visualisierung einer Ampelanlage
- •Erstellen einer neuen Visualisierung
- •Element in Visualisierung einfügen
- •Die weiteren Ampellichter
- •Das Ampelgehäuse
- •Die zweite Ampel
- •Schrift in der Visualisierung
- •Die Komponenten von WAGO-I/O-PRO 32
- •Hauptfenster
- •Menüleiste
- •Funktionsleiste
- •Object Organizer
- •Bildschirmteiler
- •Arbeitsbereich
- •Meldungsfenster
- •Statusleiste
- •Kontextmenü
- •Optionen
- •'Projekt''Optionen'
- •Optionen für Laden & Speichern
- •Optionen für Benutzerinformation
- •Optionen für Editor
- •Optionen für Arbeitsbereich
- •Optionen für Farben
- •Optionen für Verzeichnisse
- •Optionen für Logbuch'
- •Übersetzungsoptionen
- •Kennworte
- •Optionen für 'Sourcedownload'
- •Optionen für 'Symbolkonfiguration'
- •Optionen für 'Makros'
- •Projekte verwalten
- •'Datei' 'Neu'
- •'Datei' 'Öffnen'
- •'Datei' 'Schließen'
- •'Datei' 'Speichern'
- •'Datei' 'Speichern unter'
- •'Datei' 'Archiv speichern/versenden...'
- •'Datei' 'Drucken'
- •'Datei' 'Einstellungen Dokumentation'
- •'Datei' 'Beenden'
- •'Projekt' 'Übersetzen'
- •'Projekt' 'Alles übersetzen'
- •'Projekt' 'Alles bereinigen'
- •'Projekt' 'In andere Sprache übersetzen'
- •Übersetzungsdatei erstellen
- •Bearbeiten der Übersetzungsdatei
- •'Projekt' 'Dokumentieren'
- •'Projekt' 'Exportieren'
- •'Projekt' 'Importieren'
- •'Projekt' 'Kopieren'
- •'Projekt' 'Vergleichen'
- •Durchführung Projektvergleich
- •Darstellung des Vergleichsergebnisses
- •'Extras' 'Nächster Unterschied'
- •'Extras' 'Vorheriger Unterschied'
- •'Extras' 'Änderung übernehmen'
- •'Extras' 'Einzelne Änderung übernehmen'
- •'Extras' 'Eigenschaften übernehmen'
- •'Extras' 'Zugriffsrechte übernehmen'
- •'Projekt' 'Projektinformation'
- •'Projekt' 'Global Suchen'
- •'Projekt' 'Global Ersetzen'
- •'Projekt' 'Überprüfen'
- •Unbenutzte Variablen
- •Überlappende Speicherbereiche
- •Konkurrierender Zugriff
- •Mehrfaches Speichern auf Output
- •Arbeitsgruppen
- •'Projekt' 'Passwörter für Arbeitsgruppen'
- •Objekte verwalten
- •Objekt
- •Ordner
- •'Neuer Ordner'
- •'Knoten Expandieren' 'Knoten Kollabieren'
- •'Projekt' 'Objekt löschen'
- •'Projekt' 'Objekt einfügen'
- •'Projekt' 'Objekt umbenennen'
- •'Projekt' 'Objekt konvertieren'
- •'Projekt' 'Objekt kopieren'
- •'Projekt' 'Objekt bearbeiten'
- •'Projekt' 'Objekt Zugriffsrechte'
- •'Projekt' 'Objekt Eigenschaften'
- •'Projekt' 'Aktion hinzufügen'
- •'Projekt' 'Instanz öffnen'
- •'Projekt' 'Aufrufbaum ausgeben'
- •'Projekt' 'Querverweisliste ausgeben'
- •Allgemeine Editierfunktionen
- •Bearbeiten' 'Rückgängig'
- •'Bearbeiten' 'Wiederherstellen'
- •'Bearbeiten' 'Ausschneiden'
- •'Bearbeiten' 'Kopieren'
- •'Bearbeiten' 'Einfügen'
- •'Bearbeiten' 'Löschen'
- •'Bearbeiten' 'Suchen'
- •'Bearbeiten' 'Weitersuchen'
- •'Bearbeiten' 'Ersetzen'
- •'Bearbeiten' 'Eingabehilfe'
- •Strukturierte Darstellung
- •'Bearbeiten' 'Variablen Deklaration'
- •'Bearbeiten' 'Nächster Fehler'
- •'Bearbeiten' 'Vorheriger Fehler'
- •'Bearbeiten' 'Makros'
- •Allgemeine Online Funktionen
- •'Online' 'Einloggen'
- •Wenn sich das System meldet
- •'Online' 'Ausloggen'
- •'Online' 'Laden'
- •'Online' 'Start'
- •'Online' 'Stop'
- •'Online' 'Reset'
- •'Online' 'Breakpoint an/aus'
- •'Online' 'Einzelschritt über'
- •'Online' 'Einzelschritt in'
- •'Online' 'Einzelzyklus'
- •'Online' 'Werte schreiben'
- •'Online' 'Werte forcen'
- •'Online' 'Forcen aufheben'
- •'Online' 'Aufrufhierarchie'
- •'Online' 'Ablaufkontrolle'
- •'Online' 'Simulation'
- •'Online' 'Kommunikationsparameter'
- •Darstellung im Dialog 'Kommunikationsparameter'
- •Tips zum Editieren der Parameter im Kommunkationsparameter-Dialog:
- •Online' 'Quellcode laden'
- •'Online' 'Bootprojekt erzeugen'
- •'Online' 'Datei in Steuerung schreiben'
- •'Online' 'Datei aus Steuerung laden'
- •Logbuch
- •'Fenster' 'Logbuch'
- •Menü Logbuch
- •Fenster anordnen
- •'Fenster' 'Nebeneinander'
- •'Fenster' 'Untereinander'
- •'Fenster' 'Überlappend'
- •'Fenster' 'Symbole anordnen'
- •'Fenster' 'Alle Schließen'
- •'Fenster' 'Meldungen'
- •'Fenster' 'Bibliotheksverwaltung'
- •'Fenster' 'Logbuch'
- •Die rettende Hilfe
- •'Hilfe''Inhalt und Index'
- •Hilfe-Hauptfenster
- •Stichwort-Fenster
- •Kontextsensitive Hilfe
- •Die Editoren
- •Allgemeines zu den Editoren
- •Druckgrenzen
- •Kommentar
- •Zoom zu aufgerufenem Baustein
- •'Extras' 'Instanz öffnen'
- •Der Deklarationseditor
- •Deklarationsteil
- •Eingabevariablen
- •Ausgabevariablen
- •EinAusgabevariablen
- •Lokale Variablen
- •Remanente Variablen
- •Konstanten, Typed Literals
- •Externe Variablen
- •Schlüsselwörter
- •Variablendeklaration
- •AT-Deklaration
- •'Einfügen' 'Deklarations Schlüsselworte'
- •'Einfügen' 'Typen'
- •Syntaxcoloring
- •Kurzformmodus
- •Automatisch deklarieren
- •Zeilennummern im Deklarationseditor
- •Deklarationen als Tabelle
- •'Einfügen' 'Neue Deklaration'
- •Pragma-Anweisung
- •Deklarationseditoren im Online Modus
- •Die Texteditoren
- •'Einfügen''Operator' in Texteditoren
- •'Einfügen''Operand' in Texteditoren
- •'Einfügen''Funktion' in Texteditoren
- •'Einfügen''Funktionsblock' in Texteditoren
- •Bausteinaufruf mit Ausgangsparametern in Texteditoren
- •Die Texteditoren im Online Modus
- •'Extras' 'Monitoring Einstellungen'
- •Was passiert an einem Breakpoint?
- •Zeilennummern des Texteditors
- •Der Anweisungslisteneditor
- •AWL im Online Modus
- •Der Editor für Strukturierten Text
- •Die graphischen Editoren
- •Zoom
- •Netzwerk
- •Sprungmarken
- •Netzwerkkommentare,'Extras' 'Optionen'
- •Die Netzwerkeditoren im Online Modus
- •Der Funktionsplaneditor
- •Cursorpositionen im FUP
- •Wie man im FUP den Cursor setzt
- •'Einfügen' 'Zuweisung' im FUP
- •'Einfügen' 'Sprung' im FUP
- •'Einfügen' 'Return' im FUP
- •'Einfügen' 'Baustein' im FUP
- •'Einfügen' 'Eingang'
- •'Einfügen' 'Ausgang'
- •'Extras' 'Negation'
- •'Extras' 'Set/Reset'
- •Der Funktionsplan im Online Modus
- •Der Kontaktplaneditor
- •'Einfügen' 'Kontakt' im KOP
- •'Einfügen' 'Paralleler Kontakt' im KOP
- •'Einfügen' 'Funktionsblock im KOP'
- •'Einfügen' 'Spule' im KOP
- •'Einfügen' 'Baustein mit EN im KOP'
- •'Einfügen' 'Einfügen an Baustein' im KOP
- •'Einfügen' 'Sprung' im KOP
- •'Einfügen' 'Return' im KOP
- •'Extras' 'Dahinter Einfügen' im KOP
- •'Extras' 'Darunter Einfügen' im KOP
- •'Extras' 'Darüber Einfügen' im KOP
- •'Extras' 'Negation' im KOP
- •'Extras' 'Set/Reset' im KOP
- •Der Kontaktplan im Online Modus
- •Der Ablaufspracheneditor
- •Blöcke markieren im AS
- •'Einfügen' 'Sprung'
- •'Einfügen' 'Eingangsaktion hinzufügen'
- •'Einfügen' 'Ausgangsaktion hinzufügen'
- •'Extras' 'Marke zu Parallelzweig hinzufügen'
- •Sprungmarke löschen
- •'Extras' 'Einfügen danach'
- •'Extras' 'Zoom Aktion/Transition'
- •'Extras' 'Lösche Aktion/Transition'
- •'Extras' 'Schritt Attribute'
- •'Extras' 'Zeitenüberblick'
- •'Extras' 'Optionen'
- •'Extras' 'Aktion assoziieren'
- •Die Ablaufsprache im Online Modus
- •Der freigraphische Funktionsplaneditor
- •Cursorpositionen im CFC
- •'Einfügen' 'Baustein' im CFC
- •'Einfügen' 'Ausgang' im CFC
- •'Einfügen' 'Sprung' im CFC
- •'Einfügen' 'Marke' im CFC
- •'Einfügen' 'Return' im CFC
- •'Einfügen' 'Kommentar' im CFC
- •'Einfügen' 'Bausteineingang' im CFC
- •'Extras' 'Negieren' im CFC
- •'Extras' 'Set/Reset' im CFC
- •'Extras' 'EN/ENO' im CFC
- •'Extras' 'Eigenschaften...' im CFC
- •Elemente selektieren im CFC
- •Elemente verschieben im freigraphischen Funktionsplaneditor
- •Elemente kopieren im CFC
- •Verbindungen erstellen
- •Verbindungen löschen
- •Verbindungen ändern
- •'Extras' 'Verbindungsmarke'
- •Inputs/Outputs "On the fly" einfügen
- •Abarbeitungsreihenfolge
- •'Reihenfolge' 'Anzeigen'
- •'Extras' 'Reihenfolge' 'Topologisch anordnen'
- •'Extras' 'Reihenfolge' 'Eins vor'
- •'Extras' 'Reihenfolge' 'Eins zurück'
- •'Extras' 'Reihenfolge' 'An den Anfang'
- •'Extras' 'Reihenfolge' 'Ans Ende'
- •'Extras' 'Makro erzeugen'''
- •'Extras' 'In Makro springen''
- •'Extras' 'Makro expandieren''
- •Rückkopplungen
- •CFC im Online Modus'
- •'Extras' 'Zoom'
- •Übersicht Resourcen
- •Globale Variablen
- •Globale Variablen editieren
- •Mehrere Variablenlisten
- •Globale Variablen
- •Anlegen einer Globalen Variablenliste
- •Editieren der Listen für Globale Variablen
- •Globale Konstanten
- •Variablenkonfiguration
- •Beispiel Variablenkonfiguration
- •'Einfügen''Alle Instanzpfade'
- •Dokumentvorlage
- •PLC Browser
- •Steuerungskonfiguration
- •Steuerungsauswahl
- •Taskkonfiguration
- •Beispiel für eine Taskkonfiguration
- •Welche Task wird bearbeitet?
- •Arbeiten in der Taskkonfiguration
- •'Extras' 'Eigenschaften''
- •'Extras' 'Debug Task festlegen'
- •Traceaufzeichnung
- •'Extras' 'Tracekonfiguration'
- •'Extras' 'Trace starten'
- •'Extras' 'Trace lesen'
- •'Extras' 'Trace automatisch lesen'
- •'Extras' 'Trace stoppen'
- •Auswahl der darzustellenden Variablen
- •Darstellung der Traceaufzeichnung
- •'Extras' 'Cursor ausgeben'
- •'Extras' 'Mehrkanal'
- •'Extras' 'Koordinatennetz'
- •'Extras' 'Strecken'
- •'Extras' 'Komprimieren'
- •'Extras' 'Trace speichern'
- •'Extras' 'Trace laden'
- •Watch und Rezepturverwalter
- •'Einfügen' 'Neue Watchliste'
- •'Extras' 'Watchliste Umbenennen'
- •'Extras' 'Watchliste speichern'
- •'Extras' 'Watchliste laden'
- •'Extra' 'Monitoring aktiv'
- •'Extras' 'Rezeptur schreiben'
- •'Extras' 'Rezeptur lesen'
- •Werte forcen und schreiben im Watch Manager
- •Bibliotheksverwaltung
- •Bibliotheksverwalter
- •Bibliotheksverwalter nutzen
- •Standardbibliothek
- •Benutzerdefinierte Bibliotheken
- •'Einfügen' 'weitere Bibliothek'
- •Bibliothek entfernen
- •Visualisierung in WAGO-I/O-PRO 32
- •Visualisierung
- •Visualisierung erstellen
- •Visualisierungselemente einfügen
- •Visualisierungselemente einfügen
- •'Einfügen' 'Rechteck'
- •'Einfügen' 'Abgerundetes Rechteck'
- •'Einfügen' 'Ellipse'
- •'Einfügen' 'Polygon'
- •'Einfügen' 'Linie'
- •'Einfügen' 'Kurve'
- •'Einfügen' 'Bitmap'
- •'Einfügen' 'Visualisierung'
- •'Einfügen' 'Schaltfläche'
- •Arbeiten mit Visualisierungselementen
- •Visualisierungselemente selektieren
- •Ändern von Visualisierungselementen
- •Verschieben von Visualisierungselementen
- •Kopieren von Visualisierungselementen
- •Statusleiste in der Visualisierung
- •Visualisierungselemente konfigurieren
- •'Extras' 'Konfigurieren'
- •Platzhalter
- •'Extras' 'Platzhalterliste'
- •Form
- •Text
- •Linienstärke
- •Farben
- •Bewegung absolut
- •Bewegung relativ
- •Variablen
- •Eingabe
- •Tooltip
- •Bitmap
- •Visualisierung
- •Gruppierung von Elementen
- •Weitere Funktionen für Visualisierungselemente
- •'Extras' 'Nach vorn bringen'
- •'Extras' 'Nach hinten legen'
- •'Extras' 'Hintergrund Bitmap auswählen'
- •'Extras' 'Hintergrund Bitmap löschen'
- •'Extras' 'Ausrichten'
- •'Extras' 'Alles Markieren'
- •'Extras' 'Selektieren'
- •'Extras' 'Elementliste'
- •'Extras' 'Einstellungen'
- •Tastaturbedienung - im Online Modus
- •Datei Drucken im Online Modus
- •Visualisierungen in Bibliotheken
- •DDE Kommunikation mit WAGO-I/O-PRO 32
- •DDE Schnittstelle des WAGO-I/O-PRO 32 Programmiersystems
- •Aktivieren der DDE Schnittstelle
- •Allgemeines Ansprechen von Daten
- •Welche Variablen können gelesen werden?
- •Variablen Verknüpfen mit WORD
- •Variablen Verknüpfen mit EXCEL
- •Variablen Ansprechen mit Intouch
- •Tastaturbedienung
- •Bedienung
- •Tastenkombinationen
- •Die Datentypen
- •Datentypen
- •Standard Datentypen
- •BOOL
- •Ganzzahlige Datentypen
- •REAL
- •STRING
- •Zeitdatentypen
- •Definierte Datentypen
- •Array
- •Funktion Checkbounds
- •Pointer
- •Aufzählungstyp
- •Strukturen
- •Referenzen
- •Unterbereichstypen
- •Die IEC Operatoren
- •Die IEC Operatoren
- •Arithmetische Operatoren
- •INDEXOF
- •SIZEOF
- •Bitstring Operatoren
- •Bit-Shift Operatoren
- •Auswahloperatoren
- •LIMIT
- •Vergleichsoperatoren
- •Adreßoperatoren
- •Inhaltsoperator
- •Aufrufoperator
- •Typkonvertierungen
- •BOOL_TO-Konvertierungen
- •TO_BOOL-Konvertierungen
- •Konvertierungen zwischen ganzzahligen Zahlentypen
- •REAL_TO-Konvertierungen
- •STRING_TO-Konvertierungen
- •TRUNC
- •Numerische Operatoren
- •SQRT
- •ASIN
- •ACOS
- •ATAN
- •EXPT
- •Die Elemente der Standardbibliothek
- •String Funktionen
- •LEFT
- •RIGHT
- •CONCAT
- •INSERT
- •DELETE
- •REPLACE
- •FIND
- •Bistabile Funktionsblöcke
- •SEMA
- •Flankenerkennung
- •R_TRIG
- •F_TRIG
- •Zähler
- •CTUD
- •Timer
- •Die Bibliothek UTIL.LIB
- •BCD-Konvertierung
- •Bit-/Byte-Funktionen
- •EXTRACT
- •PACK
- •PUTBIT
- •UNPACK
- •Mathematische Hilfsfunktionen
- •DERIVATIVE
- •INTEGRAL
- •STATISTICS_INT
- •STATISTICS_REAL
- •VARIANCE
- •Regler
- •Signalgeneratoren
- •BLINK
- •Funktionsmanipulatoren
- •CHARCURVE
- •RAMP_INT
- •RAMP_REAL
- •Analogwertverarbeitung
- •HYSTERESIS
- •LIMITALARM
WAGO-I/O-PRO 32 V2.2 Übersicht |
• 29 |
Die Sprachen |
|
|
|
Andernfalls werden die Boolschen Ausdrücke, beginnend mit <Boolscher_Ausdruck2> der Reihe nach ausgewertet, bis einer der Ausdrücke TRUE ergibt. Dann werden nur die Anweisungen nach diesem Boolschen Ausdruck und vor dem nächsten ELSE oder ELSIF ausgewertet.
Wenn keine der Boolschen Ausdrücke TRUE ergibt, dann werden ausschließlich die <ELSE_Anweisungen> ausgewertet.
Beispiel:
IF temp<17
THEN heizung_an := TRUE;
ELSE heizung_an := FALSE;
END_IF;
Hier wird die Heizung angemacht, wenn die Temperatur unter 17 Grad sinkt, ansonsten bleibt sie aus.
2.4.2.7CASE-Anweisung
Mit der CASE-Anweisung kann man mehrere bedingte Anweisungen mit derselben Bedingungsvariablen in ein Konstrukt zusammenfassen.
Syntax:
CASE <Var1> OF
<Wert 1>: <Anweisung 1> <Wert 2>: <Anweisung 2>
<Wert3, Wert4, Wert5: <Anweisung 3>
<Wert6 .. Wert10 : <Anweisung 4>
...
<Wert n>: <Anweisung n>
ELSE <ELSE-Anweisung>
END_CASE;
Eine CASE-Anweisung wird nach folgendem Schema abgearbeitet:
Wenn die Variable in <Var1> den Wert <Wert i> hat, dann wird die Anweisung <Anweisung i> ausgeführt.
Hat <Var 1> keinen der angegebenen Werte, dann wird die <ELSEAnweisung> ausgeführt.
WAGO-I/O-SYSTEM 759 WAGO-I/O-PRO 32
30• WAGO-I/O-PRO 32 V2.2 Übersicht
Die Sprachen
Wenn für mehrere Werte der Variablen, dieselbe Anweisung auszuführen ist, dann kann man diese Werte mit Kommatas getrennt hintereinanderschreiben, und damit die gemeinsame Anweisung bedingen.
Wenn für einen Wertebereich der Variablen, dieselbe Anweisung auszuführen ist, dann kann man den Anfangsund Endwert getrennt durch zwei Punkte hintereinanderschreiben, und damit die gemeinsame Anweisung bedingen.
Beispiel.:
CASE INT1 OF
1, 5: BOOL1 := TRUE; BOOL3 := FALSE;
2:BOOL2 := FALSE; BOOL3 := TRUE;
10..20: BOOL1 := TRUE;
BOOL3:= TRUE;
ELSE
BOOL1 := NOT BOOL1;
BOOL2 := BOOL1 OR BOOL2;
END_CASE;
2.4.2.8FOR-Schleife
Mit der FOR-Schleife kann man wiederholte Vorgänge programmieren.
Syntax:
INT_Var :INT;
FOR <INT_Var> := <INIT_WERT> TO <END_WERT> {BY
<Schrittgröße>} DO
<Anweisungen>
END_FOR;
Der Teil in geschweiften Klammern {} ist optional.
Die <Anweisungen> werden solange ausgeführt, solange der Zähler <INT_Var> nicht größer als der <END_WERT> ist. Dies wird vor der Ausführung der <Anweisungen> überprüft, so daß die <Anweisungen> niemals ausgeführt werden, wenn <INIT_WERT> größer als <END_WERT> ist.
WAGO-I/O-SYSTEM 759 WAGO-I/O-PRO 32
WAGO-I/O-PRO 32 V2.2 Übersicht |
• 31 |
Die Sprachen |
|
|
|
Immer, wenn <Anweisungen> ausgeführt worden ist, wird <INT_Var> um <Schrittgröße> erhöht. Die Schrittgröße kann jeden Integerwert haben. Fehlt sie wird diese auf 1 gesetzt. Die Schleife muß also terminieren, da <INT_Var> nur größer wird.
Beispiel:
FOR Zaehler:=1 TO 5 BY 1 DO
Var1:=Var1*2;
END_FOR;
Erg:=Var1;
Nehmen wir an, daß die Variable Var1 mit dem Wert 1 vorbelegt wurde, dann wird sie nach der FOR-Schleife den Wert 32 haben.
Hinweis:
Der <END_WERT> darf nicht der Grenzwert des Zählers <INT_VAR> sein. Z.B. wenn die Variable Zaehler vom Typ SINT ist, darf der <END_WERT> nicht 127 sein, sonst erfolgt eine Endlosschleife.
2.4.2.9WHILE-Schleife
Die WHILE-Schleife kann benutzt werden wie die FOR-Schleife, mit dem Unterschied, daß die Abbruchbedingung ein beliebiger boolscher Ausdruck sein kann. Das heißt, man gibt eine Bedingung an, die, wenn sie zutrifft, die Ausführung der Schleife zur Folge hat.
Syntax:
WHILE <Boolscher Ausdruck> DO
<Anweisungen>
END_WHILE;
Die <Anweisungen> werden solange wiederholt ausgeführt, wie <Boolscher_Ausdruck> TRUE ergibt. Wenn <Boolscher_Ausdruck> bereits bei der ersten Auswertung FALSE ist, dann werden die <Anweisungen> niemals ausgeführt. Wenn <Boolscher_Ausdruck> niemals den Wert FALSE annimmt, dann werden die <Anweisungen> endlos wiederholt, wodurch ein Laufzeitfehler entsteht.
Hinweis:
Der Programmierer muß selbst dafür sorgen, daß keine Endlosschleife entsteht, indem er im Anweisungsteil der Schleife die Bedingung verändert, also zum Beispiel einen Zähler hochoder runterzählt.
Beispiel:
WAGO-I/O-SYSTEM 759 WAGO-I/O-PRO 32
32• WAGO-I/O-PRO 32 V2.2 Übersicht
Die Sprachen
WHILE Zaehler<>0 DO
Var1 := Var1*2;
Zaehler := Zaehler-1;
END_WHILE
Die WHILEund die REPEAT-Schleife sind in gewissem Sinne mächtiger als die FOR-Schleife, da man nicht bereits vor der Ausführung der Schleife die Anzahl der Schleifendurchläufe wissen muß. In manchen Fällen wird man also nur mit diesen beiden Schleifenarten arbeiten können. Wenn jedoch die Anzahl der Schleifendurchläufe klar ist, dann ist eine FORSchleife zu bevorzugen, da sie keine endlosen Schleifen ermöglicht.
2.4.2.10REPEAT-Schleife
Die REPEAT-Schleife unterscheidet sich von den WHILE-Schleifen dadurch, daß die Abbruchbedingung erst nach dem Ausführen der Schleife überprüft wird. Das hat zur Folge, daß die Schleife mindestens einmal durchlaufen wird, egal wie die Abbruchbedingung lautet.
Syntax:
REPEAT
<Anweisungen>
UNTIL <Boolscher Ausdruck>
END_REPEAT;
Die <Anweisungen> werden solange ausgeführt, bis <Boolscher Ausdruck> TRUE ergibt.
Wenn <Boolscher Ausdruck> bereits bei der ersten Auswertung TRUE ergibt, dann werden <Anweisungen> genau einmal ausgeführt. Wenn <Boolscher_Ausdruck> niemals den Wert TRUE annimmt, dann werden die <Anweisungen> endlos wiederholt, wodurch ein Laufzeitfehler entsteht.
Hinweis:
Der Programmierer muß selbst dafür sorgen, daß keine Endlosschleife entsteht, indem er im Anweisungsteil der Schleife die Bedingung verändert, also zum Beispiel einen Zähler hochoder runterzählt.
Beispiel:
REPEAT
Var1 := Var1*2;
Zaehler := Zaehler-1;
WAGO-I/O-SYSTEM 759 WAGO-I/O-PRO 32
