home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Saturn 1
/
Saturn.iso
/
lernen
/
029
/
029.exe
/
SPS.DOC
< prev
next >
Wrap
Text File
|
1994-07-13
|
310KB
|
7,201 lines
▒▒▒▒▒▒▄ ▒▒▒▒▒▒▄ ▒▒▒▒▒▒▄
▒▒█▀▀▀▀ ▒▒█▀▒▒█ ▒▒█▀▀▀▀
▒▒▒▒▒▒▄ ▒▒▒▒▒▒█ ▒▒▒▒▒▒▄
▀▀▀▒▒█ ▒▒█▀▀▀▀ ▀▀▀▒▒█
▒▒▒▒▒▒█ ▒▒█ ▒▒▒▒▒▒█
▀▀▀▀▀▀ ▀▀ ▀▀▀▀▀▀
▒▒▒▒▒▒▄ ▒▒▄ ▒▒▒▄▄▒▒▒▄ ▒▒▄ ▒▒▄ ▒▒▄ ▒▒▒▒▒▒▄ ▒▒▒▒▒▒▄ ▒▒▒▒▒▒▄ ▒▒▒▒▒▒▄
▒▒█▀▀▀▀ ▒▒█ ▒▒█▒▒█▒▒█ ▒▒█ ▒▒█ ▒▒█ ▒▒█▀▒▒█ ▀▒▒█▀▀ ▒▒█▀▒▒█ ▒▒█▀▒▒█
▒▒▒▒▒▒▄ ▒▒█ ▒▒█ ▀▀▒▒█ ▒▒█ ▒▒█ ▒▒█ ▒▒▒▒▒▒█ ▒▒█ ▒▒█ ▒▒█ ▒▒▒▒▒█▀
▀▀▀▒▒█ ▒▒█ ▒▒█ ▒▒█ ▒▒█ ▒▒█ ▒▒█ ▒▒█ ▒▒█ ▒▒█ ▒▒█ ▒▒█ ▒▒█▀▒▒▄
▒▒▒▒▒▒█ ▒▒█ ▒▒█ ▒▒█ ▒▒▒▒▒▒█ ▒▒▒▒▒▒▄ ▒▒█ ▒▒█ ▒▒█ ▒▒▒▒▒▒█ ▒▒█ ▒▒█
▀▀▀▀▀▀ ▀▀ ▀▀ ▀▀ ▀▀▀▀▀▀ ▀▀▀▀▀▀ ▀▀ ▀▀ ▀▀ ▀▀▀▀▀▀ ▀▀ ▀▀
▒▒▄ ▒▒▄ ▒▒▄ ▒▒▄ ▒▒▒▒▒▒▄ ▒▒▒▒▒▒▄
▒▒█ ▒▒█ ▒▒█ ▒▒█ ▒▒█▀▀▀▀ ▀▀▀▀▒█
▒▒█ ▒▒█ ▒▒▒▒▒▒█ ▒▒▒▒▒▒▄ ▒▒▒▒▒▒█
▒▒▒▒█▀ ▀▀▀▒▒█ ▀▀▀▒▒█ ▀▀▀▀▒█
▒▒█▀ ▒▒█ ▒▒▄ ▒▒▒▒▒▒█ ▒▒▒▒▒▒█
▀▀ ▀▀ ▀▀ ▀▀▀▀▀ ▀▀▀▀▀
╓─┐ ╥┐ ┬ ╥ ┬ ╓─── ╥┐ ┬ ╥──┐ ╓─── ╓──┐
╓╨─┴┐ ║└┐│ ╙╖┌┐┌┘ ╟── ║└┐│ ║ │ ╟── ╟─┬┘ ──
╨ ┴ ╨ └┴ ╙┘└┘ ╙─── ╨ └┴ ╨──┘ ╙─── ╨ └─
╥ ┬ ╓─┐ ╥┐ ┬ ╥──┐ ╓─┐ ╥ ┬ ╓──┐ ╥ ┬
╟──┤ ╓╨─┴┐ ║└┐│ ║ │ ╟─┴┐ ║ │ ║ ╟──┤
╨ ┴ ╨ ┴ ╨ └┴ ╨──┘ ╙──┘ ╙──┘ ╙──┘ ╨ ┴
Ein Simulator für speicherprogrammierbare
Steuerungen angelehnt an der Programmiersprache STEP 5 (R).
STAND: Juli 1994
(C) 1991, 1994
Matthias Habermann jr.
Albert-Einstein-Straße 22
D-75015 Bretten
Telefon (07252) 87890
Fax (07252) 78780
G E R M A N Y
Alle Warenzeichen sind Eigentum Ihrer Besitzer.
INHALTSVERZEICHNIS
──────────────────────────────────────────────────────────────────────────────
╓─── ╥ ╥┐ ┬ ╓─── ╥ ┬ ╓─── ╥ ┬ ╓──┐ ╥ ┬ ╥┐ ┬ ╓──┐
╟── ║ ║└┐│ ╟── ║ │ ╟── ╟──┤ ╟─┬┘ ║ │ ║└┐│ ║ ─┬
╙─── ╨ ╨ └┴ ╨ ╙──┘ ╙─── ╨ ┴ ╨ └─ ╙──┘ ╨ └┴ ╙──┘
0.1 Möglichkeiten des SPS-Simulators V4.53 ........7
0.2 Hardwarevoraussetzungen .......................8
0.3 Installation und Start des SPS-Simulators .....9
0.4 Files auf der Diskette ........................10
0.5 Garantie- und Haftungsausschluß ...............11
0.6 Ausdrucken des Handbuchs (SPS.DOC) ............11
╥ ┬ ╓─┐ ╓──┐ ╥ ┌─╥─┐ ╓─── ╥ ╥
╟─┴┐ ╓╨─┴┐ ╟──┘ ║ ║ ╟── ║ ║
╨ ┴ ╨ ┴ ╨ ╨ ╨ ╙─── ╙─── ╨
Beschreibung der Menuepunkte
1.1 MENUEPUNKT DATEI
1.1.1 Bausteinhandling ..............................12
1.1.1.1 Was wird angezeigt ?........................12
1.1.1.2 Baustein anwählen ..........................12
1.1.1.3 Tastaturbelegung ...........................12
1.1.2 Integrierte Bausteine..........................13
1.1.3 Abspeichern ...................................13
1.1.3.1 Bausteine abspeichern ......................14
1.1.3.2 Anweisungslisten als ASCII-Datei speichern..14
1.1.4 Pfäde ändern ..................................14
1.1.5 Neuer Baustein anlegen ........................15
1.1.5.1 OB's, FB's, PB's oder SB's anlegen .........15
1.1.5.2 DB's anlegen ...............................15
1.1.6 Programm Ende .................................16
1.2 MENUEPUNKT EINGEBEN
1.2.1 Tastenbelegung des Editors ....................17
1.2.2 Allgemeine Eingabehinweise ....................18
1.2.3 Eingeben von Kommentaren ......................19
1.2.4 Arbeiten mit Blöcken ..........................20
1.2.4.1 Wie erstelle ich einen Block ? .............20
1.2.4.2 Wie hole ich den erstellten Block
wieder zurück ? ............................20
1.2.5 Erstellung einer Zuweisungsliste ..............21
1.2.6 Automatische Kommentarerzeugung mit Hilfe
der Zuweisungsliste ...........................22
1.2.7 Erstellung einer BEZeichnerliste ..............23
1.2.8 Die Suchen-Funktion ...........................24
1.2.9 Die Suchen-und-Ersetzen-Funktion ..............24ff
1.2.10 Netzwerke .....................................25
1.2.11 Fehlermeldungen bei der AWL-Eingabe ...........26
─── Seite 1 ───
INHALTSVERZEICHNIS
──────────────────────────────────────────────────────────────────────────────
1.3 MENUEPUNKT SIMULATION
1.3 AWL-Simulation.................................26
1.3.1 Einleitung ....................................26
1.3.2 Tastenbelegung während der AWL-Simulation .....27
1.3.3 Umschalten der Eingänge .......................28
1.3.4 "Steuern Variable"- Funktion ..................28
1.3.5 Hinweise zur AWL-Simulation ...................29
1.4 AWL-Debugging .................................30
1.4.1 Tastenbelegung im Debug-Modus .................30
1.5 FUP-SIMULATION
1.5.1 Einleitung ....................................31
1.5.2 Allgemeine Regeln für die Programmierung von
Zeiten, Zähler und Speicher ...................31
1.5.3 Programmierung von Zeiten .....................32
1.5.4 Programmierung von Zähler .....................33ff
1.5.5 Programmierung von Speichern ..................35
1.5.6 Einsetzen von Konnektoren .....................37
1.5.6.1 Was ist ein Konnektor ? ....................37
1.5.6.2 Welchen Zweck haben Konnektoren ? ..........37
1.5.6.3 Beispiele zu Konnektoren ...................37
1.5.7 Was tun, wenn sich die Anweisungsliste nicht
umwandeln läßt ? ..............................38
1.5.8 Netzwerkprogrammierung ........................38
1.5.9 Bedienung der FUP-Simulation ..................38
1.5.10 Tastenbelegung während der FUP-Simulation .....39
1.5.11 Funktionsplan ausdrucken ......................39
1.5.12 Funktionsplan als ASCII-Datei abspeichern .....39
1.6 AG-Maske-Simulation
1.6.1 Einleitung ....................................40
1.6.2 Tastenbelegung während der AG-Maske-Simulation
1.6.3 Welche Eingangs- und Ausgangsbytes werden
angezeigt ? ...................................40
1.6.4 Wie kann man die Eingänge umschalten ? ........40ff
1.7 MENUEPUNKT KONFIGURATION
1.7.1 Remanente Merker/Zähler/Timer .................41
1.7.2 Escape Sequenzen einstellen ...................41ff
1.7.3 Testdruck .....................................42
1.7.4 AWL/FUP-Zeilen pro Seite ......................44
1.7.5 Interne Kommentare löschen ....................45
1.7.6 Tastaturgeschwindigkeit .......................45
─── Seite 2 ───
INHALTSVERZEICHNIS
──────────────────────────────────────────────────────────────────────────────
1.7.7 Einstellen der Videomodi ......................46
1.7.8 Einstellung der PAE/PAA- Leiste ...............
1.7.9 Monochromeinstellung ..........................47
1.7.10 Coloreinstellung ..............................47
1.7.11 Konfiguration laden ...........................47
1.8 MENUEPUNKT AG
1.8.0 Allgemeines ...................................48
1.8.1 Was Sie beachten müssen .......................48
1.8.2 Übertragen PC -> AG (ALT/F5) ..................48
1.8.2.1 Bausteinliste holen
(Übertragen von mehreren Bausteinen) ......49
1.8.2.2 Manuelle Eingabe
(Übertragung eines Bausteines) .............49
1.8.3 Übertragen AG -> PC (ALT/F6) ..................50
1.8.3.1 Bausteinliste holen (BuchAG) -
Übertragung von mehreren Bausteien. ........50
1.8.3.2 Manuelle Eingabe ..............................50
1.8.4 Bausteine im AG löschen (ALT/F8) ..............50
1.8.4.1 Alle Bausteine im AG löschen ...............50
1.8.5 Komprimieren ..................................50
1.8.6 Buch AG (ALT/F9) ..............................51
1.8.6.1 "Alle" Bausteine auflisten .................51
1.8.6.1 "OB", "PB", "FB", "SB", "DB" -
nur Bestimmte Bausteintypen auflisten ......51
1.8.7 AG Start/Stop .................................51
1.8.7.1 AG Start (ALT/F9) ..........................51
1.8.7.2 AG Stop (ALT/F10) ..........................51
1.8.8 Schnittstelle prüfen ..........................51
1.8.9 Kommunikationsparameter .......................51ff
1.8.10 Parameter zeigen ..............................52
1.9 MENUEPUNKT SONSTIGES
1.9.1 Anweisungsliste ausdrucken ....................53
1.9.2 Querverweisliste erzeugen .....................53
1.9.3 PC Panel-Verbindung testen ....................54
1.10 MENUEPUNKT INFOS
1.10.1 Befehlssatz ...................................54
1.10.2 Dokumentation .................................55
1.10.3 README-Datei ..................................55
1.10.4 Datei lesen ...................................55
1.10.5 Bestellung ....................................55
1.10.6 Copyright .....................................55
─── Seite 3 ───
INHALTSVERZEICHNIS
──────────────────────────────────────────────────────────────────────────────
╥ ┬ ╓─┐ ╓──┐ ╥ ┌─╥─┐ ╓─── ╥ ╥ ╥
╟─┴┐ ╓╨─┴┐ ╟──┘ ║ ║ ╟── ║ ║ ║
╨ ┴ ╨ ┴ ╨ ╨ ╨ ╙─── ╙─── ╨ ╨
2.1 Zeitglieder
2.1.1 Einführung ....................................56
2.1.2 Eingänge und Ausgänge eines Zeitgliedes .......57
2.1.3 Eigenschaften der Zeitglieder .................58
2.1.3.1 SE (Einschaltverzögert) ....................58
2.1.3.2 SI (Impuls) ................................59
2.1.3.3 SV (Impulsverlängerung) ....................59
2.1.3.4 SA (Ausschaltverzögerung) ..................60
2.1.3.5 SS (Einschaltverzögert, speichernd) ........60
2.2 Zähler ........................................61
2.3 Programmierung von Klammern ...................62
2.4 Die Beinflussung der Akkus ....................62
2.5 Die Beeinflussung der Anzeigebits .............63ff
2.6 Der Bearbeitebefehl ...........................65
2.7 Der Divisionsbefehl ...........................66
╥ ┬ ╓─┐ ╓──┐ ╥ ┌─╥─┐ ╓─── ╥ ╥ ╥ ╥
╟─┴┐ ╓╨─┴┐ ╟──┘ ║ ║ ╟── ║ ║ ║ ║
╨ ┴ ╨ ┴ ╨ ╨ ╨ ╙─── ╙─── ╨ ╨ ╨
3 Pogrammierung und Umgang mit Bausteinen
3.1 Was ist ein Baustein ?.........................67
3.2 Warum sollte man größere Programme
in Bausteine aufteilen ?.......................67
3.3 Verfügbare Bausteine...........................67
3.3.1 OB's (Organisationsbausteine)...............67
3.3.2 PB's (Programmbausteine) &
SB's (Schrittbausteine).....................68
3.3.3 FB's (Funktionsbausteine)...................68
3.3.4 Integrierte Bausteine.......................68
3.3.5 DB's (Datenbausteine).......................69
3.4 Wie erzeuge ich Bausteine ?....................70
3.5 Der Aufruf von Bausteinen......................71
3.6 Die Simulation eines SPS-Programms mit
verschiedenen Bausteinen.......................71
3.6.1 Laden eines Bausteins..........................71
3.6.2 Aktivierung der Simulation.....................72
3.6.2.1 Simulation von OB's FB's PB's & SB's........72
3.6.2.2 Simulation von DB's.........................72
─── Seite 4 ───
INHALTSVERZEICHNIS
──────────────────────────────────────────────────────────────────────────────
3.6.3 Informationen bei der Simulation...............73
3.6.3.1 Wird der angezeigte Baustein
bearbeitet ?................................73
3.6.3.2 Wieviele Bausteinebenen besitzt das
simulierte Programm ?.......................73
3.7 Der Datenbausteineditor -
Erstellung von Datenbausteinen.................73
3.7.1 Aufruf des Datenbausteineditors.............73
3.7.2 Eingeben von Daten..........................74
3.7.3 Besonderheiten des DB-Editors...............75
╥ ┬ ╓─┐ ╓──┐ ╥ ┌─╥─┐ ╓─── ╥ ╥ ╥ ┬
╟─┴┐ ╓╨─┴┐ ╟──┘ ║ ║ ╟── ║ ║ ╙╖┌┘
╨ ┴ ╨ ┴ ╨ ╨ ╨ ╙─── ╙─── ╨ ╙┘
4 Parametrierbare Funktionsbausteine
4.1 Was sind parametrierbare FB's ? ...............76
4.2 Erstellung von parametrierten FB's ............76
4.3 Aufruf von parametrierten FB's ................77
4.4 Ändern der BEZeicherliste .....................77
4.5 Simulation von parametrierten FB's ............77
4.6 Beispiel ......................................77ff
4.7 Was Sie beachten sollten ......................79
4.8 Mögliche Bausteinparameter und zugelassene
Aktualoperanden ...............................80
╥ ┬ ╓─┐ ╓──┐ ╥ ┌─╥─┐ ╓─── ╥ ╥ ┬
╟─┴┐ ╓╨─┴┐ ╟──┘ ║ ║ ╟── ║ ╙╖┌┘
╨ ┴ ╨ ┴ ╨ ╨ ╨ ╙─── ╙─── ╙┘
5 SPS-Steuerbefehle
5.1 Was sind SPS-Steuerbefehle ? ..................81
5.2 Definition von Tastern und Schaltern ..........81
5.3 Definition von akustischen Ausgängen ..........82
5.4 Einstellung der Statusanzeige .................82
5.5 Einstellung von Peripheriebytes ...............83
5.5.1 Programmierung einer Interface- Karte
mit 8255- Portbausteinen ......................83ff
5.5.2 Programmierung einer Interface- Karte mit
mit festen Ein- Ausgangsbelegungen ............85ff
5.6 Einstellung des aktuellen Eingangsbytes .......86
5.6.1 Gemeinsame Einstellung des Startbytes von
PAE und PAA ................................86
5.6.2 Einstellung des aktuellen Eingangsbyte .....86
5.6.3 Einstellung des aktuellen Ausgangsbytes ....86
5.7 Programmierung der Klartextanzeige ............87
─── Seite 5 ───
INHALTSVERZEICHNIS
──────────────────────────────────────────────────────────────────────────────
╥ ┬ ╓─┐ ╓──┐ ╥ ┌─╥─┐ ╓─── ╥ ╥ ┬ ╥
╟─┴┐ ╓╨─┴┐ ╟──┘ ║ ║ ╟── ║ ╙╖┌┘ ║
╨ ┴ ╨ ┴ ╨ ╨ ╨ ╙─── ╙─── ╙┘ ╨
5.8 Einstellung der Analogeingabe .................88
6 Sonstiges
6.1 Simulation von Analogwerteingaben .............89ff
6.2 Abfrage des Joysticks .........................90ff
6.3 Die Konfigurationsdatei "SPS-CFG" .............91
6.4 Die Konfigurationsdateien "Farben.VGA" und
"Farben.MON" ..................................92
6.5 Mitgelieferte integrierte Bausteine (nur VV)
6.5.1 FB 240 Wandlerbaustein BCD -> DUAL .........92
6.5.2 FB 241 Wandlerbaustein DUAL -> BCD .........92
6.5.3 FB 242 Rechenbaustein Multiplizierer .......93
6.5.4 FB 243 Rechenbaustein Dividierer ...........93
6.5.5 FB 250 Analogeingabe .......................93
6.5.6 FB 251 Analogausgabe .......................95
╥ ┬ ╓─┐ ╓──┐ ╥ ┌─╥─┐ ╓─── ╥ ╥ ┬ ╥ ╥
╟─┴┐ ╓╨─┴┐ ╟──┘ ║ ║ ╟── ║ ╙╖┌┘ ║ ║
╨ ┴ ╨ ┴ ╨ ╨ ╨ ╙─── ╙─── ╙┘ ╨ ╨
7 Beispielprogramme
7.1 Auswertung einer ansteigenden Flanke ..........96
7.2 Auswertung einer abfallenden Flanke ...........96
7.3 Taktgeneratoren
7.3.1 Taktgenerator mit einem SV-Glied ...........97
7.3.2 Taktgenerator mit zwei SE-Glieder ..........97
7.3.3 Taktgenerator mit einem Zeit-OB ............98
7.4 Anlasserschaltung mit akustischen Ausgängen ...98ff
╓─┐ ╥┐ ┬ ╥ ┬ ╓─┐ ╥┐ ┬ ╓──┐
╓╨─┴┐ ║└┐│ ╟──┤ ╓╨─┴┐ ║└┐│ ║ ─┬
╨ ┴ ╨ └┴ ╨ ┴ ╨ ┴ ╨ └┴ ╙──┘
A1 Kurzanleitung bzw. Einstiegshilfe in das Programm ....100ff<==
A2 Simulation von Ablaufsteuerungen .....................106ff
A3 Verfügbare Operationen ...............................108ff
A4 Dimensionen der Operanden und Befehle ................118ff
─── Seite 6 ───
EINFÜHRUNG
──────────────────────────────────────────────────────────────────────────────
Alle Warenzeichen, die in dieser Dokumentation erwähnt werden,
sind Eingentum Ihrer Besitzer !
0 Einführung
0.1 Möglichkeiten des SPS-Simulators V4.53
Der SPS-Simulator V4.53 ist ein Simulator für speicher-
programmierbare Steuerungen, angelehnt an der Programmiersprache
STEP 5 (R). Die vorliegende Version kann fast alle Operationen
bearbeiten, die auch reale speicherprogrammierbare Steuerungen
besitzen. Ein Überblick über alle Operationen verschaft die
Befehlsübersicht im Anhang. Eine kurze Übersicht über die
Funktionen des SPS- Simulators:
Verfügbare Operanden Operationsvorrat
─────────────────────────────────────────────────────────────────
■ 128 Eingangs.- und Ausgangsbytes ■ Verknüpfungsoperationen
(1024 Eingänge und Ausgänge) ■ Speicheroperationen
■ 256 Merker ■ Ladeoperationen
■ 256 Datenbausteine ■ Transferoperationen
■ 256 Timer ■ Zeitoperationen
■ 256 Zähler ■ Zähloperationen
■ maximal 3000 Anweisungen ■ arithmetische Befehle
simulierbar (VOLLVERSION) ■ Vergleichsoperationen
■ 256 Peripheriebytes ■ Bausteinaufrufoperationen
■ Bausteinaufrufoperationen
■ Bit-Test-Operationen
■ Umwandlungsoperationen
■ Schiebeoperationen
■ Formaloperanden
(parametrierbare FB's)
Weitere Fähigkeiten:
■ Simulation von Analogeingaben über die Tastatur. So können
insgesamt 6 analoge Eingänge simuliert werden.
■ Eine "Steuern Variable"- Funktion ist für Bit-, Byte- und
Wortoperanden während der AWL- und FUP- Simulation verfügbar.
■ PG-Funktionen wie übertragen von Bausteinen, AG-Komprimieren,
AG Start, AG Stop, Buch AG, Bausteine löschen.
■ Erzeugen einer Querverweisliste
■ Programmierbare Klartextanzeige
■ Definition von Tastern und Schaltern (Öffner und Schließer)
■ Integrierte Bausteine FB240 ... FB243, FB250, FB251 (Vollvers.)
■ AWL-Simulation
■ FUP-Simulation
■ AG-Maske-Simulation
■ AWL-Einzelschritt-Simulation
Die Bedieneroberfläche bietet viele nützliche und komfortable
Funktionen, wie z.B.
─── Seite 7 ───
HARDWAREVORAUSSETZUNGEN
──────────────────────────────────────────────────────────────────────────────
■ einfache Simulation von Bausteinen
■ einfache Simulation von Datenbausteinen
■ Erstellung einer Zuweisungsliste, die in der AWL-Simulation
integriert ist.
■ Blockoperationen
■ übersichtliche Handhabung der Bausteine
■ einfache Eingabe der AWL
■ schneller Wechsel zu anderen Bausteinen
■ SPS-Steuerbefehle (zur Einstellung des SPS-Simulators)
■ Zeit OB's, Start OB
■ schnelle Erstellung von OB's, PB's, FB's, SB's und DB's
■ Datenbausteineditor
0.2 Hardwarevoraussetzungen
■ IBM-PC / AT ab 286/12MHz
Ideal: 80386/33MHz mit 4 MB RAM
■ MS-DOS ab V 3.3
■ 550 KBytes freier Arbeitsspeicher (SPS.EXE)
4 MB RAM für die Protected-Mode Version (SPS386.EXE)
■ Grafikkarte : EGA/VGA oder Hercules
Ideal: S-VGA 1MB RAM (zur Darstellung hochauflösender Textmodi)
■ einen beliebigen Drucker für den Ausdruck von Funktions-
plänen oder Anweisungslisten
0.3 Installation und Start des SPS-Simulators
Installation des Simulators:
Die Installation des Simulators erfolgt mit dem Programm
"INSTALL.EXE". Nach dem Start, können Sie das Ziellaufwerk und das
Zielverzeichnis angeben. Mit der [Tab]-Taste können Sie die
einzelnen Eingabefelder wechseln.
Quellaufwerk und Quellverzeichnis müssen normalerweise nicht
verändert werden.
Nach Anklicken des Buttons "Installation starten", oder durch
Drücken der Tastenkombination [ALT]/[S] wird das Archiv "SPS!.SFX"
auf das Ziellaufwerk kopiert und ausgepackt.
─── Seite 8 ───
Starten des SPS-Simulators / Optionen
──────────────────────────────────────────────────────────────────────────────
Voraussetzungen für eine erfolgreiche Installation sind:
■ mind. 2 MB freier Speicher auf der Festplatte
■ PC/AT 286, 386, 486, ...
Starten des SPS-Simulators
Der Simulator wird in zwei RUN- Versionen geliefert. Die Datei
"SPS.EXE" ist das Hauptprogramm für 286'er Rechner. Diese Version
kann maximal 1000 Anweisungen bearbeiten.
Wenn Sie einen 386'er oder 486'er mit 4 MB RAM besitzen, können
Sie die "Protected Mode" - Version benutzen. Diese Version kann
bis zu 3000 Anweisungen bearbeiten. Starten Sie den den Simulator
mit Eingabe von "SPS386.EXE". Letztere Version ist nur in der
VOLLVERSION enthalten.
Es ist möglich, den Simulator mit verschiedenen Optionen zu
starten. Dabei spielt die Reihenfolge und Groß-Kleinschreibung der
Optionen keine Rolle.
WICHTIG !!! Zwischen zwei Optionen muß ein Leerzeichen stehen !
Folgende Optionen sind möglich:
■ /L[Bausteinname]
Beispiel: SPS /LAnlage1
Diese Option lädt nach dem Start die AWL (OB1) mit dem
Namen "Anlage1". Dies geht nur, wenn ein OB1 vorhanden ist !
■ /AWL
Beispiel: SPS /AWL /LAnlage1
Diese Option lädt den OB1 von "Anlage1" und startet dann
anschließend die AWL-Simulation.
■ /FUP
Beispiel: SPS /FUP /LAnlage1
Diese Option lädt den OB1 von "Anlage1" und startet dann
anschließend die FUP-Simulation.
■ /AGMASKE
Beispiel: SPS /AGMASKE /LAnlage1
Diese Option lädt den OB1 von "Anlage1" und startet dann
anschließend die AG-Maske-Simulation.
Anmerkung zu den letzten drei Optionen:
Wenn Sie keine AWL mit der Option "/L" laden, wird die zuletzt
bearbeitete AWL geladen.
Die Optionen "/AWL", "/FUP" und "/AGMASKE" können also auch ohne
explizites Laden einer AWL eingesetzt werden.
─── Seite 9 ───
Dateien auf der Diskette
──────────────────────────────────────────────────────────────────────────────
■ /EGA
Beispiel: SPS /EGA
Falls Sie Probleme mit dem Cursor haben, starten Sie das
Programm mit der Option 'EGA': SPS /EGA
(Unabhänig von der Grafikkarte)
!! Achtung NOVELL DOS 7.0 Besitzer !!
Wenn "SPS386.EXE" auf Ihrem Rechner nicht läuft, sollten Sie
den Schalter "DPMI" des Treibers "EMM386.EXE" auf "OFF" stellen.
0.4 Dateien auf der Diskette
Folgende Dateien müssen auf der Diskette vorhanden sein:
■ SPS!.SFX Das Simulatorpaket in komprimierter Form
■ INSTALL.EXE Operationsvorrat des SPS-Simulators
Nach der Installation befinden sich folgende Verzeichnisse
und Dateien auf der Festplatte:
Unterverzeichnisse im Hauptverzeichnis:
■ INTEGR Verzeichnis für integrierte Bausteine
■ BLOECKE Verzeichnis für abgespeicherte Blöcke
■ AWL Verzeichnis für Anweisungslisten
■ COMPILER Verzeichnis für den AWL-Batch-Compiler (Shareware)
Dateien im Hauptverzeichnis:
■ EGAVGA.BGI Grafik-Treiber für AG-Maske-Simulation
■ SPS.CFG Konfigurationsdatei für den SPS-Simulator
■ BEFEHLE.DOC Befehlsübersicht
■ SPS.DOC Handbuch zum Simulator
■ VGAMODES.DOC Liste von VGA-Textmodi
■ RTM.EXE RUN-TIME-Manager für SPS386.EXE
■ SPS.EXE Startprogramm des Simulators
■ SPS386.EXE Startprogramm des Simulators
■ READ.ME Wichtige Hinweise und Informationen
■ FARBEN.MON Konfigurationsdatei für Farben bei Hercules-Karte
■ WASIST.NEU Programmneuerungen
■ DPMI16BI.OVL DOS-PROTECTED-MODE-INTERFACE für SPS386.EXE
■ BESTELL.TXT Bestellformular
■ INFO.TXT wird nur beim ersten Start des Simulator angezeigt
■ TEMP.TXT INFO.TXT wurde in TEMP.TXT nach dem Start umbenannt
■ SINFO.TXT Sharewareinfo
■ FARBEN.VGA Konfigurationsdatei für Farben EGA/VGA-Karte
─── Seite 10 ───
Garantie- und Haftungsausschluß / Ausdrucken des Handbuchs
──────────────────────────────────────────────────────────────────────────────
0.5 Garantie- und Haftungsausschluß
Ich garantiere NICHT die Eignung des Programmes für einen
bestimmten Anwendungsfall oder eine bestimmte Hardware
Konfiguration.
Weiterhin bin ich UNTER KEINEN UMSTÄNDEN für Schäden haftbar, die
sich aus der Nutzung oder Unfähigkeit zur Nutzung des vorliegenden
Produktes ergeben. Dies schließt den Verlust von
Geschäftsgewinnen, die Unterbrechung der geschäftlichen Abläufe,
den Verlust von Daten sowie alle übrigen materiellen und ideellen
Verluste und deren Folgeschäden ein und gilt selbst dann, wenn ich
zuvor ausdrücklich auf die Möglichkeit derartiger Schäden
hingewiesen worden bin.
Sollte ein Fehler entdeckt werden, so bin ich bestrebt, diesen so
schnell wie möglich zu korrigieren.
DURCH DIE NUTZUNG DER VORLIEGENDEN SOFTWARE ERKLÄRT DER ANWENDER
SEIN EINVERSTÄNDNIS MIT O.G. GARANTIE- UND HAFTUNGSAUSSCHLUSS.
0.6 Ausdrucken des Handbuchs
Das Handbuch ist in der Datei "SPS-DOC" abgespeichert. Es umfaßt
ca. 110 Seiten, wobei jede Seite 59 Zeilen hat. Wollen Sie das
Handbuch ausdrucken, müssen Sie folgendes sicherstellen:
■ Ist genügend Blanko-Papier vorhanden ?
■ Ist der Drucker so eingestellt, daß er 59 Zeilen auf
ein Blatt drucken kann ?
Dies können Sie im Menuepunkt "Testdruck" ausprobieren.
■ Der Seitenvorschub des Druckers muß ausgeschaltet sein.
Ist das nicht der Fall werden viele leere Blätter ausgeworfen.
Mit dem DOS-Befehl "TYPE SPS.DOC >LPT1" können Sie das Handbuch
ausdrucken.
Kleiner Hinweis:
Den Ausdruck des Handbuch können Sie sich sparen, wenn Sie sich
die VOLLVERSION kaufen. In der Registrationsgebür ist ein
gebundenes Handbuch im DIN A5- Format enthalten !
─── Seite 11 ───
Menuepunkt DATEI KAPITEL 1
──────────────────────────────────────────────────────────────────────────────
1.1 Menuepunkt Datei
1.1.1 Bausteinhandling
1.1.1.1 Was wird angezeigt ?
In diesem Dialogfenster haben Sie Zugriff auf alle Bausteine im
eingestellten Pfad. In fünf Auswahlboxen werden die verschiedenen
Bausteintypen (OB/FB/PB/SB und DB) aufgelistet. In diesem
Dialogfester haben Sie folgende Möglichkeiten:
■ einen Baustein laden
■ den Namen von einem Baustein oder von Bausteinen ändern
■ einen Baustein von der Festplatte/Diskette löschen
■ den Datenbausteineditor aktivieren
■ Baustein-Vorschau: Sie können sich vorab die ersten paar
AWL-Zeilen eines bestimmten Bausteins anzeigen lassen,
ohne ihn zu laden.
1.1.1.2 Baustein anwählen
Mit Hilfe der [TAB]- oder [SHIFT/TAB]-Taste wählen Sie den
gewünschten Bausteintyp vor. Wenn Sie nun einem bestimmten
Bausteinnamen suchen, können Sie einfach den 1. Buchstaben dieses
Bausteins drücken. Die Auswahlbox überprüft dann, ob solche
Bausteine vorhanden sind. Ist das der Fall, wird der Auswahlbalken
auf diesen Baustein gesetzt. Wenn nun der aktuelle Baustein nicht
der gesuchte Baustein ist, drücken Sie einfach den zweiten
Buchstaben des gesuchten Bausteins. Dies können Sie so lange
treiben, bis Sie den gesuchten Baustein gefunden haben, oder
feststellen, daß dieser nicht vorhanden ist.
1.1.1.3 Tastaturbelegung
Taste Befehl
─────────────────────────────────────────────────────────────
[TAB] Bausteintyp wechseln (Rechtsumlauf)
[SHIFT/TAB] Bausteintyp wechseln (Linksumlauf)
[PFEIL NACH OBEN] Auswahlbalken nach oben bewegen
[PFEIL NACH UNTEN] Auswahlbalken nach unten bewegen
[PFEIL NACH RECHTS] Suchbuchstabe nach rechts wechseln
[PFEIL NACH LINKS] Suchbuchstabe nach links wechseln
[POS1] Suchbuchstabe = erster Buchstabe
[POS1][POS1] Zum ersten Eintrag springen
(schnell hintereinander drücken)
[ENDE] Zum letzten Eintrag springen
[RETURN] Baustein laden bzw. DB-Editor aufrufen
[STRG/RETURN] Baustein-Vorschau
[ALT/R] Bausteinname(n) ändern
[ALT/D] Baustein(e) löschen
[ALT/P] Pfad für Anweisungslisten ändern
[ESC] Dialogfester oder DB-Editor verlassen
─── Seite 12 ───
MENUEPUNKT DATEI KAPITEL 1
──────────────────────────────────────────────────────────────────────────────
1.1.2 Integrierte Bausteine
Dieser Menuepunkt entspricht dem Menuepunkt "Bausteinhandling".
Der Unterschied ist, daß hier nur die integrierten Bausteine
aufgelistet werden. Wenn Sie diesen Menuepunkt anwählen, wird
einfach der Pfad für die Anweisungslisten auf den Pfad für die
integrierten Bausteine eingestellt. Jetzt haben Sie über diese
Bausteine die gleiche Übersicht, wie über die "normalen"
Bausteine. Wenn Sie noch nicht den entsprechenden Abschnitt über
die integrierten Bausteine gelesen haben, hier ein paar Worte
dazu: Wenn Sie einen Baustein unter dem Namen "@@@@@@@@"
abspeichern, wird dieser als integrierter Baustein behandelt. Das
bedeutet, daß Sie diesen Baustein von jedem Programm aufrufen
können. Das ist eigentlich schon alles. Dies hat natürlich nur
einen Sinn, wenn Sie nur solche Bausteine als integr. Bausteine
abspeichern, die man auch in anderen SPS- Programmen gebrauchen
kann. Ich denke da an Taktgeneratoren oder Ähnliches.
1.1.3 ABSPEICHERN
1.1.3.1 Bausteine abspeichern
In diesem Fenster können Sie einen Baustein (OB, PB, FB, SB)
abspeichern. Folgendes erscheint auf dem Bildschirm:
───────────────────────────────────────────────────────
Baustein [xxxxx]
Bausteinname [xxxxxxxx]
erstellt am [xxxxxxxxxx]
geändert am [xxxxxxxxxx]
Autor [xxxxxxxxxxxxxxxxxxxxxxx]
Beschreibung [xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx]
Umleitung auf Datei [N]
───────────────────────────────────────────────────────
Die "x"-Zeichen stehen für den jeweiligen Inhalt.
Wenn Sie einen neuen Baustein abspeichern wollen, müssen Sie auf
jeden Fall den Bausteintyp und den Bausteinnamen festlegen. Die
anderen Angaben sind nicht unbedingt notwendig aber dennoch
sinnvoll. Z.B. werden diese Informationen beim AWL-Druck als 'AWL-
Kopf' mit ausgedruckt. Die Angabe einer Beschreibung findet auch
noch Verwendung, wenn Sie in einer Anweisungsliste einen anderen
Baustein aufrufen. Dann wird nämlich diese Beschreibung als
Anweisungskommentar in Ihre Anweisungsliste mit übernommen. Diese
Angabe kann ich also wärmstens empfehlen. Bei der Angabe des
Bausteintyps geben Sie OB, PB, FB, oder SB und danach einer Nummer
zwischen 0 und 255 ein. Z.B.: PB1, FB25, SB233.
─── Seite 13 ───
MENUEPUNKT DATEI KAPITEL 1
──────────────────────────────────────────────────────────────────────────────
Datenbausteine können hier nicht abgespeichert werden. Wenn Sie
einen DB mit Hilfe des Datenbausteineditors editieren, werden Sie
beim Verlassen des Editors gefragt, ob der DB abgespeichert werden
soll.
WICHTIG: Der Bausteinname darf keine Sonderzeichen oder
Leerzeichen beinhalten.
1.1.3.2 Anweisungslisten als ASCII- Datei abspeichern
Wenn Sie die Anweisungsliste als ASCII-Datei abspeichern wollen,
dann geben Sie in der untersten Zeile 'J' ein. Nach Drücken der
[PGDN]-Taste erscheint ein Fenster, in dem Sie die gewünschten
Bausteine markieren können, die Sie exportieren wollen. Wenn Sie
keinen Baustein markieren, gilt der hervorgehobene Baustein als
markiert. Nach Drücken der [RETURN]-Taste werden die markierten
Bausteine nacheinander exportiert, und zwar in die Datei
[BAUSTEINNAME.AWL]. Welche Möglichkeiten Sie haben, um bestimmte
Bausteine zu markieren, ersehen Sie im Dialogfenster.
Nachdem der Vorgang beendet ist, erscheint ein Infofenster. Wenn
Sie gleich anschließend den Menuepunkt "INFOS/Datei lesen"
aktivieren ist die entsprechende Datei bereits vorgewählt. Drücken
Sie die [RETURN]-Taste. Jetzt können Sie die exportierte AWL
ansehen oder ausdrucken.
Die exportierte AWL kann vom Simulator nicht wieder geladen
werden. Diese Möglichkeit ist ausschließlich dafür da, daß Sie
geschriebene Anweisungslisten mit einer Textverarbeitung
weiterverarbeiten können.
1.1.4 Pfäde ändern
Im Simulator können Sie drei Pfadangaben machen:
1. Pfad für normale Anweisungslisten
2. Pfad für integrierte Bausteine
3. Pfad für Anweisungsblöcke
Wenn Sie im Editor einen Baustein aufrufen, wird im ersten und im
zweiten Pfad nach diesem Baustein gesucht, wobei im zweiten Pfad
nur nach Bausteinen mit dem Namen "@@@@@@@@" gesucht wird. So
werden nämlich integrierte Bausteine gekennzeichnet. Wenn Sie den
Menuepunkt "Bausteinhandling" anwählen werden diejenigen Bausteine
aufgelistet, die sich im ersten Pfad befinden.
Die zweite Pfadangabe ist für die integrierten Bausteine gedacht.
Wenn Sie einen Baustein unter diesen Namen abspeichern, wird er
automatisch in diesem Verzeichnis abgelegt.
─── Seite 14 ───
Menuepunkt DATEI KAPITEL 1
──────────────────────────────────────────────────────────────────────────────
Im dritten Pfad werden Anweisungsblöcke abgespeichert. Das sind
die Anweisungen, die Sie im Editor als Block markieren und
abspeichern können. Mit Hilfe dieser Blöcke können Sie z.B.
Anweisungen zu einer anderen Stelle des Programms kopieren.
Hinweis:
Wenn Sie in einem Feld keinen Pfad angeben, d.h. das Feld ist
leer, wird der Pfad auf das aktuelle Verzeichnis eingestellt. Dies
können Sie leicht kontrollieren, wenn Sie nach Verlassen dieses
Dialogfenster, das selbige nochmals aufrufen.
1.1.5 Neuer Baustein anlegen
Wenn Sie einen neuen Baustein anlegen wollen, sollten Sie dieses
Dialogfenster verwenden. Es erscheinen 3 Eingabefelder, in denen
Sie den Bausteintyp, die Bausteinnummer und den Bausteinnamen
eingeben müssen.
Hinweis zur Bausteinprogrammierung:
Wenn Sie z.B. einen OB1 mit dem Namen "ANLAGE" abgespeichert
haben, und Sie wollen jetzt einen Programmbaustein (PB29) zu
diesem OB1 eröffnen, müssen Sie diesem Baustein den gleichen Namen
geben, also auch "ANLAGE". Im ersten Eingabefeld würden Sie dann
"PB" und im zweiten Eingabefeld "29" angeben.
1.1.5.1 OB's, FB's, PB's oder SB's anlegen
Wenn Sie im ersten Eingabefeld OB, FB, PB, oder SB, im zweiten
Eingabefeld die Bausteinnummer und im dritten Eingabefeld den
Bausteinnamen eingeben, springt das Programm nach Bestätigung mit
der [PGDN]-Taste automatisch in den Editor.
1.1.5.2 DB's anlegen
Wenn Sie als Bausteintyp "DB" angeben springt das Programm nach
der Bestätigung mit der [PGDN]-Taste automatisch in den
Datenbausteineditor. Wenn Sie den Datenbaustein bearbeitet haben,
und ihn wieder mit der [ESC]-Taste verlassen, werden Sie gefragt,
ob Sie den DB abspeichern wollen. Wenn das der Fall ist, dann
drücken Sie die [RETURN]-Taste. Wenn Sie den DB nicht abspeichern
wollen, dann drücken Sie die [ESC]-Taste.
─── Seite 15 ───
Menuepunkt DATEI KAPITEL 1
──────────────────────────────────────────────────────────────────────────────
1.1.6 Programm Ende
Zu diesem Menuepunkt ist nicht viel zu sagen. Wenn Sie den SPS-
Simulator verlassen wollen, dann aktivieren Sie diesen Menuepunkt.
Falls noch ein Programm im Editor steht, das noch nicht
abgespeichert worden ist, folgt noch eine Sicherheitsabfrage.
─── Seite 16 ───
Menuepunkt EINGEBEN KAPITEL 1
──────────────────────────────────────────────────────────────────────────────
1.2. MENUEPUNKT EINGEBEN
1.2.1 Tastenbelegung des Editors.
Taste Befehl
────────────────────────────────────────────────────
Cursorsteuerung
────────────────────────
[Pfeil nach rechts] Cursorbewegungen nach rechts.
[Pfeil nach links] Cursorbewegungen nach links.
[STRG] /
[Pfeil nach rechts] Cursorsprünge wortweise nach rechts.
[STRG] /
[Pfeil nach links] Cursorsprünge wortweise nach links.
[Pfeil nach oben] Cursorbewegungen nach oben.
[Pfeil nach unten] Cursorbewegungen nach unten.
[PGDN] Vorblättern.
[PGUP] Zurückblättern.
[POS1] Der Cursor springt in die erste
Spalte.
[ENDE] Der Cursor springt in die
Kommentarspalte.
[STRG/Q] oder [STRG/+] Zum nächsten Netzwerk springen
[STRG/A] oder [STRG/-] Zum vorhergehenden Netzwerk springen
Korrekturen
────────────────────────
[EINFG] Einfügemodus EIN/AUS
[ENTF] Entfernt ein Zeichen.
[ALT/D] Marke/Anweisung oder Bemerkung
löschen
[ALT/U] Undo
[TAB] Zur nächsten Tabulatorposition
[STRG/N] Eine ganze Zeile wird eingefügt.
[STRG/Y] Eine ganze Zeile wird gelöscht.
[ALT/S] Eine bestimmte Textstelle suchen
[ALT/E] Eine bestimmte Textstelle suchen
und ändern
Blockoperationen
────────────────────────
[STRG/K][B] Blockanfang markieren
[STRG/K][K] Blockende markieren
[STRG/K][C] oder Abgespeicherten Block laden und
[STRG/K][R] kopieren
Sonderfunktionen
────────────────────────
[STRG/RETURN] Baustein wechseln
[ALT/Z] Zuweisungsliste erstellen
[F4] AWL-Zeile duplizieren
[F5] Eine AWL-Zeile kurzzeitig sichern
[F7] Information über Analogeingaben anzeigen
─── Seite 17 ───
Menuepunkt EINGEBEN KAPITEL 1
──────────────────────────────────────────────────────────────────────────────
[F6] Die mit [F5] gesicherter
AWL-Zeile wieder zurückschreiben
[F8] Eine AWL-Zeile als Kommentar kennzeichnen
oder Kommentarstatus aufheben
[F9] Netzwerk abgrenzen
[F10] Bezeichnerliste erstellen
(parametrierter FB)
Sonstige Funktionen
────────────────────────
[F1] Hilfe
[F2] Baustein abspeichern.
[F3] Anderes SPS-Programm laden
(Bausteinhandling)
[ALT/K] Kommentarinfo
[ALT/H] Zeit.-oder Zählermaske holen
[ALT/P] Anweisungsliste drucken
[ESC] Editor verlassen
Hinweis
■ Die UNDO-Funktion (ALT/U) kann nur dann eine AWL-Zeile wieder
herstellen, wenn diese noch nicht bestätigt wurde.
1.2.2 Allgemeine Eingabehinweise
Sie brauchen bei der Eingabe der Anweisungen auf keinerlei
Formation Rücksicht nehmen. D.h. Sie können die AWL-Zeile einfach
eintippen, ohne Leerzeichen. Wenn die Operation bekannt ist, wird
die Zeile automatisch angeordnet (formatiert). Wenn Sie bei der
Eingabe einen Fehler gemacht haben, erscheint ein Fenster mit
einer entsprechenden Meldung. Nachdem Sie die Fehlermeldung mit
einer beliebigen Taste zur Kenntnis genommen haben, wird die
eingegebene AWL- Zeile als Kommentar gekennzeichnet. Sie können
jetzt den Fehler korrigieren. Drücken Sie nun die [F8]-Taste um
den Kommentarstatus wieder zu entfernen. Die Anweisung wird nach
Drücken der [RETURN]-Taste wieder kontrolliert, und, wenn sie
richtig ist, wird die Anweisung übernommen.
Nochmals:
Wenn Sie einen Fehler bei der Eingabe machen, wird die eingegebene
AWL- Zeile als Kommentar gekennzeichnet. Wenn Sie den Fehler nicht
beheben, wird die AWL-Zeile als Kommentar behandelt, und wird bei
der Simulation nicht berücksichtigt. Kommentarzeilen werden durch
einen inversen Doppelpunkt gekennzeichnet. Bei EGA/VGA-Karten
haben Kommentare sogar eine eigene Farbe.
Der Editor stellt Ihnen viele hilfreiche Werkzeuge zur Verfügung,
die Sie unbedingt einmal ausprobieren müssen. Sehr oft kann man
die [F4]-Taste gebrauchen. Wenn diese Taste gedrückt wird, wird
die vorhergehende AWL-Zeile dupliziert.
─── Seite 18 ───
Menuepunkt EINGEBEN KAPITEL 1
──────────────────────────────────────────────────────────────────────────────
Wenn Sie z.B. mehrere UND-Verknüpfung hintereinander
programmieren, sind Sie um einiges schneller, wenn Sie die AWL-
Zeile zuerst duplizieren und dann die Operanden oder Parameter
verändern. Am Besten Sie sehen sich die Tastenbelegung an, und
probieren einfach mal alle Tastenbelegungen aus.
Als letzte Anweisung muß immer "BE" (Bausteinende) eingegeben
werden. Das Programm springt dann automatisch in die Menueleiste
zurück.
1.2.3 Eingeben von Kommentaren
Sie können zwei Arten von Kommentaren erzeugen:
1. Kommentare über die ganze Zeile.
Drücken Sie einmal die [F8]- Taste. Der Doppelpunkt vor der Zeile
wird nun invers dargestellt. D.h. die ganze Zeile wird jetzt als
Kommentar betrachtet. Wenn Sie nochmals die [F8]-Taste drücken,
wird die Zeile wieder als Operation betrachtet. Ganzzeilige
Kommentare sollten Sie nur vor und nach einem Netzwerk plazieren,
denn sonst kann es passieren, daß der Funktionsplan nicht mehr
richtig aufgebaut werden kann. Ganzzeilige Kommentare sind dafür
gedacht, um das geschriebene Programm in der Anweisungsliste zu
beschreiben. Wenn Sie dafür die ersten paar Zeilen benutzen,
wissen Sie sofort, wenn Sie im Menuepunkt "Bausteinhandling" die
Vorschau aktivieren, um welches Programm es sich handelt.
Beim Ausdruck einer Anweisungsliste mit ganzzeiligen Kommentaren
wird anstatt des den inversen Doppelpunkts das Zeichen '#'
gedruckt.
2. Kurzkommentare.
Diese Kommentare stehen in der gleichen Zeile wie die Operation.
Kurzkommentare sollten dafür benutzt werden, um die geschriebene
Operation zu kommentieren. Wollen Sie einen solchen Kommentar
eingeben, dann drücken Sie die [ENDE]-Taste. Der Cursor wird nun
auf die richtige Position gesetzt. Nun können Sie einen Kommentar
eingeben. Mit Hilfe der Zuweisungsliste können diese Kommentare
auch automatisch erzeugt werden. Lesen Sie dazu den Abschnitt
"Automatische Kommentarerzeugung mit Hilfe der Zuweisungsliste".
─── Seite 19 ───
Menuepunkt EINGEBEN KAPITEL 1
─────────────────────────────────────────────────────────────────────────────
1.2.4 Arbeiten mit Blöcken
Mit Hilfe von Blöcken können Sie Teile von Anweisungslisten
schnell und einfach kopieren, und auch ganze Anweisungslisten
unter einem bestimmten Namen als Block abspeichern. Diese Blöcke
können dann von jedem anderen Programm wieder geladen werden. Sie
könnten sich AWL-Zeilen, die Sie oft benötigen, unter einem Block
abspeichern und dann bei Bedarf einfach in die aktuelle AWL
einfügen.
1.2.4.1 Wie erstelle ich einen Block ?
Markieren Sie den Blockanfang mit der Tastenkombination
[STRG/K]/[B]. In Worten: Drücken Sie gleichzeitig die [STRG]- und
[K]- Taste. Jetzt beide Tasten wieder loslassen, und dann die
[B]-Taste drücken. Im oberen Bereich des Bildschirms wird
angezeigt, daß Sie einen Blockanfang markiert haben. Bestimmen Sie
nun mit dem Cursor die Blockhöhe. Anschließend können Sie mit
Hilfe der Tastenkombination [STRG/K]/[K] den Block abschließen.
Wieder in Worten ausgedrückt: Drücken Sie gleichzeitig die [STRG]-
und [K]- Taste. Jetzt beide Tasten wieder loslassen, und dann die
[K]-Taste drücken. Wenn Sie die richtigen Tasten gedrückt haben
erscheint ein Fenster, in dem Sie einen Namen für den Block
eingeben müssen. Wenn Sie noch keinen Block abgespeichert haben
erscheint im Eingabefeld eine Vorgabe, nämlich "TEMP". Wenn Sie
einen Block nur kurzzeitig brauchen, sollten Sie immer diesen
Namen angeben, da sich sonst zu viele Blöcke auf der Festplatte
ansammeln. Nachdem Sie die Eingabe mit der [RETURN]-Taste
bestätigt haben, wird der Block in das eingestellte Verzeichnis
für Blöcke abgespeichert.
1.2.4.2 Wie hole ich den erstellten Block wieder zurück ?
Einen abgespeicherten Block können Sie mit der Tastenkombination
[STRG/K]/[C] oder [STRG/K]/[R] zurückholen. Nach einer dieser
Tastenkombination erscheint eine Auswahlbox, in dem alle
abgespeicherten Blöcke aufgelistet werden. Die Auswahlbox kann
maximal 200 Blöcke aufnehmen. Wollen Sie nun z.B. dem Block "TEMP"
laden, können Sie einfach [T] drücken (den ersten Buchstaben des
Blockes). Die Auswahlbox sucht jetzt nach einem Block mit dem
Anfangsbuchstaben "T". Ist nur ein Block mit diesem Buchstaben
vorhanden, wird er sofort gefunden und markiert. Wenn Sie jetzt
die [RETURN]-Taste drücken, wird der Block geladen und bei der
aktuellen Cursor-Position in die AWL eingefügt.
Hinweis:
Wollen Sie einen Block von der Festplatte wieder löschen, müssen
Sie das von der MS DOS-Ebene aus tun.
─── Seite 20 ───
Menuepunkt EINGEBEN KAPITEL 1
──────────────────────────────────────────────────────────────────────────────
1.2.5 Erstellung einer Zuweisungsliste
Wenn Sie schon mal mit einem Simulator gearbeitet haben, kennen
Sie sicherlich folgendes Problem: Sie haben ein Programm
vollständig eingegeben und wollen es jetzt simulieren. Nachdem Sie
einige Eingänge umgeschaltet haben, blinkt ein Ausgang, andere
Ausgänge führen Signalzustand '1', andere wiederum nicht. Sie
wissen auf den ersten Blick (und auch auf den zweiten Blick)
nicht, ob Ihr Programm das tun, was es tun soll.
Sie müssen zuerst nachschauen welche Bedeutung die einzelnen
Operanden haben. Sie wenden also Ihren Blick zur Zuweisungsliste
und vergleichen dann die Operanden. Jetzt habe ich mir überlegt,
wenn man eine Zuweisungsliste erstellen könnte, in der gleich die
Zustände der Operanden angezeigt würden, könnte man viel Zeit bei
der Überprüfung des SPS-Programms einsparen. Genau das kann der
Simulator: Der Simulator bietet Ihnen die Möglichkeit eine
Zuweisungsliste mit in die AWL-Simulation zu integrieren. Die
Zuweisungsliste wird am Anfang von einem beliebigen Baustein
erstellt - also mit Hilfe des Editors. Die Zuweisungsliste ist auf
300 Eintragungen begrenzt. Die Zuweisungsliste muß folgende Form
haben:
. . .
. . .
0005 :-E0.0 :ANLAGE AUS (OEFFNER)
0006 :-E0.1 :ANLAGE EIN
0007 :-E0.2 :MOTOR TIPPEN
0008 :-E1.1 :PLATZ 1 IST FERTIG
0009 :-E1.2 :PLATZ 2 IST FERTIG
0010 :-E1.3 :PLATZ 3 IST FERTIG
0011 :-E1.4 :ENDMONTAGEPLATZ FREI
0012 :-A4.1 :STEUERUNG IST EIN
0013 :-A5.0 :ANZEIGE PLATZ 1 FERTIGMELDUNG
0014 :-A5.1 :ANZEIGE PLATZ 2 FERTIGMELDUNG
. . .
. . .
Drücken Sie zuerst die [F8]-Taste, damit die AWL-Zeile als
Kommentar betrachtet wird. Als erstes Zeichen steht ein
Minuszeichen, danach steht der Operand. Sie dürfen hier keine
Leerzeichen eingeben. Drücken Sie nun die [TAB]-Taste. Der Cursor
wird dadurch auf die nächste Tabulatorposition gesetzt. Geben Sie
nun einen Doppelpunkt und anschließend einen passenden Kommentar
ein. Der Kommentar sollte nicht länger als 30 Zeichen sein, da
dieser Kommentar in der Anweisungsliste als Kurzkommentar
übernommen werden kann. Damit die Abstände und somit die
Zuweisungsliste bei allen SPS- Programmen gleich aussieht, habe
ich die Erstellung der Zuweisungsliste "automatisiert". Drücken
Sie die gleichzeitig die Tasten [ALT/Z]. Es erscheint ein
Abfragefenster, in dem Sie den Operanden eingeben müssen. Geben
Sie z.B. "E3.3" ein.
─── Seite 21 ───
Menuepunkt EINGEBEN KAPITEL 1
──────────────────────────────────────────────────────────────────────────────
Nach der Bestätigung mit der [RETURN]-Taste erscheint ein zweites
Fenster, in dem Sie einen passenden Kommentar eingeben müssen.
Nach Bestätigung folgt nun ein Eintrag in die Zuweisungsliste mit
sinnvollen Abständen zwischen Operand und Kommentar. Wenn Sie alle
Zuweisungen eingebeben haben, beenden Sie den Vorgang mit der
[ESC]-Taste. Der Eintrag in die Zuweisungsliste erfolgt immer
dort, wo der Cursor steht. Wollen Sie einen bestehenden Eintrag
ändern, können Sie demnach dort den Cursor plazieren, und dann
wieder die angegebene Tastenkombination drücken.
Das Programm erkennt, daß an dieser Stelle schon ein Eintrag
steht, und fragt Sie, ob Sie den Eintrag überschreiben wollen,
oder ob Sie einen zusätzlichen Eintrag einfügen wollen. Haben Sie
die Zuweisungsliste erstellt, können Sie den Editor mit der
[ESC]-Taste verlassen und dann mit der [F9]-Taste die AWL-
Simulation aktivieren. Jetzt können Sie in der Zuweisungsliste
sehen, welche Operanden HIGH oder LOW sind. Es können nur binäre
Zustände in der Zuweisungsliste angezeigt werden. Eine Anzeige von
MB's oder DW's ist nicht möglich. Da müßten Sie dann die
allgemeine Statusanzeige benützen. Sie können also als Operanden
E,A,M,Z oder T angeben.
1.2.6 Automatische Kommentarerzeugung mit Hilfe der
Zuweisungsliste.
Haben Sie eine Zuweisungsliste erstellt, wird sie auch dazu
verwendet um die geschriebene Anweisungsliste zu kommentieren.
Wenn Sie z.B. ein Operand in einer Operation verwenden, der in der
Zuweisungsliste steht, wird der Kommentar, den Sie in der
Zuweisungsliste angegeben haben, als Kurzkommentar in die AWL
übernommen. Vorausgesetzung ist aber, daß dort noch kein Kommentar
steht. Besser gesagt, es wird überprüft, ob in der ersten
Kommentarspalte (das ist die Cursorposition, die mit der
[ENDE]-Taste erreicht wird) ein Leerzeichen steht. Ist das der
Fall wird der Zuweisungs- Kommentar eingefügt. Auf diese Weise
können Sie auch einen eigenen Kurzkommentar schreiben oder den
vorhandenen ergänzen. Wenn Sie möchten, daß der
Zuweisungskommentar einen vorhandenen Kurzkommentar überschreibt,
können Sie die Tasten [ALT/Q] drücken. Mit den Tasten [ALZ/K]
können Sie nachsehen, wieviele Zuweisungskommentare Sie schon
eingegeben haben.
Wichtiger Hinweis:
Wenn Sie ein neues Programm laden, in dem Sie eine Zuweisungsliste
eingegeben haben, müssen Sie den Baustein, in dem die
Zuweisungsliste steht, einmal in den Editor holen, damit die
Kommentare in der Zuweisungsliste im RAM-Speicher abgelegt werden.
─── Seite 22 ───
Menuepunkt EINGEBEN KAPITEL 1
──────────────────────────────────────────────────────────────────────────────
1.2.7 Erstellung einer BEZeichnerliste
Mit diesem Simulator können Sie auch parametrierte FB's
simulieren. Wenn Sie einen parametrierten FB programmieren
möchten, müssen Sie zuerst die Parameter festlegen, die beim
Aufruf übergeben werden. Hier zunächst ein Beispiel, wie ein
parametrierter FB aussehen könnte:
0001 NAME:TAKTGENERATOR
0002 BEZ :STAR E BI
0003 BEZ :T1 T
0004 BEZ :T2 T
0005 BEZ :TIME D KT
0006 BEZ :AUS A BI
0007 :U = STAR
0008 :UN = T2
0009 :LW = TIME
0010 :SE = T1
0011 :U = T1
0012 :LW = TIME
0013 :SE = T2
0014 :U = T1
0015 := = AUS
0015 :BE
Ein parametrierter FB beginnt immer mit dem Label "NAME", danach
kommt eine Beschreibung des FB's. Jetzt folgt die Parameterliste
oder Bezeichnerliste. Eine Parameterdefinition muß immer das Label
"BEZ" haben. Um diese Definitionen etwas zu vereinfachen, habe ich
diesen Vorgang "automatisiert". Probieren Sie mal die obige AWL
abzutippen: Drücken Sie die [F10]-Taste. Als Erstes erscheint ein
Fenster, in dem Sie eine Beschreibung des FB's angeben müssen.
Geben Sie hier z.B. "TAKTGENERATOR" ein. Danach folgt die
eigentliche BEZ-Liste: Im nächsten Fenster müssen Sie den
Formaloperanden eingeben, wobei dieser maximal 4 Zeichen lang sein
darf. Geben Sie hier z.B. "STAR" ein. Dies sollte eigentlich
"START" heißen, da aber nur 4 Zeichen erlaubt sind, heißt es
"STAR". Nach der Bestätigung mit der [RETURN]-Taste, müssen Sie
den Typ des Operanden eingeben. Geben Sie hier z.B. "E" ein. Im
darauffolgenden Fenster muß die Parameterart angegeben werden,
hier können Sie z.B. "BI" eingeben. Jetzt haben Sie alle Eingaben
für einen BEZ-Eintrag gemacht. Wenn Sie die Eingaben bestätigen,
wird der BEZ-Eintrag in die AWL eingefügt. Danach werden Sie
gefragt, ob Sie nochmals einen Eintrag einfügen wollen. Wenn Sie
dies bejahen, geht das ganze Spiel nochmals von vorne los.
Auf diese Weise können Sie auch bestehende BEZ-Listen ändern.
Bewegen Sie einfach den Cursor auf die Stelle, die Sie ändern
wollen, und drücken Sie die [F10]-Taste. Wenn Sie alle Eingaben
gemacht haben, merkt das Programm, daß an dieser Stelle schon ein
Eintrag steht, und es frägt nach, ob Sie diesen Eintrag
überschreiben wollen, oder ob ein neuer Eintrag an dieser Stelle
eingefügt werden soll.
Ausführlichere Informationen über parametrierbare FB's finden Sie
im Kapitel 4.
─── Seite 23 ───
Menuepunkt EINGEBEN KAPITEL 1
──────────────────────────────────────────────────────────────────────────────
1.2.8 Die Suchen-Funktion
Wenn Sie ein größeres Programm geschrieben haben, und Sie wollen
nach einer bestimmten Operation suchen , kann das manchmal ganz
schön in Arbeit ausarten. Der Simulator nimmt Ihnen diese Arbeit
ab. Drücken Sie im Editor die Tastenkombination [ALT/S]. Es wird
nun ein Fenster geöffnet, in dem Sie eine Operation eingeben
können.
Nachdem Sie die Operation eingegeben haben, können Sie noch
festlegen, ob von Anfang an, oder ab der Cursorposition gesucht
werden soll. Geben Sie im entsprechenden Eingabefeld entweder 'J'
oder 'N' an.
Im letzten Eingabefeld können Sie festlegen, ob Sie nur im
aktuellen Bautsein suchen möchten, oder in mehreren (globale
Suche). Wenn Sie die globale Suche aktivieren ('J' angeben),
erscheint ein Dialogfenster, indem Sie die gewünschten Bausteine
markieren können. Wenn Sie in allen Bausteinen suchen möchten
drücken Sie [ALT/A]. Dadurch werden alle Bausteine markiert. Wenn
Sie nun die [RETURN]-Taste drücken, wird die Suche gestartet.
Wenn Sie nach einem Label oder nach einer Marke suchen möchten,
müssen Sie den Doppelpunkt nach der Marke ebenfalls eingeben. Wenn
Sie z.B. nach der Marke "M1" suchen müssen Sie folgendes eingeben:
"M1 :". Beachten Sie dabei, daß die Leerzeichen auch eingegeben
werden müssen.
Suchen nach Netzwerken:
Wenn Sie nach Netzwerke suchen wollen, geben Sie folgenden
Suchstring ein: "NWXXX". (Ohne Eingabe von Leerzeichen). Für die
letzten drei Buchstaben ("X") steht die Netzwerknummer. Dabei
müssen Sie beachten, daß diese immer dreistellig angegeben werden
muß. Wenn Sie also Netzwerk 9 suchen, müssen Sie "NW009" eingeben.
Hinweis:
Die Suchfunktion funktioniert nur bei Operationen und Netzwerke,
nicht bei Kommentaren.
1.2.9 Die Suchen-und-Ersetzen-Funktion
Mit dieser Funktion haben Sie die Möglichkeit, eine beliebige
Operation zu suchen und anschließend zu ändern. Durch die
Abänderung der AWL kann es aber zu Fehler kommen. Wenn Sie z.B.
als Suchtext '0.0' und als neuer Text '222.2' eingeben kommt es
bei der Änderung 'E 0.0' zu 'E 222.2' zu einem Fehler
(Bereichsüberschreitung). Deshalb wird vor jeder Änderung
überprüft, ob diese überhaupt zulässig ist. Wird ein Fehler
entdeckt, wird diese Zeile auf keinen Fall geändert.
─── Seite 24 ───
Menuepunkt EINGEBEN KAPITEL 1
──────────────────────────────────────────────────────────────────────────────
Sie können dann entscheiden ob weitergemacht, oder ob abgebrochen
werden soll. Durch die "Suchen und Ersetzen"- Funktion können also
keine syntaktische Fehler entstehen. Nachdem Sie die Operation
eingegeben haben, können Sie auch hier festlegen, ob von Anfang
an, oder ob ab der Cursorposition gesucht werden soll. Außerdem
können Sie festlegen, ob vor jeder Änderung zurückgefragt werden
soll. Geben Sie einfach bei den entsprechenden Eingabefeldern ein
'J' oder ein 'N' ein. Auch hier haben Sie die Möglichkeit, wie bei
der Suchen-Funktion, nur den aktuellen oder mehrere Baustein zu
bearbeiten. Wenn Sie im letzten Eingabefeld die globale Suche
aktivieren erscheint, wie bei der "Suchen"-Funktion, ein
Dialogfenster, indem Sie die gewünschten Bausteine markieren
können.
Hinweis:
Die Suchfunktion sucht nur nach Operationen, nicht nach
Kommentaren. Wenn Sie nach Marken oder Labels suchen, müssen Sie
einiges beachten. Lesen dazu den Hinweis bei "Die Suchen-
Funktion".
1.2.10 Netzwerke
Mit der [F9]-Taste ist es im Editor möglich, die AWL in einzelne
Netzwerke zu unterteilen. Die einzelnen Netzwerke können aber
nicht getrennt editiert werden. Sie sollen nur helfen, einzelne
Funktionen in der AWL optisch zu trennen. Alternativ zur
[F9]-Taste können Sie auch im Editor drei "***"-Zeichen eintippen
und anschließend die [RETURN]-Taste drücken. Es wird nun der Text
"NETZWERK ???" in die AWL eingefügt. Die drei Fragezeichen stehen
für die Netzwerknummer, die erst eingestellt wird, wenn Sie den
Editor wieder verlassen.
Wenn Ihr System eine EGA/-oder VGA- Karte besitzt, werden die
Netzwerke in einer besonderen Farbe dargestellt. Wenn Sie mehrere
Netzwerke in Ihrem SPS-Programm haben, können Sie mit den
Tastenkombinationen [STRG/Q] und [Strg/A] zum nächsten bzw.
vorhergehenden Netzwerk springen.
Zu jedem Netzwerk können Sie einen Netzwerkkommentar vergeben.
Bewegen Sie den Cursor hinter die Netzwerknummer oder hinter die
drei Fragezeichen, und geben Sie den Kommentar ein. Wenn Sie nun
die [Return]-Taste betätigen, wird der Kommentar in die richtige
Spalte verschoben. Wenn Sie in der Datei "SPS.CFG" den Schalter
(ON/OFF) 'Ganzzeilige Kommentare erlauben' einschalten, wird der
Netzwerk- Text auch im FUP dargestellt. Im FUP können auch mehrere
Netzwerke zur gleichen Zeit auf dem Bildschirm dargestellt werden,
vorausgesetzt sie sind klein genug.
─── Seite 25 ───
Menuepunkt EINGEBEN KAPITEL 1
──────────────────────────────────────────────────────────────────────────────
1.2.11 Fehlermeldungen bei der AWL-Eingabe
Wenn Sie bei der Eingabe einen Fehler machen, z.B. eine unbekannte
Operation, oder falsche Parameter eingeben, erscheint eine
entsprechende Fehlermeldung. Nachdem Sie die Fehlermeldung zur
Kenntnis genommen haben, und eine beliebige Taste gedrückt haben,
wird die eingegebene AWL-Zeile als Kommentar gekennzeichnet. Diese
Kennzeichnung erkennen Sie zum einen durch einen inversen
Doppelpunkt und zum anderen an der Kommentarfarbe. Wenn Ihr System
mit einer EGA/- oder VGA- Karte ausgestattet ist, werden nämlich
Kommentare mit einer besonderen Farbe dargestellt. Sie können nun
die fehlerhafte AWL-Zeile korrigieren. Danach drücken Sie die
[F8]-Taste um den Kommentarstatus wieder aufzuheben. Wenn Ihre
Eingabe jetzt korrekt ist, wird die Anweisung formatiert (d.h. Sie
wird auf dem Bildschirm ausgerichtet).
Ich muß nochmals betonen: Wenn Sie eine fehlerhafte AWL-Zeile
nicht korrigieren wird diese in der AWL-Simulation nicht
bearbeitet, da das Proramm davon ausgeht, daß die betreffende AWL-
Zeile ein Kommentar ist.
Auf die Auflistung der möglichen Fehlermeldungen will ich hier
verzichten, da Sie alle selbsterklärend sind, wenn diese
auftauchen.
1.3. MENUEPUNKT SIMULATION
1.3.1 Einleitung
Während der AWL-Simulation haben Sie folgende Möglichkeiten:
■ Eingänge oder Operanden umschalten
■ Sie können sich jeden Operanden in allen verfügbaren
Anzeigeformaten anzeigen lassen (Steuerbefehl "$S")
■ Anzeige von Akku-Inhalten, VKE's, Anzeige-Bits in jeder
AWL-Zeile
■ Superschneller Wechsel zu anderen Bausteinen.
■ Aktivierung des DB-Editors, der während der Simulation
zyklisch aktualisiert wird.
─── Seite 26 ───
Menuepunkt Simulation / AWL-Simulation KAPITEL 1
──────────────────────────────────────────────────────────────────────────────
1.3.2 Tastenbelegung während der AWL-Simulation.
Taste Befehl
────────────────────────────────────────────────────
Verfügbare Anzeigen
────────────────────────
[V] VKE Anzeige
[H] Akkuanzeige im Hexadezimalsystem
[F] Akkuanzeige in Festpunktzahlen
[W] Akkuanzeige in Word-Zahlen
[M] Akkuanzeige im Dualsystem
[S] Allgemeine Statusanzeige
[A] Anzeige Bits
[Z] oder [C] Zähler-Istwert-Anzeige (Z0-Z14)
[T] Timer-Istwert-Anzeige (T0-T14)
[F6] alle Anzeigen ein- und ausschalten
AWL-Steuerung
────────────────────────
[STRG/RETURN] Bausteinwechsel
[TAB] Eingangsleiste verschieben
[Shift-TAB] Eingangsleiste verschieben
[Pfeil nach rechts] /
[Pfeil nach links] Anwählen eines Eingangsbytes
[0] bis [7] Umschalten von Eingängen
[ALT/O] Umschalten von Operanden
[F1] Hilfe
[PGDN] Seitenweise vorblättern
[PGUP] Seitenweise zurückblättern
[Pfeil nach oben] eine Zeile zurück
[Pfeil nach unten] eine Zeile vor
[ALZ/Q] oder [STRG/+] Zum nächsten Netzwerk springen
[ALT/A] oder [STRG/-] Zum vorhergehenden Netzwerk springen
[SPACE] alle Eingänge zurücksetzen
[+] Simulation beschleunigen
[-] Simulation verlangsamen
[STRG/P] oder
[ALT/RETURN] PAE/PAA- Anzeige einstellen
[F9], [F10] AnalogRaster erhöhen, erniedrigen
[ESC] Simulation beenden
Steuern von Analogeingaben siehe Seite 88.
Hinweis:
Die Tastenkombination [ALT/P] oder [ALT/RETURN] stellt die
PAE/PAA- Anzeige wieder auf die eingestellten Werte, wenn Sie
vorher diese Anzeige durch die [TAB]- Taste verschoben haben.
─── Seite 27 ───
Menuepunkt Simulation / AWL-Simulation KAPITEL 1
──────────────────────────────────────────────────────────────────────────────
1.3.3 Umschalten der Eingänge.
Mit dem Simulator können bis zu ! 1024 ! Eingänge simuliert
werden. Mit der [TAB] oder [SHIFT/TAB] -Taste erreichen Sie die
einzelnen Eingangsbytes 0 bis 127. Mit der [Pfeil nach links]- und
[Pfeil nach rechts]- Taste wählen Sie ein bestimmtes Eingangsbyte
aus. Das momentan aktive Eingangsbyte wird optisch hervorgehoben.
Nun können Sie mit den Tasten [0] bis [7] das gewünschte
Eingangsbit umschalten oder betätigen. Eingänge können sogar als
Taster oder Schalter definiert werden. Lesen Sie dazu das Kapitel
"SPS-Steuerbefehle".
Sie kennen jetzt eine Möglichkeit die Eingänge umzuschalten. Es
gibt noch eine zweite Möglichkeit, wobei aber nur die
Eingangsbytes 0 bis 7 erreicht werden können:
Drücken Sie gleichzeitig die [ALT]-Taste und eine Ziffer zwischen
0 und 7. Dabei entspricht die Ziffer dem gewünschten Eingangsbyte.
Drücken Sie nun nochmals eine Ziffer zwischen 0 und 7, wobei diese
nun das jeweilige Eingangsbit darstellt. Um z.B. den Eingang 0.0
umzuschalten drücken Sie zuerst gleichzeitig [ALT/0] und dann
anschließend [0].
Hinweis:
Nachdem das gewünschte Eingangsbyte eingegeben wurde, wartet das
Programm auf die Eingabe des Eingangsbits. D.h. die Simulation
wird angehalten. Sie sollten also diese Tastenkombination zügig
eingeben.
1.3.4 "Steuern Variable"- Funktion
Über die Tastenkombination [ALT/O] können Sie während der
AWL- oder FUP-Simulation Bit- Byte- oder Wortoperanden auf einen
bestimmten Wert setzen.
Nach Drücken dieser Tastenkombination erscheint ein Dialogfenster.
Sie können nun einen Operanden mit einem "Sollwert" angeben.
Beispiele:
MB3=KF30
A4.4=1
M4.7=1
D50.15=1
DW10=KH FFFF
MW=KM0000000011111111
Sie sehen an den Beispielen, daß Sie die Operanden bit-, byte
oder wortweise manipulieren können !!
─── Seite 28 ───
Menuepunkt Simulation / AWL-Simulation KAPITEL 1
──────────────────────────────────────────────────────────────────────────────
Sie können maximal 7 Operanden gleichzeitig angeben.
Nach Drücken der [PGDN] bzw. [Bild nach unten]- Taste
werden die angegebenen Operanden auf die angegebenen
Werte gesetzt.
Wenn Sie danach dieses Dialogfenster wieder öffnen,
stehen die Operanden noch immer in den Zeilen.
Der "Sollwert" ist aber nicht mehr eingetragen.
Nach dem Operanden steht nur noch das Gleichheitszeichen.
Nach diesem Zeichen können Sie nun wieder Ihren gewünschten
"Sollwert" eingeben.
Hinweise:
■ Wenn Sie Eingänge einen bestimmten Wert zuweisen,
haben die betreffenden Eingänge nur innerhalb eines Zyklus
den eingestellten Wert, da nach BE im OB1 das PAE wieder
aktualisiert wird.
■ Wenn Sie Operanden einen neuen Wert zuweisen, die innerhalb
des Zyklus sofort wieder manipuliert werden, werden die
gemachten Änderungen keine Wirkung zeigen.
1.3.5 Hinweise zur AWL-Simulation
■ Werden in der Anweisungsliste Anweisungen übersprungen (z.B. bei
Sprungbefehlen/BEA/BEB), dann werden diese Anweisungen mit
kleinen Blöcken (■ = ASCII 254) markiert.
■ Die Akkuanzeige im Dezimalsystem (Festpunktzahl) betrachtet den
Akkuinhalt als vorzeichenbehaftete Dezimalzahl. Wenn die
Festpunktzahl negativ ist (Bit 16 ist "1"), wird die Zahl mit
Hilfe des Zweierkomplements dargestellt. Dadurch ergibt sich ein
Zahlenbereich von -32768 ... +32767
■ Die Akkuanzeige im Dezimalsystem (Word-Zahlen) betrachtet den
Akkuinhalt als vorzeichenlose 16-Bit-Zahl (0 ... 65535).
■ Die Akkuanzeige im Dualsystem gibt den Akkuinhalt als Bitmuster
zurück. Das linke Byte ist das High-Byte und das rechte Byte ist
das Low-Byte.
■ Mit Hilfe der allgemeinen Statusanzeige können Sie sich
zusätzlich jeden gewünschten Operanden anzeigen lassen
■ Werden mit Hilfe der allgemeinen Statusanzeige Datenwörter
angezeigt, wird der aktuelle Datenbaustein in der 8. Zeile von
oben, ganz rechts angezeigt. Die angezeigten Datenwörter stammen
immer von dem Datenbaustein, der kurz vor der "BE"- Anweisung
des OB1 aktiv ist. Wollen Sie also Datenwörter von einem
bestimmten Datenbaustein anzeigen, müssen Sie diesen DB in der
vorletzten AWL-Zeile im OB1 aufrufen (A DB xxx).
─── Seite 29 ───
Menuepunkt SIMULATION / AWL-Debugging KAPITEL 1
──────────────────────────────────────────────────────────────────────────────
1.4. AWL-Debugging.
Mit diesem Simulationsmodus können Sie die Anweisungsliste Schritt
für Schritt simulieren. Sie können die verschiedenen Anzeigen wie
in der normalen Simulation umschalten. Nach jedem Schritt
([Return]-Taste) werden alle Statusanzeigen und Zeiten
aktualisiert.
1.4.1 Tastenbelegung im Debug Modus
Taste Befehl
────────────────────────────────────────────────────
Verfügbare Anzeigen
────────────────────────
[V] VKE Anzeige
[H] Akkuanzeige im Hexadezimalsystem
[F] Akkuanzeige in Festpunktzahlen
[W] Akkuanzeige in Word-Zahlen
[M] Akkuanzeige im Dualsystem
[S] Allgemeine Statusanzeige
[A] Anzeige Bits
[Z] oder [C] Zähler-Istwert-Anzeige (Z0-Z14)
[T] Timer-Istwert-Anzeige (T0-T14)
[ALT/A] alle Anzeigen ausschalten
[ALT/E] alle Anzeigen einschalten
AWL-DEBUG-Steuerung
────────────────────────
[Pfeil n rechts] bzw.
[Pfeil n. links] Anwählen eines Eingangsbytes
[0] bis [7] Umschalten von Eingängen
[ALT/O] Umschalten von Operanden
[F1] Hilfe
[Return] Anweisung bearbeiten
[Space] Alle Eingänge zurücksetzen
[Pfeil nach oben] Anweisungen nach unten verschieben
[Pfeil nach unten] Anweisungen nach oben verschieben
[F9], [F10] AnalogRaster erhöhen, erniedrigen
[ESC] Simulation beenden
Steuern von Analogeingaben siehe Seite 88.
Hinweise:
■ Wenn Sie in Ihrem Programm Bausteinaufrufe programmiert haben,
können diese nicht schrittweise simuliert werden. Diese
Bausteine werden auf einmal durchgearbeitet.
■ Eingänge, die als Taster definiert wurden, können nicht
simuliert werden.
─── Seite 30 ───
Menuepunkt SIMULATION / FUP-SIMULATION KAPITEL 1
──────────────────────────────────────────────────────────────────────────────
1.5 FUP-SIMULATION
1.5.1 Einleitung
Wenn Sie die FUP-Simulation aktivieren, wird zuerst Ihr
geschriebenes Programm in einen Funktionsplan umgewandelt.
Voraussetzung für eine korrekte Umwandlung ist aber, daß Sie bei
der Programmierung einige Regeln beachtet haben, die in den
folgenden Abschnitten erläutert werden. Die wichtigste
Voraussetzung ist, daß Sie Zeiten, Zähler und Speicher richtig
belegt haben bzw. die "NOP's" richtig gesetzt haben.
Wenn Ihnen der Bildschirmausschnitt zu klein ist, können Sie die
Eingangs.- Ausgangsleiste ausblenden, oder besser, einen
hochauflösenden Textmodus wählen. Letzteres geht aber nur, wenn
Sie eine VGA-Karte besitzen.
Lesen Sie dazu den Abschnitt "Einstellen der Videomodi".
1.5.2 Allgemeine Regeln für die Programmierung von Zeiten,
Zähler und Speicher.
Zeiten, Zähler und Speicher sind im Funktionsplan sogenannte
komplexe Glieder mit mehreren verschiedenen Eingängen und
Ausgängen. Diese Belegungen müssen in der Anweisungsliste in einer
bestimmten Reihenfolge programmiert werden, die Sie immer
einhalten müssen. Es gibt zwei Ausnahmen: Bei Zähler können Sie
natürlich die Reihenfolge des "ZV"- und "ZR"-Eingang fei wählen.
Auch bei Speicher können Sie die Reihenfolge des Setz.- und
Rücksetzeinganges frei wählen (Setz.- oder Rücksetzdominanz).
Werden bestimmte Belegungen nicht benötigt, müssen diese mit
jeweils einem "NOP 0" belegt werden. Die Operation "NOP 0" dient
hier nur als Platzhalter, damit der Simulator die Anweisungsliste
in einen Funktionsplan umwandeln kann. Zwischen den Belegungen
dürfen sich keine Leerzeilen oder ganzzeilige Kommentare befinden.
Bitte beachten Sie folgende Einschränkungen:
Bei Zeiten kann der Rücksetzeingang mit nur einem Operand belegt
werden. Sie können also nicht zwei oder mehrere Operanden
miteinander verknüpfen, und dann das Verknüpfungsergebis als
Rücksetzsignal benutzen. Das gleiche trifft sinngemäß auf Zähler
bei dem Setz.- und Rücksetzeingang zu. Diese Einschränkung gilt
nur dann, wenn Sie das geschriebene SPS-Programm in einen
Funktionsplan umwandeln möchten.
─── Seite 31 ───
Menuepunkt SIMULATION / FUP-SIMULATION KAPITEL 1
──────────────────────────────────────────────────────────────────────────────
1.5.3 Programmierung von Zeiten
Ein Timer besitzt folgende Ein.- und Ausgänge:
■ Starteingang (wird beim Aufruf einer Zeit belegt)
■ Rücksetzeingang
■ Ausgang DUAL (DU)
■ Ausgang BCD (DE)
■ Ausgang Binär
Der Starteingang wird automatisch belegt wenn Sie eine Zeit
aufrufen (z.B. SE T 0). Die anderen Ausgänge müssen mit einem
"NOP 0" versorgt werden, wenn diese nicht benutzt werden.
Ein voll belegter Timer könnte folgendermaßen aussehen:
0001 :U E 0.0
0002 :L KT 200.0
0003 :SE T 0 ANZUGVERZÖGERT
0004 :U E 0.1
0005 :R T 0 RÜCKSETZ-EINGANG
0006 :L T 0 AUSGANG DUAL
0007 :T MW 200
0008 :LC T 0 AUSGANG BCD
0009 :T MW 202
0010 :U T 0 ZUWEISUNG
0011 := A 0.0
0012 :BE
Der zugehörige Funktionsplan sieht folgendermaßen aus:
T0
┌───┐ ┌─────┐
E0.0 ─┤ & ├───────┤T├─┤0├A0.0
└───┘KT200.0┤TW DU├MW200
│ DE├MW202
│ │
│-SE- │
E0.1 ┤R │
└─────┘
Wenn Sie einen bestimmten Eingang oder Ausgang nicht benötigen,
müssen Sie diesen Ausgang mit einem "NOP 0" versorgen.
Dieses "NOP 0" dient als Platzhalter für den jeweiligen Eingang
oder Ausgang.
Beispiel:
0001 :U E 0.0
0002 :L KT 200.0
0003 :SE T 0 ANZUGVERZÖGERT
0004 :NOP 0 RÜCKSETZ-EINGANG
0005 :L T 0 AUSGANG DUAL
0006 :T MW 200
0007 :NOP 0 AUSGANG BCD
─── Seite 32 ───
Menuepunkt SIMULATION / FUP-SIMULATION KAPITEL 1
──────────────────────────────────────────────────────────────────────────────
0008 :U T 0 ZUWEISUNG
0009 := A 0.0
0010 :BE
Hier wird der Rücksetzeingang und der BCD-Ausgang nicht benötigt.
Diese werden jeweils mit einem "NOP 0" versorgt.
Die Reihenfolge der Belegungen müssen Sie genau einhalten.
Zwischen den Belegungen dürfen keine Leerzeilen oder ganzzahlige
Kommentare stehen. Die Reihenfolge der Belegungen brauchen Sie
sich nicht zu merken. Sie können sich im Editor mit Hilfe der
[ALT/H]-Taste eine Hilfestellung in die AWL kopieren.
1.5.4 Programmierung von Zähler
Ein Zähler besitzt folgende Ein.- und Ausgänge
■ Eingang für das Vorwärtszählen
■ Eingang für das Rückwärtszählen
■ Setzeingang
■ Rücksetzeingang
■ Ausgang DUAL (DU)
■ Ausgang BCD (DE)
■ binärer Ausgang
Jeder dieser Ein- oder Ausgang muß mit einem "NOP 0" belegt
werden, wenn er nicht benötigt wird. Sie müssen demnach maximal 6
(nicht 7) "NOP 0"- Operationen setzen, da mindestens ein
Zähleingang belegt werden muß, um den Zähler uberhaupt aufzurufen.
Ein voll belegter Zähler könnte folgendermaßen aussehen:
0001 :U E 0.0
0002 :ZV Z 1 ZÄHLER VORWÄRTS ZÄHLEN
0003 :U E 0.1
0004 :ZR Z 1 ZÄHLER RÜCKWÄRTS ZÄHLEN
0005 :U E 0.2
0006 :L KZ 400
0007 :S Z 1 ZÄHLER SETZEN
0008 :U E 0.3
0009 :R Z 1 ZÄHLER RÜCKSETZEN
0010 :L Z 1 ZÄHLER ISTWERT TRANSF.DUAL
0011 :T DW 2
0012 :LC Z 1 ZÄHLER ISTWERT TRANSF. BCD
0013 :T DW 3
0014 :U Z 1 ZUWEISUNG
0015 := A 0.0
0016 :BE
─── Seite 33 ───
Menuepunkt SIMULATION / FUP-SIMULATION KAPITEL 1
──────────────────────────────────────────────────────────────────────────────
Der dazugehörige Funktionsplan:
Z1
┌───┐ ┌────────┐
E0.0 ─┤ & ├───────┤ZV Q├A0.0
└───┘ │ │
│ │
┌───┐ │ │
E0.1 ─┤ & ├───────┤ZR │
└───┘ │ │
E0.2 ┤S │
KZ400 ┤ZW DU├DW2
│ DE├DW3
E0.3 ┤R │
└────────┘
Sie sehen, daß dieser Zähler vollständig belegt ist. Wenn Sie nun
eine Belegung (Eingang oder Ausgang) nicht benötigen, muß diese
mit einem "NOP 0" ersetzt werden. Beispiel:
0001 :U E 0.0
0002 :ZV Z 1 VORWÄRTSZÄHLEN
0003 :NOP 0 RÜCKWÄRTS ZÄHLEN
0004 :NOP 0 ZÄHLER SETZEN ─┐2
0005 :NOP 0 ─┘NOP's
0006 :U E 0.3
0007 :R Z 1 ZÄHLER RÜCKSETZEN
0008 :L Z 1 ZÄHLER ISTWERT TRANSF.DUAL
0009 :T DW 2
0010 :NOP 0 ZÄHLER ISTWERT TRANSF. BCD
0011 :U Z 1
0012 := A 0.0 ZUWEISUNG
0013 :BE
Sie sehen, daß der Rückwärtszähl-Eingang und der BCD-Ausgang
jeweils mit einem "NOP 0" belegt sind. Der Zähler-Setzen-Eingang
muß mit zwei "NOP 0" belegt werden. Bis zur Version V4.05 mußte
man einen nicht belegten Setz-Eingang mit einem "NOP 0" belegen,
was aber nicht kompatibel zu SIEMENS ist !
Der dazugehörige Funktionsplan:
Z1
┌───┐ ┌────────┐
E0.0 ─┤ & ├───────┤ZV Q├A0.0
└───┘ ┤ZR │
│ │
┤S │
┤ZW DU├DW2
│ DE├
E0.3 ┤R │
└────────┘
Wenn Sie nur den "ZR"-Eingang benötigen, können Sie einfach
die Operation "ZV Z1" in "ZR Z1" umschreiben.
─── Seite 34 ───
Menuepunkt SIMULATION / FUP-SIMULATION KAPITEL 1
──────────────────────────────────────────────────────────────────────────────
1.5.5 Programmierung von Speichern
Ein Speicher hat folgende Ein.- und Ausgänge:
■ ein Setzeingang
■ ein Rücksetzeingang
■ ein Ausgang
Ein vollständig belegter Speicher:
Anweisungsliste:
0001 :U E 0.0
0002 :U E 0.1
0003 :S M 0.0 MERKER SETZEN
0004 :U E 0.2
0005 :U E 0.3
0006 :R M 0.0 MERKER RÜCKSETZEN
0007 :U M 0.0
0008 := A 0.3
0009 :BE
Funktionsplan:
M0.0
┌───┐ ┌─────┐
E0.0 ─┤ & ├───────┤S Q ├ A0.3
E0.1 ─┤ │ │ │
└───┘ │ │
│ │
┌───┐ │ │
E0.2 ─┤ & ├───────┤R │
E0.3 ─┤ │ │ │
└───┘ └─────┘
Wenn Sie nun den Ausgang nicht benötigen müssen Sie die
Anweisungsliste folgendermaßen ändern:
0001 :U E 0.0
0002 :U E 0.1
0003 :S M 0.0 MERKER SETZEN
0004 :U E 0.2
0005 :U E 0.3
0006 :R M 0.0 MERKER RÜCKSETZEN
0007 :NOP 0
0008 :BE
Beachten Sie, daß nun nach dem Rücksetzbefehl ein "NOP 0" steht.
Dieses "NOP 0" wird hier oft vergessen.
Der Funktionsplan sieht genauso aus wie oben, nur am Ausgang des
Speichers steht kein Operand.
─── Seite 35 ───
Menuepunkt SIMULATION / FUP-SIMULATION KAPITEL 1
──────────────────────────────────────────────────────────────────────────────
Wenn Sie mehrere Operanden gleichzeitig setzen und rücksetzen
wollen, müssen die AWL folgendermaßen schreiben:
0001 :U E 0.0
0002 :U E 0.1
0003 :S M 0.0
0004 :S M 0.1
0005 :S M 0.2
0006 :NOP 0
0007 :NOP 0
0008 :U E 0.2
0009 :U E 0.3
0010 :R M 0.0
0011 :R M 0.1
0012 :R M 0.2
0013 :NOP 0
0014 :NOP 0
0015 :BE
Sie müssen also 2 Speicher programmieren, und mit dem ersten
Speicher alle Operanden setzen und mit dem zweiten Speicher alle
Operanden wieder rücksetzen.
Der Funktionsplan sieht dann so aus:
M0.0 M0.1 M0.2
┌───┐ ┌─────┐
E0.0 ─┤ & ├───────┤S Q ├
E0.1 ─┤ │ │ │
└───┘ │ │
│R │
└─────┘
M0.0 M0.1 M0.2
┌───┐ ┌─────┐
E0.2 ─┤ & ├───────┤R Q ├
E0.3 ─┤ │ │ │
└───┘ │ │
│S │
└─────┘
Hinter diesen Blöcken sollten Sie keine weiteren Blöcke
plazieren, da es sonst zu Problemen mit obigen Operanden
(M0.0 M0.1 M0.2) geben kann.
─── Seite 36 ───
Menuepunkt SIMULATION / FUP-SIMULATION KAPITEL 1
──────────────────────────────────────────────────────────────────────────────
5.6 Einsetzen von Konnektoren.
5.6.1 Was ist ein Konnektor ?
Ein Konnektor sind 2 Anweisungen die folgendermaßen aussehen:
. .
. .
0008 := A 0.0
0009 :U A 0.0
. .
. .
Es wird also ein Operand (E,A,M,T oder Z) zugewiesen, und in der
nächsten AWL-Zeile wird genau dieser Operand mit einer UND-
Operation weiterverknüpft.
Hinweis: Negierte Konnektoren sind nicht möglich !
1.5.6.2 Welchen Zweck haben Konnektoren ?
Konnektoren dienen dazu, um die Anweisungsliste übersichtlicher in
einen Funktionsplan umwandeln zu können. Ein Konnektor verbindet
FUP-Objekte miteinander. Ein anderer Vorteil ist, daß man immer
wiederkehrende Verknüpfungen einspart, da man das
Verknüpfungsergebnis einem Zwischenspeicher (Operand) zuweist.
1.5.6.3 Beispiel zu Konnektoren
. .
. .
0008 :U E 0.0
0009 :U E 0.1
0010 :U E 0.2
0011 :U E 0.3
0012 :U E 0.4
0013 :U E 0.5
0014 := M 0.0 ┐
0015 :U M 0.0 ┘ Konnektor
0016 :U E 0.6
0017 := A 0.4
. .
. .
Ein Konnektor wird im Funktionsplan mit dem "#"-Zeichen
gekennzeichnet:
┌───┐ ┌───┐ ┌───┐
E0.0 ─┤ & ├───#M0.0──┤ & ├───────┤ = ├ A0.4
E0.1 ─┤ │ E0.6 ─┤ │ └───┘
E0.2 ─┤ │ └───┘
E0.3 ─┤ │
E0.4 ─┤ │
E0.5 ─┤ │
└───┘
─── Seite 37 ───
Menuepunkt SIMULATION / FUP-SIMULATION KAPITEL 1
──────────────────────────────────────────────────────────────────────────────
1.5.7 Was tun wenn,
sich die Anweisungsliste nicht umwandeln läßt ?
Wenn sich Ihre AWL nicht umwandeln läßt, sollten Sie folgendes
kontrollieren:
■ Haben Sie kein "NOP 0" vergessen ?
■ Haben Sie bei überall die gleiche Operandennummer
eingegeben ?
(Bei Zeiten oder Zähler überall die gleiche Nummer)
■ Zwischen den Anweisungen dürfen keine Leerzeilen stehen.
■ Zwischen den Anweisungen dürfen keine ganzzeilige
Kommentare stehen.
■ Stimmt die Reihenfolge der Belegungen.
1.5.8 Netzwerkprogrammierung
Wenn Sie eine AWL in einen Funktionsplan umwandeln möchten, ist
die Programmierung in Netzwerken nicht erforderlich. Es ist aber
ratsam Ihre AWL in Netzwerke zu unterteilen. Sie können dann zu
jedem Netzwerk ein Kommentar angeben, der unter den anderen
Kommentaren auffällt, weil er an einer anderen Spalte anfängt als
die anderen Kommentartypen (Kurzkommentare und ganzzeilige
Kommentare). Außerdem werden Netzwerke bei VGA/EGA-Karten mit
einer anderen Farbe dargestellt. Netzwerke können zum einen mit
der [F9]-Taste, und zum anderen mit drei Sternchen "***" und
anschließender [RETURN]-Taste in die Anweisungsliste eingefügt
werden.
Der Netzwerktext erscheint auch im Funktionsplan, wenn Sie bei der
Datei "SPS.CFG" den Schalter (ON/OFF) "Ganzzeilige Kommentare
erlauben" eingeschaltet haben.
1.5.9 Bedienung der FUP-Simulation
Falls die Ein/Ausgangsleiste eingeschaltet ist (siehe FUP-
Konfiguration), werden alle Eingänge und Ausgänge im oberen
Bereich des Bildschirms dargestellt. Die Zustände der Eingänge
können auch hier, wie bei der AWL-Simulation, auf verschiedene
Arten umgeschaltet werden. Wenn Sie die Ein/Ausgangsleiste
ausgeschaltet haben, sollten Sie auf die 2. Möglichkeit
zurückgreifen (siehe AWL- Simulation).
─── Seite 38 ───
Menuepunkt SIMULATION / FUP-SIMULATION KAPITEL 1
──────────────────────────────────────────────────────────────────────────────
1.5.10 Tastenbelegung während der FUP-Simulation:
Verschiebung des Funktionsplanes
──────────────────────
[Pfeil nach unten] od. [Y] zeilenweise nach oben verschieben
[Pfeil nach oben] od. [W] zeilenweise n.unten verschieben
[STRG/Pfeil nach rechts] od. [S] nach links verschieben
[STRG/Pfeil nach links] od. [A] nach rechts verschieben
[PGDN] seitenweise vorblättern
[PGUP] seitenweise zurückblättern
FUP-Steuerung
──────────────────────
[Pfeil n. rechts] bzw.
[Pfeil n. links] Anwählen eines Eingangsbytes
[0] bis [7] Umschalten von Eingängen
[ALT/O] Umschalten von Operanden
[F1] Hilfe
[ESC] Simulation beenden
[SPACE] alle Eingänge zurücksetzen
[ALT/P] Funktionsplan drucken
[STRG/P] oder
[ALT/RETURN] PAE/PAA- Anzeige einstellen
[F9], [F10] AnalogRaster erhöhen, erniedrigen
Tastenbelegung für Analogeingabe siehe Seite 88.
1.5.11 Funktionsplan ausdrucken
Der Funktionsplan kann folgendermaßen aufs Papier gebracht werden:
Durch gleichzeitiges Drücken der Tasten [ALT/P] oder [STRG/DRUCK]
erscheint zunächst ein Fenster, in dem nochmal die Bausteindaten
angezeigt werden. Kontrollieren Sie diese auf Richtigkeit, und
drücken Sie dann die [PGDN]-Taste. Nun erscheint ein Fenster,
in dem die wichtigsten Einstellungen für den Ausdruck angezeigt
werden. Nachdem Sie einen Blick darauf geworfen haben und
eventuelle Änderungen vorgenommen haben, drücken Sie nochmals die
[PGDN]-Taste. Nach einer Sicherheitsabfrage wird der FUP für den
Ausdruck aufbereitet und dann zum Drucker geschickt. Möchten Sie
einen Ausdruck vorzeitig beenden, dann drücken Sie die
[ESC]-Taste.
1.5.12 Funktionsplan als ASCII-Datei abspeichern
Wenn Sie sich in der FUP-Simulation befinden und die
Tastenkombination [ALT/P] drücken, erscheint das bekannte Fenster
"Funktionsplan drucken". Wenn Sie im letzten Eingabefeld
"Umleitung auf Datei" ein "J" eingeben und anschließend die
[PGDN]-Taste betätigen, wird der Funktionsplan als ASCII-Datei in
den eingestellen Pfad für Anweisungslisten abgespeichert. Diese
Funktion dient nur dazu, daß Sie einen Funktionsplan mit einer
Textverarbeiung oder einem Editor weiter verwenden können. Diese
Datei kann nicht mehr eingelesen werden.
─── Seite 39 ───
Menuepunkt SIMULATION / AG-MASKE-SIMULATION KAPITEL 1
──────────────────────────────────────────────────────────────────────────────
1.6 AG-Maske-Simulation
1.6.1 Einleitung
Diese Simulationsart ist für diejenigen Anwender gedacht, die mit
16 Ein- und Ausgängen auskommen. Die grafische Darstellung der
Eingänge und Ausgänge als LED's oder Lampen, ist besonders für den
SPS-Anfänger leichter zu durchschauen.
Die AG-Maske-Simulation zeigt auf dem Grafik-Bildschirm eine
Pseudo- SPS mit 16 Eingängen und 16 Ausgängen. Jeder Eingang ist
mit einem Schalter verbunden. Diese Schalter können mit
Steuerbefehlen als Taster/Schalter (Öffner oder Schließer)
definiert werden. Je nachdem werden sie dann auch grafisch als
Schließer oder Öffner dargestellt. Wenn Sie eine Zuweisungsliste
programmiert haben, erscheinen vorhandene Kommentare direkt neben
den Ein- und Ausgängen. Diese Kommentare werden aber in dieser
Simulationsart wegen Platzmangel auf 10 Zeichen beschränkt.
Außerdem sehen Sie auf dem Bildschirm in der oberen rechten Ecke
die Klartextanzeige. Diese Anzeige kann ebenfalls mit Hilfe von
Stuerbefehlen programmiert werden. Unter der Klartextanzeige
befindet sich ein Fenster, in dem definierte Statuszeilen
angezeigt werden.
1.6.2 Tastenbelegung während der AG-Maske-Simulation
Taste Befehl
────────────────────────────────────────────────────
[Pfeil nach rechts]
[Pfeil nach links] Umschalten des aktiven Eingangbytes
[0] - [7] Umschalten von Eingängen
[F1]..[F7] Umschalten des 2. Eingangsbytes
(nur bei Schaltern nicht bei Tastern)
[SPACE] Alle Eingänge auf "0" schalten
[F9], [F10] AnalogRaster erhöhen, erniedrigen
[ESC] Simulation beenden
Tastenbelegung für Analogwerteingabe siehe Seite 88.
1.6.3 Welche Eingangs- und Ausgangsbytes werden angezeigt ?
Die ersten zwei Eingangs- und Ausgangsbytes, die in der AWL/FUP-
Simulation eingestellt sind, werden auch hier angezeigt.
Die angezeigten Eingangs- und Ausgangsbytes können hier nicht
verschoben werden !
1.6.4 Wie kann man die Eingänge umschalten ?
Die Eingänge werden wie in der AWL-Simulation umgeschaltet. Mit
den Cursor-Tasten (Rechts, Links) wählen Sie zuerst das aktive
Eingangsbyte aus. Mit den Ziffern "0" bis "7" können Sie dann das
gewünschte Bit umschalten.
─── Seite 40 ───
Menuepunkt KONFIGURATION KAPITEL 1
──────────────────────────────────────────────────────────────────────────────
Das untere Eingangsbyte kann auch mit den Funktionstasten "F10"
und "F1" bis "F7" manipuliert werden. Dies geht aber nur, wenn die
Eingänge nicht als Taster definiert worden sind.
1.7 MENUEPUNKT KONFIGURATION
1.7.1 Remanente Merker/Zähler/Timer
Dieser Menuepunkt bietet Ihnen die Möglichkeit,
remanente Merker, Zähler oder Timer festzulegen.
Wenn Sie einen solchen Operanden als remanent festlegen, wird
dieser bei Simulationsstart nicht auf Null gesetzt.
Wenn Sie z.B. die Merkerbytes 0 bis 20 remanent haben möchten,
geben Sie im ersten 0 und im zweiten Eingabefeld 20 ein. Wenn Sie
keine remanente Merker haben möchten, geben Sie bei beiden Feldern
Null ein.
Hinweis:
wenn Sie bei beiden Eingabefelder die gleiche Zahl eingeben,
werden keine remantente Operanden festgelegt.
1.7.2 Escape Sequenzen einstellen
Allgemeines:
Eine Escape-Sequenz ist eine Aneinanderreihung von ASCII- Zeichen,
wobei diese mit dem ASCII-Zeichen Nr. 27 (ESC) eingeleitet wird.
Mit Hilfe dieser ESC-Sequenzen können Drucker initialisiert
werden. D.h. wenn der Drucker solche Zeichenketten empfängt,
werden diese nicht ausgedruckt, sondern dazu verwendet, um den
Drucker einzustellen.
Sie können z.B. Schriftart, Zeilenabstand, Schriftgröße etc.
einstellen. Sie können zehn Sequenzen editieren und auch
unabhängig voneinander aktivieren. Diejenige Sequenz, die Sie
aktivieren, wird vor jedem Ausdruck der AWL zum Drucker gesandt.
Sie können die Steuerzeichen entweder durch ASCII- Zeichen oder
durch dreistellige Dezimalziffern eingeben. Das Zeichen mit der
ASCII Nummer 27 (ESC) kann mittels dem Doppelpunkt eingegeben
werden. D.h. anstatt dem Doppelpunkt wird beim Ausdruck ein
chr(27) gesendet. Steuerzeichen, die ein symbolisches ASCII-
Zeichen besitzen, können direkt eingegeben werden. Achten Sie
darauf, daß ein kleines 'u' nicht das Gleiche ist, wie ein großes
'U'. Wenn Sie die Steuerzeichen nummerisch eingeben wollen: Die
Zahlen müssen im Dezimalsystem und in drei Stellen eingegeben
werden. Außerdem müssen die Zahlen in eckigen Klammern stehen.
─── Seite 41 ───
Menuepunkt KONFIGURATION KAPITEL 1
──────────────────────────────────────────────────────────────────────────────
z.B.: <027 060 123 003>
Dieses Beispiel sendet dem Drucker:
chr(27)+chr(60)+chr(123)+chr(3). Die Leerzeichen können auch weg-
gelassen werden!
Wichtig ist, daß Sie immer 3 Stellen eingeben, und das die Zahlen
in eckigen Klammern stehen. Sie können auch beide Methoden
kombinieren:
z.B.: <027>ahK oder :ahK (der Doppelpunkt ist chr(27))
sendet chr(27)+'ahK'
Diese Einstellung kann Sie etwas Zeit kosten, bis Sie das
gewünschte Ergebnis erreicht haben. Es ist aber sinnvoll diese
Einstellung vorzunehmen, weil Sie dann nicht mehr die Schriftgröße
und Zeilenabstand am Drucker einstellen müssen. Wenn Sie das
gewünschte Ergebnis erreicht haben, speichern Sie die Sequenz
sofort ab. (unter Konfiguratiom / Konfiguration sichern) Wenn Sie
keine Sequenz eingeben wollen, geben Sie als Sequenz ein: <000>
Hinweis:
Die geschweifte Klammer-Auf ('{') leitet einen Kommentar ein, d.h.
alles was hinter diesem Zeichen steht wird nicht gesendet. Wenn
Sie dieses Zeichen als Steuerzeichen benutzen wollen, können Sie
das dezimale Äquivalent benutzen: <123>
1.7.3 Testdruck
Hier können Sie auf einfache Weise ausprobieren, ob Ihre ESC-
Sequenz-Einstellung sinnvoll ist. Für den Ausdruck des
Funktionsplans müssen Sie sicherstellen, daß die ESC-Sequenz so
gewählt wurde, daß Ihr Drucker mind. 106 Spalten drucken kann.
Geben Sie also im Eingabefeld 'Zeichen pro Zeile' 106 ein. Dabei
ist ein linker Rand von ca. 10 sinnvoll. Wenn Sie eine ESC-Sequenz
für die Anweisungsliste testen wollen, geben Sie im Eingabefeld
'Zeichen pro Zeile' 73 und einen linken Rand von 4 ein.
Wenn Sie keine ESC-Sequenz einstellen und auch
keine hardwaremäßige Einstellung vornehmen, druckt Ihr Drucker
maximal 80 Zeichen pro Zeile. Diese Einstellung ist für die AWL
optimal, aber für den FUP nicht ausreichend.
Beispiel für einen Probeausdruck für den Funktionsplan:
Geben Sie im 1. Eingabefeld (Anzahl der Spalten) 106 ein.
Im zweiten Eingabefeld müssen Sie abschätzen wieviele Zeilen
möglich sind. Wenn Sie sich nicht sicher sind, geben Sie z.B. 100
ein.
─── Seite 42 ───
Menuepunkt KONFIGURATION KAPITEL 1
──────────────────────────────────────────────────────────────────────────────
Im dritten Eingabefeld müssen Sie die Druckerschnittstelle
festlegen. Wenn Sie nur eine Druckerschnittstelle besitzen, muß
hier die '1' stehen.
Im vierten Eingabefeld ist nach der ESC-Sequenz gefragt. Geben Sie
hier diejenige ESC-Sequenznummer ein, die Sie vorher eingestellt
haben.
Damit Sie die ausgedruckten Blätter anschließend auch abheften
können, sollten Sie im fünften Eingabefeld einen linken Rand
festlegen. Geben Sie also hier z.B. '9' ein.
Nachdem Sie nun alle Eingaben mit der [PGDN]-Taste bestätigt
haben, wird der Ausdruck nach einer Sicherheitsabfrage gestartet.
Der Ausdruck sollte nun folgendermaßen aussehen:
linker Rand
┌─┴──┐ Anzahl der Spalten
┌──────────┴────────────┐
│ │
┌─────────────────────────────────┐
│ │
│ 1 # │
│ 2 # │
│ 3 # │
│ 4 # │
│ 5 # │
│ . . │
│ . . │
Die Zahlen und das '#'-Zeichen sollten also ungefähr in der Mitte
des Blattes liegen. Ist das der Fall ist Ihre ESC- Sequenz korrekt
eingestellt.
Für den Ausdruck der Anweisungsliste müssen Sie auch eine ESC-
Sequenz einstellen, obwohl nicht mehr als 73 Zeichen pro Zeile
ausgedruckt werden. Der Grund hierfür ist: wenn Sie einen FUP
ausdrucken wird der Drucker auf eine bestimmte Schriftart
eingestellt. Wenn Sie nun anschließend die AWL ausdrucken, ist
diese Schriftart noch aktiv.
─── Seite 43 ───
Menuepunkt KONFIGURATION KAPITEL 1
──────────────────────────────────────────────────────────────────────────────
Ich habe Ihnen ein paar Escape-Sequenzen für die wichtigsten
Drucker zusammengestellt:
Wenn Sie einen Nadeldrucker besitzen, sollten Sie die EPSON-
Einstellung ausprobieren.
╒═════════════════╤════════════════════════════╤═════╤══════╕
│Drucker │ Escape Sequenz │Rand │Zeilen│
│ │ │ │/Seite│
╞═════════════════╧════════════════════════════╧═════╧══════╡
│ Epson kompatible Drucker (9 oder 24 Nadel Drucker) │
╞═════════════════╤════════════════════════════╤═════╤══════╡
│Esc-Sequence AWL │:@:<018> │ 5 │ 56 │
├─────────────────┼────────────────────────────┼─────┼──────┤
│Esc-Sequence FUP │:@:<015> │ 8 │ 56 │
╞═════════════════╧════════════════════════════╧═════╧══════╡
│ HP Desk Jet 500 & kompatible │
╞═════════════════╤════════════════════════════╤═════╤══════╡
│Esc-Sequence AWL │:(s0p12h12v0s0b1Q:&l6D:&l3E │ 5 │ 59 │
├─────────────────┼────────────────────────────┼─────┼──────┤
│Esc-Sequence FUP │:(s0p16h12v0s0b1Q:&l7D:&l3E │ 10 │ 69 │
╞═════════════════╧════════════════════════════╧═════╧══════╡
│ HP-Laser Jet & kompatible │
╞═════════════════╤════════════════════════════╤═════╤══════╡
│Esc-Sequence AWL │:(s0p8h12V:&l6D │ 4 │ 63 │
├─────────────────┼────────────────────────────┼─────┼──────┤
│Esc-Sequence FUP │:(s0p16h12V:&l8D │ 10 │ 84 │
└─────────────────┴────────────────────────────┴─────┴──────┘
Wenn Sie nun einen Ausdruck starten, müssen Sie nur die
eingestellte Sequenz im entsprechenden Eingabefeld aktivieren.
1.7.4 AWL/FUP-Zeilen pro Seite
AWL-Zeilen pro Seite:
Hier haben Sie die Möglichkeit, die Anzahl der Zeilen pro Seite
einzustellen. Wenn die eingestellte Zahl erreicht ist, wird ein
Seitenvorschub ausgeführt und der 'AWL-Kopf' wird gedruckt. Die
Anzahl der möglichen Zeilen ist natürlich abhängig von der
Zeichengröße und dem Zeichenabstand. Deshalb stellen Sie zuerst
die gewünschte Escape-Sequenz ein und machen dann einen
Testausdruck mit Hilfe des Menueunterpunks 'Testdruck'. Diese
Einstellung müssen Sie nur vornehmen, wenn Sie auf jedem Blatt
einen 'AWL-Kopf' haben wollen. Wenn Sie das nicht wollen, können
Sie die Anzahl der Zeilen pro Seite einfach auf eine hohe Zahl
setzen, die nie erreicht wird. Ermitteln Sie diese Einstellung mit
Hilfe des Menueunterpunkts "Testdruck".
─── Seite 44 ───
Menuepunkt KONFIGURATION KAPITEL 1
──────────────────────────────────────────────────────────────────────────────
Anmerkungen
■ Im 'AWL-Kopf' stehen Informationen zum Baustein. Z.B. Art des
Bausteines, Größe, Autor u.s.w.
■ Der Begriff 'AWL-Zeilen' bezieht sich auf die gesamten Zeilen,
dabei müssen auch die Zeilen des AWL-Kopfes mitgerechnet werden.
FUP-Zeilen pro Seite:
Wenn Sie einen Funktionsplan ausdrucken wollen, müssen Sie zuerst
diese Einstellung vornehmen. Vor dem Ausdruck des Funktionsplans
werden zuerst die Funktionsblöcke der AWL gesucht, und danach wird
eine Seiteneinteilung vorgenommen. Wenn diese Einstellung nicht
stimmt wird entweder vorzeitig oder mitten in einem Netzwerk ein
Seitenvorschub vollzogen. Deshalb stellen Sie zuerst die
gewünschte Escape-Sequenz ein und machen dann einen Testausdruck
mit Hilfe des Menueunterpunks 'Testdruck'. Sie können dann die
Anzahl der Zeilen pro Seite einfach ablesen. Geben Sie aber zur
Sicherheit eine Zeile weniger ein, als in Wirklichkeit möglich
ist.
Anmerkung
■ Der Begriff 'FUP-Zeilen' bezieht sich auf die gesamten Zeilen,
dabei müssen auch die Zeilen des FUP-Kopfes mitgerechnet werden.
1.7.5 Interne Kommentare löschen
Wenn Sie eine Zuweisungsliste erstellt haben, werden die
Kommentare im RAM abgespeichert. Wenn Sie diese Kommentare aus dem
Speicher entfernen möchten, können Sie diesen Menuepunkt
aktivieren.
1.7.6 Tastaturgeschwindigkeit
Hier haben Sie die Möglichkeit, die Tastaturwiederholrate
einzustellen. Wenn dieser Wert zu klein ist, kann es sein, daß der
Tastaturpuffer zu schnell gefüllt wird. Die Folge ist ein Piepsen
des Lautsprechers. Ist das bei Ihnen der Fall, dann geben Sie hier
eine größere Zahl ein. Den Wert, den Sie hier eingeben müssen,
hängt von Ihrem Computer und Ihrer Tastatur ab. Richtwerte:
AT 286/12 : ca. 20 einstellen
AT 386/33 : ca. 05 einstellen
AT 486/33 : ca. 01 einstellen
─── Seite 45 ───
Menuepunkt KONFIGURATION KAPITEL 1
──────────────────────────────────────────────────────────────────────────────
1.7.7 Einstellen der Videomodi
In diesem Menuepunkt haben Sie die Möglichkeit, für die
Anweisungsliste und für den Funktionsplan einen eigenen Videomodus
einzustellen. Da die erweiterten Videomodi nicht genormt sind,
müssen Sie die Anleitung Ihrer VGA-Karte zur Hand nehmen, und dort
einen geeigneten Videomodus suchen. Suchen Sie in Ihrer Anleitung
nach den Stichworten 'display formats', 'display modes' oder
'screen modes'.
Für die Einstellung eines neuen Videomodus benötigen
Sie 3 Angaben:
1. Die Nummer des Videomodi (hexadezimale Schreibweise)
2 Die Anzahl der Spalten/Columns (dezimale Schreibweise)
3. Die Anzahl der Zeilen/Rows (dezimale Schreibweise)
Geben Sie diese Zahlen im entsprechenden Eingabefeld ein. Nach
Drücken der [BILD]- oder [PGDN]-Taste wird der Videomodus
aktiviert. Wenn Sie den Videomodus für die Anweisungsliste
geändert haben, wird er nach Drücken einer Taste sofort aktiviert.
Wenn Sie sich bei der Anzahl der Zeilen oder Spalten verlesen
haben, kann der Bildschirm nicht mehr richtig aufgebaut werden.
Durch Drücken der [F5]-Taste gelangen Sie wieder in den
Standardmodus zurück, und können die Einstellung nochmals
vornehmen.
Hinweise:
■ mit Hilfe der [F5]-Taste können Sie nur den Modus für die
Anweisungsliste umschalten.
■ die [F5]-Taste ist nur aktiv, wenn Sie sich in der Menueleiste
befinden.
■ wenn Sie falsche Werte eingegeben haben, kann der Bildschirm
nicht mehr korrekt aufgebaut werden. Gehen Sie dann auf keinen
Fall in den Editor, sondern drücken Sie gleich die [F5]-Taste.
■ Das Produkt aus Anzahl der Spalten und Anzahl der Zeilen darf
8100 nicht überschreiten. Es wäre also z.B. ein Modus mit 132
Spalten und 60 Zeilen gerade noch möglich (132*60=7960).
■ Auf der Diskette ist die Datei "VGAMODES.DOC" abgespeichert. In
dieser Datei finden Sie zu den gängigsten Karten die Textmodi
aufgelistet.
─── Seite 46 ───
Menuepunkt KONFIGURATION KAPITEL 1
──────────────────────────────────────────────────────────────────────────────
1.7.8 Einstellung der PAE/PAA- Leiste
Diese Funktion gibt Ihnen die Möglichkeit, die Eingangs- und
Ausgangsleiste (PAE, PAA) individuell einzustellen. Sie können
angeben, wieviele Eingangsbytes (1-8) und wieviele Ausgangsbytes
(1-8) dargestellt werden sollen. Desweiteren können Sie frei
einstellen, welche Eingangsbytes bzw. Ausgangsbytes angezeigt
werden sollen.
Beispiel:
In der Eingangsleiste sollen die
Eingangsbytes 1,10,127 und 32 hintereinander angezeigt werden.
=> Geben Sie im Eingabefeld "PAE Anordnung" ein: 1,10,127,32.
Im Eingbefeld PAE-Länge müssen Sie mindestens eine "4" einstellen,
da Sie 4 Eingangsbytes angegeben haben. Gegen Sie in diesem Fall
mehr als "4" an, werden die restlichen Eingangsbytes fortlaufend
angezeigt.
Beachten Sie hierbei, daß das Ganze nur funktioniert, wenn Sie in
der AWL !nicht! den Steuerbefehl "$B" verwendet haben. Mit der
[TAB]-Taste können Sie wie üblich die Eingangs- bzw.
Ausgangsleiste verschieben.
Wenn Sie wieder Ihre eingestellten Werte haben wollen, drücken Sie
[ALT]/[Return] oder [STRG]/[P] gleichzeitig.
1.7.9 Monochromeinstellung
Wird dieser Punkt aktiviert, werden alle internen Einstellungen
für Hercules-Grafikkarten aktiviert. Falls die Datei "FARBEN.MON"
bei Herculeskarten nicht existiert, wird dieser Menueunterpunkt
beim Programmstart ausgeführt.
1.7.10 Coloreinstellung
Wird dieser Punkt aktiviert, werden alle internen Einstellungen
für VGA/EGA- Karten aktiviert. Falls die Datei "FARBEN.VGA" bei
VGA oder EGA-Karten nicht existiert, wird dieser Menueunterpunkt
beim Programmstart ausgeführt.
1.7.11 Konfiguration laden
Die Konfigurationsdatei "SPS.CFG" wird eingelesen und alle
Parameter werden neu eingestellt.
─── Seite 47 ───
Menuepunkt AG KAPITEL 1
──────────────────────────────────────────────────────────────────────────────
1.8 Menuepunkt AG
1.8.0 Allgemeines
Die AG-Funktionen wurden mit folgenden AG's getestet:
90U, 95U, 100U, 115U.
Um zu überprüfen, ob die Verbingung zum AG aufgebaut werden kann,
sollten Sie den Menuepunkt "Schnittstelle prüfen" aktivieren. Wenn
die Prüfung nicht ordnungsgemäß mit der Meldung "O.K." beendet
wird, können alle anderen AG-Funktionen im Simulator nicht
ausgeführt werden.
Wenn der Menuepunkt "Schnittstelle prüfen" nicht funktioniert,
könnte das folgende Gründe haben:
- die eingestellte Schnittstellennummer stimmt nicht.
- Ihr Verbindungskabel ist defekt oder nicht angeschlossen
(V24 <->20mA).
- Wenn Probleme mit der Protected-Mode Version (SPS386.EXE)
auftreten, klären Sie zuerst ab, ob diese Probleme auch in der
Real-Version (SPS.EXE) auftreten. Ist dies der Fall, versuchen
Sie mal das Problem zu beheben, indem Sie den Treiber
"EMM386.EXE" in der Datei "C:\CONFIG.SYS" entfernen.
1.8.1 Was Sie beachten müssen ...
■ Wenn Sie im Simulator Kommentare, Steuerbefehle,
Zuweisungslisten, ... programmiert haben, werden diese AWL-
Zeilen natürlich nicht in das AG übertragen. Wenn Sie nun
Bausteine vom AG holen, und die bestehenden Bausteine
überschreiben, sind sämtliche oben genannten AWL-Zeilen nicht
mehr vorhanden. Sie sollten also bestehende Bausteine nicht
überschreiben, sondern einen neuen Bausteinnamen wählen
([ALT/R]).
■ Wenn sich im AG Operationen befinden, die der Simulator nicht
simulieren kann (AF, AS, LIR, TIR, ...), werden diese durchaus
empfangen. Nachdem der Baustein empfangen worden ist, erhalten
Sie eine Liste, in der alle empfangenen nichtsimulierbare
Operationen aufgelistet werden. Diese Operationen werden in der
Simulation nicht bearbeitet !
■ Wenn Sie in einem Funktionsbaustein Sprungbefehle zu Marken
einsetzen, darf das Sprungziel nur innerhalb des Netzwerkes
liegen.
■ Geben Sie einem FB "immer" einen Namen (F10 im Editor drücken)
■ Wenn Sie parametrierbare FB's programmieren, darf zwischen den
BEZ-Listen keine Leerzeilen stehen.
─── Seite 48 ───
Menuepunkt AG KAPITEL 1
──────────────────────────────────────────────────────────────────────────────
■ Nicht alle AG's können sämtliche Bausteine verwalten.
Informieren Sie sich, welche Bausteine Ihr AG unterstützt.
■ Nicht alle AG's können alle Befehle des Simulators bearbeiten.
Ein AG S5-90U kann z.B. keine parametrierbare FB's bearbeiten.
Wenn Sie einen solchen Baustein übertragen, wird dieses AG
sofort in den "STOP"-Betrieb übergehen.
■ Ältere AG's (z.B. Vorgängermodell der 90U) können Bausteine nur
im STOP-Zustand übertragen. Tritt ein solcher Fall auf, kann
der Simulator keine Fehlermeldung anzeigen.
1.8.2 Übertragen PC -> AG (ALT/F5)
1.8.2.1 Bausteinliste holen (Übertragen von mehreren Bausteinen)
Es erscheint ein Dialogfenster, in dem alle Bausteine in einer
Auswahl- box erscheinen. Sie können nun die gewünschten Bausteine,
die Sie übertragen möchten, markieren.Wenn Sie keine Bausteine
markieren, gilt der hervorgehobene Baustein als markiert. Wenn Sie
anschließend die [RETURN]-Taste betätigen, werden alle markierte
Bausteine zum AG übertragen. Um den Vorgang abzubrechen, können
Sie jederzeit die [ESC]-Taste drücken.
1.8.2.2 Manuelle Eingabe (Übertragung eines Bausteines)
Die manuelle Eingabe ermöglicht die Übertragung eines Bausteins.
Um den aktuellen Baustein im Editor zu übertragen, sollten Sie
diesen Menuepunkt benutzen, da dieser Baustein im Eingabefeld
schon eingetragen ist. Sie können aber auch jeden anderen Baustein
angeben. Wenn der Baustein nicht vorhanden ist, erscheint eine
entsprechende Fehlermeldung.
─── Seite 49 ───
Menuepunkt AG KAPITEL 1
──────────────────────────────────────────────────────────────────────────────
1.8.3 Übertragen AG -> PC (ALT/F6)
1.8.3.1 Bausteinliste holen (BuchAG) - Übertragung von mehreren
Bausteien.
Dieser Menuepunkt dient zum Übertragen von mehreren Bausteinen vom
AG zum Simulator. Es erscheint ein Dialogfenster in dem alle
Bausteine aufgelistet werden. Mit der Tastenkombination [ALT/R]
können Sie vor dem Übertragen einen neuen Bausteinnamen angeben.
Wenn Sie dies nicht tun, werden die bestehenden Bausteine nach
einer Sicherheitsabfrage überschrieben. Markieren Sie die
gewünschten Bausteine, und drücken Sie die [Return]-Taste. Nun
werden alle markieren Bausteine auf die Festplatte/Diskette
abgespeichert.
1.8.3.2 Manuelle Eingabe
Mit diesem Menuepunkt können Sie einen Baustein vom AG zum
Simulator übertragen. Wenn der angegebene Baustein im AG nicht
vorhanden ist, erscheint eine entsprechende Fehlermeldung.
1.8.4 Bausteine im AG löschen (ALT/F8)
1.8.4.1 Alle Bausteine im AG löschen
Dieser Funktion löscht alle Anwenderbausteine im AG (Urlöschen).
Dieser Menuepunkt kann angewandt werden, wenn Sie ein neues
Programm in das AG übertragen wollen, oder wenn das AG nicht mehr
in den "RUN"-Betrieb übergeht.
1.8.5 Komprimieren
Diese Funktion wird benötigt, wenn der RAM-Speicher im AG zu klein
wird. Jedes Mal, wenn Sie bestehende Baustein im AG überschreiben,
wird der alte Baustein nicht gelöscht, sondern nur als ungültig
markiert. D.h. der alte Baustein befindet sich noch im AG, obwohl
er nie mehr benutzt wird. Irgendwann ist der RAM-Speicher mit
diesen Speicherleichen so angereichert, das kein freier RAM für
die neuen Bausteinen zur Verfügung steht. Der Menuepunkt
"Komprimieren" entfernt nun diese Bausteine, damit wieder RAM
Speicher für andere Bausteine frei wird.
─── Seite 50 ───
Menuepunkt AG KAPITEL 1
──────────────────────────────────────────────────────────────────────────────
1.8.6 Buch AG (ALT/F7)
1.8.6.1 "Alle" Bausteine auflisten
Die "Buch AG"-Funktion liefert eine Übersicht über alle gültigen
Bausteine im AG. Es werden nacheinander alle OB's, PB's, FB's,
SB's und DB's aufgelistet.
1.8.6.1 "OB", "PB", "FB", "SB", "DB" - nur
Bestimmte Bausteintypen auflisten
Wenn Sie nur die Bausteinliste von einem bestimmten Bausteintyp
benötigen, sollten Sie diesen Menuepunkt anwählen. Es erscheinen
dann nur die Bausteine, zum ausgewählten Bausteintyp.
1.8.7 AG Start/Stop
1.8.7.1 AG Start (ALT/F9)
Dieser Menuepunkt schaltet das AG in den "RUN"-Betrieb. Ist das AG
bereits im "RUN"-Betrieb, bleibt es auch weiterhin in diesem
Zustand.
1.8.7.2 AG Stop (ALT/F10)
Dieser Menuepunkt schaltet das AG in den "STOP"-Betrieb. Ist das
AG bereits im "STOP"-Betrieb, bleibt es auch weiterhin in diesem
Zustand.
1.8.8 Schnittstelle prüfen
Diese Funktion dient nur dazu, um zu überprüfen, ob die Verbindung
zum AG aufgebaut werden kann. Wenn dies der Fall ist, erhalten Sie
ein freundliches "O.K."
1.8.9 Kommunikationsparameter
AG-Schnittstelle
In diesem Eingabefeld kann die gewünschte Schnittstelle für das
Automatisierungsgerät einstellen.
PC Panel-Schnittstelle
In diesem Eingabefeld kann die Schnittstelle für das
Visualisierungsprogramm "PC Panel" eingestellt werden.
─── Seite 51 ───
Menuepunkt AG KAPITEL 1
──────────────────────────────────────────────────────────────────────────────
PC Panel-Anzahl der Worte/Zyklus
Die Kommunikation der beiden Programme vollzieht sich
ausschließlich über Datenwörter eines Datenbausteins. Mit dieser
Einstellung kann man nun angeben, wieviele Worte pro Zyklus
übertragen werden sollen. Die Voreinstellung liegt hier bei etwa
10 Worte pro Zyklus. Je größer diese Zahl ist, desto schneller ist
der Datenaustausch beider Programme. Der Nachteil wäre dann, daß
die Zykluszeit der Programmberarbeitung sehr ansteigt.
Interrupt Nr. für COM3 und COM4.
Da die Interrupt Nr. für COM3 und COM4 je nach Hardwareeinstellung
verschieden ist, hat man hier die Möglichkeit, die Interrupt Nr.
einzustellen. Wenn Sie sich nicht sicher sind, welche Interrupts
durch Ihre I/O-Karte belegt sind, sollten Sie COM1 oder COM2
verwenden.
Bei den Standard-Karten liegt COM3 auf 0Chex und COM4 auf 0Bhex.
1.8.10 Parameter zeigen
Dieser Menuepunkt zeigt die aktivierte Schnittstellennurmmer mit
allen wichtigen Parametern.
─── Seite 52 ───
Menuepunkt SONSTIGES KAPITEL 1
──────────────────────────────────────────────────────────────────────────────
1.9 Menuepunkt Sonstiges
1.9.1 Anweisungsliste ausdrucken:
Hier kann die Anweisungsliste ausgedruckt werden. Theoretisch kann
jeder Drucker verwendet werden, da nur ASCII-Zeichen gesendet
werden. Als Steuerzeichen werden nur die ASCII- Zeichen Nr. 13
(Wagenrücklauf), Nr. 10 (Zeilenvoschub) und Nr. 12
(Seitenvorschub) verwendet. Zuerst erscheint ein Kontrollfenster,
in dem die Bausteindaten angezeigt werden. Konrollieren Sie diese
Angaben auf Richtigkeit, und ändern Sie diese bei Bedarf. Wenn
alle Angaben richtig sind, drücken Sie die [PGDN] oder
[BILD]-Taste.
Jetzt erscheint ein Fenster, in dem Sie folgende Einstellungen
vornehmen können:
Drucker Port Nr. [1]
Aktive Escape Sequenz [1 ]
Linker Rand [4 ]
AWL-Zeilen pro Seite [55]
AWL/FUP-Kopf drucken [J]
Hier werden nochmals die wichtigsten Einstellungen für den
Ausdruck angezeigt, und können auch hier verändert werden. Wenn
Sie die Angaben mit Hilfe der [PGDN] oder [BILD]-Taste bestätigen
wird nach einer Sicherheitsabfrage die Anweisungsliste
ausgedruckt.
Ist der angeschlossene Drucker nicht betriebsbereit, erscheint
eine Fehlermeldung.
Anmerkung
■ Mit der Einstellung der Escape-Sequenzen können
Sie Schriftart, Zeilenabstand etc. einstellen.
1.9.2 Querverweisliste erzeugen
Diese Funktion erzeugt eine Querverweisliste aller Operanden in
allen Bausteinen. Wie die Querverweisliste aufgebaut ist, wird am
Anfang der Liste erklärt. Hier haben Sie auch die Möglichkeit die
Querverweisliste auszudrucken ([D]-drücken).
─── Seite 53 ───
Menuepunkt SONSTIGES KAPITEL 1
──────────────────────────────────────────────────────────────────────────────
1.9.3 PC Panel- Verbindung testen
Der Simulator kann mit Visualisierungssoftware der Firma AIT in
Augsburg kommunizieren. Es werden zwei Rechner benötigt. Auf dem
einen Rechner läuft der Simulator und auf dem anderen Rechner
läuft das Visualisierungsprogramm "PC Panel". Die Rechner müssen
über ein s.g. NULLMODEM-Kabel über die seriellen Schnittstellen
verbunden werden.
Dieser Menuepunkt dient nun dazu, um die Verbindung zwischen den
beiden Programmen zu prüfen. Zuerst muß dieser Menuepunkt
aktiviert werden. Danach starten Sie auf dem Zweitrechner die
Visualisierungssoftware. Aktivieren Sie auch hier den Menuepunkt
"Optionen/Simulator-Verbindung prüfen". Wenn nun die Verbindung
aufgebaut werden kann, erscheint in beiden Programmen eine
entsprechende Meldung.
Die Schnittstelle für "PC Panel" muß mit dem Menuepunkt
"AG/Kommunikationsparameter" eingestellt werden.
1.10 Menuepunkt Infos
1.10.1 Befehlssatz
Wird dieser Menuepunkt aktiviert, wird zuerst die Datei
'BEFEHLE.DOC' eingelesen. Sie können nun mit den [Pfeil n.
oben]/[Pfeil n.unten]/[PGDN]/[PGUP]- Tasten den Befehlssatz
anschauen. Mit der Option 'Suchen' können Sie gezielt nach
Befehlen suchen. Beachten Sie bei der Eingabe von Suchbegriffen
darauf, daß Klein- und Großschreibung unterschieden wird. Mit der
Taste 'D' können Sie die Datei ausdrucken. Zuerst wird nach der
gewünschten Escape-Sequenz abgefragt. Wenn Sie keine Escape-
Sequenzen aktivieren möchten, geben Sie hier Null ein. Nach der
[Return] Taste können Sie noch einen linken Rand eingeben. Danach
wird, falls der Drucker betriebsbereit ist, die Datei ausgedruckt.
Hinweis:
Wenn Sie die Real-Mode Version (SPS.EXE) benutzen, kann es
vorkommen, daß der Arbeitsspeicher zu klein ist, um den gesamten
Text anzuzeigen. Wenn Sie einen 386'er PC mit 4MB RAM besitzen,
solten Sie die Protected-Mode Version benutzen (SPS386.EXE).
─── Seite 54 ───
Menuepunkt INFOS KAPITEL 1
──────────────────────────────────────────────────────────────────────────────
1.10.2 Dokumentation
Wird dieser Menuepunkt aktiviert, wird zuerst die Datei 'SPS.DOC'
eingelesen. Tastenbelegung: siehe Menueunterpunkt Befehlssatz.
Hinweis:
Wenn Sie die Real-Mode Version (SPS.EXE) benutzen, kann es
vorkommen, daß der Arbeitsspeicher zu klein ist, um den gesamten
Text anzuzeigen. Wenn Sie einen 386'er PC mit 4MB RAM besitzen,
solten Sie die Protected-Mode Version benutzen (SPS386.EXE).
1.10.3 README-Datei
Wenn Sie diesen Menuepunkt aktivieren, wird die Datei "READ.ME"
geladen und angezeigt.
1.10.4 Datei lesen
Unter diesem Menüpunkt kann eine beliebige Datei aufgelistet,
durchsucht und ausgedruckt werden. Geben Sie zuerst den Dateinamen
(evtl. mit Pfad) an. Wenn die Datei gefunden wird, wird die Datei
eingelesen. Tastenbelegung: siehe Menueunterpunkt Befehlssatz.
Hinweis
Dieser Dateibetrachter ist eigentlich nur für den SPS-Simulator
und seine Dateien gedacht. Die eingelesenen Texte sollten nur
Zeilen mit je maximal 80 Zeichen beinhalten. Falls längeren Zeilen
auftauchen werden diese abgeschnitten.
1.10.5 Bestellung
Wird dieser Menuepunkt aktiviert, wird zuerst die Datei
'BESTELL.TXT' eingelesen. Diese Datei sollten Sie als Bestellung
der Vollversion verwenden. Drücken Sie "D" um diese Datei
auszudrucken. Bei den Abfragen nach der Escape-Sequenz und dem
linken Rand geben Sie jeweils Null ein. Danach wird der Ausdruck
gestartet.
1.10.6 Copyright
Hier erfahren Sie die Versionsnummer des vorliegenden Simulators,
die Anschrift und Telefonnummer des Autors (das bin ich) und die
Anzahl der freien Bytes im Arbeitsspeicher.
─── Seite 55 ───
Zeitglieder KAPITEL 2
──────────────────────────────────────────────────────────────────────────────
2.1 Eigenschaften und Arten von Zeitglieder
2.1.1 Einführung
Der Simulator kennt 5 verschiedene Zeiten, die in den folgenden
Abschnitten erläutert werden.
Wird eine Zeit aufgerufen, holt sich das Zeitglied den Startwert
und das Zeitraster aus dem Akku 1. Dieser Wert muß BCD-codiert
vorliegen. Die einfachste Möglichkeit bietet der Befehl "L KT".
Diese Operation legt den Startwert und das Zeitraster in der
richtigen Form ab:
L KT 235.2
│ │
│ └─> Zeitraster (0..3)
└─────> Startwert (2.999)
Nach dieser Operation steht im Akku 1 folgender Inhalt:
┌─┬─┬─┬─┬─┬─┬─┬─┬─┬─┬─┬─┬─┬─┬─┬─┐
│-│-│1│0│0│0│1│0│0│0│1│1│0│1│0│1│
└─┴─┴─┴─┴─┴─┴─┴─┴─┴─┴─┴─┴─┴─┴─┴─┘
│ │ │ │ │ │ │ │
└─┘ └──┬──┘ └──┬──┘ └──┬──┘
Raster │ │ │
│ Zehner Einer
Hunderter
Der Startwert ist BCD-codiert abgelgt. D.h., daß für eine Stelle
(z.B. Einerstelle) immer vier Bits benötigt werden. Der geladene
Zeitwert (235) läßt sich folgendermaßen aufschlüsseln:
2 3 5
│ │ │
│ │ └─ Einer => 0101
│ └─────── Zehner => 0011
└───────────── Hunderter => 0010
Wenn man nun diese drei Dekaden nacheinander (die Einerstellen
wird immer ganz rechts plaziert) hinschreibt, erhält man die BCD-
Zahl von 235:
0010 0011 0101
Die BCD-Zahl belegt also die ersten 12 Bits (0-11). Nach diesen
zwölf Bits wird das Zeitraster in zwei Bits abgelegt (Bit 12 und
13). Das Zeitraster wird dualcodiert abgelegt. Da der Wert des
Zeitrasters von 0-3 beschränkt ist, reichen 2 Bits aus.
Das Zeitraster 2 wird dann folgendermaßen abgelegt: 10
─── Seite 56 ───
Zeitglieder KAPITEL 2
──────────────────────────────────────────────────────────────────────────────
Der gesamte Inhalt des Akku 1 sieht dann, wie oben dargestellt so
aus:
--10 0010 0011 0101
Die Bits 14 und 15 (mit einem Strich markiert), werden nicht
benötigt.
Welche Bedeutung hat der Startwert und das Zeitraster ?
Der Startwert gibt an, von welchem Wert heruntergezählt wird. Das
Zeitraster gibt an, wie schnell heruntergezählt wird.
Mögliche Werte des Zeitrasters:
0 => 10 ms
1 => 100 ms
2 => 1000 ms = 1 Sekunde
3 => 10 000 ms = 10 Sekunden
Wenn Sie nun eine Zeit von 20 Sekunden benötigen, haben Sie
mehrere Möglichkeiten:
1. L KT 200.1 => 200 * 100 ms = 20 Sekunden
2. L KT 20.2 => 20 * 1 Sekunde = 20 Sekunden
3. L KT 2.3 => 2 * 10 Sekunden = 20 Sekunden
Wenn der Zeitwert den Wert "0" erreicht hat, ist die Zeit
abgelaufen.
2.1.2 Eingänge und Ausgänge eines Zeitgliedes (FUP):
T0
┌─────┐
Starteingang ┤T├─┤0├ binärer Ausgang
┤TW DU├ DUAL- codierter Ausgang (Istwert)
│ DE├ BCD- codierter Ausgang (Istwert)
│ │
│-SE- │
Rücksetz- ┤R │
Eingang └─────┘
Anweisungsliste:
0001 :U E 0.0 Starteingang
0002 :L KT 200.0
0003 :SE T 0 Zeitart "SE"
0004 :U E 0.1 Rücksetz-Eingang
0005 :R T 0
0006 :L T 0 Ausgang DUAL
0007 :T MW 200
0008 :LC T 0 Ausgang BCD
─── Seite 57 ───
Zeitglieder SE KAPITEL 2
──────────────────────────────────────────────────────────────────────────────
0009 :T MW 202
0010 :U T 0 Zuweisung des binären Ausganges
0011 := A 0.0
0012 :BE
Hinweis:
Die Reihenfolge der Belegungen ist nicht beliebig. Lesen Sie dazu
"Programmierung von Zeiten" im Abschitt "FUP-Simulation".
2.1.3 Eigenschaften der Zeitglieder
Die Zeitglieder "SE", "SI", "SS", "SV" werden nur gestartet, wenn
der Sinalzustand des Starteingangs von '0' nach '1' wechselt
(HIGH- FLANKE).
Das Zeitglied "SA" wird nur gestartet, wenn der Signalzustand des
Starteingangs von '1' nach '0' wechselt (LOW-FLANKE).
2.1.3.1 Eigenschaften der Zeitart "SE":
■ die Zeit wird nur bei einer HIGH-FLANKE gestartet
■ einschaltverzögert
■ nicht speichernd
■ der Starteingang muß während des Ablaufs Signalzustand 1 führen.
Ablaufdiagramm der Zeitart "SE":
1 │ ┌───────┐ ┌─┐
0 ├───┘ └───────┘ └──── Starteingang
│ . .
│ . .
1 │ . ┌───┐
0 ├───────┘ └────────────── Ausgang
└───────────────────────────────────> t
│ T │
T ist die eingestellte Zeit.
─── Seite 58 ───
Zeitglieder SI / SV KAPITEL 2
──────────────────────────────────────────────────────────────────────────────
2.1.3.2 Eigenschaften der Zeitart "SI"
■ die Zeit wird nur bei einer HIGH-FLANKE gestartet
■ Liefert einen Impuls
■ nicht speichernd
■ der Starteingang muß während des Ablaufs Signalzustand 1 führen.
Ablaufdiagramm der Zeitart "SI":
1 │ ┌───────┐ ┌─┐
0 ├───┘ └───────┘ └──── Starteingang
│ .
│ .
1 │ ┌───┐ ┌─┐
0 ├───┘ └───────────┘ └──── Ausgang
└───────────────────────────────────> t
│ T │
T ist die eingestellte Zeit.
2.1.3.3 Eigenschaften der Zeitart "SV"
■ die Zeit wird nur bei einer HIGH-FLANKE gestartet
■ Liefert einen Impuls
■ ist speichernd
Ablaufdiagramm der Zeitart "SV":
1 │ ┌───────┐ ┌─┐
0 ├───┘ └───────┘ └──── Starteingang
│ . .
│ . .
1 │ ┌───┐ ┌───┐
0 ├───┘ └───────────┘ └── Ausgang
└───────────────────────────────────> t
│ T │ │ T │
T ist die eingestellte Zeit.
─── Seite 59 ───
Zeitglieder SA / SS KAPITEL 2
──────────────────────────────────────────────────────────────────────────────
2.1.3.4 Eigenschaften der Zeitart "SA"
■ die Zeit wird nur bei einer LOW-FLANKE gestartet
■ ausschaltverzögert
■ ist speichernd
Ablaufdiagramm der Zeitart "SA":
1 │ ┌───────┐ ┌─┐
0 ├───┘ └───────┘ └──── Starteingang
│ . . . .
│ . . . .
1 │ ┌───────────┐ ┌─────┐
0 ├───┘ └───┘ └─ Ausgang
└───────────────────────────────────> t
│ T │ │ T │
T ist die eingestellte Zeit.
2.1.3.5 Eigenschaften der Zeitart "SS"
■ die Zeit wird nur bei einer HIGH-FLANKE gestartet
■ einschaltverzögert
■ ist speicherd
■ ist die Zeit abgelaufen, kann diese erst wieder gestartet
werden, wenn danach einmal der Rücksetzeingang aktiviert wurde.
Ablaufdiagramm der Zeitart "SS":
1 │ ┌─┐ ┌──┐ ┌─────┐
0 ├───┘ └─┘ └────┘ └──── Starteingang
│ . .
│ . .
1 ├─┐ ┌──┐ .
0 │ └────────┘ └──────────── Rücksetzeingang
│ . . .
│ . . .
1 │ . ┌──┐ . ┌──────
0 ├───────┘ └────────┘ Ausgang
└───────────────────────────────────> t
│ T │ │ T │
T ist die eingestellte Zeit.
─── Seite 60 ───
Zähler KAPITEL 2
──────────────────────────────────────────────────────────────────────────────
2.2. Eigenschaften eines Zählers
■ Ein Zähler "zählt" nur dann, wenn der Signalzustand des
Starteingangs von '0' auf '1' wechselt (HIGH-FLANKE).
■ Steht eine HIGH-FLANKE an, wird immer um den Wert 1 hoch- oder
heruntergezählt.
■ Der binäre Ausgang führt den Signalzustand '1' wenn der
Zählerstand ungleich Null ist.
■ soll ein Zähler auf einen bestimmten Zählerstand gesetzt werden,
muß dieser Zählerstand BCD-codiert geladen werden (L KZ).
Ein.- und Ausgänge eines Zählers (FUP):
Z1
┌────────┐
Vorwärtszählen ┤ZV Q├ Binärer Ausgang
Rückwärtszählen ┤ZR │
│ │
Zähler setzen ┤S │
┤ZW DU├ Ausgang DUAL (Zählerstand)
│ DE├ Ausgang BCD (Zählerstand)
Zähler rück- ┤R │
setzen └────────┘
Anweisungsliste
0001 :U E 0.0
0002 :ZV Z 1 Vorwärtszählen
0003 :U E 0.1
0004 :ZR Z 1 Rückwärtszählen
0005 :U E 0.2
0006 :L KZ 400 400 BCD-codiert laden
0007 :S Z 1 Zähler auf den Wert 400 setzen
0008 :U E 0.3
0009 :R Z 1 Zähler rücksetzen
0010 :L Z 1 Zählerstand dual codiert laden
0011 :T DW 2 und transferieren
0012 :LC Z 1 Zählerstand BCD-codiert laden
0013 :T DW 3 und transferieren
0014 :U Z 1 binärer Zustand es Zählers zuweisen
0015 := A 0.0
0016 :BE
Hinweis:
Die Belegung eines Zähles ist nicht beliebig. Bitte lesen Sie dazu
den Abschnitt "Programmierung von Zählern".
─── Seite 61 ───
KAPITEL 2
──────────────────────────────────────────────────────────────────────────────
2.3. Programmierung von Klammern
Der Einsatz von Klammern kann Ihnen den einen oder anderen
Hilfsmerker ersparen. Es können einfache oder verschachtelte
Klammern programmiert werden. Die Verschachtelungstiefe ist auf 8
Klammerebenen begrenzt. Überschreiten Sie diese Grenze, erhalten
Sie eine Fehlermeldung.
Verschachtelte Klammern werden im allgemeinen nicht programmiert,
da diese unübersichtlich sind. Eine Alternative dazu ist, mehrere
einfache Klammern hintereinander zu programmieren.
Hinweise zu den Klammern:
■ Sprungmarken innerhalb von Klammern sind nicht erlaubt
■ Sprungbefehle innerhalb von Klammern sind nicht erlaubt
2.4. Die Beinflussung der Akkus
Die Akkuinhalte werden ausschließlich von Ladebefehle und
arithmetischen Befehlen beeinflußt. Bei allen Ladeoperationen wird
zuerst der Inhalt des 1. Akkus in das 2. Akku transferiert. Danach
wird die eigentliche Operation ausgeführt.
■ Wenn Sie ein BYTE laden (z.B.: L EB 1), wird dieses Byte immer
in das LOW-Byte des 1. Akkus geladen, wobei das HIGH-Bytes des
Akku 1 auf Null gesetzt wird.
■ Wenn Sie ein Wort laden (z.B. L EW 0), dann wird das Low-Byte
(EB 1) in das Lowbyte und das High-Byte (EB 0) in das High-Byte
des Akku 1 geladen.
Wenn Sie ein Byte transferieren, wird immer das Low-Byte des 1.
Akkus in den angegebenen Operanden transferiert. Wenn Sie ein Wort
(z.B. T EW 0) transferieren, wird das Low-Byte des Akku 1 in EB 1
und das Highbyte des Akku 1 in EB 0 transferiert.
Wichtiger Hinweis:
Wenn Sie eine Wortadresse (EW/AW/MW/PW) betrachten, ist das
höherwertige Byte das Lowbyte und das niederwertige Byte das
Highbyte:
MW 20 besteht aus MB 20
und MB 21
wobei MB 20 das Highbyte
und MB 21 das Lowbyte ist.
dies trifft nicht auf Datenwörtern zu, da ja diese nicht über
Bytes ansprechbar sind, sondern explizit über 'DR' und 'DL'.
─── Seite 62 ───
KAPITEL 2
──────────────────────────────────────────────────────────────────────────────
2.5. Die Beeinflussung der Anzeigebits
Allgemeines:
Die Anzeigebits sind interne Bits, die bei bestimmten Operationen
manipuliert werden. Diese Bits kommen dann bei den verschiedenen
Sprüngen zum Einsatz. Welche Bedingungen für welche Sprünge
Voraussetzung sind, können sie direkt im Menuepunkt
INFO/Befehlssatz abrufen. Die Anzeigebits können während der
Simulation angezeigt werden. Die Anzeigebits sind am Bildschirm,
wenn sie eingeschaltet sind, folgendermaßen angeordnet:
VKE AKKU1 AKKU2 Anzeigebits
0 0000 0000 000
│││
│││
││└──────────> Overflow Bit
││
││
│└───────────> Anz0
└────────────> Anz1
Veränderung der Anzeigebits bei Vergleicherbefehlen:
┌───────────────────┬─────────┬─────────┐
│ Inhalt der Akkus: │ Anz1 │ Anz0 │
├───────────────────┼─────────┼─────────┤
│ AKKU 2 = AKKU 1 │ 0 │ 0 │
│ │ │ │
│ AKKU 2 < AKKU 1 │ 0 │ 1 │
│ │ │ │
│ AKKU 2 > AKKU 1 │ 1 │ 0 │
└───────────────────┴─────────┴─────────┘
─── Seite 63 ───
KAPITEL 2
──────────────────────────────────────────────────────────────────────────────
Veränderung der Anzeigebits bei arithmetischen Befehlen:
┌────────────────────┬──────────┬─────────┬───────────────┐
│ Ergebnis │ Anz1 │ Anz0 │ Overflow (OV) │
├────────────────────┼──────────┼─────────┼───────────────┤
│ < -32768 │ 1 │ 0 │ 1 │
│ │ │ │ │
│ -32768 bis -1 │ 0 │ 1 │ 0 │
│ │ │ │ │
│ 0 │ 0 │ 0 │ 0 │
│ │ │ │ │
│ +1 bis +32767 │ 1 │ 0 │ 0 │
│ │ │ │ │
│ > + 32767 │ 0 │ 1 │ 1 │
└────────────────────┴──────────┴─────────┴───────────────┘
Veränderung der Anzeigebits nach Umwandlungsoperationen (KZW ...)
┌────────────────────┬──────────┬─────────┬───────────────┐
│ Ergebnis │ Anz1 │ Anz0 │ Overflow (OV) │
├────────────────────┼──────────┼─────────┼───────────────┤
│ < -32768 │ 1 │ 0 │ 1 │
│ │ │ │ │
│ -32768 bis -1 │ 0 │ 1 │ 0 │
│ │ │ │ │
│ +1 bis +32767 │ 1 │ 0 │ 0 │
│ │ │ │ │
│ > + 32767 │ 0 │ 1 │ 1 │
└────────────────────┴──────────┴─────────┴───────────────┘
Veränderung der Anzeigebits nach wortweisen Verknüpfungen:
┌─────────────────┬──────────────┬──────────┬───────────────┐
│Inhalt von Akku 1│ Anz1 │ Anz0 │ Overflow (OV)│
├─────────────────┼──────────────┼──────────┼───────────────┤
│ 0 │ 0 │ 0 │ - │
├─────────────────┼──────────────┼──────────┼───────────────┤
│ <> 0 │ 1 │ 0 │ - │
└─────────────────┴──────────────┴──────────┴───────────────┘
Veränderung der Anzeigebits nach Schiebeoperationen:
┌───────────────────┬─────────────┬──────────┬────────────────┐
│Wert des zuletzt │ Anz1 │ Anz0 │ Overflow (OV) │
│hinausgeschobenen │ │ │ │
│Bits │ │ │ │
├───────────────────┼─────────────┼──────────┼────────────────┤
│ 0 │ 0 │ 1 │ - │
│ │ │ │ │
│ 1 │ 1 │ 0 │ - │
└───────────────────┴─────────────┴──────────┴────────────────┘
─── Seite 64 ───
KAPITEL 2
──────────────────────────────────────────────────────────────────────────────
2.6 Der Bearbeitebefehl
Mit diesem Befehl können Sie verschiedene Operationen indirekt
parametrieren.
Format des Bearbeitebefehls.
1. Zuerst muß festgelegt werden, ob ein Merkerwort oder ein Daten-
wort als Adressierung verwendet werden soll.
2. Dann legen Sie den Operanden fest, den Sie indirekt adressieren
wollen, indem Sie sein(e) Parameter mit Null angeben.
z.B.: B DW 100 Das Datenwort 100 wird als Adressierung
verwendet.
U A 0.0 Jetzt wird derjenige Ausgang verknüpft,
der die Parameter hat, die im Datenwort
abgelegt sind.
Sollen binäre Operanden adressiert werden, muß im High-Byte die
Bitadresse und im Low-Byte die Byteadresse stehen.
Beachten Sie:
wenn Sie einen Wortoperanden (EW/AW/MW/PW) betrachten, z.B. EW 2,
ist das Highbyte EB 2 und das Lowbyte EB 3. Bei allen anderen
Fällen steht die Adresse im Low-Byte, während das Highbyte Null
sein muß.
Folgende Operationen können Sie indirekt adressieren:
■ U/UN/O/ON/=/S/R/FR/SE/SI/SV/SA/SS
■ L...EB/EW/AB/AW/MB/MW/DR/DL/DW/PB/PW/Z/T
■ Bausteinaufrufe
■ A DB/ E DB
■ SLW/SRW
Beispiel zum Bearbeitebefehl:
Baustein:FB1 Name:BTEST
0001 #Demonstration des Bearbeitebefehls
0002 #Es werden die Datenwörter 1 bis 100
0003 #mit dem Inhalt des Eingangswort 0 geladen.
0004 #Rufen Sie während der AWL-Simulatiom den
0005 #DB-Editor auf (STRG/RETURN), und drücken Sie
0006 #verschiedene Eingänge (E0.0 bis E1.7)
0007 :
0008 :
0009 :L MW 200 ZÄHLER
0010 :L KB 100
0011 :><F SOLANGE UNGLEICH
─── Seite 65 ───
KAPITEL 2
──────────────────────────────────────────────────────────────────────────────
0012 :SPB = M1 -> ZU MARKE M1 SPRINGEN
0013 :L KB 0 ZÄHLER AUF NULL SETZEN
0014 :T MW 200
0015 M1 :
0016 :L MW 200
0017 :L KB 1
0018 :+F
0019 :T MW 200 ZÄHLER UM 1 ERHÖHEN
0020 :L EW 0
0021 :B MW 200 IN MW200 STEHT DIE DW-NUMMER
0022 :T DW 0 JEWEILIGE DATENWORT BESCHREIBEN
0023 :BE
Dieses Programm transferiert nacheinander das Eingangswort Nr. 0
zu den Datenwörtern 1 bis 100.
Auf der Diskette befindet sich ebenfalls noch ein Beispiel zum
Bearbeitefehl (AWL "TEXT" - nur in der VOLLVERSION).
2.7 Der Divisionsbefehl
Mit dem Befehl /F können Sie eine Division durchführen. Dieser
Befehl manipuliert das 8. Bit des Merkerbytes 255. Wenn Sie durch
Null teilen wird M 255.7 auf '1' gesetzt, ansonsten wird es auf
'0' gesetzt. Sie sollten also das 7. Bit des Merkerbytes 255 nicht
verwenden, da es bei einem Divisionsbefehl manipuliert wird.
─── Seite 66 ───
PROGRAMMIERUNG UND UMGANG MIT BAUSTEINEN KAPITEL 3
──────────────────────────────────────────────────────────────────────────────
3.1 Was ist ein Baustein ?
Ein Baustein ist, einfach ausgedrückt, ein Unterprogramm in Ihrem
SPS-Programm. In einem Baustein werden eine bestimmte Anzahl von
Anweisungen zusammengefaßt, die eine bestimmte Aufgabe erledigen.
Bei STEP 5 (R) gibt es verschiedene Typen von Bausteinen (OB, FB,
SB, PB, DB). Jeder dieser Bausteine ist für einen bestimmten Zweck
gedacht, der in den nächsten paar Abschnitte erläutert wird. Beim
Simulator wird jeder Baustein in einer getrennten Datei
abgespeichert. Wenn Sie das Dialogfenster "Dateihandling" öffnen,
sehen Sie in 5 verschiedenen Auswahlboxen alle Bausteine, die im
eingestellten Pfad vorhanden sind.
3.2 Warum sollte man größere Programme in Bausteine
aufteilen ?
Wenn Sie ein großes Programm geschrieben haben, kann es leicht
passieren, daß Sie die Übersicht über die AWL verlieren. Eine
Abhilfe dieses Problems schafft die Programmierung in Bausteine.
Der Sinn ist dabei, einzelne Teilaufgaben des Programms in
verschiedene Bausteine abzulegen. Damit verleihen Sie Ihrem
Programm eine übersichtliche Struktur.
3.3 VERFÜGBARE BAUSTEINE
3.3.1 OB's (Organisationsbausteine)
Der Simulator unterstützt verschiedene Organisationsbausteine:
OB1
Dieser Organisationsbaustein bildet die Basis für alle anderen
Bausteine. Er muß normalerweise in jedem SPS-Programm vorhanden
sein. Der Simulator kann aber auch einzelne Bausteine ohne den OB1
simulieren. Wenn kein OB1 vorhanden ist, erscheint eine
entsprechende Meldung in der obersten Zeile des Bildschirm. Diese
Meldung erscheint aber nur in der AWL-Simulation, nicht in der
FUP-Simulation. Es ist üblich, ein Programm in verschiedene
Bausteine zu unterteilen. Im OB1 werden dann diese Bausteine
absolut aufgerufen.
OB10 - OB13
Diese Bausteine sind sogenannte Zeitoperationsbausteine. Diese
Bausteine werden nicht zyklisch bearbeitet, sondern werden in
bestimmten Zeitabständen absolut aufgerufen:
OB 10 wird alle 10 ms aufgerufen.
OB 11 wird alle 50 ms aufgerufen.
OB 12 wird alle 1000 ms aufgerufen.
OB 13 wird alle 5000 ms aufgerufen.
─── Seite 67 ───
PROGRAMMIERUNG UND UMGANG MIT BAUSTEINEN KAPITEL 3
──────────────────────────────────────────────────────────────────────────────
Wenn Sie also so im OB10 eine AWL eingeben und anschließend in die
AWL-Simulation gehen, werden diese Anweisungen alle 10ms
durchlaufen. Einsatzgebiete dieser Bausteine sind z.B.
Programmteile, bei denen es nicht darauf ankommt, daß jede
Anweisung zyklisch bearbeitet wird. Praktisches Beispiel: Sie
müssen einen Füllstand kontrollieren, der sich aus technischen
Gründen alle 2 Stunden um 2 % ändert. Hier ist es nicht notwendig,
die Füllstandsanzeige zyklisch zu aktualisieren. Es wäre nun
sinnvoll den Baustein, der diese Aufgabe erledigt, alle 5 Sekunden
bearbeiten zu lassen. Die Lösung: Ein SPA-Aufruf in einem
Zeitgesteuerten OB.
OB21 (Start-OB)
Dieser Organisationsbaustein wird nur einmal bei Simulationsstart
bearbeitet. In diesem Baustein könnten Sie notwendige
Datenbausteine erzeugen, oder irgendwelche Operanden auf einen
Anfangszustand setzen. Wenn Sie Steuerbefehle programmieren,
sollten Sie diese hier ablegen
3.3.2. PB's (Programmbausteine) & SB's (Schrittbausteine)
Diese Bausteine haben keine Besonderheiten. In Programmbausteinen
stehen "normale" Anweisungen. In Schrittbausteine sollten Sie
AWL's ablegen, die in einem besonderen Programmierstil geschrieben
worden sind, nämlich in Schrittketten.
3.3.3. FB's (Funktionsbausteine)
In Funktionsbausteine können Sie den gesamten Operationsvorrat des
SPS-Simulators ausnutzen. Hier werden komplexe Anweisungen oder
Berechnungen abgelegt. Funktionsbausteine können auch parametriert
werden, d.h. Sie können einem Funktionsbaustein beim Aufruf
mitteilen, mit welchen Daten oder Operanden er arbeiten soll. Wenn
Sie sich in höheren Programmiersprachen auskennen, ist ein
parametrierbarer FB mit einer Procedure oder einer Funktion
vergleichbar, der sie Variablen übergeben. (CALL BY REFERENCE)
3.3.4. Integrierte Bausteine
Nehmen wir mal an Sie haben ein OB1 mit dem Namen 'MBAND'
erstellt. Wenn Sie nun ein Funktionsbaustein für dieses Programm
erstellen wollen, müssen Sie beim Abspeichern des FB's den
gleichen Bausteinnamen angeben (MBAND). Wenn nun dieser FB so
flexibel und unabhängig ist, daß Sie ihn auch in anderen
Programmen einsetzen könnten, müßten Sie normalerweise hergehen,
und den FB nochmals unter anderem Namen abspeichern - Und so geht
es einfacher: Wenn Sie den FB einen bestimmten Namen geben, können
Sie
─── Seite 68 ───
PROGRAMMIERUNG UND UMGANG MIT BAUSTEINEN KAPITEL 3
──────────────────────────────────────────────────────────────────────────────
diesen FB auch von anderen SPS-Programmen (die einen anderen
Bausteinnamen haben) aufrufen.
Der Name ist : @@@@@@@@
Das sind 8 ASCII-Zeichen mit der Nummer 64. Dieses ASCII- Zeichen
erreichen Sie mit der Tastenkombination [ALTGR/Q]. Wenn Sie den
Baustein abspeichern, wird er im voreingestellten Pfad für
integrierte Bausteine abgespeichert.
Sie sollten aber nur solche Bausteine als integrierte Bausteine
abspeichern, die es wirklich verdient haben. D.h. der Baustein
sollte fehlerfrei sein, und er sollte auch von anderen SPS-
Programmen genutzt werden können.
Folgende Baustein können als integrierte Bausteine abgespeichert
werden: OB's, FB's, PB's und SB's
Wichtiger Hinweis:
Bei Simulationsstart werden alle integrierten Bausteine in den
Speicher geladen (auch wenn diese gar nicht benötigt werden). Sie
sollten sich also zweimal überlegen, ob Sie einen Baustein als
integrierten Baustein abspeichern.
3.3.5. DB's (Datenbausteine)
Datenbausteine unterscheiden sich gewaltig von den anderen
Bausteinen: Sie beinhalten keine AWL-Zeilen sondern, wie der Name
schon vermuten läßt, reine Daten. Hier können also Zahlenwerte,
Texte, oder sonstige Informationen untergebracht werden. Ein
Datenbaustein besteht aus 256 Datenwörtern, also aus 512 Bytes. In
Bezug auf eine speicherprogrammierbare Steuerung ist dies eine
riesige Datenmenge, wenn man bedenkt, daß man in diesen 512 Bytes
beinahe 250 Operationen unterbringen kann. Wenn man aber in einem
Datenbaustein Texte unterbringen will, wird man schnell merken,
daß dieser Speicher recht schnell gefüllt ist. Da ein ASCII-
Zeichen ein Byte benötigt, können Sie in einem Datenbaustein 512
Zeichen unterbringen. Zum Vergleich: Eine Bildschirmseite benötigt
80 x 25 = 2000 Zeichen also 2000 Byte. Zum Glück gibt es ja nicht
nur einen Datenbaustein sondern gleich 255 Stück davon. Sie können
soviele Bausteine aufrufen, bis der Arbeitsspeicher Ihres Rechner
erschöpft ist.
Mit Hilfe der Operation "E DB" können Sie einen Datenbaustein
erzeugen. Dabei ist zu beachten, daß nur dann ein Datenbaustein
erzeugt wird, wenn der Wert im Akku 1 ungleich Null ist. Ist der
Wert in Akku 1 Null, wird der angegebene DB im Speicher entfernt.
Nachdem Sie einen DB erzeugt haben, müssen Sie diesen mit der
Operation "A DB" aufrufen.
Wenn Sie einen Datenbaustein aufrufen, der noch nicht erzeugt
wurde, wird die Simulation mit einer Fehlermeldung abgebrochen.
─── Seite 69 ───
PROGRAMMIERUNG UND UMGANG MIT BAUSTEINEN KAPITEL 3
──────────────────────────────────────────────────────────────────────────────
Die anderen Bausteine (OB/FB/PB/SB) können DB's mit folgenden
Operationen auf einfache Weise bearbeiten:
A DB 10 Datenbaustein Nr. 10 aufrufen (2..255).
L DW 10 Ein Wort (2 Bytes) aus dem Datenbaustein auslesen.
L DL 20 Linkes Byte von Datenwort 20 laden.
L DR 20 Rechtes Byte von Datenwort 20 laden.
T DW 20 Ein Wort zum Datenwort 20 transferieren.
T DL 30 Ein Byte zum linken Byte von Datenwort 30 trans-
ferieren.
T DR 30 Ein Byte zum rechten Byte vom Datenwort 30 trans-
ferieren.
Wenn Sie vorab einen Datenbaustein mit Werten oder Texten
versorgen wollen, können Sie das über den integrierten
Datenbausteineditor tun. Wie das geht können Sie im entsprechenden
Abschnitt nachlesen.
3.4 Wie erzeuge ich Bausteine ?
Wenn Sie einen neuen Baustein erzeugen wollen, sollten Sie das
immer mit Hilfe des Menuepunktes DATEI/Neuer Baustein anlegen tun.
Nehmen wir mal an Sie wollen ein Programm schreiben, daß folgende
Bausteine enthält: OB1 OB21 PB10 PB11 FB30 FB40. Zuerst müssen Sie
sich einen sinnvollen Namen für das Programm überlegen, unter dem
das Programm auf Diskette oder Festplatte abgespeichert wird.
Dieser Name darf maximal 8 Zeichen lang sein. Drücken Sie nun,
vorausgesetzt Sie befinden sich in der Menueleiste, die
[F4]-Taste.
Alternativ können Sie auch den Menuepunkt "Datei" und danach den
Menueunterpunkt "Neuer Baustein anlegen" aktivieren. Jetzt
erscheint ein Fenster, in dem Sie den Bausteintyp, die
Bausteinnummer und den Bausteinname angeben müssen. Wenn Sie alle
Felder ausgefüllt haben, müssen Sie die [PGDN]-Taste drücken, um
die Eingaben zu bestätigen. Wenn Sie das getan haben, befinden Sie
sich nun im Editor, wo Sie Ihr Programm eingeben können. Wenn Sie
den Baustein abschließen möchten, geben Sie als letzte Anweisung
"BE" ein.
Danach springt das Programm in die Menueleiste zurück. Wenn Sie
nun die [F2]-Taste betätigen erscheint ein Dialogfenster, in dem
Sie noch eine Beschreibung und, wenn Sie darauf Wert legen, Ihren
Namen angeben können. Nach Betätigung der [PGDN]-Taste wird der
Baustein abgespeichert.
Die gleiche Procedure führen Sie noch mit den anderen Bausteinen
durch, wobei Sie immer den gleichen Bausteinnamen angeben müssen.
─── Seite 70 ───
PROGRAMMIERUNG UND UMGANG MIT BAUSTEINEN KAPITEL 3
──────────────────────────────────────────────────────────────────────────────
3.5 Der Aufruf von Bausteinen
Sie können Bausteine absolut aufrufen, d.h. unabhängig vom Zustand
des VKE (Verknüpfungsergebnis) oder bedingt, d.h. der Baustein
wird nur aufgerufen, wenn das VKE den Signalzustand '1' führt.
Wenn Sie im Editor einen Funktionsbaustein aufrufen, wird
nachgeprüft, ob der Baustein auf dem Datenträger vorhanden ist.
Ist das nicht der Fall erhalten Sie eine Fehlermeldung und die
AWL-Zeile wird als Kommentar gekennzeichnet. Das bedeutet, Sie
können einen Funktionsbausteinaufruf nur programmieren, wenn sich
der betreffende Baustein im eingestellten Pfad befindet. Ein FB
muß beim Aufruf vorhanden sein, damit nachgeprüft werden kann, ob
dieser mit Formaloperanden arbeitet. Ist dies der Fall, müssen Sie
die Aktualoperanden im Editor eingeben.
3.6 DIE SIMULATION EINES SPS-PROGRAMMS MIT VERSCHIEDENEN
BAUSTEINEN.
3.6.1 Laden eines Bausteins
Nehmen wir mal an, Sie haben ein Programm geschrieben, daß
verschiedene Bausteine enthält. Um das Programm zu simulieren,
müssen Sie es zuerst in den Speicher laden. Wenn Sie [STRG/RETURN]
drücken erscheint das Bausteinhandling- Fenster, in dem alle
Bausteine aufgelistet werden. Machen Sie mit Hilfe der [TAB]-Taste
das Fenster mit den OB's (das ist das Dateifenster ganz links) zum
aktuellen Dateifenster, und drücken Sie den Anfangsbuchstaben
Ihres SPS-Programms. Die Auswahlbox such jetzt nach OB's, welche
mit dem gedrückten Buchstaben anfangen.
War die Suche erfolgreich springt der Auswahlbalken zur gefundenen
Position. Wenn Sie jetzt den zweiten Buchstaben Ihres SPS-
Programms drücken wird wieder gesucht und der Auswahlbalken
springt erneut zur gefundenen Position. Auf diese Weise haben Sie
Ihr geschriebenes Programm schnell gefunden. Nach Drücken der
[RETURN]-Taste wird das SPS- Programm geladen.
Es macht kein Unterschied, wenn Sie statt dem OB einen vorhandenen
PB, FB oder SB laden.
─── Seite 71 ───
PROGRAMMIERUNG UND UMGANG MIT BAUSTEINEN KAPITEL 3
──────────────────────────────────────────────────────────────────────────────
3.6.2 Aktivierung der Simulation
Jetzt können Sie die AWL-Simulation mit der [F9]-Taste aktivieren.
Es werden jetzt alle Bausteine, die den gleichen Bausteinnamen
haben, geladen. Dabei spielt es keine Rolle, ob der Baustein in
der AWL aufgerufen wird, oder nicht. Auch alle integrierten
Bausteine werden geladen. Nachdem alle Bausteine geladen wurden,
wird zuerst der OB21 (falls er vorhanden ist) bearbeitet. Danach
wird der OB1 zyklisch abgearbeitet.
3.6.2.1 Simulation von OB's FB's PB's & SB's
Im Simulationsfenster sehen Sie jetzt den Baustein, den Sie vorher
geladen haben. Natürlich ist es jetzt interessant nachzusehen, wie
sich die anderen Bausteine verhalten - drücken Sie [STRG/RETURN].
Es erscheint nun rechts ein kleines Auswahlfenster, in dem alle
Bausteine, die sich im Speicher befinden, nacheinander aufgelistet
werden. Die Simulation wird dadurch nicht unterbrochen, sie läuft
im Hintergrund weiter.
Sie können jetzt bequem ein Baustein aussuchen und anzeigen
lassen. Auch hier können Sie, wie beim Laden von Bausteinen, durch
Drücken der Anfangsbuchstaben schneller den gewünschten Baustein
anwählen. Die Bausteine werden immer in der Reihenfolge OB-FB- PB-
SB-DB aufgelistet.
3.6.2.2 Simulation von DB's
Das Auswahlfenster, das Sie mit Hilfe der Tastenkombination
[STRG/RETURN] erreichen, listet vorhandene Datenbausteine zuletzt
auf. Dabei ist der Datenbaustein Nr. 2 immer vorhanden. Dieser
Datenbaustein wird in der AWL-Simulation bearbeitet, wenn Sie
keine anderen erzeugen oder aufrufen. Wenn Sie nun aus dieser
Auswahlliste einen DB auswählen, wird der DB-Editor im
Simulationsmodus aktiviert, und Sie können während der Simulation
den Inhalt des ausgesuchten Datenbausteins betrachten. Mit den
Tasten [+] und [-] können Sie das Sichtfenster zeilenweise
verschieben. Dabei bleiben die anderen Tasten für die Steuerung
der AWL-Simulation weiter aktiv. Eingeschaltete Anzeigen
(Akku/VKE/...) sind während der DB- Simulation nicht aktiv.
Mit der [ESC]-Taste verlassen Sie wieder den DB-Editor.
─── Seite 72 ───
PROGRAMMIERUNG UND UMGANG MIT BAUSTEINEN KAPITEL 3
──────────────────────────────────────────────────────────────────────────────
3.6.3 INFORMATIONEN BEI DER SIMULATION
3.6.3.1 WIRD DER ANGEZEIGTE BAUSTEIN BEARBEITET ?
Wenn Sie einen Baustein im Simulationsfenster ansehen, heißt das
noch lange nicht, daß dieser auch bearbeitet wird. Vielleicht wird
er ja gar nicht angesprungen. Wird ein Baustein bearbeitet sehen
Sie rechts in der untersten Zeile des Bildschirms das ASCII-
Zeichen 4 (eine Raute) flackern. Es ist in bestimmten Fällen aber
auch möglich, daß ein Baustein bearbeitet wird, und dieses Zeichen
nicht erscheint. Dieser Fall tritt ein, wenn der Baustein im
Simulationsfenster klein gegenüber den anderen Bausteinen ist.
Dann wird das Raute- Zeichen viel öfter gelöscht als dargestellt.
Das Ergebnis ist, daß Sie das Zeichen nicht mehr erkennen.
Hinweis:
Werden OB's im Simulationsfenster angezeigt, wird das Raute-
Zeichen nicht angezeigt.
3.6.3.2 Wieviele Bausteinebenen besitzt das simulierte Programm ?
Wenn Sie im OB 1 einen Baustein aufrufen, und im aufgerufenen
Baustein wird wieder ein Baustein aufgerufen, und in diesem
Baustein wird ebenfalls wieder ein Baustein aufgerufen, dann haben
Sie ein verschachteltes SPS-Programm geschrieben. In der AWL-
Simulation wird die maximal erreichte Bausteinebene in der letzten
Bildschirmzeile rechts in eckigen Klammern angezeigt.
Die maximale Verschachtelungstiefe ist beim SPS-Simulator auf 15
begrenzt. Bei Überschreitung dieser Grenze wird die Simulation
durch eine Einleitung des STOP-Befehls abgebrochen.
Eine solche Fehlermeldung erhalten Sie z.B. wenn Sie einen
unkontrollierten rekursiven Aufruf bewerkstelligen. Sie wissen
nicht was das ist ? Ganz einfach, wenn sich ein Baustein selbst
aufruft. Das hat verheerende Folgen, da innerhalb kürzester Zeit
alle Bausteinebenen durchlaufen werden, bis die maximale
Verschachtelungstiefe erreicht wird. Sie können es gerne mal
ausprobieren.
3.7 DER DATENBAUSTEINEDITOR - ERSTELLUNG VON DATENBAUSTEINEN
3.7.1 Aufruf des Datenbausteineditors
Der SPS-Simulator besitzt in der vorliegenden Version auch einen
Datenbausteineditor. Mit Hilfe dieses Werkzeuges können Sie auf
einfache Weise einen Datenbaustein bearbeiten. Der Editor kann in
drei Anzeigemodi arbeiten: "KC", "KH" und "KF". Diese Modi können
zur jeder Zeit, wenn der Datenbausteineditor sichtbar ist, mit der
[TAB]-Taste umgeschaltet werden.
─── Seite 73 ───
PROGRAMMIERUNG UND UMGANG MIT BAUSTEINEN KAPITEL 3
──────────────────────────────────────────────────────────────────────────────
Wenn Sie einen Datenbaustein erstellen möchten, gehen Sie genauso
vor, wie bei der Erstellung eines anderen Bausteins. Gehen Sie
also zum Menuepunkt "DATEI/Neuer Baustein anlegen" und drücken Sie
die [RETURN]-Taste. Geben Sie nun im Eingabefeld Bausteintyp "DB"
ein. Die anderen zwei Felder müssen auch noch mit entsprechenden
Daten versorgt werden (Bausteinname und Bausteintyp). Nach drücken
der [PGDN]-Taste wird der Datenbausteineditor aufgerufen.
Wenn Sie sich im "normalen" Editor befinden und die
Tastenkombination [STRG/RETURN] drücken, erscheint
ein Auswahlfeld, in dem Sie ebenfalls ein Datenbaustein anwählen
können. Ebenso können Sie einen abgespeicherten DB laden und
editieren, wenn Sie sich im Dialogfenster "Bausteinhandling"
befinden ([F3]-Taste). In diesen Auswahlfeldern werden aber nur
schon erstellte Datenbausteine aufgelistet. Wenn Sie also einen
neuen Datenbaustein erstellen wollen, müssen Sie die zuvor
vorgestellte Möglichkeit wählen.
3.7.2 Eingeben von Daten
Je nachdem, was für Daten Sie eingeben möchten, können Sie mit der
[TAB]-Taste das Anzeigeformat umschalten. Wenn Sie Texte eingeben
wollen, ist es natürlich sinnvoll, das "KC"-Format zu wählen. Es
hindert Sie aber niemand daran, die "KH"-Anzeige zu wählen, und
die entsprechenden ASCII-Codes hexadezimal einzuhacken. Ein
Unterschied macht nur der jeweilige Zeitaufwand.
Folgende Steuertasten sind im Datenbausteineditor aktiv:
(Nur im Editormodus - also nicht während der Simulation)
Taste Befehl
─────────────────────────────────────────────────────────────
[PGDN] Vorblättern.
[PGUP] Zurückblättern.
[Pfeil nach oben] Cursor um eine Zeile nach oben
bewegen.
[Pfeil nach unten] Cursor um eine Zeile nach unten
bewegen.
[Pfeil nach rechts] Cursor um eine Spalte nach rechts
bewegen.
[Pfeil nach links] Cursor um eine Spalte nach links
bewegen.
[ALT/D] Datenbaustein von Datenträger
entfernen.
[ALT/C] Datenbausteininhalt löschen.
[ALT/P] Datenbaustein drucken.
─── Seite 74 ───
PROGRAMMIERUNG UND UMGANG MIT BAUSTEINEN KAPITEL 3
──────────────────────────────────────────────────────────────────────────────
Aktive Tasten bei ..
────────────────────
Einstellung "KC" ...... alle Zeichen sind erlaubt.
Einstellung "KF" ...... Ziffern von "0" bis "9", "+" und "-" sind
erlaubt.
Einstellung "KH" ...... Zeichen "A"-"F" und die Ziffern
"0" bis "9" sind erlaubt.
Wenn Sie einen Datenbaustein geändert haben, werden Sie vor
Verlassen des DB-Editors gefragt, ob der DB abgespeichert werden
soll. Wenn Sie dies bestätigen, ist dieser Baustein ab sofort auch
im Menuepunkt "Bausteinhandling" erreichbar.
3.7.3 Besonderheiten des DB-Editors
Der Datenbausteineditor kann in zwei verschiedenen Modi aufgerufen
werden. Wenn Sie sich in der AWL-Simulation befinden und von dort
einen Datenbaustein aufrufen, wird der DB-Editor im
Simulationsmodus aufgerufen. Die Anzeige wird dann nach jedem
Zyklus, wie die Anweisungsliste auch, aktualisiert. In diesem
Modus sind nur die Tasten [+] und [-] aktiv.
Mit diesen Tasten können Sie den Ausschnitt des DB-Editors während
der AWL-Simulation verschieben.
Gleichzeitig sind die anderen Tasten für die AWL-Simulation weiter
aktiv. Sie können also, während Sie den DB-Editor betrachten,
Eingänge umschalten und durch die AWL blättern.
Hinweis:
Wenn Sie sich in der AWL-Simulation befinden und die "KC"-Anzeige
ist aktiv, wird das Byte Nr. 7 als Punkt (".") dargestellt. Wenn
man nämlich dieses ASCII-Zeichen auf den Bildschirm ausgeben
würde, würde ein akustisches Signal ertönen.
─── Seite 75 ───
PARAMETRIERBARE FUNKTIONSBAUSTEINE KAPITEL 4
──────────────────────────────────────────────────────────────────────────────
4.1 Was sind parametrierbare FB's
Ein parametrierter FB ist ein Funktionsbaustein, dem man Parameter
oder Operanden (Aktualoperanden) übergeben kann.
Beispiel:
Es wäre möglich, mit Hilfe eines p. FB's einen Taktgenerator zu
schreiben, dem Sie mitteilen können, welche Taktfrequenz er
erzeugen soll, und mit welchen Operanden er arbeiten soll. Wenn
Sie nun in Zukunft einen Taktgenerator benötigen, können Sie
einfach diesen FB aufrufen. Es ist sogar möglich, mit einem
solchen FB mehrere Taktgeneratoren gleichzeitig mit
unterschiedlichen Taktfrequenzen zu erzeugen. Sie müssen nur
diesen FB mehrmals mit verschiedenen Parameter und Operanden
aufrufen.
4.2 Erstellung von parametrierten FB's
Zunächst müssen Sie einen neuen FB eröffnen. Gehen Sie zum
Menuepunkt "Datei/Neuer Baustein anlegen", und drücken Sie die
[RETURN]-Taste. Im Eingabefeld "Bausteintyp" geben Sie "FB" ein.
Die Bausteinnummer können Sie frei wählen, der Bausteinname muß
mit dem Bausteinname des OB1 übereinstimmen. Wenn Sie alle
Eingabefelder mit Daten versorgt haben, können Sie die
[PGDN]-Taste drücken, danach befinden Sie sich im Editor. Drücken
Sie nun die [F10]-Taste. Jetzt erscheint ein Fenster, in dem Sie
einen Namen oder eine Beschreibung des FB's angeben müssen. Geben
Sie einen passenden Text ein, und drücken Sie die [RETURN]-Taste.
Jetzt werden nacheinander die Formaloperanden definiert.
Für jeden Formaloperand müssen Sie drei Angaben machen:
1. Symbol mit maximal 4 Zeichen
2. Typ des Parameters
3. Parameterart
Bei den Parametertypen "B", "T" und "Z" entfällt die dritte
Angabe. Wenn Sie alle 3 Angaben gemacht haben, wird der Eintrag in
die AWL vorgenommen und der Vorgang beginnt von Neuem. Wenn Sie
keinen Formaloperanden mehr eingeben wollen, drücken Sie die
[ESC]-Taste.
In einem FB können maximal 40 Formaloperanden definiert werden.
Nachdem Sie alle Formaloperanden festgelegt haben, folgt das
eigentliche Programm. In diesem Programm können Sie nun besondere
Operationen mit Formaloperanden programmieren (siehe
Operationsvorat im Anhang). Natürlich können Sie in diesem FB auch
die "normalen" Operationen verwenden.
─── Seite 76 ───
PARAMETRIERBARE FUNKTIONSBAUSTEINE KAPITEL 4
──────────────────────────────────────────────────────────────────────────────
4.3 Aufruf von parametrierten FB's
Ein parametrierter FB kann von jedem anderem Baustein aufgerufen
werden. Der FB kann absolut (SPA FB) oder bedingt (SPB FB)
aufgerufen werden. Bei einem solchen Aufruf wird nachgeprüft, ob
der FB vorhanden ist. Wenn das der Fall ist, wird die
Parameterliste, die am Anfang des FB abgespeichert ist, in den
aktuellen Baustein eingefügt. Sie müssen nun jede eingefügte Zeile
mit einem entsprechenden Parameter oder Aktualoperanden belegen.
4.4 Ändern der BEZeicherliste
Wenn Sie einen parametrierten FB programmiert haben, kann es
vorkommen, daß Sie die BEZeicherliste ändern müssen. Zur
Erinnerung: In der BEZeichnerliste müssen alle Formaloperanden
definiert werden. Diese Liste steht immer an erster Stelle des
FB's. Wenn Sie nun diese Liste ändern, werden folgende Probleme
auftauchen: Zum einen können Operationen, die Sie im FB
programmiert haben, nicht mehr ausgeführt werden, weil diese mit
dem neuen Parametertyp nicht möglich sind. Zum anderen kann es zu
Problemen bei der Parameterübergabe bei der AWL-Simulation kommen.
Sie müssen dann alle FB-Aufrufe ebenfalls ändern, damit die
Parameter wieder übereinstimmen.
4.5 Simulation von parametrierten FB's
Wenn Sie ein Programm simulieren, daß einen p. FB enthält, können
Sie diesen natürlich auch im Simulationsfenster sichtbar machen
([STRG/RETURN] und dann auswählen). Beachten Sie aber: Wenn ein p.
FB mehrmals aufgerufen wird, zeigen die AWL- Zeilen (HIGH/LOW
Status) keinen definierten Zustand mehr an, da ja bei jedem Aufruf
andere Operanden im Spiel sind.
4.6 Beispiel
In diesem Beispiel wird ein Taktgenerator als parametrierter FB
realisiert.
Wir werden nun folgende Bausteine programmieren:
1. FB100
Bausteinname: "BEISPIEL"
2. OB1
Bausteinname: "BEISPIEL"
Sie sehen, beide Bausteinnamen stimmen überein. Dies ist eine
Voraussetzung, daß der aufgerufene FB gefunden wird.
─── Seite 77 ───
PARAMETRIERBARE FUNKTIONSBAUSTEINE KAPITEL 4
──────────────────────────────────────────────────────────────────────────────
1. Programmierung des FB100
Eröffnen Sie zuerst einen neuen Baustein mit dem Namen "BEISPIEL",
Bausteintyp "FB" und Bausteinnummer "100".
Geben Sie nun folgende Anweisungsliste ein, wobei Sie die
Definition der Formaloperanden mit Hilfe der [F10]-Taste erstellen
können.
Baustein:FB100 Name:BEISPIEL
0001 NAME:TAKTGENERATOR
0002 BEZ :HILF E BI
0003 BEZ :TIME T
0004 BEZ :ZEIT D KT
0005 BEZ :AUSG A BI
0006 : ┌──────────────────┐
0007 :UN = HILF │ => UN M 10.0 │
0008 :LW = ZEIT │ => L KT 50.0 │
0009 :SVZ = TIME │ => SV T 1 │
0010 :U = TIME │ => U T 1 │
0011 := = HILF │ => = M 10.0 │
0012 : │ │
0013 :U = HILF │ => U M 10.0 │
0014 :BEB │ => BEB │
0015 :UN = AUSG │ => UN A 5.0 │
0016 := = AUSG │ => = A 5.0 │
0017 : │ │
0018 :BE └─────────┬────────┘
Diese Kommentare
müssen Sie nicht eingeben.
Die Kommentare in der rechten Spalte zeigen, wie das Programm
später bearbeitet wird.
2. Programmierung des OB1
Eröffnen Sie zuerst einen neuen Baustein mit dem Namen "BEISPIEL",
Bausteintyp "OB" und Bausteinnummer "1".
Geben Sie dann folgende Anweisungsliste ein:
Baustein:OB1 Name:BEISPIEL
0001 :
0002 :
0003 :
0004 :SPA FB 100
0005 NAME:TAKTGENERATOR
0006 HILF:M10.0 E BI
─── Seite 78 ───
PARAMETRIERBARE FUNKTIONSBAUSTEINE KAPITEL 4
──────────────────────────────────────────────────────────────────────────────
0007 TIME:T1 T
0008 ZEIT:50.0 D KT
0009 AUSG:A5.0 A BI
0010 :
0011 :
0012 :BE
Wenn Sie nun dieses Programm starten, blinkt der Ausgang A5.0 mit
einer Frequenz von einem Herz. Sie können nun mal ausprobieren,
diesen FB mehrmals hintereinander mit verschiedenen Parametern
aufzurufen. Achten Sie dabei, daß Sie bei jedem Aufruf eine andere
Zeitnummer (T1) und einen anderen Hilfsmerker angeben. Wenn Sie
gleiche Zeitnummern übergeben, arbeiten zwei Taktgeneratoren mit
einer Zeit. Die Folge ist, daß Ihr Taktgenerator nicht mehr
richtig funktioniert.
4.7 Was Sie beachten sollten
■ Wenn Sie einen parametrierten FB mehrmals aufrufen, in dem Sie
Zeiten oder Zähler programmiert haben, müssen Sie bei jedem
Aufruf andere Operandenummern (z.B. T1) übergeben. Sonst können
die Zeitglieder nicht mehr richtig ablaufen.
■ Die Anzahl der Formaloperanden ist in einem FB auf 40 begrenzt.
■ Die definierten Formaloperanden sind nicht außerhalb eines FB's
verwendbar.
■ Wenn Sie Aktualoperanden oder Konstanten in der Parameterliste
angeben, dürfen Sie dabei keine Leerzeichen eingeben.
Beispiel: KT200.2 oder KF+32000 (nach KT darf kein Leerzeichen
stehen!).
─── Seite 79 ───
PARAMETRIERBARE FUNKTIONSBAUSTEINE KAPITEL 4
──────────────────────────────────────────────────────────────────────────────
4.8 Mögliche Bausteinparameter und zugelassene Aktualoperanden
In der folgenden Tabelle finden Sie alle Parameterarten mit den
möglichen Aktualoperanden.
╔══════════╤════════════════════╤═══════════════════════════╗
║Art des │ Typ des │ Zugelassene ║
║Parameters│ Parameters │ Aktualoperanden ║
╠══════════╪════════════════════╪═══════════════════════════╣
║ │ │ E X.X ║
║ E, A │ BI Operand mit │ A X.X ║
║ │ Bitadresse │ M X.X ║
╟──────────┼────────────────────┼───────────────────────────╢
║ │ │ EB X ║
║ E, A │ BY Operand mit │ AB X ║
║ │ Byteadresse │ MB X ║
║ │ │ DL X ║
║ │ │ DR X ║
║ │ │ PB X ║
╟──────────┼────────────────────┼───────────────────────────╢
║ │ │ EW X ║
║ E, A │ W Operand mit │ AW X ║
║ │ Wortadresse │ MW X ║
║ │ │ DW X ║
║ │ │ PW X ║
╟──────────┼────────────────────┼───────────────────────────╢
║ │ KM Bitmuster │ ║
║ D │ KY 2-Byte-Zahl │ ║
║ │ KH Hex-Zahl │ jeweilige ║
║ │ KC 2 Zeichen │ ║
║ │ KT Zeitwert │ Konstante ║
║ │ KZ Zählwert │ ║
║ │ KF Festpunktzahl│ ║
╟──────────┼────────────────────┼───────────────────────────╢
║ │ │ ║
║ │ keine │ DB X (=> A DB X) ║
║ B │ Typenangabe │ FB X (=> SPA FB X) ║
║ │ zulässig │ PB X (=> SPA PB X) ║
║ │ │ SB X (=> SPA SB X) ║
║ │ │ ║
╟──────────┼────────────────────┼───────────────────────────╢
║ │ keine │ ║
║ T │ Typenangabe │ T xx ║
║ │ zulässig │ ║
╟──────────┼────────────────────┼───────────────────────────╢
║ │ keine │ ║
║ Z │ Typenangabe │ Z xx ║
║ │ zulässig │ ║
╚══════════╧════════════════════╧═══════════════════════════╝
Hinweis:
Die Parameterarten "E" und "A" haben nichts mit Eingängen und
Ausgängen zu tun. Sie stehen für Eingangsparameter und
Ausgangsparameter.
─── Seite 80 ───
STEUERBEFEHLE KAPITEL 5
──────────────────────────────────────────────────────────────────────────────
SPS-Steuerbefehle
5.1 Was sind SPS-Steuerbefehle
Mit Hilfe von SPS-Steuerbefehlen kann der Simulator auf das
jeweilige Programm im Editor angepaßt werden. Alle Steuerbefehle
beginnen mit dem Zeichen "$". Danach folgt je nach Steuerbefehl
ein oder zwei Kennbuchstabe(n) und eine bestimmte Anzahl von
Parametern. Die einzelnen Parameter müssen bei der Eingabe durch
ein Leerzeichen getrennt werden. Nach Bestätigung mit Hilfe der
[RETURN]-Taste wird der Steuerbefehl kontrolliert und
ausgerichtet. Steuerbefehle haben bei EGA/VGA- Karten eine
besondere Farbe.
Wichtige Hinweise
■ Steuerbefehle werden immer absolut bearbeitet, d.h. unabhängig
vom VKE
■ Steuerbefehle müssen nur einmal bearbeitet werden. Es bietet
sich darum an, diese Befehle in den OB21 zu schreiben.
Ausnahme: $K : Steuerbefehl für die Klartextanzeige
■ Bei der Eingabe von Steuerbefehlen, müssen die einzelnen
Parameter mit einem Leerzeichen getrennt werden.
Möglichkeiten von SPS-Steuerbefehlen:
■ individuelle Einstellung der allgemeinen Statusanzeige.
■ Festlegung von akustischen Ausgängen, für die Simulation von
Motoren oder Hupen.
■ Festlegung von Tastern und Schalter
■ Einstellung von Peripheriebytes, zur Ansteuerung von Eingangs-
Ausgangskarten.
■ Getrennte und gemeinsame Einstellung der PAE- und PAA Anzeige
■ Programmierung der Klartextanzeige
■ Einstellung der Anlogeingabe
5.2 Definition von Tastern und Schaltern
Steuerbefehl: $E 1 0.0 T S
││ │ │ │ │
││ │ │ │ └───── S=Schließer; O=Oeffner
││ │ │ └─────── T=Taster; S=Schalter
││ │ └────────── Eingang
││ └───────────── laufende Nummer von 1 bis 40
│└─────────────── Kennbuchstabe
└──────────────── Einleitung des Steuerbefehls
Die "laufende Nummer" darf sich nicht wiederholen, da Sie sonst
andere Definitionen wieder überschreiben.
Beispiele:
$E 1 4.0 T S => E4.0 ist Taster, Ausführung Schließer
$E 2 4.1 T O => E4.1 ist Taster, Ausführung Oeffner
$E 3 4.2 S O => E4.2 ist Schließer, Ausführung Oeffner
$E 4 4.3 S S => E4.3 ist Schalter, Ausführung Schließer
─── Seite 81 ───
STEUERBEFEHLE KAPITEL 5
──────────────────────────────────────────────────────────────────────────────
5.3 Definition von akustischen Ausgängen
Steuerbefehl: $A 1 0.0 100
││ │ │ │
││ │ │ └───── Frequenz in Hz
││ │ └────────── Ausgang
││ └────────────── laufende Nummer (1..20)
│└───────────────── Kennbuchstabe
└────────────────── Einleitung des Steuerbefehls
Beispiele
$A 1 0.0 20 => A0.0 ist akustischer Ausgang mit 20 Hz
$A 2 0.1 200 => A0.1 ist akustischer Ausgang mit 200 Hz
$A 3 2.2 420 => A2.2 ist akustischer Ausgang mit 420 Hz
$A 4 4.4 620 => A4.4 ist akustischer Ausgang mit 620 Hz
Achtung:
Es können nicht mehrere akustische Ausgänge gleichzeitig ertönen.
Wenn Sie mehrere akustische Ausgänge festgelegt haben, und mehrere
Ausgänge gleichzeitig Signalzustand '1' führen, ertönt der
Ausgang, der die kleinste "laufende Nummer" hat.
5.4 Einstellung der Statusanzeige
Steuerbefehl: $S 1 EB 1 KH
││ │ │ │ │
││ │ │ │ └───── Anzeigeformat
││ │ │ └───────── Operandennummer
││ │ └───────────── Operand
││ └──────────────── laufende Nummer (1..15)
│└─────────────────── Kennbuchstabe
└──────────────────── Einleitung des Steuerbefehls
Beispiele:
$S 1 EB 4 KH => def. d. 1. Zeile der Statusanzeile auf EB4 KH
$S 2 T 44 KF => def. d. 2. Zeile der Statusanzeile auf T44 KF
$S 5 DW 8 KC => def. d. 5. Zeile der Statusanzeile auf DW8 KC
$S 7 AW 44 KM => def. d. 7. Zeile der Statusanzeile auf AW44 KM
Hinweise:
■ Werden mit Hilfe der Statusanzeige Datenwörter angezeigt, wird
der aktuelle Datenbaustein in der 8. Zeile von oben, ganz rechts
angezeigt. Die angezeigten Datenwörter stammen immer von dem
Datenbaustein, der kurz vor der "BE"- Anweisung des OB1 aktiv
ist. Wollen Sie also Datenwörter von einem bestimmten
Datenbaustein anzeigen, müssen Sie diesen DB in der vorletzten
AWL-Zeile im OB1 aufrufen (A DB xxx).
■ Diese Statusanzeige kann keine Datenwörtern von verschiedenen
Datenbausteine anzeigen.
─── Seite 82 ───
STEUERBEFEHLE KAPITEL 5
──────────────────────────────────────────────────────────────────────────────
5.5 Einstellung von Peripheriebytes
Mit diesem Steuerbefehl können Sie z.B. Interfacekarten
programmieren.
Steuerbefehl: $P 10 220 EB4
││ │ │ │
││ │ │ └──── Eingang oder Ausgangsbyte
││ │ └──────── Portadresse in HEX
││ └──────────── laufenden Nummer
││ (Peripheriebyte)
│└────────────── Kennbuchstabe
└─────────────── Einleitung des Steuerbefehls
Besonderheiten:
Wenn der dritte Parameter (Eingangs- oder Ausgangsbyte) ein
Eingangsbyte ist, dann wird der angegebene Port zyklisch
ausgelesen und zum angegebenen Eingangsbyte transferiert.
Wenn der dritte Parameter (Eingangs- oder Ausgangsbyte) ein
Ausgangsbyte ist, dann wird der angegebene Port mit dem Inhalt des
angegebenen Ausgangsbyte beschrieben.
Wenn Sie keinen dritten Parameter angeben, wird nicht zyklisch
gelesen oder beschrieben. Sie können dann mit Hilfe der Lade- und
Transferbefehle auf den Port zugreifen:
L PB 1 => Liest die angegebene Portadresse aus, und legt den
Inhalt im Akku 1 ab. Die Portadresse muß vorher mit
dem $P-Steuerbefehl hexadezimal angegeben werden.
T PB 4 => Transferiert den Inhalt des Akku 1 zur angegebenen
Portadresse. Die Portadresse muß vorher mit dem $P-
Steuerbefehl hexadezimal angegeben werden.
Achtung:
Sie müssen unbedingt vorsichtig sein, wenn Sie Portadressen
angeben. Wenn Sie hier die falschen Portadressen angeben, kann Ihr
Rechner abstürzen.
5.5.1 Programmierung einer Interface- Karte mit 8255- Port-
bausteinen.
Dieses Beispiel ist für eine Interfacekarte mit 48
freiprogrammierbaren Ein- und Ausgängen (Portbaustein: 2* 8255)
Angenommen die Karte ist über DIP- Schalter so konfiguriert, daß
die Start- Portadresse bei 240hex (=Basisadresse) liegt.
Gewünschte Konfiguration ist: 24 Eingänge und 24 Ausgänge.
─── Seite 83 ───
STEUERBEFEHLE KAPITEL 5
──────────────────────────────────────────────────────────────────────────────
Damit sich die Karte so verhält, müssen sog. Steuerworte
eingestellt werden.
Laut Datenblatt muß dann im 1. Steuerwort 96 hex abgelegt, und im
2. Steuerwort 73 hex abgelegt werden.
Nach meinen Unterladen liegt das 1. Steuerwort auf der Adresse
"Basisadresse + 7 hex", das zweite Steuerwort auf der Adresse
"Basisadresse + B hex".
=>
Portadressen der Steuerworte:
Adresse des 1. Steuerworts = "Basisadresse + 7 hex" = 247 hex
Adresse des 2. Steuerworts = "Basisadresse + B hex" = 24B hex
Die Portadressen für die Eingänge lauten
Adresse des 1. Eingangsbytes = "Basisadresse + 4 hex" = 244 hex
Adresse des 2. Eingangsbytes = "Basisadresse + 5 hex" = 245 hex
Adresse des 3. Eingangsbytes = "Basisadresse + 6 hex" = 246 hex
Portadressen für die Ausgänge lauten:
Adresse des 1. Ausgangssbytes = "Basisadresse + 8 hex" = 248 hex
Adresse des 2. Ausgangssbytes = "Basisadresse + 9 hex" = 249 hex
Adresse des 3. Ausgangssbytes = "Basisadresse + A hex" = 24A hex
Da nun alle Adressen bekannt sind, kann der Simulator danach
eingestellt werden.
Das folgende kurze Programm sollte im OB 21 abgelegt werden.
Im OB 21 deshalb, weil dieser nur einmal bei Simulationsstart
bearbeitet wird.
OB 21:
0001 :$P 1 247
0002 :$P 2 24B
0003 :
0004 :$P 3 244 EB0
0005 :$P 4 245 EB1
0006 :$P 5 246 EB2
0007 :
0008 :$P 6 248 AB0
0009 :$P 7 249 AB1
0010 :$P 8 24A AB2
0012 :
0013 :L KH 0096
0014 :T PB 1 Steuerwort 1 einstellen
0015 :L KH 0073
0016 :T PB 2 Steuerwort 2 einstellen
0017 :
0018 :BE
─── Seite 84 ───
STEUERBEFEHLE KAPITEL 5
──────────────────────────────────────────────────────────────────────────────
Der OB21 wurde nun so programmiert, daß in den Steuerworten die
richtigen Werte liegen, damit die Interfacekarte auf 24 Eingängen
und 24 Ausgängen eingestellt ist.
Dies wurde in den Zeilen 13 bis 16 erledigt.
In den Zeilen 1 und 2 wurde das Peripheriebyte 1 mit der
Portadresse 247 hex, und das Peripheriebyte 2 mit der Portadresse
24B hex verknüpft.
In den Zeilen 4 bis 6 wurden die Eingangsbytes EB0, EB1 und EB2
mit den Portadressen 244 hex, 245 hex und 246 hex verknüpft. Wenn
Sie Portadressen mit Eingangsbytes verknüpfen, werden die Inhalte
der Portadressen nach jedem Zyklus zu den Eingangsbytes
transferiert. Das bedeutet, daß Sie die Eingänge nur noch über die
Interface- Karte (z.B. mit Schaltern) einstellen können.
In den Zeilen 8 bis 10 wurden die Ausgangsbytes AB0, AB1 und AB2
mit den Portadressen 248 hex, 249 hex und 24A hex verknüpft. Dies
bedeutet nun, daß die Portadressen mit den Inhalten des jeweiligen
Ausgangsbytes nach jedem Zyklus beschrieben werden.
D.h. wenn Sie einen den Ausgang A 0.0 in Ihrem SPS-Programm
setzen, wird auch der entsprechende Ausgang auf der
Interface-Karte gesetzt.
Sie haben nun in Verbindung mit dem SPS-Simulator eine kleine SPS
aufgebaut, mit der Sie nun auch extern etwas steuern können !
5.5.2 Programmierung einer Interface- Karte mit festen Ein-
Ausgangsbelegungen.
Es gibt auch Interface- Karten, die in den Belegungen der Ein- und
Ausgängen fest eingestellt sind. Dadurch entfällt die
Programmierung der Steuerworte, und Sie brauchen nur noch die
Ausgangs- und Eingangsbytes verknüpfen.
Eine solche Karte mit 16 Eingängen und 16 Ausgängen kann ich Ihnen
z.B. anbieten (siehe Datei "BESTELL.TXT")
Das Programm für diese Interface- Karte sieht folgendermaßen
aus, wenn die Startportadresse der Eingange 172 hex, und die
Start- Portadresse der Ausgänge 170 hex ist:
OB21:
0001 :$P 1 170 AB0
0002 :$P 2 171 AB1
0003 :
0004 :$P 3 172 EB0
0005 :$P 4 173 EB1
0006 :BE
─── Seite 85 ───
STEUERBEFEHLE KAPITEL 5
──────────────────────────────────────────────────────────────────────────────
Diese Zeilen erledigen das Gleiche, wie bei der Interface-Karte mit
8255- Portbausteinen. Nur die Einstellung der Steuerwörter ist hier
nicht norwendig, da diese Karte definitiv 16 Eingänge und Ausgänge
bietet.
5.6 Einstellung der PAA und PAE - Anzeige
Mit den nächsten drei Steuerbefehlen kann man die Anzeige der
Eingangs- und Ausgangsleiste beeinflussen. Sie können festlegen
mit welchem Startbyte die PAE- bzw. PAA Anzeige beginnen soll.
5.6.1 Gemeinsame Einstellung des Startbytes von PAE und PAA
Steuerbefehl: $B 33
││ │
││ └──── gewünschtes Eingangs- Ausgangsbyte (0..128)
│└────── Kennbuchstabe
└─────── Einleitung des Steuerbefehls
5.6.2 Einstellung des aktuellen Eingangsbyte
Steuerbefehl: $BE 33
││ │
││ └───── gewünschtes Eingangsbyte (0..128)
│└──────── Kennbuchstaben
└───────── Einleitung des Steuerbefehls
Mit diesem Steuerbefehl stellen Sie nur das Start-Eingangsbyte
ein, das Start-Ausgangsbyte wird nicht beeinflußt.
5.6.3 Einstellung des aktuellen Ausgangsbytes
Steuerbefehl: $BA 33
││ │
││ └───── gewünschtes Ausgangsbyte (0..128)
│└──────── Kennbuchstaben
└───────── Einleitung des Steuerbefehls
Mit diesem Steuerbefehl stellen Sie nur das Start-Ausgangsbyte
ein, das Start-Eingangsbyte wird nicht beeinflußt.
Hinweis:
Wieviele Eingangs- und Ausgangsbyte angezeigt werden, kann
ebenfalls eingestellt werden. Diese Einstellung kann aber nicht
mit Steuerbefehlen vorgenommen werden, sondern muß in der
Konfigurationsdatei "SPS.CFG" eingestellt werden.
Wenn Sie die Klartextanzeige darstellen wollen können nicht alle 8
Eingangsbytes dargestellt werden, sondern maximal 5.
─── Seite 86 ───
STEUERBEFEHLE KAPITEL 5
──────────────────────────────────────────────────────────────────────────────
5.7 Programmierung der Klartextanzeige
Der nachfolgende Steuerbefehl unterscheidet sich grundlegend von
den anderen Steuerbefehlen: Die Ausführung des Steuerbefehls ist
vom VKE abhänig. Dies wurde so gewählt, damit die Programmierung
vereinfacht wird.
Steuerbefehl: $K 1 MELDETEXT
││ │ │
││ │ └── Meldetext
││ └───── Zeile der Klartextanzeige (1 bis 6)
│└──────── Kennbuchstaben
└───────── Einleitung des Steuerbefehls
Für die Programmierung einer Zeile der Klartextanzeige sind immer
zwei Steuerbefehle notwendig. Der erste Steuerbefehl läßt einen
bestimmten Text erscheinen, wenn irgend eine Bedingung erfüllt
ist.
Der zweite Steuerbefehl muß diesen Text entweder wieder löschen
oder mit einem anderen Text belegten, wenn eine bestimmte
Bedingung erfüllt ist.
Der Steuerbefehl wird nur ausgeführt, wenn das VKE "1" ist.
(VKE abhänig)
Beispiel:
.
.
0005 U M 0.0
0006 $K 1 STEUERUNG IST EIN
0007 UN M 0.0
0008 $K 1 STEUERUNG IST AUS
.
.
Wenn der Merker M0.0 "1" ist erscheint in der 1. Zeile der
Klartextanzeige der Text "Steuerung ist ein", ist der Merker M0.0
"0" dann erscheint der Text "Steuerung ist aus".
Hinweis:
Die Klartextanzeige kann maximal 6 Zeilen verwalten. Wenn Sie die
Klartextanzeige einsetzen wollen, sind maximal 5 Eingangs- und
Ausgangsbytes (PAE, PAA) darstellbar. Dies müßte aber bei den
meisten Anwendungen ausreichen.
Die "$K"- Steuerbefehle dürfen nicht in den OB 21 geschrieben
werden, da der OB 21 nur einmal bei Simulationsstart bearbeitet
wird. Die Steuerbefehle für die Klartextanzeige müssen zyklisch
bearbeitet werden !
─── Seite 87 ───
Sonstiges KAPITEL 5
──────────────────────────────────────────────────────────────────────────────
5.8 Einstellung der Analogeingabe
Mit diesem Steuerbefehl können Sie den Eingabetyp (Kanaltyp)
des Analogwertes festlegen.
Steuerbefehl: $AE 1 3
│ │ │
│ │ └─── Analogtyp (Kanaltyp) von 3..6
│ └───────── Analognr. von 1 .. 6
└────────────── Einleitung des Steuerbefehls
Die Analognummer gibt an, welche Analogeingabe Sie einstellen
möchten. Da Sie insgesamt 6 Analogeingaben zur Verfügung haben,
können Sie hier eine Nummer von 1 bis 6 angeben. Diese
Analogeingabe können Sie dann mit Hilfe der Tastatur einstellen.
(Tastaturbelegung siehe nächsten Abschnitt)
Der Analogtyp gibt an, wie der Meßwert dargestellt werden soll,
den Sie mit der Tastatur vorgeben.
Analogtyp 3 = Betragsdarstellung (4 ... 20 mA)
Analogtyp 4 = unipolare Darstellung (kein Vorzeichen)
Analogtyp 5 = Betragszahl; bipolar (mit Vorzeichen). Das
Vorzeichen wird mit dem Bit 15 dargestellt. Der
Meßwert wird nicht mit dem Zweierkomplement
dargestellt !
Analogtyp 6 = Festpunktzahl bipolar (Zweierkomplement)
Alle Analogeingaben sind standardmäßig auf Analogtyp 4
voreingestellt.
Mit dem Analogtyp ergeben sich auch die Einheiten (digitalisierter
Meßwert), die Sie über die Tastatur einstellen können:
╔══════════╤════════════════════╤══════════════════════════╗
║Analogtyp │ Einheiten │ Nennbereich (Einheiten) ║
╠══════════╪════════════════════╪══════════════════════════╣
║ 3 │ 0 ... 4096 │ 512 ... 2560 ║
╟──────────┼────────────────────┼──────────────────────────╢
║ 4 │ 0 .. 4096 │ 0 ... 2048 ║
╟──────────┼────────────────────┼──────────────────────────╢
║ 5 │ - 4096 ... + 4096 │ - 2048 ... + 2048 ║
╟──────────┼────────────────────┼──────────────────────────╢
║ 6 │ - 4096 ... + 4096 │ - 2048 .. + 2048 ║
╚══════════╧════════════════════╧══════════════════════════╝
─── Seite 88 ───
Sonstiges KAPITEL 5
──────────────────────────────────────────────────────────────────────────────
6.1 Simulation von Analogeingaben
Die Periphiewörter 128 bis 138 liefern analoge Werte, die über die
Tastatur eingestellt werden können. Der zurückgelieferte analoge
Wert ist folgendermaßen aufgebaut:
┌── Hi - Byte ──┼─── Lo-Byte ───┐
┌─┬─┬─┬─┬─┬─┬─┬─┬─┬─┬─┬─┬─┬─┬─┬─┐
│ │ │ │ │ │ │ │ │ │ │ │ │ │T│F│Ü│
└─┴─┴─┴─┴─┴─┴─┴─┴─┴─┴─┴─┴─┴─┴─┴─┘
Die ersten 3 Bits haben eine besondere Bedeutung:
"Ü" : Überlaufbit. Dieses Bit wird auf "1" gesetzt,
wenn der Nennbereich überschritten wird.
"F" : Fehlerbit. Wird normalerweise gesetzt, wenn ein Drahtbruch
vorliegt. In der Simulation hat dieses Bit immer den
Zustand "0".
"T" : Tätigkeitsbit. Ist normalerweise "1" wenn der Vorgang
Einzelabtastung noch nicht beendet ist. Bei der Simulation
ist dieses Bit immer "0".
In den restlichen Bits steht der eigentliche Analogwert, den Sie
über die Tastatur eingestellt haben.
Wie der analoge Wert dargestellt wird, ist abhängig vom Analogtyp
(Kanaltyp). Den Analogtyp können Sie mit Hilfe des Steuerbefehls
"$AE" einstellen. (Siehe Abschnitt 5.8)
Wenn Sie eine einfache Darstellung des Meßwertes eingestellt
haben (z.B. Kanaltyp 4) können Sie den Meßwert in einem
Funktionsbaustein direkt verwenden, wenn Sie den Meßwert über
einen "L PW" einlesen und dann diesen Wert im Akku 1 um 3 Stellen
nach rechts schieben ("SRW 3").
Wenn Sie einen anderen Kanaltyp eingtestellt haben,sollten Sie den
Funktionsbaustein FB 250 verwenden, um ein normiertes
Ausgangssignal zu bekommen.
Normalerweise liefern analoge Eingabebaugruppen einen analogen
Wert in einem Peripheriewort zurück. In der Simulation geben Sie
über die Tastatur diesen Analogwert vor. Diese Peripheriewörter
können über die Tastatur oder durch einen Transferbefehl zu einem
Peripheriewort (PW 128 bis PW 138) eingestellt werden.
Bitte beachten Sie, das letzteres nicht STEP5- konform ist. Sie
können aber dadurch die Analogeingabe z.B. in einem FB einstellen.
Tastenbelegungen:
Tastenbelegung PW 128:
[STRG/Q] erhöht die Einheit um das eingestellte Raster
[STRG/A] setzt die Einheit auf den Anfangswert.
[STRG/Y] erniedrigt die Einheit um das eingestellte Raster
Tastenbelegung PW 130:
[STRG/W] erhöht die Einheit um das eingestellte Raster
[STRG/S] setzt die Einheit auf den Anfangswert.
[STRG/X] erniedrigt die Einheit um das eingestellte Raster
─── Seite 89 ───
Sonstiges KAPITEL 5
──────────────────────────────────────────────────────────────────────────────
Tastenbelegung PW 132:
[STRG/E] erhöht die Einheit um das eingestellte Raster
[STRG/D] setzt die Einheit auf den Anfangswert.
[STRG/C] erniedrigt die Einheit um das eingestellte Raster
Tastenbelegung PW 134:
[STRG/R] erhöht die Einheit um das eingestellte Raster
[STRG/F] setzt die Einheit auf den Anfangswert.
[STRG/V] erniedrigt die Einheit um das eingestellte Raster
Tastenbelegung PW 136:
[STRG/T] erhöht die Einheit um das eingestellte Raster
[STRG/G] setzt die Einheit auf den Anfangswert.
[STRG/B] erniedrigt die Einheit um das eingestellte Raster
Tastenbelegung PW 138:
[STRG/Z] erhöht die Einheit um das eingestellte Raster
[STRG/H] setzt die Einheit auf den Anfangswert.
[STRG/N] erniedrigt die Einheit um das eingestellte Raster
! Diese Peripheriewörter können nur dann über die Tastatur !
! gesteuert werden, wenn Sie diese PW's mit keinen !
! Portadressen verknüpft haben. !
Das Raster, mit dem die Werte erniedrigt bzw. erhöht werden,
können Sie mit der [F9]- bzw. [F10]- Taste einstellen. Das Raster
kann den Wert 1 bis 1000 annehmen. Mit der [F9]- Taste erhöhen Sie
das Raster, mit [F10] erniedrigen Sie das Raster.
Um dieses neue Feature auszuprobieren, schreiben Sie einfach in
einen OB1 die Operation "L PW 128" und in der nächsten Zeile "BE".
Gehen Sie nun in die AWL-Simulation und schalten Sie die Akku-
Anzeige auf KH. ([H] drücken). Drücken Sie nun die Tasten [STRG]
und [Q] gleichzeitig. Sie sehen, daß nach jedem Drücken dieser
Tastenkombination, sich der Wert im PW 128 um das eingestellte
Raster erhöht.
6.2 Abfrage des Joysticks
Es stehen 2 Befehle zur Verfügung, die analoge PC-Joysticks
abfragen können. Sie können dann mit dem Joystick einen bestimmten
Wert einstellen, auf den dann Ihr SPS-Programm reagiert. Die
Befehle lauten:
JOYPOS (die Nummer des Joysticks (1 oder 2) muß im AKKU 1
stehen)
Achtung:
Vor diesem Befehl muß die Nummer des Joysticks (1 oder 2) in das
AKKU geladen werden. Der Befehl liefert dann in AKKU1 die
horizontale Position zurück, und in AKKU2 die vertikale.
─── Seite 90 ───
Sonstiges KAPITEL 5
──────────────────────────────────────────────────────────────────────────────
JOYBUT
Dieser Befehl liefert den Zustand der Feuerknöpfe beider Joysticks
im LOWByte des AKKU1 zurück.
Vor diesem Befehl ist daher die Joystick-Nummer nicht notwendig.
Im 5. und 6. Bit wird der Zustand des 1.Joysticks zurückgeliefert.
Im 7. und 8. Bit wird der Zustand des 2.Joysticks zurückgeliefert.
6.3 Die Konfigurationsdatei "SPS.CFG".
In dieser Datei werden alle Einstellungen des SPS-Simulators
abgespeichert. Die Einstellungen, die öfters geändert werden,
speichert der Simulator eigenständig ab. Es gibt aber auch
Einstellungen, die mit einem beliebigen Editor (z.B. EDIT von
MSDOS) eingestellt werden müssen.
Folgende Einstellungen sichert der Simulator automatisch:
■ Remanente Timer, Zähler und Merker
■ Einstellungen der PAE/PAA- Leiste
■ Zeilen/Seite beim FUP/AWL-Ausdruck
■ Druckerschnittstelle
■ Linker Rand beim AWL/FUP-Ausdruck
■ Alle Escape-Sequenzen
■ Aktive ESC-Sequenz AWL und FUP
■ alle Verzeichnisse
■ aktueller Baustein
■ Tastaturgeschwindigkeit
■ Textmodi für FUP und AWL
■ Schnittstellennummer für AG-Funktionen und PC Panel-Kommunikation
■ Datenblock für die PC Panel-Kommunikation
■ Interrupt Nr. für COM3 und COM4
Alle anderen Einstellungen können nur mit einem Editor verändert
werden.
─── Seite 91 ───
Sonstiges KAPITEL 5
──────────────────────────────────────────────────────────────────────────────
6.3 Die Konfigurationsdateien "FARBEN.VGA" und "FARBEN.MON".
Wenn Sie eine EGA/VGA-Karte besitzen, stehen die Bildschirmfarben
in der Datei "FARBEN.VGA". Bei Monochromen Bildschirm- karten in
der Datei "FARBEN.MON". Da die Bildschirmfarben nur selten
geändert werden, können diese Dateien nur mit einem externen
Editor verändert werden.
6.5 Mitgelieferte integrierte Bausteine (nur in der VOLLVERSION)
Die nachfolgenden Bausteine sind als integrierte Bauteine
abgespeichert. Diese Bausteine können bei Bedarf angesehen und
geändert werden.
6.5.1 FB 240 Wandlerbaustein BCD -> DUAL
Mit diesem Baustein können Sie eine 4-Tetraden BCD Zahl mit
Vorzeichen in eine Dezimalzahl umwandeln. Da das Vorzeichen nicht
in der BCD-Zahl enthalten sein kann, muß es mit Hilfe eines Bit-
Operanden geliefert werden.
FB-Kopf des FB 240:
0005 :SPA FB 240
0006 NAME:COD:B4
0007 BCD : E W Eingabe: BCD-Zahl
0008 SBCD: E BI Eingabe: Vorzeichen - "1"=negativ
0009 DUAL: A W Ausgabe: DUAL-Zahl
0010 :
6.5.2 FB 241 Wandlerbaustein DUAL -> BCD
Mit diesem Baustein können Sie eine DUAL-Zahl in eine BCD-Zahl
umwandeln. Das Vorzeichen wird in einem Bit-Operanden
zurückgeliefert.
FB-Kopf des FB 241:
0005 :SPA FB 241
0006 NAME:COD:16
0007 DUAL: E W Eingabe: DUAL-Zahl
0008 SBCD: A BI Eingabe: Vorzeichen - "1"=negativ
0009 BCD2: A BY Ausgabe: BCD-Zahl die 4..5. Tetrade
0010 BCD1: A W Ausgabe: BCD-Zahl die 0..3. Tetrade
.
.
─── Seite 92 ───
Sonstiges KAPITEL 5
──────────────────────────────────────────────────────────────────────────────
6.5.3 FB 242 Rechenbaustein Multiplizierer
Dieser Baustein multipliziert zwei Festpunktzahlen.
FB-Kopf des FB 242:
0005 :SPA FB 242
0006 NAME:MUL:16
0007 Z1 : E W Eingabe: 1. Festpunktzahl
0008 Z2 : E W Eingabe: 2. Festpunktzahl
0009 Z3=0: A BI Ausgabe: "1" wenn das Produkt 0 ist
0010 Z32 : A W Ausgabe: High-Wort des Ergebnisses
0011 Z31 : A W Ausgabe: Low-Wort des Ergebnisses
.
.
6.5.4 FB 243 Rechenbaustein Dividierer
Dieser Baustein dividiert zwei Festpunktzahlen.
FB-Kopf des FB 243:
0005 :SPA FB 243
0006 NAME:DIV:16
0007 Z1 : E W Eingabe: 1. Festpunktzahl
0008 Z2 : E W Eingabe: 2. Festpunktzahl
0009 OV : A BI Ausgabe: "1" falls Überlauf
0010 FEH : A B Ausgabe: "1" bei Division durch "0"
0011 Z3=0: A BI Ausgabe: "1" wenn Quotient = 0
0012 Z4=0: A BI Ausgabe: "1" wenn Rest = 0
0013 Z3 : A W Ausgabe: Quotient (Ergebnis)
0014 Z4 : A W Ausgabe: Rest
.
.
6.5.5 FB 250 Analogeingabe
Der Algorithmus des FB250 ist innerhalb der Programmdatei
abgespeichert. Deshalb findet man, wenn man sich die AWL dieses
Bausteins anschaut, nur den Bausteinkopf mit den
Formaloperandendeklarationen.
─── Seite 93 ───
Sonstiges KAPITEL 5
──────────────────────────────────────────────────────────────────────────────
Aufbau des Bausteinkopfes des FB 250:
NAME:RLG:AE
BEZ :BG D KF ; Baugruppenadresse = KF+128,
KF130, ..., KF138
BEZ :KNKT D KY ; Kanalnummer und Kanaltyp
BEZ :OGR D KF ; Obere Grenze des normierten Wertes
BEZ :UGR D KF ; Untere Grenze des normierten Wertes
BEZ :EINZ E BI ; Einzelabtastung
BEZ :XA A W ; Normierter Wert
BEZ :FB A BI ; Fehlerbit
BEZ :BU A BI ; Bereichsüberschreitung
BEZ :TBIT A BI ; Tätigkeitsbit
Erklärung der Formaloperanden:
■ BG
Gibt das Peripheriewort an, das eingelesen werden soll.
Hier können Sie "KF128" bis "KF138" angeben (in 2er- Schritten)
■ KNKT
Kanalnummer wird als Ofset zur Baugruppennummer verwendet.
Wenn Sie hier z.B. "KY1,4" und bei BG "KF128" angeben,
wird das Peripheriewort Nr. 128+2*1 = 130 verwendet.
Der zweite Parameter gibt den Kanaltyp an.
Hier muß der Kanaltyp eingegeben werden, der über den
Steuerbefehl "$P" eingestellt wurde. Standardmäßig muß hier
eine "4" stehen.
■ OGR
Ist die obere Grenze des zurückgelieferten Analogwertes
(KF-32768 bis KF+32767)
■ UGR
Ist die untere Grenze des zurückgelieferten Analogwertes
(KF-32768 bis KF+32767)
■ EINZ
Einzelabtastung: Wird beim Simulator nicht verwendet !
■ XA
Ist der zurückgegebene normierte Analogwert
■ FB
Fehlerbit: Wird gesetzt wenn ein Drahtbruch vorliegt.
Wird beim Simulator nicht verwendet.
■ BU
Bereichsüberschreiung
Wird auf '1' gesetzt, wenn der analoge Wert (in Einheiten)
den Nennbereich verläßt. (Nennbereich siehe Abschnitt 5.)
■ TBIT
Tätigkeitsbit
Wird beim Simulator nicht verwendet !
─── Seite 94 ───
Sonstiges KAPITEL 5
──────────────────────────────────────────────────────────────────────────────
6.5.6 FB 251 Analogausgabe
Aufbau des Bausteinkopfes des FB 251:
NAME:RLG:AA
BEZ :XE E W ; auszugebender Analogwert (KF-Zahl)
BEZ :BG D KF ; Baugruppennummer
BEZ :KNKT D KY ; Kanalnummer und Kanaltyp
BEZ :OGR D KF ; Obere Grenze des normierten Wertes
BEZ :UGR D KF ; Untere Grenze des normierten Wertes
BEZ :FEH A BI ; Fehlerbit
BEZ :BU A BI ; Bereichsüberschreitung
Dieser Baustein gibt normalerweise einen analogen Wert mit Hilfe
einer analogen Baugruppe aus. Da dies beim Simulator nicht möglich
ist, werden nur die Fehlerbits FEH und BU gesetzt. FEH wird auf
'1' gesetzt, wenn UGR=OGR ist. BU wird auf '1' gesetzt, wenn XE
außerhalb von UGR und OGR liegt.
─── Seite 95 ───
BEISPIELPROGRAMME KAPITEL 6
──────────────────────────────────────────────────────────────────────────────
7 Beispielprogramme
Hier finden Sie ein paar nützliche Beispielprogramme.
Ganzzeilige Kommentare sind mit dem "#"-Zeichen gekennzeichnet.
7.1 Auswertung einer ansteigenden Flanke
Baustein:OB1 Name:FLANKE-U
0001 #Auswertung einer ansteigenden Flanke
0002 #Wechselt der Signalzustand von E1.0 von "0" nach "1",
0003 #dann führt M1.0 für einen Zyklus den Signalzustand "1"
0004 :
0005 :U E 1.0 E1.0 WIRD AUSGEWERTET
0006 :UN M 1.1 HILFSMERKER
0007 := M 1.0 WISCHMERKER
0008 :U E 1.0
0009 := M 1.1 HILFSMERKER
0010 :BE
7.2 Auswertung einer abfallenden Flanke
Baustein:FB1 Name:FLANKE_D
0001 #Auswertung einer abfallenden Flanke
0002 #Wechselt der Signalzustand von E1.0 von "1" nach "0",
0003 #dann führt M1.0 für einen Zyklus den Signalzustand "1"
0004 :UN E 1.0 E1.0 WIRD AUSGEWERTET
0005 :U M 1.1 HILFSMERKER
0006 := M 1.0
0007 :U E 1.0
0008 := M 1.1 HILFSMERKER
0009 :U M 1.0 WISCHAUSGANG
0010 :BE
Hinweis:
Bei schnellen Rechnern werden Sie nicht sehen, daß der Wischmerker
für einen Zyklus HIGH ist. Abhilfe: Vergrößern Sie die Zykluszeit
mit Hilfe der '-'-Taste (Bremse).
─── Seite 96 ───
BEISPIELPROGRAMME KAPITEL 6
──────────────────────────────────────────────────────────────────────────────
7.3 Taktgeneratoren
7.3.1 Taktgenerator mit einem SV-Glied
Baustein:FB1 Name:SV_TAKT
0001 #EINFACHER TAKTGENERATOR MIT EINEM SV-ZEITGLIED
0002 #MÖGLICHE TAKTFREQUENZEN IN DER 1. EBENE:
0003 #1 HZ KT = 50.0
0004 #2 HZ KT = 25.0
0005 #CA. 3 HZ KT = 12.0
0006 #CA. 6 HZ KT = 6.0
0007 #
0008 #DIESES BEISPIEL ERZEUGT EINE TAKTFREQUENZ VON 2 HERZ
0009 #ZEITKONSTANTE = 25.0
0010 :UN M 10.1 HILFSMERKER
0011 :L KT 25.0
0012 :SV T 9
0013 :U T 9
0014 := M 10.1 TAKTMERKER
0015 #1. EBENE
0016 :U M 10.1
0017 :BEB
0018 :UN A 1.4
0019 := A 1.4 2 HZ TAKT
0020 #DURCH HINZUFÜGEN EINES ANWEISUNGSBLOCKS LÄßT SICH DIE
0021 #TAKTFREQUENZ IMMER DURCH 2 TEILEN:
0022 #2. EBENE
0023 :
0024 :U A 1.4
0025 :BEB
0026 :UN A 2.5
0027 := A 2.5 1 HZ TAKT
0028 #3. EBENE
0029 :U A 2.5
0030 :BEB
0031 :UN A 3.5
0032 := A 3.5 0.5 HZ TAKT
0033 :BE
7.3.2 Taktgenerator mit zwei SE-Glieder
Baustein:OB1 Name:SE_TAKT
0001 #Taktgenerator mit zwei SE-Zeitglieder
0002 :
0003 :U E 1.7
0004 :UN T 2
0005 :L KT 50.0
0006 :SE T 1
0007 :NOP 0
0008 :NOP 0
─── Seite 97 ───
BEISPIELPROGRAMME KAPITEL 6
──────────────────────────────────────────────────────────────────────────────
0009 :NOP 0
0010 :U T 1
0011 :L KT 50.0
0012 :SE T 2
0013 :NOP 0
0014 :NOP 0
0015 :NOP 0
0016 :NOP 0
0017 :U T 1
0018 := A 5.7
0019 :BE
7.3.3 Taktgenerator mit einem Zeit-OB
Dieses Programm besteht aus 2 Bausteinen.
Baustein:OB1 Name:SE_TAKT
0001 #Taktgenerator mit einem Zeit-OB
0002 :
0003 :U M 50.0
0004 := A 0.0
0005 :
0006 :BE
Baustein:OB12 Name:SE_TAKT
0001 #Der OB 12 ist ein Zeit-OB.
0002 #Dieser OB wird alle 1000ms aufgerufen.
0003 :UN M 50.0
0004 := M 50.0
0006 :BE
7.4 Anlasserschaltung mit akustischen
Ausgängen
Dieses Programm kann gerade noch mit der Sharewareversion
simuliert werden.
Baustein:OB1 Name:ANLASSER
0001 :$A 1 0.4 35
0002 :$A 2 0.3 30
0003 :$A 3 0.2 25
0004 :$A 4 0.1 20
0005 :U E 0.1 STARTEINGANG
0006 :S M 0.0 STARTMERKER
0007 :U E 0.0 STOPPEINGANG
─── Seite 98 ───
BEISPIELPROGRAMME KAPITEL 6
──────────────────────────────────────────────────────────────────────────────
0008 :R M 0.0 STARTMERKER
0009 :U M 0.0 STARTMERKER
0010 := A 0.1 1. WIDERSTAND KURZSCHLIEßEN
0011 :U M 0.0 STARTMERKER
0012 :L KT 42.1 0.42 SEKUNDEN LADEN
0013 :SE T 1 1. ZEITWERK
0014 :U E 0.7 RUECKSETZEINGANG
0015 :R T 1 1. ZEITWERK
0016 :NOP 0
0017 :NOP 0
0018 :U T 1 1. ZEITWERK
0019 :UN A 0.3 3. WIDERSTAND KURZSCHLIEßEN
0020 :UN A 0.4 4. WIDERSTAND KURZSCHLIEßEN
0021 := A 0.2 2. WIDERSTAND KURZSCHLIEßEN
0022 :U T 1 1. ZEITWERK
0023 :L KT 42.1 0.42 SEKUNDEN LADEN
0024 :SE T 2 2. ZEITWERK
0025 :NOP 0
0026 :L T 2
0027 :T AW 6
0028 :NOP 0
0029 :U T 2 2. ZEITWERK
0030 :UN A 0.4 4. WIDERSTAND KURZSCHLIEßEN
0031 := A 0.3 3. WIDERSTAND KURZSCHLIEßEN
0032 :U T 2 2. ZEITWERK
0033 :L KT 42.1 3. ZEITWERK STARTEN
0034 :SE T 3 3. ZEITWERK
0035 :NOP 0
0036 :NOP 0
0037 :NOP 0
0038 :U T 3 3. ZEITWERK
0039 := A 0.4 4. WIDERSTAND KURZSCHLIEßEN
0040 :BE
─── Seite 99 ───
Kurzanleitung bzw. Einstieg in das Programm ANHANG 1
──────────────────────────────────────────────────────────────────────────────
Diese Einführung soll Ihnen einen ersten Eindruck über die
Fähigkeiten des SPS-Simulators vermitteln. Es soll keine
Einführung in die Programmierung sein, sondern soll Ihnen vielmehr
den Einstieg in das Programm erleichtern. Die Anweisungsliste, die
Sie bei dieser Einführung schreiben werden, erfüllt keine
besondere Aufgabe, sondern dient nur zur Demonstration. Sie können
den Simulator entweder von Diskette oder von der Festplatte
starten. Begeben Sie sich zuerst in das Verzeichnis, in dem sich
der SPS- Simulator befindet, und geben Sie dann 'SPS' ein, um den
Simulator zu starten. Nachdem der Simulator geladen wurde,
erscheint ein Fenster, in dem die Versionsnummer des Programms
angezeigt wird. Nach Drücken einer beliebigen Taste, befinden Sie
sich in der Menueleiste. Sie können nun mit den Cursor- Tasten
einen Menuepunkt anwählen und mit der [RETURN]-Taste das
entsprechende Untermenue aktivieren.
Gehen Sie nun zum Menuepunkt 'Datei', und drücken Sie die
[RETURN]-Taste. Bewegen Sie nun den Auswahlbalken zum
Menueunterpunkt 'Neuer Baustein anlegen' und drücken Sie nochmals
die [RETURN]-Taste. Mit dieser Funktion können Sie neue Bausteine
eröffnen. Geben Sie nun im 1. Eingabefeld 'OB' im 2. Eingabefeld
'1' und im dritten Eingabefeld den Bausteinnamen 'TEST' ein. Die
einzelnen Eingabefelder können mit der 'Pfeil nach oben'- und mit
der 'Pfeil nach unten'- Taste gewechselt werden. Wenn Sie alle
Felder beschrieben haben, drücken Sie nun die [PGDN]- oder
[BILD]-Taste. Damit bestätigen Sie das Dialogfester. Sie befinden
sich nun im integrierten Editor, wo Sie neue Anweisungslisten
eingeben können, oder vorhandene verändern können.
Bei der Eingabe einer AWL-Zeile müssen Sie kein Eingabeformat
berücksichtigen. D.h. Sie müssen keine Leerzeichen nach der
Verknüpfung oder nach dem Operanden eingeben. Es stehen zwei Arten
von Kommentaren zur Verfügung:
1. Kurzkommentare. Sie stehen in der gleichen Zeile wie die
Anweisung (max. 34 Zeichen). Wenn Sie einen Kurzkommentar
eingeben wollen, müssen Sie den Cursor auf die Kommentarspalte
bewegen: drücken Sie die [ENDE]-Taste. Jetzt können Sie einen
Kommentar eingeben.
2. Kommentare über eine ganze Zeile (max. 73 Zeichen). Drücken Sie
einmal die [F8]-Taste. Der Doppelpunkt vor der AWL- Anweisung
wird nun invers dargestellt, d.h. daß die ganze Zeile als
Kommentar behandelt wird. Wenn Sie nochmal die [F8]-Taste
drücken, wird die Zeile wieder als Anweisung betrachtet.
Was passiert, wenn die eingegebene AWL-Zeile syntaktisch falsch
ist ?
Wenn Sie bei der Eingabe einen Fehler machen, erscheint sofort ein
Fenster, in dem der Fehler angezeigt wird. Nachdem Sie eine Taste
betätigt haben, wird die eingegebene AWL-Zeile als Kommentar
bezeichnet. Sie haben nun Gelegenheit den Fehler zu korrigieren.
─── Seite 100───
Kurzanleitung bzw. Einstieg in das Programm ANHANG 1
──────────────────────────────────────────────────────────────────────────────
Nachdem Sie den Fehler behoben haben, müssen Sie einmal die
[F8]-Taste drücken um den Kommentarstatus wieder aufzuheben. Nach
Drücken der [Return]-Taste wird die eingegebene AWL-Zeile nochmals
kontrolliert und übernommen, falls diese syntaktisch richtig ist.
Bei EGA- bzw. VGA-Karten werden ganzzeilige Kommentare mit einer
besonderen Farbe dargestellt.
Geben Sie nun die folgende einfache Anweisungsliste ein (die
Leerzeichen müssen nicht eingegeben werden): Drücken Sie nach
jeder Zeile die [Return]-Taste.
0001│ :U E 0.0
0002│ :U E 0.1
0003│ := A 0.0
0004│ :BE
Nachdem Sie die Anweisung 'BE' eingegeben haben, springt das
Programm in die Menueleiste zurück. Jetzt können Sie die
Anweisungsliste sofort simulieren. Das geschriebene Programm legt
den Ausgang A0.0 auf High oder "1" wenn die Eingänge E0.0 und E0.1
High oder "1" sind.
Um das zu kontrollieren, starten Sie nun die AWL-Simulation mit
der [F9]-Taste. Beachten Sie aber: die [F9]-Taste startet die
Simulation nur dann, wenn Sie sich in der Menueleiste befinden.
Jetzt müßten Sie sich im Simulationsmodus befinden. In der ersten
Zeile des Bildschirms erscheint der Text "AWL-Simulation aktiv".
Schauen Sie sich nun zuerst einmal den Bildschirm an. Ab der
zweiten Bildschirmzeile sehen Sie die Eingangsleiste. Hier sehen
Sie auf einen Blick die Eingänge E0.0 bis E4.7. Die einzelnen
Eingänge sind in Eingangsbytes zusammengefaßt. Die Eingangsleiste
ist mit "PAE" (Prozeßabbild der Eingänge) ganz links
gekennzeichnet. Unter der Eingangsleiste ist die Ausgangsleiste
plaziert. Hier werden die Ausgänge A0.0 bis A4.7 dargestellt. Die
Ausgangsleiste ist ganz links mit PAA (Prozeßabbild der Ausgänge)
gekennzeichnet.
─── Seite 101 ───
Kurzanleitung bzw. Einstieg in das Programm ANHANG 1
──────────────────────────────────────────────────────────────────────────────
Bildschirmaufbau:
Eingangsleiste──┐ Ausgangsleiste───┐
│ │
! SIMULATION LÄUFT ! │ │
╓── 0───╥── 1───╥── 2─┼─╥── 3───╥── 4──┼╖
PAE║76543210║76543210║765432▀0║76543210║7654321│║
╚────────╨────────╨────────╨────────╨───────┼╜
╓── 0───╥── 1───╥── 2───╥── 3───╥── 4──┼╖
PAA║76543210║76543210║76543210║76543210║7654321▀║
╚────────╨────────╨────────╨────────╨────────╜
│Baustein: OB 1 │ Name: TEST │Anweisungen im OB: 0004
│Zyklus :1.50 ms │[Matthias Habermann]
0001│ :U E 0.0
0002│ :U E 0.1
0003│ := A 0.0
0004│ :BE
Wie kann man nun einen Eingang umschalten ?
(Ich gehe nun davon aus, daß Sie sich noch immer im
Simulationsmodus befinden.) Zuerst müssen Sie festlegen, welches
Eingangsbyte Sie bearbeiten wollen. Drücken Sie nun mehrmals die
"Pfeil nach links Taste". Sie sehen nun, wie die einzelnen
Eingangsbytes markiert werden. Markieren Sie nun das Eingangsbyte
"0", da wir ja die Eingänge E0.0 und E0.1 umschalten wollen. Wenn
Sie das Eingangsbyte "0" markiert haben, können Sie nun mit den
Ziffern "0" bis "7" den jeweiligen Eingang umschalten. Wenn Sie
also die Ziffer "0" drücken wird der Eingang E0.0 umgeschaltet, da
Sie das Eingangsbyte "0" markiert haben und das Bit "0" ausgewählt
haben. Drücken Sie nun mehrmals die Ziffer "0". Sie sehen, daß der
Eingang E0.0 je nach Status ("1" oder "0") hervorgehoben oder
neutral dargestellt wird. Schalten Sie nun beide Eingänge auf "1".
Wenn der Eingang E0.0 und gleichzeitig der Eingang E0.1 den
Signalzustand "1" führen, wird der Ausgang A0.0 auf "1" gelegt.
Den Ausgang A0.0 sehen Sie nun in der Ausgangsleiste optisch
hervorgehoben.
Jetzt haben Sie ein Programm eingegeben und simuliert. Drücken Sie
nun die [ESC]-Taste, um die Simulation zu beenden. Sie befinden
sich nun wieder in der Menueleiste.
Ich will Ihnen jetzt noch ein paar Features vorführen, die Ihnen
helfen werden, Ihr SPS-Programm schneller zu kontrollieren.
Ich möchte Ihnen nun die Steuerbefehle vorführen. Diese Befehle
sind keine SPS-Operationen, sondern dienen einfach nur, um Ihnen
die Arbeit während der Simulation zu erleichtern. Zuerst werden
wir den Ausgang A0.0 als akustischen Ausgang definieren, d.h. wenn
der Ausgang A0.0 "1" ist, ertönt ein Signal. Diesen Steuerbefehl
können Sie z.B. verwenden, um Motoren oder Hupen zu simulieren.
─── Seite 102 ───
Kurzanleitung bzw. Einstieg in das Programm ANHANG 1
──────────────────────────────────────────────────────────────────────────────
Gehen Sie nun zuerst in den Editor, indem Sie die "E"-Taste
drücken. Fügen Sie eine Leerzeile mit Hilfe der Tastenkombination
[STRG/N] ein. In Worten: Drücken Sie die Tasten [STRG] und [N]
gleichzeitig. Geben Sie nun den Steuerbefehl in der ersten Zeile
ein: (Die einzelnen Parameter des Steuerbefehls müssen mit einem
Leerzeichen getrennt werden - innerhalb eines Parameters z.B.
"0.0" darf kein Leerzeichen stehen!!).
0001│ :$A 0.0 30
0002│ :U E 0.0
0003│ :U E 0.1
0004│ := A 0.0
0005│ :BE
In der ersten AWL-Zeile haben Sie nun den Ausgang A0.0 als
akustischen Ausgang mit einer Frequenz von 30 Hz definiert.
Verlassen Sie nun den Editor (ESC), und aktivieren Sie wieder die
AWL-Simulation. Nachdem Sie die Eingänge E0.0 und E0.1 auf "1"
geschaltet haben, ertönt ein Signal. Wenn Sie möchten, können Sie
nun auch andere Frequenzen ausprobieren. So können Sie auch
ausprobiern, ob Ihr Gehöhr noch einigermaßen intakt ist.
Wenn sich Ihr Spieltrieb nun allmählich abgebaut hat, möchte ich
Ihnen einen weiteren sinnvollen Steuerbefehl vorstellen. Mit dem
"$E"- Steuerbefehl können Sie Eingänge als Taster oder Schalter
definieren. Normalerweise ist ein Eingang ein Schalter, Ausführung
Schließer. Wenn Sie einen Schalter als Öffner definieren, ist
dieser Eingang bei Simulationsstart bereits auf "1" gelegt. So
können Sie z.B. eine Grundstellung definieren.
Gehen Sie nun in den Editor und ergänzen Sie die Anweisungsliste
folgendermaßen: Beachten Sie dabei, daß das letzte Zeichen in der
zweiten Zeile der Buchstabe 'O' ist, und nicht die Zahl "0".
0001│ :$A 1 0.0 30
0002│ :$E 1 0.0 T O
0003│ :U E 0.0
0004│ :U E 0.1
0005│ := A 0.0
0006│ :BE
Sie haben nun in der zweiten Zeile den Eingang E0.0 als Taster
definiert, Ausführung Öffner. Wenn Sie den Editor verlassen und
die Simulation starten, führt der Eingang E0.0 bereits "1".
Betätigen Sie nun die Ziffer "0". Der Eingang ist nur solange "0",
solange Sie die Taste gedrückt halten.
─── Seite 103 ───
Kurzanleitung bzw. Einstieg in das Programm ANHANG 1
──────────────────────────────────────────────────────────────────────────────
Der nächste Steuerbefehl ist ebenfalls sehr wichtig. Mit ihm kann
man beliebige Operanden in der Statusanzeige anzeigen lassen. Wir
werden nun das Eingangsbyte "0" und das Ausgangsbyte "0" in der
Statusanzeige darstellen lassen.
Gehen Sie wieder in den Editor und fügen sie in der 3 Zeile zwei
Leerzeilen ein (2 mal [STRG] und [N] gleichzeitig drücken).
0001│ :$A 1 0.0 30
0002│ :$E 1 0.0 T O
0003│ :$S 1 EB 0 KM
0004│ :$S 2 AB 0 KM
0005│ :U E 0.0
0006│ :U E 0.1
0007│ := A 0.0
0008│ :BE
In der dritten und vierten Zeile werden nun 2 Zeilen in der
Statusanzeige umdefiniert. In Zeile 3 wird das Eingangsbyte (EB) 0
als Bitmuster angelegt. In Zeile 4 wird das Ausgangsbyte (AB) 0
ebenfalls als Bitmuster angelegt.
In der Dokumentation finden Sie genaue Erläuterungen, welche
Steuerbefehle zur Verfügung stehen, und wie sie aufgebaut sind.
Wenn Sie jetzt den Editor verlassen und wieder die AWL-Simulation
starten, sehen Sie rechts auf dem Bildschirm die Statusanzeige.
Falls die Statusanzeige ausgeschaltet ist, drücken Sie einmal die
[F4]-Taste.
Bildschirmaufbau:
Statusanzeige─┐
│
! SIMULATION LÄUFT ! │
╓── 0───╥── 1───╥── 2───╥── 3───╥── 4───╖ │
PAE║76543210║76543210║76543210║76543210║76543210║ │
╚────────╨────────╨────────╨────────╨────────╜ │
╓── 0───╥── 1───╥── 2───╥── 3───╥── 4───╖ │
PAA║76543210║76543210║76543210║76543210║76543210║ │
╚────────╨────────╨────────╨────────╨────────╜ │
│Baustein: OB 1 │ Name: TEST │Anweisungen im OB: 0008│ │
│Zyklus :2.70 ms │VKE Akku1 Akku2 ▀
0001│ :$A 1 0.0 30 0 +0 +0 EB 000:00000001
0002│ :$E 1 0.0 T 0 +0 +0 AB 000:00000000
0003│ :$S 1 EB 0 0 +0 +0
0004│ :$S 2 AB 0 0 +0 +0
0005│ :U E 0.0 1 +0 +0
0006│ :U E 0.1 0 +0 +0
0007│ := A 0.0 0 +0 +0
0008│ :BE 0 +0 +0
─── Seite 104 ───
Kurzanleitung bzw. Einstieg in das Programm ANHANG 1
──────────────────────────────────────────────────────────────────────────────
Die Statusanzeige zeigt Ihnen nun das Eingangsbyte 0 und das
Ausgangsbyte 0. Die Statusanzeige kann für jedes Programm
individuell eingestellt werden. Da die Steuerbefehle in einem
normalen Baustein optisch etwas stören, ist es sinnvoll
Steuerbefehle in den OB 21 (Start-OB) zu schreiben. Das hat den
Vorteil, daß die Steuerbefehle nur einmal am Anfang bearbeitet
werden. Wenn Sie den OB 21 eröffnen möchten ("Neuer Baustein
anlegen"), müssen Sie darauf achten, daß dieser den gleichen
Bausteinnamen erhält wie der OB1. Ansonsten wird dieser nicht
bearbeitet.
Sie wissen jetzt, wie man einen Baustein eingibt und simuliert.
Ich hoffe, daß diese Kurzanleitung Ihnen beim Einstieg etwas
hilfreich war.
Wenn Sie weitere Möglichkeiten des SPS-Simulators kennenlernen
möchten, finden Sie in der Dokumentation "SPS.DOC" reichlich
INPUT.
Noch ein paar Hinweise, die für den Einstieg hilfreich sind:
■ Wenn Sie ein Programm mit mehreren Bausteinen programmieren
möchten, muß jeder Baustein den gleichen Bausteinnamen bekommen.
■ Wenn Sie einen neuen Baustein eröffnen wollen, sollten Sie das
immer mit dem Menuepunkt "Datei - Neuer Baustein anlegen" tun.
Dieser Menuepunkt ist auch direkt mit der Funktionstaste [F4]
erreichbar.
■ Die Tastenkombination [STRG/RETURN] oder [CTRL/RETURN] ist im
Simulator sehr wichtig. Diese Tastenkombination hat, je nachdem
wo man sich gerade befindet, verschiedene Belegungen-
ausprobieren oder das Handbuch studieren.
■ In der FUP-Simulation hat man nicht die Möglichkeit, den
Baustein zu wechseln.
■ Datenbausteine werden wie die anderen Bausteine eröffnet:
Menuepunkt "Neuer Baustein anlegen"
■ Machen Sie davon Gebrauch einen geeigneten Videomodus
einzustellen (Siehe Handbuch). Sie haben dann z.B. statt 80 100
Spalten zur Verfügung. Besonders der Funktionsplan sieht dann
optisch besser aus. Der Standard-Textmodus ist für den
Funktionsplan nicht so gut geeignet. (Nur möglich bei VGA-
Karten)
─── Seite 105 ───
Simulation von Ablaufsteuerungen ANHANG 2
──────────────────────────────────────────────────────────────────────────────
Simulation von Ablaufsteuerungen
Ich habe noch spezielle Operationen zur Verfügung gestellt, mit
denen man Ablaufsteuerungen besser simulieren kann. Mit diesen
Befehlen können Sie innerhalb der AWL Eingänge umschalten. Die
manipulierten Eingänge bleiben dann auch nach dem Laden des PAE
unverändert. Sie können damit praktisch einen Tastendruck
simulieren. Diese Operationen sind keine STEP 5 (R)- Operationen,
sondern dienen nur zur Vereinfachung der Simulation. Sie
funktionieren nicht bei Eingängen, die als Taster definiert worden
sind !
Die Operationen "= E x.x", "S E x.x" und "R E x.x" können diese
Funktion nicht leisten, da nach der "BE"- Anweisung im OB1 das PAE
(Prozeßabblild der Eingänge) wieder geladen wird.
Syntax der Operationen:
■ "= PAE [Eingangsbyte].[Eingangsbit]"
z.B.: "= PAE 0.0"
■ "S PAE [Eingangsbyte].[Eingangsbit]"
z.B.: "S PAE 0.0"
■ "R PAE [Eingangsbyte].[Eingangsbit]"
z.B.: "R PAE 0.0"
Beispiel:
In diesem Beispiel werden 3 Zeiten nacheinander gestartet. Das
nächste Zeitwerk wird aber nur dann gestartet, wenn ein bestimmter
Eingang '1' ist. Normalerweise müßten Sie nun von Hand den
jeweiligen Eingang zur richtigen Zeit auf '1' legen. Mit Hilfe der
PAE-Befehlen können Sie dies automatisch erledigen. Sie brauchen
dann nur noch zuzusehen, wie das Programm abläuft. Da die PAE-
Befehle nicht in einen Funktionsplan umgewandelt werden können,
ist es sinnvoll, diese Befehle in einem eigenen Baustein zu
schreiben, und diesen dann mit einem absoluten Sprung im OB 1
aufzurufen.
Im Beispiel stehen ab der AWL-Zeile Nr. 32 die PAE-Befehle.
Baustein:OB1 Name:ABLAUF
0001 :U E 0.0
0002 :L KT 200.0
0003 :SE T 1
0004 :NOP 0 RÜCKSETZ-EINGANG
0005 :NOP 0 TIMER ISTWERT TRANSF. DUAL
0006 :NOP 0 TIMER ISTWERT TRANSF. BCD
0007 :U T 1 BINÄRER AUSGANG
0008 := A 0.0
0009 :
0010 :U A 0.0
─── Seite 106 ───
Simulation von Ablaufsteuerungen ANHANG 2
──────────────────────────────────────────────────────────────────────────────
0011 :U E 0.1
0012 :L KT 200.0
0013 :SE T 2
0014 :NOP 0 RÜCKSETZ-EINGANG
0015 :NOP 0 TIMER ISTWERT TRANSF. DUAL
0016 :NOP 0 TIMER ISTWERT TRANSF. BCD
0017 :U T 2 BINÄRER AUSGANG
0018 := A 0.1
0019 :
0020 :U A 0.1
0021 :U E 0.2
0022 :L KT 200.0
0023 :SE T 3
0024 :NOP 0 RÜCKSETZ-EINGANG
0025 :NOP 0 TIMER ISTWERT TRANSF. DUAL
0026 :NOP 0 TIMER ISTWERT TRANSF. BCD
0027 :U T 3 BINÄRER AUSGANG
0028 := A 0.2
0029 :
0030 :
0031 :
0032 :U A 0.0 WENN AUSGANG '1' DANN ...
0033 :S PAE 0.1 EINGANG E0.1 AUF '1' SETZEN
0034 :U A 0.1 WENN AUSGANG '1' DANN ...
0035 :S PAE 0.2 EINGANG E0.2 AUF '1' SETZEN
0036 :
0037 :U A 0.0 WENN ALLE AUSGÄNGE HIGH, DANN ...
0038 :U A 0.1
0039 :U A 0.2
0040 :L KT 100.0 NACH EINER VERZÖGERUNG ...
0041 :SE T 100
0042 :U T 100
0043 :R PAE 0.0 ALLE EINGAENGE WIEDER ZURÜCK-
0044 :R PAE 0.1 SETZEN.
0045 :R PAE 0.2
0046 :BE
─── Seite 107 ───
OPERATIONSVORRAT ANHANG 3
──────────────────────────────────────────────────────────────────────────────
╒═════╤══════════╤════╤═════╤═════╤══════════════════════════════════════╕
│Op. │ Operand │VKE │VKE │VKE │ Beschreibung │
│ │ │ABH.│BEEI.│BEGR.│ │
╔═╧═════╧══════════╧════╧═════╧═════╧══════════════════════════════════════╡
║Verknüpfungsoperationen │
╚═╤═════╤═══════════╤═══╤═════╤═════╤══════════════════════════════════════╡
│U │E/A/M/T/Z/D│ │ X │ │ UND-Verknüpfung │
├─────┼───────────┼───┼─────┼─────┼──────────────────────────────────────┤
│UN │E/A/M/T/Z/D│ │ X │ │ UND-NICHT-Verknüpfung │
├─────┼───────────┼───┼─────┼─────┼──────────────────────────────────────┤
│O │E/A/M/T/Z/D│ │ X │ │ ODER-Verknüpfung │
├─────┼───────────┼───┼─────┼─────┼──────────────────────────────────────┤
│ON │E/A/M/T/Z/D│ │ X │ │ ODER-NICHT-Verknüpfung │
├─────┼───────────┼───┼─────┼─────┼──────────────────────────────────────┤
│O │ │ │ X │ X │ ODER-Verknüpfung von UND-Ausdrücken │
├─────┼───────────┼───┼─────┼─────┼──────────────────────────────────────┤
│U( │ │ │ X │ X │ UND-Verknüpfung von Klammerausdrücken│
├─────┼───────────┼───┼─────┼─────┼──────────────────────────────────────┤
│O( │ │ │ X │ X │ ODER-Verknüpfung von Klammerausdrücke│
├─────┼───────────┼───┼─────┼─────┼──────────────────────────────────────┤
│) │ │ │ X │ │ Ende eines Klammerausdrucks │
╔═╧═════╧═══════════╧═══╧═════╧═════╧══════════════════════════════════════╡
║Speicheroperationen │
╚═╤═════╤══════════╤════╤═════╤═════╤══════════════════════════════════════╡
│S │ E/A/M/D │ X │ │ X │ Setzt den Operand auf logisch '1' │
├─────┼──────────┼────┼─────┼─────┼──────────────────────────────────────┤
│R │ E/A/M/D │ X │ │ X │ Setzt den Operand auf logisch '0' │
├─────┼──────────┼────┼─────┼─────┼──────────────────────────────────────┤
│= │ E/A/M/D │ │ │ X │ Dem Operanden wird der Wert des VKE │
│ │ │ │ │ │ zugewiesen │
╔═╧═════╧══════════╧════╧═════╧═════╧══════════════════════════════════════╡
║Ladeoperationen │
╚═╤═════╤══════════╤════╤═════╤═════╤══════════════════════════════════════╡
│L │ EB/AB │ │ │ │ Ein Eingangs/Ausgangsbyte wird in │
│ │ │ │ │ │ den Akku 1 geladen │
├─────┼──────────┼────┼─────┼─────┼──────────────────────────────────────┤
│L │ EW/AW │ │ │ │ Ein Eingangs/Ausgangswort wird in │
│ │ │ │ │ │ den Akku 1 geladen │
├─────┼──────────┼────┼─────┼─────┼──────────────────────────────────────┤
│L │ PB/PW │ │ │ │ Ein Peripheriebyte/wort wird in │
│ │ PY │ │ │ │ den Akku 1 geladen │
├─────┼──────────┼────┼─────┼─────┼──────────────────────────────────────┤
│L │ MB/MW │ │ │ │ Ein Merkerbyte/wort wird in │
│ │ │ │ │ │ den Akku 1 geladen │
├─────┼──────────┼────┼─────┼─────┼──────────────────────────────────────┤
│L │ DL/DR │ │ │ │ Linkes (HIGH) oder rechtes (LOW) │
│ │ │ │ │ │ Byte von Datenwort in Akku 1 laden │
└─────┴──────────┴────┴─────┴─────┴──────────────────────────────────────┘
┌──────────────────────────────┬────────────────────────────────┐
│ X1 : Highflanke des VKE │ VKE ABH. = VKE abhängig │
│ X0 : Lowflanke des VKE │ VKE BEEI. = VKE beeinflussend│
│ X#1: Vke wird auf 1 gesetzt │ VKE BEGR. = VKE begrenzend │
└──────────────────────────────┴────────────────────────────────┘
─── Seite 108 ───
OPERATIONSVORRAT ANHANG 3
──────────────────────────────────────────────────────────────────────────────
╒═════╤══════════╤════╤═════╤═════╤══════════════════════════════════════╕
│Op. │ Operand │VKE │VKE │VKE │ Beschreibung │
│ │ │ABH.│BEEI.│BEGR.│ │
╞═════╪══════════╪════╪═════╪═════╪══════════════════════════════════════╡
│L │ DW │ │ │ │ Ein Datenwort wird in den Akku 1 │
│ │ │ │ │ │ geladen │
├─────┼──────────┼────┼─────┼─────┼──────────────────────────────────────┤
│L │ KB │ │ │ │ Eine Konstante (1-Byte-Zahl) wird │
│ │ │ │ │ │ in den Akku 1 geladen │
├─────┼──────────┼────┼─────┼─────┼──────────────────────────────────────┤
│L │ KF │ │ │ │ Eine Konstante (Festpunktzahl) │
│ │ │ │ │ │ wird in den Akku 1 geladen │
├─────┼──────────┼────┼─────┼─────┼──────────────────────────────────────┤
│L │ KH │ │ │ │ Eine Konstante (im Hexadezimalsystem)│
│ │ │ │ │ │ wird in den Akku 1 geladen │
├─────┼──────────┼────┼─────┼─────┼──────────────────────────────────────┤
│L │ KM │ │ │ │ Eine konstantes Bitmuster wird in │
│ │ │ │ │ │ den Akku 1 geladen │
├─────┼──────────┼────┼─────┼─────┼──────────────────────────────────────┤
│L │ KY │ │ │ │ Eine Konstante (2-Byte-Zahl: z.B. │
│ │ │ │ │ │ 255,10) wird in den Akku 1 geladen │
├─────┼──────────┼────┼─────┼─────┼──────────────────────────────────────┤
│L │ KT │ │ │ │ Ein Zeitwert wird BCD-codiert │
│ │ │ │ │ │ in den Akku 1 geladen │
├─────┼──────────┼────┼─────┼─────┼──────────────────────────────────────┤
│L │ KZ │ │ │ │ Ein Zählwert wird BCD-codiert │
│ │ │ │ │ │ in den Akku 1 geladen │
├─────┼──────────┼────┼─────┼─────┼──────────────────────────────────────┤
│L │ T/Z │ │ │ │ Ein Zeit- oder Zähl- Istwert │
│ │ │ │ │ │ wird in den Akku 1 geladen │
├─────┼──────────┼────┼─────┼─────┼──────────────────────────────────────┤
│LC │ T/Z │ │ │ │ Ein Zeit- oder Zähl- Istwert wird │
│ │ │ │ │ │ BCD-codiert in den Akku 1 geladen │
╔═╧═════╧══════════╧════╧═════╧═════╧══════════════════════════════════════╡
║Transferbefehle │
╚═╤═════╤══════════╤════╤═════╤═════╤══════════════════════════════════════╡
│T │ EB/AB │ │ │ │ Der Inhalt des Akku 1 (Lowbyte) wird │
│ │ │ │ │ │ zu einem Eingangs/Ausgangsbyte trans-│
│ │ │ │ │ │ feriert. │
├─────┼──────────┼────┼─────┼─────┼──────────────────────────────────────┤
│T │ EW/AW │ │ │ │ Der Inhalt des Akku 1 wird zu einem │
│ │ │ │ │ │ Eingangs/Ausgangswort transferiert │
├─────┼──────────┼────┼─────┼─────┼──────────────────────────────────────┤
│T │ PB/PW │ │ │ │ Der Inhalt des Akku1 wird zu einem │
│ │ PY │ │ │ │ Pheripheriebyte/wort transferiert │
├─────┼──────────┼────┼─────┼─────┼──────────────────────────────────────┤
│T │ MB/MW │ │ │ │ Der Inhalt des Akku 1 wird zu einem │
│ │ │ │ │ │ Merkerbyte/wort transferiert │
└─────┴──────────┴────┴─────┴─────┴──────────────────────────────────────┘
┌──────────────────────────────┬────────────────────────────────┐
│ X1 : Highflanke des VKE │ VKE ABH. = VKE abhängig │
│ X0 : Lowflanke des VKE │ VKE BEEI. = VKE beeinflussend│
│ X#1: Vke wird auf 1 gesetzt │ VKE BEGR. = VKE begrenzend │
└──────────────────────────────┴────────────────────────────────┘
─── Seite 109 ───
OPERATIONSVORRAT ANHANG 3
──────────────────────────────────────────────────────────────────────────────
╒═════╤══════════╤════╤═════╤═════╤══════════════════════════════════════╕
│Op. │ Operand │VKE │VKE │VKE │ Beschreibung │
│ │ │ABH.│BEEI.│BEGR.│ │
╞═════╪══════════╪════╪═════╪═════╪══════════════════════════════════════╡
│T │ DL/DR │ │ │ │ Das Lowbyte des Akku 1 wird zu einem │
│ │ │ │ │ │ Datenwort (linkes oder rechtes Byte) │
│ │ │ │ │ │ transferiert. │
├─────┼──────────┼────┼─────┼─────┼──────────────────────────────────────┤
│T │ DW │ │ │ │ Der Inhalt des Akku 1 wird zu einem │
│ │ │ │ │ │ Datenwort transferiert. │
╔═╧═════╧══════════╧════╧═════╧═════╧══════════════════════════════════════╡
║Zeitoperationen │
╚═╤═════╤══════════╤════╤═════╤═════╤══════════════════════════════════════╡
│SI │ T │ X1 │ │ X │ Eine Zeit, die im Akku 1 abgelegt │
│ │ │ │ │ │ wurde, wird als Impuls gestartet │
├─────┼──────────┼────┼─────┼─────┼──────────────────────────────────────┤
│SV │ T │ │ │ │ Eine Zeit, die im Akku 1 abgelegt │
│ │ │ X1 │ │ X │ wurde, wird als verlängerter Impuls │
│ │ │ │ │ │ gestartet │
├─────┼──────────┼────┼─────┼─────┼──────────────────────────────────────┤
│SE │ T │ │ │ │ Eine Zeit, die im Akku 1 abgelegt │
│ │ │ X1 │ │ X │ wurde, wird einschaltverzögert │
│ │ │ │ │ │ gestartet. │
├─────┼──────────┼────┼─────┼─────┼──────────────────────────────────────┤
│SS │ T │ X1 │ │ X │ Wie SE nur speichernd. │
├─────┼──────────┼────┼─────┼─────┼──────────────────────────────────────┤
│SA │ T │ X0 │ │ X │ Eine Zeit, die im Akku 1 abgelegt │
│ │ │ │ │ │ wurde, wird ausschaltverzögert │
│ │ │ │ │ │ gestartet │
├─────┼──────────┼────┼─────┼─────┼──────────────────────────────────────┤
│R │ T │ X │ │ X │ Eine Zeit wird rückgesetzt. │
├─────┼──────────┼────┼─────┼─────┼──────────────────────────────────────┤
│FR │ T │ X1 │ │ X │ Freigabe einer Zeit │
╔═╧═════╧══════════╧════╧═════╧═════╧══════════════════════════════════════╡
║Zähloperationen │
╚═╤═════╤══════════╤════╤═════╤═════╤══════════════════════════════════════╡
│ZV │ Z │ X1 │ │ X │ Zähler um 1 erhöhen │
├─────┼──────────┼────┼─────┼─────┼──────────────────────────────────────┤
│ZR │ Z │ X1 │ │ X │ Zähler um 1 erniedrigen │
├─────┼──────────┼────┼─────┼─────┼──────────────────────────────────────┤
│S │ Z │ X1 │ │ │ Setzt den Zähler auf einen Wert, der │
│ │ │ │ │ X │ im Akku 1 BCD-kodiert hinterlegt ist.│
├─────┼──────────┼────┼─────┼─────┼──────────────────────────────────────┤
│R │ Z │ X │ │ X │ Ein Zähler rücksetzen │
├─────┼──────────┼────┼─────┼─────┼──────────────────────────────────────┤
│FR │ Z │ X1 │ │ X │ Freigabe eines Zählers │
└─────┴──────────┴────┴─────┴─────┴──────────────────────────────────────┘
┌──────────────────────────────┬────────────────────────────────┐
│ X1 : Highflanke des VKE │ VKE ABH. = VKE abhängig │
│ X0 : Lowflanke des VKE │ VKE BEEI. = VKE beeinflussend│
│ X#1: Vke wird auf 1 gesetzt │ VKE BEGR. = VKE begrenzend │
└──────────────────────────────┴────────────────────────────────┘
─── Seite 110 ───
OPERATIONSVORRAT ANHANG 3
──────────────────────────────────────────────────────────────────────────────
╒═════╤══════════╤════╤═════╤═════╤══════════════════════════════════════╕
│Op. │ Operand │VKE │VKE │VKE │ Beschreibung │
│ │ │ABH.│BEEI.│BEGR.│ │
╔═╧═════╧══════════╧════╧═════╧═════╧══════════════════════════════════════╡
║Arithmetrische Befehle │
╚═╤═════╤══════════╤════╤═════╤═════╤══════════════════════════════════════╡
│+F │ │ │ │ │ Zwei Festpunktzahlen addieren: │
│ │ │ │ │ │ Akku 1 + Akku 2 │
│ │ │ │ │ │ Das Ergebnis steht in Akku 1 │
├─────┼──────────┼────┼─────┼─────┼──────────────────────────────────────┤
│-F │ │ │ │ │ Zwei Festpunktzahlen werden │
│ │ │ │ │ │ subtrahiert: Akku 2 - Akku 1 │
│ │ │ │ │ │ Das Ergebnis steht in Akku 1 │
├─────┼──────────┼────┼─────┼─────┼──────────────────────────────────────┤
│*F │ │ │ │ │ Zwei Festpunktzahlen werden multi- │
│ │ │ │ │ │ pliziert: Akku 1 * Akku 2 │
│ │ │ │ │ │ Das Ergebnis steht in Akku 1 │
├─────┼──────────┼────┼─────┼─────┼──────────────────────────────────────┤
│/F │ │ │ │ │ Zwei Festpunktzahlen werden divi- │
│ │ │ │ │ │ diert: Akku 2 / Akku 1 │
│ │ │ │ │ │ Das Ergebnis steht in Akku 1 │
│ │ │ │ │ │ und in Akku 2 (ganzzahliger Rest) │
│ │ │ │ │ │ Bei Division durch Null wird M255.7 │
│ │ │ │ │ │ auf '1' gesetzt !!! │
╔═╧═════╧══════════╧════╧═════╧═════╧══════════════════════════════════════╡
║Vergleichsoperationen │
╚═╤═════╤══════════╤════╤═════╤═════╤══════════════════════════════════════╡
│!=F │ │ │ X │ │ Wenn Akku 1 = Akku 2 dann wird │
│ │ │ │ │ │ das VKE '1' │
├─────┼──────────┼────┼─────┼─────┼──────────────────────────────────────┤
│><F │ │ │ X │ │ Wenn Akku 1 nicht gleich Akku2 dann │
│ │ │ │ │ │ dann wird das VKE '1' │
├─────┼──────────┼────┼─────┼─────┼──────────────────────────────────────┤
│>F │ │ │ X │ │ Wenn Akku 2 > Akku 1 dann wird das │
│ │ │ │ │ │ VKE '1' │
├─────┼──────────┼────┼─────┼─────┼──────────────────────────────────────┤
│>=F │ │ │ X │ │ Wenn Akku 2 >= Akku 1 dann wird das │
│ │ │ │ │ │ VKE '1' │
├─────┼──────────┼────┼─────┼─────┼──────────────────────────────────────┤
│<F │ │ │ X │ │ Wenn Akku 2 < Akku 1 dann wird das │
│ │ │ │ │ │ VKE '1' │
├─────┼──────────┼────┼─────┼─────┼──────────────────────────────────────┤
│<=F │ │ │ X │ │ Wenn Akku 2 <= Akku 1 dann wird das │
│ │ │ │ │ │ VKE '1' │
╔═╧═════╧══════════╧════╧═════╧═════╧══════════════════════════════════════╡
║Bausteinaufrufoperationen │
╚═╤═════╤══════════╤════╤═════╤═════╤══════════════════════════════════════╡
│SPA │ OB │ │ │ X │ Organisationsbaustein absolut auf- │
│ │ │ │ │ │ rufen │
└─────┴──────────┴────┴─────┴─────┴──────────────────────────────────────┘
┌──────────────────────────────┬────────────────────────────────┐
│ X1 : Highflanke des VKE │ VKE ABH. = VKE abhängig │
│ X0 : Lowflanke des VKE │ VKE BEEI. = VKE beeinflussend│
│ X#1: Vke wird auf 1 gesetzt │ VKE BEGR. = VKE begrenzend │
└──────────────────────────────┴────────────────────────────────┘
─── Seite 111 ───
OPERATIONSVORRAT ANHANG 3
──────────────────────────────────────────────────────────────────────────────
╒═════╤══════════╤════╤═════╤═════╤══════════════════════════════════════╕
│Op. │ Operand │VKE │VKE │VKE │ Beschreibung │
│ │ │ABH.│BEEI.│BEGR.│ │
╞═════╪══════════╪════╪═════╪═════╪══════════════════════════════════════╡
│SPA │ PB │ │ │ X │ Programmbaustein absolut aufrufen │
├─────┼──────────┼────┼─────┼─────┼──────────────────────────────────────┤
│SPA │ FB │ │ │ X │ Funktionsbaustein absolut aufrufen │
├─────┼──────────┼────┼─────┼─────┼──────────────────────────────────────┤
│SPA │ SB │ │ │ X │ Schrittbaustein absolut aufrufen │
├─────┼──────────┼────┼─────┼─────┼──────────────────────────────────────┤
│SPB │ OB │X │ X#1 │ X │ Organisationsbaustein bedingt │
│ │ │ │ │ │ aufrufen │
├─────┼──────────┼────┼─────┼─────┼──────────────────────────────────────┤
│SPB │ PB │X │ X#1 │ X │ Progammbaustein bedingt aufrufen │
├─────┼──────────┼────┼─────┼─────┼──────────────────────────────────────┤
│SPB │ FB │X │ X#1 │ X │ Funktionsbaustein bedingt aufrufen │
├─────┼──────────┼────┼─────┼─────┼──────────────────────────────────────┤
│SPB │ SB │X │ X#1 │ X │ Schrittbaustein bedingt aufrufen │
╔═╧═════╧══════════╧════╧═════╧═════╧══════════════════════════════════════╡
║Sprungoperationen │
╚═╤═════╤══════════╤════╤═════╤═════╤══════════════════════════════════════╡
│SPA= │Symboladr │ │ │ │ Sprung absolut zur Marke (Label) │
├─────┼──────────┼────┼─────┼─────┼──────────────────────────────────────┤
│SPB= │Symboladr │ X │ X#1 │ X │ Sprung bedingt zur Marke (Label) │
├─────┼──────────┼────┼─────┼─────┼──────────────────────────────────────┤
│SPZ= │Symboladr │ │ │ │ Sprung bei Null: Wird nur ausgeführt,│
│ │ │ │ │ │ wenn Anz0 =0 und Anz1 = 0 │
├─────┼──────────┼────┼─────┼─────┼──────────────────────────────────────┤
│SPN= │Symboladr │ │ │ │ Sprung bei nicht Null: Wird nur │
│ │ │ │ │ │ ausgeführt, wenn Anz1 nicht gleich │
│ │ │ │ │ │ Anz0 ist. │
├─────┼──────────┼────┼─────┼─────┼──────────────────────────────────────┤
│SPP= │Symboladr │ │ │ │ Sprung bei Vorzeichen Plus: Wird nur │
│ │ │ │ │ │ ausgeführt, wenn Anz1 = 1 und │
│ │ │ │ │ │ Anz0 = 0 ist. │
├─────┼──────────┼────┼─────┼─────┼──────────────────────────────────────┤
│SPM= │Symboladr │ │ │ │ Sprung bei Vorzeichen minus: Wird nur│
│ │ │ │ │ │ ausgeführt, wenn Anz1 = 0 und │
│ │ │ │ │ │ Anz0 = 1 │
├─────┼──────────┼────┼─────┼─────┼──────────────────────────────────────┤
│SPO= │Syboladr │ │ │ │ Sprung bei 'Überlauf': Wird nur aus- │
│ │ │ │ │ │ geführt, wenn die Overflow Anzeige │
│ │ │ │ │ │ gesetzt ist. │
╔═╧═════╧══════════╧════╧═════╧═════╧══════════════════════════════════════╡
║Bausteinaufrufoperationen │
╚═╤═════╤══════════╤════╤═════╤═════╤══════════════════════════════════════╡
│A │DB │ │ │ │ Ein Datenbaustein wird aufgerufen │
└─────┴──────────┴────┴─────┴─────┴──────────────────────────────────────┘
┌──────────────────────────────┬────────────────────────────────┐
│ X1 : Highflanke des VKE │ VKE ABH. = VKE abhängig │
│ X0 : Lowflanke des VKE │ VKE BEEI. = VKE beeinflussend│
│ X#1: Vke wird auf 1 gesetzt │ VKE BEGR. = VKE begrenzend │
└──────────────────────────────┴────────────────────────────────┘
─── Seite 112 ───
OPERATIONSVORRAT ANHANG 3
──────────────────────────────────────────────────────────────────────────────
╒═════╤══════════╤════╤═════╤═════╤══════════════════════════════════════╕
│Op. │ Operand │VKE │VKE │VKE │ Beschreibung │
│ │ │ABH.│BEEI.│BEGR.│ │
╞═════╪══════════╪════╪═════╪═════╪══════════════════════════════════════╡
│E │DB │ │ │ │ Ein Datenbaustein wird erzeugt, wenn │
│ │ │ │ │ │ im Akku 1 ein Wert ungleich "0" │
│ │ │ │ │ │ Steht. Der DB wird gelöscht wenn im │
│ │ │ │ │ │ Akku 1 der Wert "0" steht. │
╔═╧═════╧══════════╧════╧═════╧═════╧══════════════════════════════════════╡
║Rücksprungoperationen │
╚═╤═════╤══════════╤════╤═════╤═════╤══════════════════════════════════════╡
│BE │ │ │ │ X │ Baustein beenden │
├─────┼──────────┼────┼─────┼─────┼──────────────────────────────────────┤
│BEB │ │ X │ │ X#1 │ Baustein bedingt beenden │
├─────┼──────────┼────┼─────┼─────┼──────────────────────────────────────┤
│BEA │ │ │ │ X │ Baustein absolut beenden │
╔═╧═════╧══════════╧════╧═════╧═════╧══════════════════════════════════════╡
║Null-Operationen │
╚═╤═════╤══════════╤════╤═════╤═════╤══════════════════════════════════════╡
│NOP0 │ │ │ │ │ dient als Platzhalter │
├─────┼──────────┼────┼─────┼─────┼──────────────────────────────────────┤
│NOP1 │ │ │ │ │ Nulloperation; hat keine Bedeutung │
╔═╧═════╧══════════╧════╧═════╧═════╧══════════════════════════════════════╡
║Stop-Operation │
╚═╤═════╤══════════╤════╤═════╤═════╤══════════════════════════════════════╡
│STS │ │ │ │ │ Der Simulationsvorgang wird beendet │
├─────┼──────────┼────┼─────┼─────┼──────────────────────────────────────┤
│STP │ │ │ │ │ Der Simulationsvorgang wird beendet │
╔═╧═════╧══════════╧════╧═════╧═════╧══════════════════════════════════════╡
║Bit-Testoperationen │
╚═╤═════╤══════════╤════╤═════╤═════╤══════════════════════════════════════╡
│P │ D │ │ X │ │ Bit eines Datenwortes auf '1' prüfen │
├─────┼──────────┼────┼─────┼─────┼──────────────────────────────────────┤
│P │ T/Z │ │ X │ │ Bit eines Zeit/Zähler-Istwertes auf │
│ │ │ │ │ │ '1' prüfen │
├─────┼──────────┼────┼─────┼─────┼──────────────────────────────────────┤
│PN │ D │ │ X │ │ Bit eines Datenwortes auf '0' prüfen │
├─────┼──────────┼────┼─────┼─────┼──────────────────────────────────────┤
│PN │ T/Z │ │ X │ │ Bit eines Zeit/Zähler-Istwertes auf │
│ │ │ │ │ │ '0' prüfen │
├─────┼──────────┼────┼─────┼─────┼──────────────────────────────────────┤
│SU │ D │ │ │ X │ Bit eines Datenwortes auf '1' setzen │
├─────┼──────────┼────┼─────┼─────┼──────────────────────────────────────┤
│SU │ T/Z │ │ │ X │ Bit eines Zeit/Zähl-Istwertes setzen │
├─────┼──────────┼────┼─────┼─────┼──────────────────────────────────────┤
│RU │ D │ │ │ X │ Bit eines Datenwortes auf '0' setzen │
├─────┼──────────┼────┼─────┼─────┼──────────────────────────────────────┤
│RU │ T/Z │ │ │ X │ Bit eines Zeit/Zähler-Istwertes auf │
│ │ │ │ │ │ '0' setzen │
└─────┴──────────┴────┴─────┴─────┴──────────────────────────────────────┘
┌──────────────────────────────┬────────────────────────────────┐
│ X1 : Highflanke des VKE │ VKE ABH. = VKE abhängig │
│ X0 : Lowflanke des VKE │ VKE BEEI. = VKE beeinflussend│
│ X#1: Vke wird auf 1 gesetzt │ VKE BEGR. = VKE begrenzend │
└──────────────────────────────┴────────────────────────────────┘
─── Seite 113 ───
OPERATIONSVORRAT ANHANG 3
──────────────────────────────────────────────────────────────────────────────
╒═════╤══════════╤════╤═════╤═════╤══════════════════════════════════════╕
│Op. │ Operand │VKE │VKE │VKE │ Beschreibung │
│ │ │ABH.│BEEI.│BEGR.│ │
╔═╧═════╧══════════╧════╧═════╧═════╧══════════════════════════════════════╡
║Umwandlungsoperationen │
╚═╤═════╤══════════╤════╤═════╤═════╤══════════════════════════════════════╡
│KEW │ │ │ │ │ Das 1er-Komplement (Negierung) │
│ │ │ │ │ │ von Akku 1 bilden │
├─────┼──────────┼────┼─────┼─────┼──────────────────────────────────────┤
│KZW │ │ │ │ │ Das 1er-Kompelment (Negierung) │
│ │ │ │ │ │ von Akku 1 bilden und 1 addieren │
╔═╧═════╧══════════╧════╧═════╧═════╧══════════════════════════════════════╡
║Schiebeoperationen │
╚═╤═════╤══════════╤════╤═════╤═════╤══════════════════════════════════════╡
│SLW │ │ │ │ │ Inhalt von Akku 1 nach links schieben│
├─────┼──────────┼────┼─────┼─────┼──────────────────────────────────────┤
│SRW │ │ │ │ │ Inhalt von Akku 2 nach rechts │
│ │ │ │ │ │ schieben │
╔═╧═════╧══════════╧════╧═════╧═════╧══════════════════════════════════════╡
║Arithmetische Operationen │
╚═╤═════╤══════════╤════╤═════╤═════╤══════════════════════════════════════╡
│ADD │ BF │ │ │ │ Eine 1-Byte Konstante zum Akku 1 │
│ │ │ │ │ │ addieren (-127...+127) │
├─────┼──────────┼────┼─────┼─────┼──────────────────────────────────────┤
│ADD │ KF │ │ │ │ Eine 2-Byte Konstante zum Akku 1 │
│ │ │ │ │ │ addieren (-32768...+32767) │
├─────┼──────────┼────┼─────┼─────┼──────────────────────────────────────┤
│D │ │ │ │ │ Das Low-Byte von Akku 1 um n (0..255)│
│ │ │ │ │ │ erniedrigen (dekrementieren) │
├─────┼──────────┼────┼─────┼─────┼──────────────────────────────────────┤
│I │ │ │ │ │ Das Low-Byte von Akku 1 um n (0..255)│
│ │ │ │ │ │ erhöhen (inkrementieren) │
╔═╧═════╧══════════╧════╧═════╧═════╧══════════════════════════════════════╡
║Sonstige Operationen │
╚═╤═════╤══════════╤════╤═════╤═════╤══════════════════════════════════════╡
│TAK │ │ │ │ │ Der Inhalt von Akku 1 und Akku 2 │
│ │ │ │ │ │ wird vertauscht │
├─────┼──────────┼────┼─────┼─────┼──────────────────────────────────────┤
│UW │ │ │ │ │ UND- Verknüpfung von Akku 1 und │
│ │ │ │ │ │ Akku 2. Das Ergebnis steht in Akku 1 │
├─────┼──────────┼────┼─────┼─────┼──────────────────────────────────────┤
│OW │ │ │ │ │ ODER-Verknüpfung von Akku 1 und │
│ │ │ │ │ │ Akku 2. Das Ergebnis steht in Akku 1 │
├─────┼──────────┼────┼─────┼─────┼──────────────────────────────────────┤
│XOW │ │ │ │ │ EXKLUSIV-Oder Verknüpfung von Akku 1 │
│ │ │ │ │ │ und Akku 2. Das Ergebnis steht in │
│ │ │ │ │ │ Akku 1 │
└─────┴──────────┴────┴─────┴─────┴──────────────────────────────────────┘
┌──────────────────────────────┬────────────────────────────────┐
│ X1 : Highflanke des VKE │ VKE ABH. = VKE abhängig │
│ X0 : Lowflanke des VKE │ VKE BEEI. = VKE beeinflussend│
│ X#1: Vke wird auf 1 gesetzt │ VKE BEGR. = VKE begrenzend │
└──────────────────────────────┴────────────────────────────────┘
─── Seite 114 ───
OPERATIONSVORRAT ANHANG 3
──────────────────────────────────────────────────────────────────────────────
╒═════╤══════════╤════╤═════╤═════╤══════════════════════════════════════╕
│Op. │ Operand │VKE │VKE │VKE │ Beschreibung │
│ │ │ABH.│BEEI.│BEGR.│ │
╞═════╪══════════╪════╪═════╪═════╪══════════════════════════════════════╡
│B │ MW │ │ │ │ Indirekte Adressierung durch ein │
│ │ │ │ │ │ Merkerwort │
├─────┼──────────┼────┼─────┼─────┼──────────────────────────────────────┤
│B │ DW │ │ │ │ Indirekte Adressierung durch ein │
│ │ │ │ │ │ Datenwort. │
├─────┼──────────┼────┼─────┼─────┼──────────────────────────────────────┤
│DUF │ │ │ │ │ DUAL (Akku 1) ==> BCD (Akku 1) │
├─────┼──────────┼────┼─────┼─────┼──────────────────────────────────────┤
│DEF │ │ │ │ │ BCD (Akku 1) ==> DUAL (Akku 1) │
╔═╧═════╧══════════╧════╧═════╧═════╧══════════════════════════════════════╡
║Operationen mit Formaloperanden │
╚═╤════════════════════════════════════════════════════════════════════════╡
│Verknüpfungsoperationen │
╞═════╤══════════╤════╤═════╤═════╤══════════════════════════════════════╡
│U= │Formal- │ │ X │ │ UND-Verknüpfung mit folgenden Aktual-│
│ │operand │ │ │ │ operanden: E/A/M/T/Z │
├─────┼──────────┼────┼─────┼─────┼──────────────────────────────────────┤
│UN= │Formal- │ │ X │ │ UND-NICHT Verknüpfung mit folgenden │
│ │operand │ │ │ │ Aktualoperanden: E/A/M/T/Z │
├─────┼──────────┼────┼─────┼─────┼──────────────────────────────────────┤
│O= │Formal- │ │ X │ │ ODER Verknüpfung mit folgenden │
│ │operand │ │ │ │ Aktualoperanden: E/A/M/T/Z │
├─────┼──────────┼────┼─────┼─────┼──────────────────────────────────────┤
│ON= │Formal- │ │ X │ │ ODER-NICHT Verknüpfung mit folgenden │
│ │operand │ │ │ │ Aktualoperanden: E/A/M/T/Z │
╞═════╧══════════╧════╧═════╧═════╧══════════════════════════════════════╡
│Speicheroperationen │
╞═════╤══════════╤════╤═════╤═════╤══════════════════════════════════════╡
│S= │ Formal- │ X │ │ X │ Setze Formaloperand │
│ │ operand │ │ │ │ Mögliche Aktualoperanden: E/A/M │
├─────┼──────────┼────┼─────┼─────┼──────────────────────────────────────┤
│RB= │ Formal- │ X │ │ X │ Rücksetze binärer Formaloperand │
│ │ operand │ │ │ │ Mögliche Aktualoperanden: E/A/M │
├─────┼──────────┼────┼─────┼─────┼──────────────────────────────────────┤
│RD= │ Formal- │ X │ │ X │ Rücksetze digitaler Formaloperand │
│ │ operand │ │ │ │ Mögliche Aktualoperanden: T/Z │
├─────┼──────────┼────┼─────┼─────┼──────────────────────────────────────┤
│== │ Formal- │ X │ │ X │ Der Formaloperand wird auf den Wert │
│ │ operand │ │ │ │ des VKE gesetzt. │
│ │ │ │ │ │ Mögliche Aktualoperanden: E/A/M │
╞═════╧══════════╧════╧═════╧═════╧══════════════════════════════════════╡
│Zeitoperationen │
╞═════╤══════════╤════╤═════╤═════╤══════════════════════════════════════╡
│SE= │ Formal- │ X1 │ │ X │ Eine Zeit, die im Akku 1 abgelegt │
│ │ operand │ │ │ │ wurde, wird einschaltverzögert │
│ │ │ │ │ │ gestartet (SE) │
└─────┴──────────┴────┴─────┴─────┴──────────────────────────────────────┘
┌──────────────────────────────┬────────────────────────────────┐
│ X1 : Highflanke des VKE │ VKE ABH. = VKE abhängig │
│ X0 : Lowflanke des VKE │ VKE BEEI. = VKE beeinflussend│
│ X#1: Vke wird auf 1 gesetzt │ VKE BEGR. = VKE begrenzend │
└──────────────────────────────┴────────────────────────────────┘
─── Seite 115 ───
OPERATIONSVORRAT ANHANG 3
──────────────────────────────────────────────────────────────────────────────
╒═════╤══════════╤════╤═════╤═════╤══════════════════════════════════════╕
│Op. │ Operand │VKE │VKE │VKE │ Beschreibung │
│ │ │ABH.│BEEI.│BEGR.│ │
╞═════╪══════════╪════╪═════╪═════╪══════════════════════════════════════╡
│SI= │ Formal- │ X1 │ │ X │ Eine Zeit, die im Akku 1 abgelegt │
│ │ operand │ │ │ │ wurde, wird als Impuls gestartet (SI)│
├─────┼──────────┼────┼─────┼─────┼──────────────────────────────────────┤
│SAR= │ Formal- │ X0 │ │ X │ Eine Zeit, die im Akku 1 abgelegt │
│ │ operand │ │ │ │ wurde, wird ausschaltverzögert │
│ │ │ │ │ │ gestartet (SA). │
├─────┼──────────┼────┼─────┼─────┼──────────────────────────────────────┤
│SSV= │ Formal- │ X1 │ │ X │ Eine Zeit, die im Akku 1 abgelegt │
│ │ operand │ │ │ │ wurde, wird einschaltverzögert │
│ │ │ │ │ │ (speichernd) gestartet (SS). │
├─────┼──────────┼────┼─────┼─────┼──────────────────────────────────────┤
│SVZ= │ Formal- │ X1 │ │ X │ Eine Zeit, die im Akku 1 abgelegt │
│ │ operand │ │ │ │ wurde, wird als verlängerter Impuls │
│ │ │ │ │ │ gestartet (SV). │
╞═════╧══════════╧════╧═════╧═════╧══════════════════════════════════════╡
│Zähloperationen │
╞═════╤══════════╤════╤═════╤═════╤══════════════════════════════════════╡
│SVZ= │ Formal- │ X1 │ │ X │ Setzt den Zähler auf einen Wert, │
│ │ operand │ │ │ │ der im Akku 1 BCD-codiert abgelegt │
│ │ │ │ │ │ wurde. (S Z) │
├─────┼──────────┼────┼─────┼─────┼──────────────────────────────────────┤
│SSV= │ Formalop.│ X1 │ │ X │ Zähleristwert um 1 erhöhen (ZV) │
├─────┼──────────┼────┼─────┼─────┼──────────────────────────────────────┤
│SAR= │ Formalop.│ X1 │ │ X │ Zähleristwert um 1 erniedrigen (ZR) │
├─────┼──────────┼────┼─────┼─────┼──────────────────────────────────────┤
│FR= │ Formalop.│ X1 │ │ X │ Freigabe eines Zähles │
╞═════╧══════════╧════╧═════╧═════╧══════════════════════════════════════╡
│Ladeoperationen / Transferoperationen │
╞═════╤══════════╤════╤═════╤═════╤══════════════════════════════════════╡
│L= │ Formal- │ │ │ │ Mögliche Aktualoperanden: │
│ │ operand │ │ │ │ EB/AB/MB/PB/DR/DL/EW/AW/MW/DW/PW - │
│ │ │ │ │ │ Der Wert des Formaloperanden wird in │
│ │ │ │ │ │ den Akku 1 geladen. │
├─────┼──────────┼────┼─────┼─────┼──────────────────────────────────────┤
│L= │ Formal- │ │ │ │ Mögliche Aktualoperanden: T/Z │
│ │ operand │ │ │ │ Ein Zeit- oder Zählistwert wird in │
│ │ │ │ │ │ den Akku 1 geladen. │
├─────┼──────────┼────┼─────┼─────┼──────────────────────────────────────┤
│LC= │ Formal- │ │ │ │ Mögliche Aktualoperanden: T/Z │
│ │ operand │ │ │ │ Ein Zeit- oder Zählistwert wird BCD- │
│ │ │ │ │ │ codiert in den Akku 1 geladen. │
├─────┼──────────┼────┼─────┼─────┼──────────────────────────────────────┤
│LW= │ Formal- │ │ │ │ Laden eines konstanten Bitmusters: │
│ │ operand │ │ │ │ KF/KH/KM/KY/KT/KZ/KC │
└─────┴──────────┴────┴─────┴─────┴──────────────────────────────────────┘
┌──────────────────────────────┬────────────────────────────────┐
│ X1 : Highflanke des VKE │ VKE ABH. = VKE abhängig │
│ X0 : Lowflanke des VKE │ VKE BEEI. = VKE beeinflussend│
│ X#1: Vke wird auf 1 gesetzt │ VKE BEGR. = VKE begrenzend │
└──────────────────────────────┴────────────────────────────────┘
─── Seite 116 ───
OPERATIONSVORRAT ANHANG 3
──────────────────────────────────────────────────────────────────────────────
╒═════╤══════════╤════╤═════╤═════╤══════════════════════════════════════╕
│Op. │ Operand │VKE │VKE │VKE │ Beschreibung │
│ │ │ABH.│BEEI.│BEGR.│ │
╞═════╪══════════╪════╪═════╪═════╪══════════════════════════════════════╡
│T= │ Formal- │ │ │ │ Mögliche Aktualoperanden: │
│ │ operand │ │ │ │ EB/AB/MB/EW/AW/MW/DW/PW/DR/DL/PB │
│ │ │ │ │ │ Der Inhalt des Akku 1 wird zu einem │
│ │ │ │ │ │ Formaloperand transferiert. │
╞═════╧══════════╧════╧═════╧═════╧══════════════════════════════════════╡
│Bausteinoperationen │
╞═════╤══════════╤════╤═════╤═════╤══════════════════════════════════════╡
│B = │ Formal- │ │ │ │ Aktualoperand: FB │
│ │ operand │ │ │ │ Ein FB wird absolut angesprungen. │
│ │ │ │ │ │ (SPA FB) │
├─────┼──────────┼────┼─────┼─────┼──────────────────────────────────────┤
│B = │ Formal- │ │ │ │ Aktualoperand: PB │
│ │ operand │ │ │ │ Ein PB wird absolut angesprungen. │
│ │ │ │ │ │ (SPA PB) │
├─────┼──────────┼────┼─────┼─────┼──────────────────────────────────────┤
│B = │ Formal- │ │ │ │ Aktualoperand: SB │
│ │ operand │ │ │ │ Ein SB wird absolut angesprungen. │
│ │ │ │ │ │ (SPA SB) │
├─────┼──────────┼────┼─────┼─────┼──────────────────────────────────────┤
│B = │ Formal- │ │ │ │ Aktualoperand: DB │
│ │ operand │ │ │ │ Ein Datenbaustein wird aufgerufen. │
│ │ │ │ │ │ (A DB) │
└─────┴──────────┴────┴─────┴─────┴──────────────────────────────────────┘
┌──────────────────────────────┬────────────────────────────────┐
│ X1 : Highflanke des VKE │ VKE ABH. = VKE abhängig │
│ X0 : Lowflanke des VKE │ VKE BEEI. = VKE beeinflussend│
│ X#1: Vke wird auf 1 gesetzt │ VKE BEGR. = VKE begrenzend │
└──────────────────────────────┴────────────────────────────────┘
─── Seite 117 ───
DIMENSIONEN DER OPERANDEN UND BEFEHLE ANHANG 4
──────────────────────────────────────────────────────────────────────────────
┌───────────────────────────────────────┐
│Die Parameter der Operanden │
├───────────┬───────────────────────────┤
│Operand │Parameter: │
╞═══════════╧═══════════════════════════╡
│Binäroperationen │
╞═══════════╤═══════════════════════════╡
│ E │ 0.0 ... 127.7 │
├───────────┼───────────────────────────┤
│ A │ 0.0 ... 127.7 │
├───────────┼───────────────────────────┤
│ M │ 0.0 .. 255.7 │
├───────────┼───────────────────────────┤
│ T │ 0 ... 255 │
├───────────┼───────────────────────────┤
│ Z │ 0 ... 255 │
╞═══════════╧═══════════════════════════╡
│Byteoperationen │
╞═══════════╤═══════════════════════════╡
│ EB │ 0 ... 127 │
├───────────┼───────────────────────────┤
│ AB │ 0 ... 127 │
├───────────┼───────────────────────────┤
│ MB │ 0 ... 255 │
├───────────┼───────────────────────────┤
│ DL/DR │ 0 ... 255 │
├───────────┼───────────────────────────┤
│ PB │ 0 ... 255 │
╞═══════════╧═══════════════════════════╡
│Wortoperationen │
╞═══════════╤═══════════════════════════╡
│ EW │ 0 ... 126 │
├───────────┼───────────────────────────┤
│ AW │ 0 ... 126 │
├───────────┼───────────────────────────┤
│ MW │ 0 ... 254 │
├───────────┼───────────────────────────┤
│ DW │ 0 ... 255 │
├───────────┼───────────────────────────┤
│ PW │ 0 ... 49 │
╞═══════════╧═══════════════════════════╡
│Konstantenoperationen │
╞═══════════╤═══════════════════════════╡
│ KB │ 0 ... 255 │
├───────────┼───────────────────────────┤
│ KF │ -32768 ... +32767 │
├───────────┼───────────────────────────┤
│ KH │ 0 ... FFFF │
├───────────┼───────────────────────────┤
│ KM │ Bitmuster mit 16 Bits │
├───────────┼───────────────────────────┤
│ KY │ 0 ... 255, 0 ... 255 │
└───────────┴───────────────────────────┘
─── Seite 118 ───
DIMENSIONEN DER OPERANDEN UND BEFEHLE ANHANG 4
──────────────────────────────────────────────────────────────────────────────
╒═══════════════════════════════════════╕
│Die Parameter der Operanden │
╞═══════════╤═══════════════════════════╡
│ KT │ 2.0 ... 999.3 │
├───────────┼───────────────────────────┤
│ KZ │ 0 ... 999 │
╞═══════════╧═══════════════════════════╡
│Bausteinaufrufe │
╞═══════════╤═══════════════════════════╡
│ OB │ 2 ... 31 │
├───────────┼───────────────────────────┤
│ PB │ 0 ... 255 │
├───────────┼───────────────────────────┤
│ FB │ 0 ... 255 │
├───────────┼───────────────────────────┤
│ SB │ 0 ... 255 │
╞═══════════╧═══════════════════════════╡
│Sonstiges │
╞═══════════════════════════════════════╡
│Symboladressen: maximal 4 Zeichen │
├───────────────────────────────────────┤
│8 Klammerebenen │
├───────────────────────────────────────┤
│15 Bausteinebenen │
├───────────────────────────────────────┤
│20 akustische Ausgänge │
├───────────────────────────────────────┤
│40 Eingangsdefinitionen │
├───────────────────────────────────────┤
│300 Kommentarzuweisungen (Zuweisungsl. │
╘═══════════════════════════════════════╛
─── Seite 119 ───