Hinweise zur Benutzung des Handbuches Geltungsbereich Diese Programmieranleitung beschreibt die Funktionen der CPU 928B-3UB11 und CPU 928B-3UB12 sowie die zugehörige Sy- stemsoftware. Die zusätzlichen Funktionen der CPU 928B-3UB12 sind im Hand- buch gekennzeichnet. Sie können zum Teil bei der CPU 928B-3UB11 nachgerüstet werden (lesen Sie hierzu bitte den Abschnitt 1.8).
Seite 4
Hinweise zur Benutzung des Handbuches Hinweise zu den Kapitel-Inhalten Kapitel 1 informiert Sie über den Anwendungsbereich des Automatisierungs- gerätes S5-135U mit der CPU 928B. Es erklärt die typische die Arbeitsweise einer CPU und schildert, wie ein CPU-Programm aufgebaut ist. Sie erhalten ferner einige Vorschläge, wie Sie beim Programmieren vorgehen können und erfahren, welche für die Programmierung wichti- gen Kenndaten die CPU 928B hat.
Seite 5
Hinweise zur Benutzung des Handbuches Kapitel 6 führt die integrierten Sonderfunktionen das Systemprogramm auf. Es informiert Sie, wo Sie die Sonderfunktionen anwenden können und wie Sie die Sonderfunktions-OBs aufrufen und parametrieren müssen. Ferner erfahren Sie, wie Sie Fehler bei der Bearbeitung einer Sonder- funktion erkennen und per Programm bearbeiten können.
Seite 6
Hinweise zur Benutzung des Handbuches Kapitel 13 gibt Ihnen einige Literaturhinweise Kapitel 14 dient als Orientierungshilfe und enthält ein Abkürzungsverzeichnis, ein Stichwortverzeichnis sowie Verzeichnisse über alle numerierten Tabellen und Bilder. Programmieranleitung CPU 928B H - 4 C79000-D8500-C898, 01...
Hinweise zur Benutzung des Handbuches Orientierungshilfen im Text Um Ihnen beim Lesen oder Durchblättern schnell einen Überblick über den Inhalt einzelner Textseiten zu geben, bietet Ihnen das Hand- buch neben den Überschriften für Abschnitte 2. und 3. Ordnung fol- gende Hilfen an: Marginalien Marginalien sind kursiv gedruckte Stichworte am linken Rand einer Textseite.
Hinweise zur Benutzung des Handbuches Tabellen zum Nachschlagen Informationen, auf die Sie u. U. gezielt zugreifen wollen, werden in numerierten Tabellen in der folgenden (Beispiel) oder ähnlichen Form dargestellt und im Verzeichnis der Tabellen (siehe Kapitel 14) aufge- führt. Tabelle 3-2 Binäre Verknüpfungsoperationen Operation Operand...
Seite 14
Inhalt Mehrprozessorbetrieb und Mehrprozessorkommunikation ......10 - 3 10.1 Mehrprozessorbetrieb ............10 - 4 10.1.1 Wann verwenden Sie den Mehrprozessorbetrieb? .
Seite 15
Inhalt 10.9 Anwendungen ............. . . 10 - 51 10.9.1 Aufruf der Sonderfunktions-OB über Funktionsbausteine .
Seite 16
Inhalt Programmieranleitung CPU 928B viii C79000-D8500-C898, 01...
Lesern, die diese Grundkenntnisse noch nicht besitzen, sei die Lektüre ei- nes Einführungsbuches in die Programmiersprache STEP 5 /3/ oder die Teilnahme an einem Kurs in einem unserer Trainingscenter empfoh- len. SIEMENS bietet Ihnen umfangreiche Schulungsmöglichkeiten zu SIMATIC S5. Nähere Informationen dazu erhalten Sie bei Ihrer SIEMENS-Geschäftsstelle.
Anwendungsbereich S5-135U mit CPU 928B Anwendungsbereich S5-135U mit CPU 928B Einordnung in die Familie Das Automatisierungsgerät S5-135U gehört zur Familie der speicher- programmierbaren Steuerungen SIMATIC S5. Es ist mit der CPU 928B ein leistungsfähiges Mehrprozessorgerät zur Prozeßauto- matisierung (Steuern, Melden, Überwachen, Regeln, Protokollieren). Es kann sowohl für den Aufbau einfachster Steuerungen mit binären Signalen als auch zur Lösung umfangreicher Automatisierungs- aufgaben werden.
Seite 21
Anwendungsbereich S5-135U mit CPU 928B L e e r s e i t e Programmieranleitung CPU 928B 1 - 5 C79000-D8500-C898, 01...
Typische Arbeitsweise einer CPU Typische Arbeitsweise einer CPU Arbeitsweise einer CPU In einer CPU gibt es folgende Arbeitsweisen : zeitgesteuerte Bearbeitung zyklische Bearbeitung alarmgesteuerte Bearbeitung zyklische Bearbeitung Sie stellt den Hauptanteil aller Vorgänge in der CPU. Wie ihr Name schon ausdrückt, wiederholt sich in einem endlosen Zyklus ständig die gleiche Bearbeitungsfolge.
Seite 23
Typische Arbeitsweise einer CPU zeitgesteuerte Bearbeitung Für Prozesse, die in konstanten Zeitabschnitten Steuersignale benöti- gen, können Sie neben dem zyklischen Ablauf zeitgesteuert bestimm- te Aufgaben bearbeiten z. B. zeitunkritische Überwachungsfunktionen im Sekundenraster. alarmgesteuerte Bearbeitung Einem Prozeßsignal, auf das besonders schnell reagiert werden muß, ord- nen Sie einen alarmgesteuerten Bearbeitungsabschnitt zu.
Die Programme in einer CPU Die Programme in einer CPU Das in jeder CPU vorhandene Programm unterteilt sich in • • das Systemprogramm • • das Anwenderprogramm. Systemprogramm Das Systemprogramm organisiert alle Funktionen und Abläufe der CPU, die nicht mit einer spezifischen Steuerungsaufgabe verbunden sind (siehe Bild 1-2).
Seite 25
Die Programme in einer CPU Aufgaben Zu den Aufgaben gehören : • • Neustart und Wiederanlauf, • • das Aktualisieren des Prozeßabbildes der Eingänge und die Aus- gabe des Prozeßabbildes der Ausgänge, • • die Aufrufe der zyklischen, zeit- und alarmgesteuerten Programme, •...
Die Programme in einer CPU Anwenderprogramm Aufgaben Das Anwenderprogramm enthält alle Funktionen, die zur Bearbeitung einer spezifischen Steuerungsaufgabe erforderlich sind. Diese Funk- tionen lassen sich bei einer groben Aufteilung direkt den Schnittstel- len zuordnen, die das Systemprogramm für die unterschiedlichen Bearbeitungsarten zur Verfügung stellt: Bearbeitungsart Aufgabe...
Seite 27
Die Programme in einer CPU Aufbau Anwenderspeicher Anwenderprogramm Codebausteine Organisations- Programm- Schritt- Funktions- bausteine bausteine bausteine bausteine FB/FX STEP-5- STEP-5- STEP-5- STEP-5- Operationen Operationen Operationen Operationen E 1.5 & M 1.7 FB 8 M 50.1 E 2.6 E 1.6 NETWERK 1 M 50.2 NAME :TRANS E 1.4...
Die Programme in einer CPU Speicherung des Für die Ablage der Bausteine stehen auf der CPU 928B zwei Bereiche Anwenderprogramms zur Verfügung: • • Anwenderspeicher: max. 64 K byte Der Anwenderspeicher befindet sich auf einem steckbaren RAM- oder EPROM-Modul und enthält Code- und Datenbausteine (falls der Anwenderspeicher ein EPROM-Modul ist, müssen Datenbausteine, deren Daten durch das Anwenderprogramm verändert werden sollen, in das DB-RAM geladen werden).
Welche Operanden stehen dem Anwenderprogramm zur Verfügung? Welche Operanden stehen dem Anwenderprogramm zur Verfügung? Die CPU 928B stellt Ihnen für das Programmieren folgende Operan- denbereiche zur Verfügung: • • Prozeßabbild und Peripherie • • Merker (M-Merker und S-Merker) • • Zeiten/Zähler •...
Welche Operanden stehen dem Anwenderprogramm zur Verfügung? M-Merker Kennzeichen Größe Der Merkerbereich ist ein Speicherbereich, auf den das 2048 bit Anwenderprogramm mit entsprechenden Operationen sehr schnell zugreifen kann. Der Merkerbereich sollte bevorzugt für oft benötigte Arbeitsdaten verwendet werden. Auf folgende Datentypen kann zugegriffen werden: Einzelbits, Bytes, Wörter,...
Seite 31
Welche Operanden stehen dem Anwenderprogramm zur Verfügung? Zeiten T Kennzeichen Größe Zeitzellen werden vom Anwenderprogramm mit einem Zeitwert zwischen 10ms und 9990s geladen und durch Zeitzellen eine Startoperation von diesem Vorgabewert aus so lange im vorgewählten Zeitraster dekrementiert, bis sie den Wert Null erreicht haben.
Zugriff auf Operanden- und Speicherbereiche Zugriff auf Operanden- und Speicherbereiche Für den Zugriff auf diese Operandenbereiche und den gesamten Spei- cher verwenden die STEP-5-Befehle zwei unterschiedliche Mechanis- men: Relative Adressierung Der überwiegende Teil der STEP-5-Befehle adressiert eine Speicherzelle relativ zum Beginn eines Operandenbereiches. Wenn ausschließlich mit diesen Befehlen gearbeitet wird, sind Code- und Datenbereiche des Anwenderprogramms gegen ungewolltes Überschreiben ge- schützt.
Wie können Sie beim Programmieren vorgehen? Wie können Sie beim Programmieren vorgehen? Wenn Sie ein erfahrener Anwender sind, haben Sie bestimmt schon Ihre eigene Methode der Programmerstellung gefunden; Sie brauchen dann diesen Abschnitt nicht zu lesen. Weniger erfahrenen Lesern seien folgende Tips gegeben, wie sie beim Entwerfen, Programmieren, Testen und Inbetriebnehmen ihres STEP-5-Programms vorgehen können.
Seite 34
Wie können Sie beim Programmieren vorgehen? Schritt 2 Programm entwerfen: Schritt Tätigkeit Entwerfen Sie mit Hilfe des verfeinerten Block- diagramms die notwendigen Bearbeitungsarten Ihres Programms (zyklische Bearbeitung, zeitgesteuerte Bearbeitung usw.) und benennen Sie die dazu verwendeten OBs. Teilen Sie die Bearbeitungsarten in technologische und/oder funktionale Blöcke ein.
Seite 35
Wie können Sie beim Programmieren vorgehen? Schritt 3 Programm erstellen, testen und in Betrieb nehmen: Schritt Tätigkeit Legen Sie die Darstellungsart für die Codebausteine fest (KOP, FUP oder AWL, lesen Sie dazu bitte in Kapitel 2). Beachten Sie, daß Funktionsbausteine nur in der Darstellungsart AWL erstellt werden können.
Programmierwerkzeuge Programmierwerkzeuge Einsetzbare PGs Für die Erstellung Ihres Anwenderprogramms stehen Ihnen die Pro- grammiegeräte PG 685, PG 710, PG 730, PG 750 und PG 770 zur Ver- fügung. Leistung und Eigenschaften dieser Geräte können Sie dem Katalog ST 59 /9/ entnehmen. Hinweis Damit Sie auch ein PG 615 oder ein OP 3xx einsetzen können, müssen Sie im Systemdatum BS 29 (siehe Kapitel 8) die...
Was ist neu bei der CPU 928B (-3UB12)? Was ist neu bei der CPU 928B (-3UB12)? Die CPU 928B (-3UB12) bietet Ihnen gegenüber der CPU 928B (-3UB11) folgende neue Funktionen. zusätzliche Anlaufart: Neben den bisherigen Anlaufarten (MANUELLER/AUTOMA- NEUSTART MIT TISCHER NEUSTART, MANUELLER/AUTOMATISCHER WIE- GEDÄCHTNIS DERANLAUF) können Sie folgende weitere Anlaufarten benutzen: •...
Seite 38
Was ist neu bei der CPU 928B (-3UB12)? Programmieranleitung CPU 928B 1 - 22 C79000-D8500-C898, 01...
Anwenderprogramm Inhalt von Kapitel 2 Programmiersprache STEP 5 ..........2 - 4 2.1.1 Darstellungsarten KOP, FUP und AWL .
Seite 40
Inhalt Programmieranleitung CPU 928B 2 - 2 C79000-B8500-C898, 01...
Seite 41
Anwenderprogramm Im nachfolgenden Kapitel erfaheren Sie, aus welchen Komponenten sich ein STEP-5-Anwenderprogramm für die CPU 928B zusammen- setzt und wie es strukturiert werden kann. Programmieranleitung CPU 928B 2 - 3 C79000-B8500-C898, 01...
Programmiersprache STEP 5 Programmiersprache STEP 5 Mit der Programmiersprache STEP 5 setzen Sie die Ihnen vorlie- genden Automatisierungs-aufgaben in Programme um, die in den SIMATIC-S5-Automatisierungsgeräten ablaufen. In STEP 5 können Sie sowohl einfache binäre Funktionen als auch komplexe digitale Funktionen und arithmetische Operationen einschließlich Gleitpunkta- rithmetik programmieren.
Programmiersprache STEP 5 KONTAKTPLAN ANWEISUNGSLISTE FUNKTIONSPLAN Programmieren mit Programmieren mit Programmieren mit grafischen Symbolen mnemotechnischen grafischen Symbolen wie Stromlaufplan Abkürzungen der Funktionsbezeichnungen entspricht entspricht entspricht IEC 117-15 DIN 19239 DIN 19239 DIN 40700 DIN 40719 DIN 19239 & > = 1 Bild 2-1 Darstellungsarten der Programmiersprache STEP 5 Grafische Darstellung...
Programmiersprache STEP 5 Dieses Verfahren des "strukturierten Programmierens" bietet Ih- nen folgende Vorteile: • • einfache und übersichtliche Programmierung auch umfangreicher Programme, • • Möglichkeit zum Standardisieren von Programmteilen, • • einfache Programmorganisation, • • leichte Änderungsmöglichkeiten, • • einfacher, abschnittsweiser Programmtest, •...
Seite 45
Programmiersprache STEP 5 Absolute und symbolische Den Operandenteil können Sie entweder absolut oder symbolisch Operanden (über die Zuordnungsliste) eingeben. Beispiel für die absolute Darstellung: :U E 1.4 Beispiel für die symbolische Darstellung: :U -Motor1 Beachten Sie zur absoluten und symbolischen Programmierung die Bedienungsanleitung zu Ihrem PG.
Programmiersprache STEP 5 2.1.4 Zahlendarstellung Damit die CPU Zahlenwerte miteinander verknüpfen, verändern oder vergleichen kann, müssen diese in einer binärcodierten Darstellung in die Akkumulatoren (Arbeitsregister der CPU) geladen werden. Abhängig von der auszuführenden Operation sind in STEP 5 folgende Zahlendarstellungen zulässig: Dualzahlen: 16-bit-Festpunktzahlen 32-bit-Festpunktzahlen...
Seite 47
Programmiersprache STEP 5 16- und Festpunktzahlen sind ganze, mit einem Vorzeichen versehene Dual- 32-bit-Festpunktzahlen zahlen. Codierung der Sie sind in binärcodierter Darstellung 16 bit (= 1 Wort) bzw. 32 bit Festpunktzahlen (= 2 Wörter) breit, wobei Bit-Nr. 15 bzw. Bit-Nr. 31 das Vorzeichen enthält: •...
Programmiersprache STEP 5 Gleitpunktzahlen Gleitpunktzahlen sind positive und negative gebrochene Zahlen. Sie belegen immer ein Doppelwort (32 bit). Eine Gleitpunktzahl wird als Exponentialzahl dargestellt. Die Mantisse ist 16 oder 24 bit, der Expo- nent 8 bit lang. Die CPU 928B rechnet – sofern nichts anderes eingestellt wurde – beim Addieren, Subtrahieren, Multiplizieren und Dividieren mit einer 16 bit breiten Mantisse (Bit 8 bis 23).
Seite 49
Programmiersprache STEP 5 Codierung der Codierung einer Gleitpunktzahl: Gleitpunktzahlen 31 30 24 23 22 ..2 .... 2 Exponent Mantisse Angabe des Datenformats für Gleitpunktzahlen am PG: KG ± 0,1469368 x 10 bis ± 0,1701412 x 10 zulässiger Zahlenbereich Ein-/Ausgabe am PG im Code-Baustein:...
Seite 50
Programmiersprache STEP 5 BCD-codierte Zahl Dezimalzahlen werden als BCD-Zahlen dargestellt. Mit Vorzeichen und 3 Ziffern belegen sie im Akkumulator 16 bit (1 Wort): 12 11 V V V V Hunderter Zehner Einer Die einzelnen Ziffern sind positive 4-bit-Dualzahlen zwischen 0000 und 1001 (0 und 9 dezimal).
Programmiersprache STEP 5 2.1.5 STEP-5-Bausteine und deren Ablage im Speicher Kennzeichnung Ein Baustein ist gekennzeichnet durch: • • den Bausteintyp (OB, PB, SB, FB, FX, DB, DX) • • die Bausteinnummer (Zahl zwischen 0 und 255). Bausteintypen Die Programmiersprache STEP 5 unterscheidet folgende Baustein- typen: Organisations- Die Organisationsbausteine sind die Schnittstelle zwischen dem Sy-...
Seite 52
Programmiersprache STEP 5 Funktionsbausteine (FB/FX) Funktionsbausteine dienen zum Programmieren von häufig wiederkeh- renden oder auch komplexen Funktionen (z.B. digitale Funktionen, Ablaufsteuerungen, Regelungen, Meldefunktionen). Ein Funktionsbaustein kann von übergeordneten Bausteinen mehrfach aufgerufen werden und bei jedem Aufruf mit neuen Operanden versorgt ("parametriert") werden.
Seite 53
Programmiersprache STEP 5 Bausteinvorkopf Zu den Bausteinen vom Typ DB, DX, FB und FX erzeugt das Pro- grammiergerät zusätzlich einen Bausteinvorkopf (DV, DXV, FV, FXV). Diese Bausteinvorköpfe enthalten Informationen über das Daten- format (bei DB und DX) bzw. über die Sprungmarken (bei FB und FX), die nur das Programmiergerät auswerten kann.
Programmiersprache STEP 5 Ablage der Bausteine Alle programmierbaren Bausteine werden vom PG in der Reihenfolge ihres Transfers im Programmspeicher hinterlegt (Bild 2-2). Mit der PG-Funktion "Übertragen Bausteine B" werden zunächst die Code- und dann die Datenbausteine zum AG übertragen. Bei RAM-Betrieb wird zuerst das RAM-Modul nach Übertragung der Codebausteine mit Da- tenbausteinen aufgefüllt und danach werden die restlichen Datenbau- steine in das interne DB-RAM geschrieben.
Programm-, Organisations- und Schrittbausteine Programm-, Organisations- und Schrittbausteine Programmbausteine (PB), Organisationsbausteine (OB) und Schrittbau- steine (SB) unterscheiden sich hinsichtlich Programmierung und Aufruf nicht. Alle drei können Sie wahlweise in den Darstellungsarten KOP, FUP und AWL programmieren. Programmieren Gehen Sie beim Programmieren von Programm-, Organisations- und Schrittbausteinen folgendermaßen vor: Schritt Aktion...
Seite 56
Programm-, Organisations- und Schrittbausteine Aufrufe können sowohl unbedingt als auch bedingt ausgeführt werden: Unbedingter Aufruf Die Anweisung SPA gehört zu den unbedingten Operationen. Sie hat selbst keinen Einfluß auf das VKE. Dieses wird beim Sprung in den neuen Baustein mitgenommen. Dort kann es zwar ausgewertet, jedoch nicht mehr weiter verknüpft werden.
Programm-, Organisations- und Schrittbausteine Was die BE-Anweisung Nach der Anweisung BE (Bausteinende) setzt die CPU das Anwender- bewirkt programm in dem Baustein fort, in dem der Bausteinaufruf program- miert wurde: Die Programmbearbeitung wird bei der auf den Baustein- aufruf folgenden STEP-5-Anweisung fortgesetzt. Die Anweisung BE wird unabhängig vom Verknüpfungsergebnis bear- beitet.
Seite 58
Programm-, Organisations- und Schrittbausteine Tabelle 2-1 Übersicht der OBs für die Programmbearbeitung Organisationsbausteine zum Steuern der Programmbearbeitung Baustein Funktion und Aufrufkriterium OB 1 Organisation der zyklischen Programm- bearbeitung: Erster Aufruf nach Ende einer Anlaufart, dann zyklischer Aufruf. OB 2 Organisation der alarmgesteuerten Programm- bearbeitung;...
Seite 59
Programm-, Organisations- und Schrittbausteine Tabelle 2-2 Übersicht der OBs für den Anlauf Organisationsbausteine zum Steuern des Anlaufverhaltens Baustein Funktion und Aufrufkriterium OB 20 Aufruf bei NEUSTART (manuell und automatisch) OB 21 Aufruf bei MANUELLEM WIEDER- ANLAUF/NEUSTART MIT GEDÄCHTNIS OB 22 Aufruf bei AUTOMATISCHEM WIEDER- ANLAUF/NEUSTART MIT GEDÄCHTNIS...
Programm-, Organisations- und Schrittbausteine Organisationsbausteine für Reaktionen auf Geräte- oder Programmfehler Baustein Funktion und Aufrufkriterium Fortsetzung der Tabelle 2-3: OB 34 Fehler bei Reglerbearbeitung (REG-FE) OB 35 Kommunikationsfehler auf der zweiten seriellen Schnittstelle (FE-3) OB 36 bis 39 bei CPU 928B nicht vorhanden Ist im Fehlerfall der OB nicht geladen, geht die CPU in den Stopp- zustand.
Programm-, Organisations- und Schrittbausteine 2.2.2 Sonderfunktions-Organisa- Die folgenden Organisationsbausteine enthalten Sonderfunktionen des tionsbausteine Systemprogramms. Sie können von Ihnen nicht programmiert (dies gilt für alle OB mit Nummern zwischen 40 und 255!), sondern ledig- lich aufgerufen werden. Sie enthalten kein STEP-5-Programm. Sonder- funktions-OB können in allen Code-Bausteinen aufgerufen werden.
Seite 62
Programm-, Organisations- und Schrittbausteine Integrierte Organisationsbausteine mit Sonderfunktionen Baustein: Bausteinfunktion: Fortsetzung der Tabelle 2-4: OB 223 Anlaufarten vergleichen OB 224 Koppelmerker blockweise übertragen OB 226 Wort aus Systemprogramm lesen OB 227 Quersumme des Systemprogrammspeichers lesen OB 228 Statusinformation einer Programmbearbeitungs- ebene lesen OB 230 bis 237 Funktionen für Standard-Funktionsbausteine...
Funktionen realisiert. Jeder Funktionsbaustein stellt inner- halb des Anwenderprogramms eine abgeschlossene Funktion dar. Sie können Funktionsbausteine • • als Softwareprodukt von SIEMENS beziehen (Standard- Funktionsbausteine auf Diskette – siehe /5/); mit diesen Standard- Funktionsbausteinen können Sie Ihre Proramme für Steuern,...
Funktionsbausteine 2.3.1 Aufbau von Funktionsbau- Der Bausteinkopf (5 Wörter) eines Funktionsbausteins ist gleich auf- steinen gebaut wie die Bausteinköpfe der übrigen STEP-5-Bausteine. Der Bausteinrumpf hingegen unterscheidet sich in seinem Aufbau von dem der anderen Bausteinarten. Die auszuführende Funktion ist darin in Form einer Anweisungsliste in der Programmiersprache STEP 5 geschrieben.
Seite 65
Funktionsbausteine Im Speicher stehen somit alle Angaben, die das Programmiergerät be- nötigt, um den Funktionsbaustein beim Aufruf grafisch darstellen zu können und um die Operanden bei der Parametrierung und Program- mierung des Funktionsbausteins zu überprüfen. Eine fehlerhafte Einga- be wird vom Programmiergerät abgelehnt. Unterscheiden Sie bei der Behandlung von Funktionsbausteinen zwi- schen •...
Funktionsbausteine 2.3.2 Programmieren von Funk- Einen Funktionsbausteins können Sie nur in der Darstellungsart tionsbausteinen "Anweisungsliste" programmierenn. Bei der Eingabe eines Funk- tionsbausteins am PG gehen Sie so vor: Schritt Aktion Geben Sie den Bausteintyp (FB/FX) und die Nummer des Funktionsbausteins ein. Anwender-Funktionsbausteine sollten von FB 255 an fallend numeriert werden, um nicht mit den Standard- Funktionsbausteinen zu kollidieren, die von FB 1 bis...
Seite 67
Funktionsbausteine Hinweis Wenn Sie die Reihenfolge oder die Anzahl der Formaloperanden in der Formaloperandenliste ändern, müssen alle STEP-5-Anwei- sungen im Funktionsbaustein, die einen Formaloperanden ansprechen, und die Bausteinparameterliste im aufrufenden Baustein entsprechend nachgeführt werden! Programmieren und ändern Sie Funktionsbausteine grundsätzlich auf Diskette oder Festplatte und übertragen Sie sie anschließend in die CPU! Formaloperanden...
Funktionsbausteine 2.3.3 Aufrufen und Parametrieren Jeder Funktionsbaustein kann beliebig oft und an beliebigen Stellen von Funktionsbausteinen im STEP-5-Anwenderprogramm aufgerufen werden. Aufrufe von Funktionsbausteinen können sowohl in einer Anweisungsliste als auch in einer grafischen Darstellung erfolgen (FUP oder KOP). Gehen Sie beim Aufrufen und Parametrieren folgendermaßen vor: Schritt Aktion Reaktion am PG...
Seite 69
Funktionsbausteine Zulässige Aktualoperanden Welche Operanden Sie einem Funktionsbaustein als Aktual- operanden zuordnen dürfen, entnehmen Sie bitte der nachfolgenden Tabelle. Tabelle 2-6 Zulässige Aktualoperanden für Funktionsbausteine Art des Typ des Parameters Zugelassene Aktualoperanden Parameters E, A für einen Operanden Eingang mit Bitadresse Ausgang Merker für einen Operanden...
Seite 70
Funktionsbausteine Art des Typ des Parameters Zugelassene Aktualoperanden Parameters Fortsetzung der Tabelle 2-6: für eine Festpunktzahl Konstante (Forts.) -32768 bis +32767 für eine Gleitpunktzahl keine Typangabe zulässig Datenbaustein; ausgeführt wird der Befehl A DB n Funktionsbaustein (nur ohne Parameter zulässig) wird unbedingt (SPA .
Seite 71
Funktionsbausteine Beispiele Beispiel 1: Folgendes (vollständiges) Beispiel soll Ihnen sowohl das Programmieren als auch das Aufrufen und Parametrieren eines Funktionsbausteins verdeutlichen. Sie können es selbst leicht nachvollziehen. Der Funktionsbaustein FB 202 wird programmiert: FB 202 NETZWERK 1 NAME BEISPIEL Formal- : MONI E/A/D/B/T/Z: BI/BY/W/D:...
Seite 72
Funktionsbausteine Beispiel 2: Aufruf und Parametrierung eines Funktionsbausteins mit den Darstellungsarten AWL und KOP/FUP in einem Programmbaustein Darstellungsart AWL PB 25 NETZWERK 1 : A DB 5 : SPA FB 201 NAME : E-ANTR ZU-E : ZEIT : 010.1 ZU-A : : BE Formal- Aktual-...
Funktionsbausteine 2.3.4 Spezielle Funktions- Neben den Funktionsbausteinen, die der Anwender selbst program- bausteine miert, gibt es die Standard-Funktionsbausteine, die als fertiges Soft- wareprodukt zu beziehen sind. Sie enthalten allgemein verwendbare Standardfunktionen (z. B. Meldefunktionen, Ablaufsteuerungen usw.). Standard-Funktionsbausteine belegen die Nummern FB 1 bis FB 199. Wenn Sie Standard-Funktionsbausteine beziehen, beachten Sie die spe- ziellen Hinweise in der dazugehörigen Beschreibung (belegte Be- reiche, Konventionen usw.).
Seite 74
Funktionsbausteine Fortsetzung "Gleitpunktradizierer": Darstellungsart AWL Darstellungsart KOP Netz- : A DB 17 werk NETZWERK 2 :*** : SPA FB 6 FB 6 Netz- NAME : RAD : GP werk RADI : DD 5 DD 5 RADI M 15.0 : M 15.0 SQRT D D 10 SQRT : DD 10...
Datenbausteine Datenbausteine In Datenbausteinen (DB) oder erweiterten Datenbausteinen (DX) sind die festen oder variablen Daten abgelegt, mit denen das Anwenderpro- gramm arbeitet. In Datenbausteinen werden keine STEP-5-Operatio- nen bearbeitet. Die Daten eines Datenbausteins können sein: • • beliebige Bitmuster, z. B. für Anlagenzustände, •...
Datenbausteine Bausteinkopf Der Bausteinkopf belegt 5 Wörter im Speicher und enthält • • die Bausteinkennung, • • die Kennung des Programmiergerätes, • • den Bausteintyp und die Bausteinnummer, • • die Bibliotheksnummer und • • die Bausteinlänge (inkl. Länge des Bausteinkopfes). Bausteinrumpf Der Bausteinrumpf enthält in aufsteigender Reihenfolge, beginnend mit Datenwort DW 0, die Datenwörter, mit denen das Anwender-...
Datenbausteine 2.4.1 Erstellen von Daten- So erstellen Sie einen Datenbaustein: bausteinen Schritt Aktion Geben Sie den Bausteintyp (DB/DX) und eine Daten- baustein-Nummer zwischen 3 und 255 ein. Geben Sie die einzelnen Datenwörter im gewünschten Datenformat ein. (Die Eingabe der Datenwörter wird nicht mit einer BE-Anweisung abgeschlossen!) Hinweis Die Datenbausteine DB 0, DB 1, DB 2, DX 0 DX 1 und DX 2...
Datenbausteine 2.4.2 Aufschlagen von Datenbau- Ein Datenbaustein (DB/DX) kann nur unbedingt aufgeschlagen wer- steinen den. Dies ist möglich innerhalb eines Organisations-, Programm-, Schritt- oder Funktionsbausteins. Ein bestimmter Datenbaustein kann mehrfach im Programm aufgeschlagen werden. So schlagen Sie Datenbausteine auf: WENN ... DANN ...
Seite 79
Datenbausteine Hinweis Vor dem Zugriff auf ein Datenwort müssen Sie im Anwender- programm den gewünschten Datenbaustein aufschlagen, da die CPU nur so das richtige Datenwort findet. Das adressierte Datenwort muß im aufgeschlagenen Baustein enthalten sein, sonst erkennt das Systemprogramm bei einem Zugriff einen Lade- bzw.
Seite 80
Datenbausteine Beispiel 2: Gültigkeitsbereich bei Datenbausteinen (Bild 2-5) Im Programmbaustein PB 7 wird der Datenbaustein DB 10 aufgeschlagen (A DB 10). In der folgenden Programmbearbeitung werden die Daten dieses Datenbausteins bearbeitet. Nach dem Aufruf (SPA PB 20) wird der Programm- baustein PB 20 bearbeitet.
Datenbausteine 2.4.3 Spezielle Datenbausteine Die Datenbausteine DB 0, DB 1, DB 2, DX 0, DX 1 und DX 2 sind bei der CPU 928B für bestimmte Funktionen reserviert. Sie werden vom Systemprogramm verwaltet und sind für den Anwender nicht beliebig verwendbar.
Seite 82
Datenbausteine • • DX 0 Datenbaustein DX 0 (siehe Kapitel 7) Durch Parametrieren und Laden des Datenbausteins DX 0 können Sie die Voreinstellungen bestimmter Systemprogrammfunktionen (z. B. bei der Bearbeitung des Anlaufs) ändern und damit die Leistungen des Systemprogramms Ihren Erfordernissen anpassen. •...
Seite 85
Programmbearbeitung Dieses Kapitel wendet sich an Leser, die in der Anwendung der Programmiersprache noch keine große Erfahrung haben. Es führt da- her in die Gundlagen der STEP-5-Programmierung ein und erläutert im weiteren ausführlich (mit Beispielen) die STEP-5-Operationen der CPU 928B. Erfahrenen Lesern, denen die Information zu einer speziellen STEP-5- Operation im Tabellenheft /1/ nicht ausreicht, kann der Abschnitt 3.5 als Nachschlageteil dienen.
Prinzip der Programmbearbeitung Prinzip der Programmbearbeitung Das STEP-5-Anwenderprogramm kann auf verschiedene Art und Weise bearbeitet werden. Typischerweise herrscht bei speicherprogrammierbaren Steuerungen (SPS) die zyklische Programmbearbeitung vor: Das Systemprogramm läuft in einer Programmschleife (dem Zyklus, siehe Abschnitt 3.4) und ruft dabei in jeder Schleife einmal den Organisationsbaustein OB 1 auf (siehe Bild 3-1).
Programmorganisation Programmorganisation Mit der Programmorganisation legen Sie fest, nach welchen Bedin- gungen und in welcher Reihenfolge die von Ihnen erstellten Bausteine be- arbeitet werden sollen. Dazu programmieren Sie in den Organisations- bausteinen bedingte oder unbedingte Aufrufe der gewünschten Bau- steine. In den Programmteilen der einzelnen Organisations-, Programm-, Funktions- und Schrittbausteine können weitere Programm-, Funk- tions- und Schrittbausteine in beliebiger Kombination (nacheinander...
Seite 88
Programmorganisation OB 1 PB ’A’ An h a lt e n d e r An la g e Be t r ie b s a r t e n - p r o g r a m m No t- Au s SPA PB ’A’...
Seite 89
Programmorganisation P B ‘ X ‘ A n l a g e n t e i l ‘ X ‘ E i n z e l s t e u e r u n g S PA P B ‘ X ‘ R e g e l u n g M e l d u n g P B ‘...
Programmorganisation Bausteinschachtelung Bild 3-4 zeigt Ihnen das Prinzip der verschachtelten Bausteinaufrufe. OB 1 PB 5 PB 20 1. STEP-5-Op. 1. STEP-5-Op. DB 20 DB 30 PB 20 A 60.6 FB 30 SPA PB 5 NAME: KURV M 200.5 E 55.0 Operation, zu der zurückgesprungen wird Bild 3-4 Verschachteltes Aufrufen von Codebausteinen...
Seite 91
Programmorganisation Schachteltiefe Sie können maximal 62 Bausteine ineinander schachteln. Werden mehr als 62 Bausteine aufgerufen, meldet die CPU einen Fehler und geht in den Stoppzustand. Beispiel Programm- bearbeitungs- ebene OB 25 OB 2 FB 21 OB 13 PB 131 FB 131 OB 1 FB 1 PB 1...
Speicherung von Programm- und Datenbausteinen Speicherung von Programm- und Datenbausteinen Damit die CPU das Anwenderprogramm bearbeiten kann, muß dieses – einschließlich vorhandener Datenbausteine – in den Programmspei- cher geladen werden. Als Programmspeicher stehen Ihnen das Anwen- dermodul (wahlweise RAM oder EPROM) und das DB-RAM zur Verfügung.
Bearbeitung des Anwenderprogramms Bearbeitung des Anwenderprogramms Die gesamte Software auf der CPU (diese besteht aus dem Systempro- gramm und dem STEP-5-Anwenderprogramm) hat folgende Aufgaben zu bearbeiten: • • ANLAUF der CPU, • • Steuerung eines Automatisierungsprozesses durch ständig sich wiederholende Operationsfolgen (ZYKLUS), •...
Bearbeitung des Anwenderprogramms Reaktion bei Alarmen und Um auf einen Alarm oder Fehler speziell reagieren zu können, stehen Fehlern Ihnen auf der CPU 928B spezielle Organisationsbausteine (OB 2, OB 6 und OB 9 bis OB 18 für Alarmbearbeitung, OB 19 und OB 23 bis OB 35 für Reaktionen im Fehlerfall) zur Verfügung, in denen Sie das entsprechende STEP-5-Programm hinterlegen können.
Seite 95
Bearbeitung des Anwenderprogramms Zykluszeitüberwachung Die Zykluszeit wird von der CPU auf einen Maximalwert überwacht. Standardmäßig ist dieser Maximalwert auf 150 ms eingestellt. Als Anwender haben Sie die Möglickeit, die Zykluszeitüberwachung selbst einzustellen bzw. sie während der Anwenderprogrammbearbeitung neu zu starten (siehe DX 0/Kapitel 7 und Sonderfunktions-OB OB 221 und OB 222/Abschnitte 6.22 und 6.23).
Bearbeitung des Anwenderprogramms Unterbrechungsereignisse Die zyklische Programmbearbeitung kann unterbrochen werden durch • • eine prozeßalarmgesteuerte Programmbearbeitung, • • eine zeitgesteuerte Programmbearbeitung, • • einen Verzögerungsalarm, • • einen uhrzeitgesteuerten Weckalarm. Sie kann unterbrochen bzw. ganz abgebrochen werden • • beim Auftreten eines Geräte- oder Programmfehlers, •...
STEP-5-Operationen mit Beispielen STEP-5-Operationen mit Beispielen Eine STEP-5-Operation setzt sich zusammen aus einem Operationsteil und einem Operanden. Im Operationsteil wird festgelegt, was durch die CPU getan werden soll (Operation). Der Operandenteil gibt an, wo- mit eine Operation durchgeführt werden soll. Die STEP-5-Operationen lassen sich in verschiedene Gruppen eintei- len: •...
STEP-5-Operationen mit Beispielen • • arithmetische Operationen verknüpfen den Inhalt von AKKU 1 und AKKU 2, schreiben das Ergebnis in den AKKU 1 und über- tragen den Inhalt des AKKU 3 nach AKKU 2 und den Inhalt des AKKU 4 nach AKKU 3 (Stack Drop); bei 16-bit-Festpunkt- arithmetik werden nur das Low-Word von AKKU 3 in das Low- Word von AKKU 2 und das Low-Word von AKKU 4 in das Low-Word von AKKU 3 übertragen,...
Seite 99
STEP-5-Operationen mit Beispielen Beispiel zu ERAB A 7.7 letzte Operation der vorher- gehenden Verknüpfungskette E 1.0 ERAB wird auf ’1’ gesetzt, VKE wird durch UND-Ver- knüpfung neu gebildet E 6.3 VKE wird durch ODER-Verknüp- fung beeinflußt E 2.1 VKE wird durch UND-NICHT- Verknüpfung beeinflußt A 2.4 ERAB wird auf ’0’...
Seite 100
STEP-5-Operationen mit Beispielen • • ANZ 1 und ANZ 0 Codierte Ergebnisanzeigen, deren Interpretation aus der folgenden Tabelle ersichtlich wird. Hinweis Zur unmittelbaren Auswertung der Anzeigen stehen Vergleichs- und Sprungoperationen zur Verfügung (siehe Abschnitte 3.5.1 und 3.5.3). Tabelle 3-1 Ergebnisanzeigen von STEP-5-Operationen Wort- Arith- Digitale...
Grundoperationen 3.5.1 Grundoperationen Die Grundoperationen können Sie in allen Codebausteinen und in al- len Darstellungsarten (KOP, FUP und AWL) benutzen Binäre Verknüpfungsoperationen Tabelle 3-2 Binäre Verknüpfungsoperationen Operation Operand Funktion UND-Verknüpfung mit Abfrage auf Signalzustand "1" ODER-Verknüpfung mit Abfrage auf Signalzustand "1" E 0.0 bis 127.7 eines Eingangs im PAE A 0.0 bis 127.7...
Grundoperationen Innerhalb einer Verknüpfungskette wird das VKE aus Verknüpfungsart, bisherigem VKE und dem abgefragten Signalzustand gebildet. Eine Verknüpfungskette wird durch einen VKE-begrenzenden (ERAB = 0) Befehl (z. B. Speicheroperationen) abgeschlossen. Danach kann das VKE zwar ausgewertet, jedoch nicht weiter verknüpft werden. Beispiel Programm ERAB...
Grundoperationen Lade- und Transferoperationen Tabelle 3-4 Lade- und Transferoperationen/Teil 1 Operation Operand Funktion Laden Transferieren 0 bis 127 eines Eingabebytes vom/zum PAE 0 bis 126 eines Eingabewortes vom/zum PAE 0 bis 124 eines Eingabe-Doppelwortes vom/zum PAE 0 bis 127 eines Ausgabebytes vom/zum PAA 0 bis 126 eines Ausgabewortes vom/zum PAA 0 bis 124...
Seite 104
Grundoperationen Tabelle 3-5 Lade- und Transferoperationen/Teil 2 Operation Operand Funktion Laden 0 bis 255 einer Konstanten, Bytewert 2 ASCII- einer Konstanten als 2 ASCII-Zeichen Zeichen -32768 bis einer Konstanten als Festpunktzahl +32767 einer Konstanten als Gleitpunktzahl 0 bis FFFF einer Konstanten als Hexadezimalzahl 0 bis einer Doppelwort-Konstanten als Hexadezimalzahl FFFF FFFF...
Seite 105
Grundoperationen Beispiele zu den Lade- und Transferoperationen Beispiel 1: Bild 3-6 zeigt das Laden/Transferieren eines Bytes, Wortes oder Doppelwortes aus einem/in einen byteweise organisierten Speicherbereich (PAE, PAA, Merker, Peripherie): :L EB i geladen wird Byte i des PAE in den AKKU-1-LL :L EW j geladen werden Byte j und j+1 des PAE in den AKKU-1-L :L MD k geladen werden die Merkerbytes k bis k+3 in den AKKU 1 AKKU 1...
Seite 106
Grundoperationen Beispiel 2: Bild 3-7 zeigt das Laden/Transferieren eines Bytes, Wortes oder Doppelwortes aus einem/in einen wortweise organisierten Speicherbereich. :L DR i geladen wird das rechte Byte aus dem Datenwort i in den AKKU-1-LL :L DL j geladen wird das linke Byte aus dem Datenwort j in den AKKU-1-LL :L DW k geladen wird das Datenwort k in den AKKU-1-L :L DD l geladen werden die Datenwörter l und l+1 in den AKKU 1...
Seite 107
Grundoperationen Ansprechen der Peripherie Die Peripherie kann durch Lade- und Transferoperationen ange- sprochen werden: • • direkt: mit L../T..PY, ..PW, ..QB, ..QW oder • • über das Prozeßabbild: mit L../T..EB, ..EW, ..ED, .AB, ..AW, ..AD und mit Verknüpfungsoperationen. Hinweis Bei den Transferoperationen T PY 0 bis 127 und T PW 0 bis 126 wird parallel das Prozeßabbild der Ausgänge nachgeführt.
Grundoperationen Zeit- und Zähloperationen Um eine Zeit durch eine Startoperation oder einen Zähler durch eine Setz- operation zu laden, muß der Wert vorher in den AKKU 1 geladen werden. Zu bevorzugen sind folgende Ladeoperationen: Für Zeiten: L KT, L EW, L AW, L MW, L DW, L SW. Für Zähler: L KZ, L EW, L AW, L MW, L DW, L SW.
Seite 109
Grundoperationen Zeitwert Ein Zeitwert kann mit der Operation L KT direkt oder mit entspre- chenden Ladeoperationen aus einem Merker- oder Datenwort indirekt in den AKKU 1 geladen werden. Er muß folgenden Aufbau haben (das Zeitraster wird bei L KT hinter dem Punkt im Operanden angegeben): Bit-Nr.
Grundoperationen Zählwerte Ein Zählwert kann mit dem Befehl L KZ direkt oder mit entsprechenden Ladeoperationen aus einem Merker- oder Datenwort indirekt in den AKKU 1 geladen werden. Er muß folgenden Aufbau haben: Bit-Nr. 15 14 13 im BCD-Code vorgegebener Zählwert 0..999 diese Bits sind irrelevant, d.
Seite 111
Grundoperationen Weitere Beispiele zu Zeit- und Zählwerten Direktes Laden von Zeitwerten Z e i t w e r t Z e i t z e l l e T 1 0 A K K U 1 ’ 0 ’ "L T 10": Direktes Laden des dualen Zeitwertes der Zeit T 10 in den AKKU 1...
Seite 112
Grundoperationen Codiertes Laden von Zeitwerten: Z e i t r a s t e r Z e i t w e r t Z e i t z e l l e T 1 0 D u a l B C D ’...
Grundoperationen E DB/EX DX Erzeuge Datenbaustein Die Operation E DBx erzeugt einen DB-Datenbaustein mit der Num- mer x (3 ≤ x ≤ 255) im Datenbaustein-RAM der CPU. Der Inhalt des Datenbausteins wird dabei nicht mit Null besetzt, d.h. die Datenwör- ter haben beliebige Inhalte.
Programmierbeispiele in den Darstellungsarten AWL, KOP und FUP 3.5.2 Programmierbeispiele in den Darstellungsarten AWL, KOP und FUP Verknüpfungsoperationen UND-Verknüpfung STEP-5-Darstellung Aufgabenstellung Anweisungs- Kontaktplan Funktionsplan liste E 1.1 E 1.1 E 1.3 E 1.7 A 3.5 E 1.1 1.3 1.7 & E 1.1 E 1.1 E 1.3...
Seite 117
Programmierbeispiele in den Darstellungsarten AWL, KOP und FUP Verknüpfungsoperationen (Fortsetzung) ODER-Verknüpfung STEP-5-Darstellung Aufgabenstellung Anweisungs- Kontaktplan Funktionsplan liste E 1.2 E 1.2 A 3.2 E 1.2 1.7 1.5 E 1.2 E 1.7 E 1.7 A 3.2 E 1.5 E 1.2 E 1.7 E 1.5 E 1.7 E 1.5...
Seite 118
Programmierbeispiele in den Darstellungsarten AWL, KOP und FUP Verknüpfungsoperationen (Fortsetzung) 1. Beispiel ODER-vor-UND-Verknüpfung STEP-5-Darstellung Aufgabenstellung Anweisungs- Kontaktplan Funktionsplan liste E 6.0 E 6.0 A 2.1 E 6.0 E 6.1 E 6.2 E 6.3 E 6.0 E 6.2 E 6.3 E 6.0 E 6.1 E 6.2 E 6.1...
Seite 119
Programmierbeispiele in den Darstellungsarten AWL, KOP und FUP Verknüpfungsoperationen (Fortsetzung) Abfrage auf Signalzustand "0" STEP-5-Darstellung Aufgabenstellung Anweisungs- Kontaktplan Funktionsplan liste E 1.5 E 1.6 A 3.0 E 1.5 E 1.5 E 1.6 & E 1.5 E 1.5 E 1.6 A 3.0 UN E 1.6 E 1.6 &...
Seite 120
Programmierbeispiele in den Darstellungsarten AWL, KOP und FUP Speicheroperationen (Fortsetzung) RS-Speicherglied mit Merkern STEP-5-Darstellung Aufgabenstellung Anweisungs- Kontaktplan Funktionsplan liste M 1.7 M 1.7 E 2.6 E 2.6 E 1.3 E 2.6 M 1.7 E 2.6 E 1.3 E 2.6 E 1.3 E 1.3 E 1.3 M 1.7...
Seite 121
Programmierbeispiele in den Darstellungsarten AWL, KOP und FUP Speicheroperationen (Fortsetzung) Nachbildung eines Wischrelais STEP-5-Darstellung Aufgabenstellung Anweisungs- Kontaktplan Funktionsplan liste E 1.7 E 1.7 E 1.7 E 1.7 E 1.7 M 4.0 M 2.0 & & M 4.0 M 4.0 M 2.0 M 4.0 M 2.0 / M 2.0...
Seite 122
Programmierbeispiele in den Darstellungsarten AWL, KOP und FUP Zeitoperationen Impuls STEP-5-Darstellung Aufgabenstellung Anweisungs- Kontaktplan Funktionsplan liste E 3.0 E 3.0 KT 10.2 E 3.0 E 3.0 10.2 AW 0 10.2 10 s AW 0 AW 0 AW 2 AW 2 A 4.0 AW 2 E 3.0...
Seite 123
Programmierbeispiele in den Darstellungsarten AWL, KOP und FUP Zeitoperationen (Fortsetzung) Verlängerter Impuls STEP-5-Darstellung Aufgabenstellung Anweisungs- Kontaktplan Funktionsplan liste E 3.1 E 3.1 EW 15 E 3.1 E 3.1 EW 15 EW 15 A 4.1 A 4.1 A 4.1 A4.1 Bei Verknüpfungsergebnis "1" und erstmaliger Bearbeitung wird das Zeitglied gestartet.
Seite 124
Programmierbeispiele in den Darstellungsarten AWL, KOP und FUP Zeitoperationen (Fortsetzung) Einschaltverzögerung STEP-5-Darstellung Aufgabenstellung Anweisungs- Kontaktplan Funktionsplan liste E 3.5 E 3.5 E 3.5 E 3.5 KT 9.2 KT 9.2 A4.2 E 3.5 A4.2 A 4.2 A 4.2 Bei Verknüpfungsergebnis "1" und erstmaliger Bearbeitung wird das Zeitglied gestartet.
Seite 125
Programmierbeispiele in den Darstellungsarten AWL, KOP und FUP Zeitoperationen (Fortsetzung) Speichernde Einschaltverzögerung STEP-5-Darstellung Aufgabenstellung Anweisungs- Kontaktplan Funktionsplan liste E 3.3 E 3.2 E 3.3 E 3.3 E 3.3 KT 20.2 20.2 20.2 SS T 20 s E 3.2 A 4.3 E 3.2 A 4.3 A 4.3...
Programmierbeispiele in den Darstellungsarten AWL, KOP und FUP Zähloperationen Zähler setzen STEP-5-Darstellung Aufgabenstellung Anweisungs- Kontaktplan Funktionsplan liste E 4.0 E 4.1 KZ 150 E 4.0 E 4.1 E 4.1 Dual KZ 150 KZ 150 16 bit Wenn das Verknüpfungsergebnis am Starteingang (E 4.1) von "0" nach "1"...
Seite 127
Programmierbeispiele in den Darstellungsarten AWL, KOP und FUP Zähloperationen (Fortsetzung) Vorwärts zählen STEP-5-Darstellung Aufgabenstellung Anweisungs- Kontaktplan Funktionsplan liste E 4.1 E 4.1 ZV Z E 4.1 Dual 16 bit Der Wert des adressierten Zählers wird um 1 erhöht, maximal bis zum Zählwert 999. Die Funktion ZV wird nur bei einer positiven Flanke (von "0"...
Seite 128
Programmierbeispiele in den Darstellungsarten AWL, KOP und FUP Zähloperationen (Fortsetzung) Rückwärts zählen STEP-5-Darstellung Aufgabenstellung Anweisungs- Kontaktplan Funktionsplan liste E 4.0 E 4.0 ZR Z R S ZE E 4.0 Dual 16 bit Der Wert des adressierten Zählers wird um 1 erniedrigt, maximal bis zum Zählwert 0.
Seite 129
Programmierbeispiele in den Darstellungsarten AWL, KOP und FUP Vergleichsoperationen Vergleich auf gleich STEP-5-Darstellung Aufgabenstellung Anweisungs- Kontaktplan Funktionsplan liste EB 19 EB 19 EB 20 EB 20 EB 19 EB 19 A 3.0 ! = F EB 20 EB 20 A 3.0 A 3.0 A 3.0 Der zuerst angegebene Operand wird mit dem nachfolgenden...
Seite 130
Programmierbeispiele in den Darstellungsarten AWL, KOP und FUP Vergleichsoperationen (Fortsetzung) Vergleich auf ungleich STEP-5-Darstellung Aufgabenstellung Anweisungs- Kontaktplan Funktionsplan liste EB 21 EB 21 DW 3 DW 3 EB 21 EB 21 > < > < A 3.1 > < F A 3.1 DW 3 DW 3...
Ergänzende Operationen 3.5.3 Ergänzende Operationen Den ergänzenden Operationsvorrat können Sie nur für Funktionsbau- steine (FB und FX) verwenden. Der Gesamtoperationsvorrat für Funk- tionsbausteine besteht daher aus den Grundoperationen und den ergänzenden Operationen. Zu den ergänzenden Funktionen gehören auch Systemoperationen: Mit den Systemoperationen können Sie z. B. den Speicher an beliebi- ger Stelle überschreiben oder den Inhalt der Arbeitsregister der CPU verändern.
Ergänzende Operationen Binäre Verknüpfungen Tabelle 3-11 Binäre Verknüpfungen mit Formaloperanden Operation Operand Funktion UND-Funktion, Abfrage eines Formaloperanden auf Signalzustand ’1’ UND-Funktion, Abfrage eines Formaloperanden auf Signalzustand ’0’ ODER-Funktion, Abfrage eines Formaloperanden auf Signalzustand ’1’ ODER-Funktion, Abfrage eines Formaloperanden auf Signalzustand ’0’ Formaloperand einsetzen Als Aktualoperanden sind binär adressierte Eingänge, Ausgänge, Daten und Merker (Parameterart: E, A ;...
Ergänzende Operationen Speicheroperationen Tabelle 3-13 Speicheroperationen mit Formaloperanden Operation Operand Funktion Setzen (binär) eines Formaloperanden Rücksetzen (binär) eines Formaloperanden Rücksetzen (digital) eines Formaloperanden für Zeiten und Zähler Zuweisen des Verknüpfungsergebnisses an einen Formaloperanden Formaloperand einsetzen Als Aktualoperanden sind binär adressierte Eingänge, Ausgänge und M-Merker zugelassen (Parameterart: E, A;...
Ergänzende Operationen Zeit- und Zähloperationen Tabelle 3-14 Zeit- und Zähloperationen mit Formaloperanden Operation Operand Funktion Eine Zeit (Formaloperand) als Impuls starten. Der Zeitwert muß in AKKU-1-L hinterlegt sein (Parameterart T) . Eine Zeit (Formaloperand) einschaltverzögernd starten. Der Zeitwert muß in AKKU-1-L hinterlegt sein (Parameterart T). SVZ = Eine Zeit (Formaloperand) als verlängerten Impuls starten mit dem im AKKU-1-L hinterlegten Zeitwert/einen Zähler...
Seite 135
Ergänzende Operationen Beispiele Funktionsbausteinaufruf Programm im ausgeführtes Programm Funktionsbaustein :SPA FB 203 NAME :BEISP1 ANNA : E 10.3 =ANNA E 10.3 BERT : T 17 010.2 KT 010.2 HANS : A 18.4 :SSV =BERT T 17 =BERT T 17 =HANS A 18.4 :SPA FB 204...
Ergänzende Operationen Lade- und Transferoperationen Tabelle 3-15 Lade- und Transferoperationen mit Formaloperanden Operation Operand Beschreibung Laden eines Formaloperanden: Der Wert des als Formaloperand vorgegebenen Operanden wird in den AKKU geladen (Parameterart: E, T, Z, A; Parametertyp: BY, W, D). Codiertes Laden eines Formaloperanden: Der Wert der als Formaloperand vorgegebenen Zeit- oder Zählzelle wird BCD-codiert in den AKKU geladen (Parametertyp: T, Z).
Seite 137
Ergänzende Operationen Tabelle 3-16 Lade- und Transferoperationen mit speziellen Operanden Operation Operand Funktion 0 bis 255 Laden eines Wortes in den AKKU 1 aus dem Bereich "Anschaltung" (BA-Bereich) 0 bis 255 Laden eines Wortes in den AKKU 1 aus dem erweiterten Bereich "Anschaltung"...
Ergänzende Operationen Rechenoperationen Tabelle 3-17 Rechenoperation ENT Operation Operand Funktion – Es findet ein Stack-Lift in die AKKUs 3 und 4 statt: <AKKU 4> := <AKKU 3> <AKKU 3> := <AKKU 2> <AKKU 2> := <AKKU 2> <AKKU 1> := <AKKU 1> Die AKKUs 1 und 2 werden nicht verändert.
Seite 139
Ergänzende Operationen Tabelle 3-18 Ergänzende arithmetische Operationen Operation Operand Funktion S ADD -128 bis Addieren einer Byte-Konstanten (Festpunkt) zum AKKU-1-L +127 (vorzeichenexpandiert); die Anzeigen in ANZ 0, ANZ 1, OV und OS werden nicht beeinflußt. – AKKU-1-H sowie die AKKUs 2 bis 4 bleiben unverändert. S ADD -32 768 bis Addieren einer Festpunktkonstanten (Wort) zum AKKU-1-L;...
Organisatorische Operationen 3.5.4 Organisatorische Zu den organisatorischen Operationen gehören auch System- Operationen operationen. Vorsicht Systemoperationen sollten nur von erfahrenen Programmierern und Systemkennern und nur mit Vorsicht angewendet werden. Systemoperationen sind in der ersten Spalte der Tabellen mit gekennzeichnet! Sprungoperationen Das Sprungziel für unbedingte und bedingte Sprünge wird symbolisch angegeben (maximal 4 Zeichen, beginnend mit einem Buchstaben).
Seite 141
Organisatorische Operationen Operation Operand Funktion Fortsetzung der Tabelle 3-19: ≠ SPN = Sprung bei Ergebnis Der Sprung wird nur dann ausgeführt, wenn ANZ 1 ≠ ANZ 0 ist. Das Verknüpfungsergebnis wird nicht (adr = Symbol- adresse verändert. mit maximal 4 Zeichen) Sprung bei Ergebnis ’0’...
Organisatorische Operationen Schiebeoperationen Tabelle 3-20 Schiebeoperationen Operation Operand Funktion (Operation mit AKKU 1) 0 bis 15 Schieben nach links (von rechts werden Nullen nachgezogen) 0 bis 15 Schieben nach rechts (von links werden Nullen nachgezogen) 0 bis 32 Schieben eines Doppelwortes nach links (von rechts werden Nullen nachgezogen) 0 bis 15 Schieben mit Vorzeichen nach rechts (von links wird...
Seite 143
Organisatorische Operationen Beispiele 1. Der Inhalt des Datenwortes DW 52 soll gelesen, um 4 bit nach links verschoben und dann im Datenwort DW 53 abgelegt werden. STEP-5-Programm: Inhalt der Datenwörter: DW 52 KH = 14AF :SLW 4 DW 53 KH = 4AF0 2.
Organisatorische Operationen Umwandlungsoperationen Tabelle 3-21 Umwandlungsoperationen Operation Funktion Bildung des 1er-Komplements von AKKU-1-L (16 bit) Bildung des 2er-Komplements von AKKU-1-L (16 bit) Bildung des 2er-Komplements von AKKU 1 (32 bit) Festpunktwandlung (16 bit) von BCD in dual Festpunktwandlung (16 bit) von dual in BCD Doppelwortwandlung (32 bit) von BCD in dual Doppelwortwandlung (32 bit) von dual in BCD Wandlung einer Festpunktzahl (32 bit) in eine Gleitpunktzahl (32 bit);...
Seite 145
Organisatorische Operationen Der im AKKU 1 (Bit 0 bis Bit 31) stehende Wert wird als BCD-codierte Zahl interpretiert. Nach der Umwandlung steht im AKKU 1 eine 32-bit- Festpunktzahl. Der im AKKU 1 (Bit 0 bis Bit 31) stehende Wert wird als 32-bit-Fest- punktzahl interpretiert.
Organisatorische Operationen Dekrementieren/ Inkrementieren Tabelle 3-22 Dekremtier-/Inkremtieroperation Operation Operand Funktion 1 bis 255 Dekrementieren des Low-Bytes (Bits 0 bis 7) von AKKU-1-L um den Operandenwert 1 bis 255 Inkrementieren des Low-Bytes (Bits 0 bis 7) von AKKU-1-L um den Operandenwert Der Inhalt des Low-Bytes von AKKU-1-L wird um die als Operand angegebene Zahl ohne Übertrag dekrementiert (erniedrigt) bzw.
Seite 148
Organisatorische Operationen Operation Operand Funktion Fortsetzung der Tabelle 3-23: S BI Indirekte Bearbeitung eines Formaloperanden: Eine Operation ausführen, deren Operationscode in einem Formaloperanden abgelegt ist. Die Nummer des auszuführenden Formaloperanden steht im AKKU 1. 60 bis 63 Eine Operation, die im Bereich Systemdaten (BS) steht, soll ausgeführt werden (freie Systemdaten: BS 60 bis 63).
Seite 149
Organisatorische Operationen Beispiele zu den Bearbeitungs-Operationen B DW/B MW Operanden-Substitution Mit den Anweisungen "B DW" und "B MW" können Sie, z. B. in einer Programmschleife, substituiert auf Daten zugreifen. Der substituierte Zugriff setzt sich zusammen aus der Anweisung B DW/B MW und ei- ner unmittelbar nachfolgenden STEP-5-Operation aus dem o.
Seite 150
Organisatorische Operationen Fortsetzung der Beispiele zur Operanden-Substitution: 3. Sprungverteiler für Unterprogrammtechnik: MW 5 :SPA =M001 Inhalt Merkerwort MW 5: :SPA =M002 Sprung- :SPA =M003 Sprungdistanz ± 127) distanz :SPA =M004 (maximal :SPA =M005 M001 :BEA M002 Vorteil: Alle Teilprogramme stehen :BEA Baustein.
Seite 151
Organisatorische Operationen Parameterwort für M-Merker Bit-Nr. 11 10 ohne Bedeutung Bit-Adresse Byteadresse von 0 bis 255 von 0 bis 7 Parameterwort für S-Merker Bit-Nr. 15 14 12 11 0 Bit-Adresse Byteadresse von 0 bis 4095 von 0 bis 7 Parameterwort für Zeiten und Zähler Bit-Nr.
Organisatorische Operationen Beispiel zur BI-Operation Im Funktionsbaustein FB 1 werden STEP-5-Operationen ausgeführt, deren Operations-Codes als Formaloperanden MW 10, MW 12 und MW 14 von einem aufrufenden Baustein übergeben werden. Welcher der Operationscodes ausgeführt werden soll, wird vom aufrufenden Baustein als lfd. Nummer im Merkerwort MW 16 hinterlegt. Das Ergebnis der ausgeführten Operation befindet sich anschließend in AKKU 1 und wird in das Merkerwort MW 18 transferiert.
Semaphor-Operationen Prozeßalarme sperren/freigeben Tabelle 3-24 Prozeßalarme sperren/freigeben Operation Operand Funktion Prozeßalarmbearbeitung sperren Prozeßalarmbearbeitung freigeben "Prozeßlarme sperren/freigeben" kann angewendet werden, wenn die prozeßalarmgesteuerte Bearbeitung unterdrückt werden soll. In dem Programmteil, der zwischen den Anweisungen AS und AF steht, ist dann die prozeßalarmgesteuerte Bearbeitung nicht mehr möglich. Beachten Sie hierzu die Sonderfunktion OB 120 "Alarme gmeinsam sperren", Abschnitt 6.5.
Seite 154
Semaphor-Operationen SES/SEF Semaphor (keine Systemoperationen) setzen/freigeben Tabelle 3-25 Semaphor setzen/freigeben Operation Operand Funktion 0 bis 31 Setzen eines Semaphors 0 bis 31 Freigeben eines Semaphors Auswertung der Operationsergebnisse über ANZ 0/ANZ 1 Hinweis Die Operationen SES xx und SEF xx müssen in allen CPUs programmiert werden, die synchronisiert auf einen gemeinsamen globalen Speicherbereich zugreifen sollen.
Seite 155
Semaphor-Operationen Anwendung von SES/SEF Bild 3-8 zeigt den prinzipiellen Ablauf einer Zugriffskoordinierung mit Hilfe eines Semaphors. START Semaphor setzen: Nein Operation erfolgreich? Zugriff auf semaphor- geschützten globalen Speicher Semaphor freigeben: Ende Bild 3-8 Koordinierung des Zugriffs auf den globalen Speicher Vor jedem Setzen bzw.
Seite 156
Semaphor-Operationen Hinweis Der Vorgang des Abfragens eines bestimmten Semaphors (= Lesevorgang) und der Vorgang des Setzens bzw. des Freigebens des Semaphors (= Schreibvorgang) bilden eine Einheit. Keine andere CPU kann während dieser Vorgänge auf diesen Semaphor zugreifen! Zur Anwendung der Semaphoren beachten Sie bitte die folgenden Punkte: •...
Seite 157
Semaphor-Operationen Anwendungsbeispiel für Semaphore Aufgabenstellung: In einem AG S5-135U stecken vier CPUs, die über einen gemeinsamen Speicher- bereich der Q-Peripherie (QW 6) Statusmeldungen an ein Statusmeldegerät abgeben. Jede Statusmeldung muß 10 Sekunden lang ausgegeben werden und darf erst dann von einer neuen Meldung der gleichen oder einer anderen CPU überschrieben werden.
Seite 158
Semaphor-Operationen Fortsetzung des Semaphor-Anwendungsbeispiels: FB 0 NAME :MAIN M 10.0 :SPB =M001 falls keine Meldung aktiv :BEB KH 2222 Meldung erzeugen und MW 12 M 10.0 M 10.0 Merker "MELDUNG" setzen. M001 :SPA FB10 FB "MELDE" aufrufen NAME :MELDE FB 10 NAME :MELDE M 10.1 Wenn kein Semaphor gesetzt,...
Seite 159
Semaphor-Operationen Fortsetzung des Semaphor-Anwendungsbeispiels: FB100 NAME :SEMASET :SES 10 Semaphor Nr. 10 setzen :SPZ =M001 M 10.1 Falls Semaphor erfolgreich gesetzt, M 10.1 Merker "SEMAPHOR-GESETZT" setzen M001 :BE FB110 NAME: MELDAUSG MW12 Meldung an die QW 6 Peripherie uebertragen M 10.3 M 10.3 Merker "MELDUNG-UEBERTRAGEN"...
Seite 160
Semaphor-Operationen Programmieranleitung CPU 928B 3 - 78 C79000-B8500-C898, 01...
Betriebszustände und Programmbearbeitungsebenen Inhalt von Kapitel 4 Einführung und Übersicht ..........4 - 4 Programmbearbeitungsebenen .
Seite 162
Inhalt Programmieranleitung CPU 928B 4 - 2 C79000-B8500-C898, 01...
Seite 163
Betriebszustände und Programm- bearbeitungsebenen Dieses Kapitel gibt Ihnen eine Übersicht über die Betriebszustände und die Programmbearbeitungsebenen der CPU 928B. Es informiert Sie ausführlich über verschiedene Anlaufarten und damit verbundene Organisationsbausteine, in denen Sie Ihr spezifisches Programm für verschiedene Anlauffälle programmieren können. Sie erfahren ferner, wodurch sich die Programmbearbeitungen "Zykli- sche Bearbeitung", "Zeitgesteuerte Bearbeitung"...
Einführung und Übersicht Einführung und Übersicht Die CPU 928B kennt drei Betriebszustände: • • Betriebszustand STOP • • Betriebszustand ANLAUF • • Betriebszustand RUN In den Betriebszuständen ANLAUF und RUN können bestimmte Ereig- nisse auftreten, auf die das Systemprogramm reagieren muß. In vielen Fäl- len wird dabei ein für das Ereignis vorgesehener Organisationsbaustein (einer von OB 1 bis OB 35) als Anwenderschnittstelle aufgerufen.
Seite 165
Einführung und Übersicht Anzeige der Auf der CPU-Frontplatte signalisieren Ihnen verschiedene LEDs den Betriebszustände durch aktuellen Betriebszustand der CPU. Nachfolgende Tabelle zeigt den Leuchtdioden (LEDs): Zusammenhang zwischen den Anzeigen der STOP- und RUN-LED und dem zugehörigen Betriebszustand. Diese Anzeigen werden ergänzt durch weitere LED-Anzeigen (BASP, ADF, QVZ, ZYK).
Seite 166
Einführung und Übersicht Melde- und Fehleranzeige-LEDs LED "BASP" Sie zeigt an, ob das S5-Bus-Signal BASP (Befehlsausgabe sperren) aktiv ist: Im Einzelprozessor-Betrieb wird BASP von der CPU beim Eintritt in den Zustand RUN inaktiv und beim Übergang in den Zustand STOP aktiv geschaltet.
Programmbearbeitungsebenen Programmbearbeitungsebenen Bild 4-2 gibt Ihnen eine Übersicht über die Betriebszustände und Bear- beitungsebenen bei der CPU 928B (-3UB12). Die Erklärungen zu den Abkürzungen in den Fehlerebenen finden Sie auf der nächsten Seite. Bei Mehrprozessor- betrieb: Wartepunkt für LED RUN: LED RUN: LED RUN: gemeinsamen...
Seite 168
Programmbearbeitungsebenen Programmbearbeitungsebenen im ANLAUF: MANUELLER NEUSTART MANUELLER WIEDERANLAUF MANUELLER NEUSTART MIT GEDÄCHTNIS Anlauf- AUTOMATISCHER NEUSTART MIT GEDÄCHTNIS ebenen AUTOMATISCHER NEUSTART AUTOMATISCHER WIEDERANLAUF (Befehlscodefehler) (Laufzeitfehler) Fehler- (Adressierfehler) ebenen (Quittungsverzug) (Schnittstellenfehler) Programmbearbeitungsebenen im RUN: ZYKLUS (zyklische Programmbearbeitung) ZEITAUFTRAG (zeitgesteuerte Programmbearbeitung) WECKALARM (zeitgesteuerte Programmbearbeitung) WECKALARM (zeitgesteuerte Programmbearbeitung) WECKALARM...
Seite 169
Programmbearbeitungsebenen Einschachtelung von Wenn ein Ereignis eintritt, das eine höherpriore Bearbeitung erfordert, anderen Ebenen wird die aktuelle Ebene vom Systemprogramm unterbrochen und die höherpriore Ebene eingeschachtelt. Die Einschachtelung erfolgt • • bei Fehlerebenen und Programmbearbeitungs- ebenen im ANLAUF: grundsätzlich an Befehlsgrenzen, •...
Programmbearbeitungsebenen Priorität Die Programmbearbeitungsebenen haben eine feste Priorität. Davon abhängig können sie einander unterbrechen bzw. ineinander verschach- telt werden. Die "Anlauf- und die Fehlerebenen" unterscheiden sich von den "Grundebenen" dadurch, daß sie grundsätzlich an der nächsten Be- fehlsgrenze eingeschachtelt werden, sobald das entsprechende Ereignis aufgetreten ist.
Seite 171
Programmbearbeitungsebenen Reaktion bei einem Eine einmal aktivierte Fehlerebene (ADF, BCF, LZF, QVZ, REG, Doppelfehler ZYK), die noch nicht vollständig abgearbeitet ist, kann nicht noch ein- mal aktiviert werden, auch nicht, wenn eine andere Programmbearbei- tungsebene dazwischengeschachtelt ist. In diesem Fall geht die CPU wegen Doppelaufruf einer Programmbearbeitungsebene (im USTACK: DOPP) unmittelbar in STOP (Ausnahme: Weckfehler, sie- he dort).
Programmbearbeitungsebenen Beispiel 2: Auftreten eines Operationscodefehlers in der LZF- Programmbearbeitungs- ebene versucht das Systemprogramm, die BCF-Ebene (AW-Schnittstelle OB 29) auf- zurufen. Diese ist jedoch schon durch das Auftreten eines Parameterfehlers (AW- Schnittstelle OB 30) aktiviert worden nicht vollständig abgearbei- tet. Ein erneuter Aufruf der BCF-Ebene an dieser Stelle ist deshalb nicht zu- lässig: Die CPU geht in STOP (siehe Bild 4-5).
Betriebszustand STOP Betriebszustand STOP 4.3.1 Kennzeichen und Anzeige Der Betriebszustand STOP ist durch folgende Merkmale charakteri- des Betriebszustandes siert: Anwenderprogramm Es findet keine Anwenderprogrammbearbeitung statt. Erhalt von Daten Hat zuvor eine Programmbearbeitung stattgefunden, so bleiben die Werte von Zählern, Zeiten, Merkern und des Prozeßabbildes beim Übergang in den Stoppzustand erhalten.
Seite 174
Betriebszustand STOP STOP-LED zeigt Dauerlicht Der Betriebszustand STOP wurde ausgelöst: • • im Einzelprozessorbetrieb: durch Betätigen des Betriebsartenschalters von RUN auf STOP, durch PG-Funktion AG-STOP, durch Gerätefehler (BAU, PEU), nach URLÖSCHEN, durch PG-Funktion "Bearbeitungskontrolle Ende". • • im Mehrprozessorbetrieb: durch Betätigen des Betriebsartenschalters am KOR auf STOP, durch STOP einer anderen CPU aufgrund einer Störung (eine nicht fehlerverursachende CPU zeigt Dauerlicht).
URLÖSCHEN wird auch angefordert bei Auftreten eines CPU- oder Systemfehlers. Sie erkennen diese Fehler daran, daß die Aufforderung nach durchgeführtem URLÖSCHEN erneut auftritt. In diesem Fall wenden Sie sich bitte an Ihre nächste Siemens- Vertretung. Anforderung vom Anwender Durch folgende Bedienschritte fordern Sie URLÖSCHEN an:...
Betriebszustand STOP 4.3.3 URLÖSCHEN durchführen Unabhängig davon, ob die Urlöschanforderung vom Systemprogramm oder vom Anwender kommt, führen Sie das URLÖSCHEN folgender- maßen durch: • • Halten Sie den Betriebsartentaster in Stellung OVERALL RESET fest; gleichzeitig betätigen Sie den Betriebsartenschalter von STOP nach RUN und wieder nach STOP.
Betriebszustand ANLAUF Betriebszustand ANLAUF Der Betriebszustand ANLAUF ist durch folgende Merkmale charakte- risiert: Übergang von STOP in RUN Der ANLAUF ist der Übergang vom Betriebszustand STOP in den Be- triebszustand RUN. Anlaufarten Die CPU 928B kennt folgende Anlaufarten: NEUSTART (manuell oder automatisch), WIEDERANLAUF (manuell oder automatisch), NEUSTART MIT GEDÄCHTNIS (NSMG, manuell oder automatisch –...
Betriebszustand ANLAUF 4.4.1 MANUELLER und AUTO- MATISCHER NEUSTART Wann ist NEUSTART Ein NEUSTART ist immer zulässig, sofern vom Systemprogramm zulässig ? nicht URLÖSCHEN angefordert ist. MANUELLER NEUSTART So lösen Sie den MANUELLEN NEUSTART aus: • • Halten Sie den Betriebsartentaster in Stellung RESET; betätigen Sie gleichzeitig den Betriebsartenschalter von STOP nach RUN.
Betriebszustand ANLAUF 4.4.2 MANUELLER und AUTO- MATISCHER WIEDER- ANLAUF Wann ist ein WIEDER- Ein WIEDERANLAUF ist nicht zulässig, ANLAUF nicht zulässig? • • wenn vom Systemprogramm URLÖSCHEN angefordert ist oder • • nach einem der folgenden Ereignisse: Doppelaufruf einer Programmbearbeitungsebene (USTACK: DOPP), URLÖSCHEN (Steuerbits: URGELOE), Anlaufabbruch (Steuerbits: ANL-ABB),...
Seite 180
Betriebszustand ANLAUF AUTOMATISCHER Ein AUTOMATISCHER WIEDERANLAUF wird ausgelöst: WIEDERANLAUF Nach Netzspannungsausfall/NETZ AUS im ANLAUF oder RUN und anschließender Netzspannungswiederkehr/NETZ EIN durchläuft die CPU eine Initialisierungsroutine und versucht dann automatisch, einen WIEDERANLAUF durchzuführen, sofern der DX 0 entsprechend pa- rametriert ist (siehe Kapitel 7). •...
Seite 183
Betriebszustand ANLAUF Sie können in den Anlauf-OBs z. B. • • Merker setzen, • • Zeiten starten (der Start wird vom Systemprogramm bis zum Eintritt in den RUN verzögert), • • den Datenverkehr der CPU mit Peripheriebaugruppen vorbereiten, • • die Synchronisierung von CPs durchführen. OB 20 NEUSTART: Wenn die CPU einen MANUELLEN oder AUTOMATISCHEN NEU-...
Betriebszustand ANLAUF Hinweis Die CPU registriert einen Netzspannungsausfall (NAU oder PEU) auch dann, wenn er im STOP auftritt. Wenn Sie danach einen MANUELLEN WIEDERANLAUF auslösen, so ruft die CPU vor dem OB 21 den OB 22 zur Bearbeitung auf. Lösen Sie stattdessen einen MANUELLEN NEUSTART aus, so wird die Vorgeschichte von der CPU ignoriert und der OB 22 nicht aufgerufen.
Betriebszustand ANLAUF 4.4.5 Unterbrechungen im ANLAUF Ein Anlaufprogramm kann unterbrochen werden durch • • Netzspannungsausfall im Zentralgerät (NAU) oder im Erweite- rungsgerät (PEU), • • Stoppschalter, Stopp-Befehl, MP-STP oder PG-STP oder • • Programm- und Gerätefehler (siehe Abschnitt 5.6). Soll der unterbrochene ANLAUF anschließend mit einer der mögli- chen Anlaufarten fortgesetzt werden, so beachten Sie bitte die folgen- den Punkte: Netzspannungsausfall im...
Betriebszustand ANLAUF MANUELLER Wenn die CPU aus einem beliebigen ANLAUF in den STOP gegan- WIEDERANLAUF nach gen ist (z. B. wegen Stoppschalter oder wegen ADF) und Sie anschließ- Abbruch eines ANLAUFs end einen MANUELLEN WIEDERANLAUF auslösen, so wird der unterbrochene ANLAUF an der Abbruchstelle fortgesetzt. Es wird kein OB 21 eingeschachtelt.
Betriebszustand RUN Betriebszustand RUN Wenn die CPU einen ANLAUF fertig bearbeitet hat (und nur dann), geht sie in den Betriebszustand RUN. Dieser Betriebszustand ist durch folgende Merkmale charakterisiert: Bearbeitung des Das Anwenderprogramm im OB 1 bzw. im FB 0 wird zyklisch bear- Anwenderprogramms beitet, wobei zusätzlich alarmgesteuert weitere Programmteile einge- schachtelt werden können.
Betriebszustand RUN • • 9 WECKALARME: Das Anwenderprogramm wird in festen, vom System angebotenen Zeitintervallen bearbeitet. • • REGLERALARM: Es wird eine vorgegebene Anzahl an Reglern zeitgesteuert bearbeitet. • • VERZÖGERUNGS- ALARM: Das Anwenderprogramm wird nach Ablauf einer eingestellten Verzögerungszeit ein- malig bearbeitet.
Seite 189
Betriebszustand RUN Prinzip Prinzip der zyklischen Programmbearbeitung (Systemleistungen): vom Anlauf Zyklusüberwachungszeit triggern Koppelmerkereingänge aktualisieren Prozeßabbild der Eingänge (PAE) versorgen Zyklisches Anwenderprogramm (OB 1 oder FB 0) aufrufen: Anwenderprogramm einschließlich Einschachtelungen der übrigen Programmbearbeitungsebenen Prozeßabbild der Ausgänge (PAA) ausgeben Koppelmerker-Ausgänge aktualisieren vom PG ausgelöste Vorgänge, wie z.
Betriebszustand RUN Wenn Sie ein kurzes, zeitkritisches Anwenderprogramm haben, bei dem Sie auf eine strukturierte Programmierung verzichten können, programmieren Sie den FB 0: Da er über den gesamten Operationsvor- rat von STEP 5 verfügt, können Sie Bausteinaufrufe einsparen und da- durch die Laufzeit des Programms verkürzen.
Betriebszustand RUN 4.5.2 Zeitgesteuerte Programm- Eine zeitgesteuerte Bearbeitung liegt vor, wenn ein von einer Uhr oder bearbeitung von einem internen Takt kommendes Zeitsignal die CPU veranlaßt, die aktuelle Programmbearbeitung zu unterbrechen und ein spezifi- sches Programm zu bearbeiten. Nach der Bearbeitung dieses Pro- gramms kehrt die CPU zur Unterbrechungsstelle im unterbrochenem Programm zurück und setzt dort die Bearbeitung fort.
Betriebszustand RUN Unterbrechungen Die Bearbeitung des Verzögerungsalarms kann an Bausteingrenzen oder an Befehlsgrenzen (Parametrierung DX 0) unterbrochen werden durch: • • die Bearbeitung eines Prozeßalarms. Die Bearbeitung kann an Befehlsgrenzen unterbrochen bzw. ganz ab- gebrochen werden: • • beim Auftreten eines Geräte- oder Programmfehlers, •...
Betriebszustand RUN Uhrzeitgesteuerter Auf der CPU 928B steht eine battterie-gepufferte Hardware-Uhr (zen- Weckalarm trale Pufferung über die Stromversorgung des Zentralgerätes) zur Verfü- gung, die Sie per STEP-5-Programm setzen und auslesen können. Über diese Uhr läßt sich ein Programmteil zeitgesteuert bearbeiten. Während der Verzögerungsalarm für schnelle Vorgänge eingesetzt wird, ist der uhrzeitgesteuerte Weckalarm besonders geeignet für die Bearbeitung von einmaligen Vorgängen oder Vorgängen, die in gro-...
Seite 194
Betriebszustand RUN Anwenderschnittstelle Als Anwenderschnittstelle wird bei einem uhrzeitgesteuerten Weckalarm OB 9 der OB 9 aufgerufen. Im OB 9 hinterlegen Sie ein STEP-5-Pro- gramm, das in diesem Fall bearbeitet werden soll. Ist der OB 9 nicht geladen, so wird die Programmbearbeitung nicht unterbrochen. Unterbrechungen Die Bearbeitung des uhrzeitgesteuerten Weckalarms kann an Bau- steingrenzen oder an Befehlsgrenzen (Parametrierung DX 0) unter-...
Betriebszustand RUN Weckalarme Programmbearbeitung in festen Zeitrastern: In der CPU 928B können Sie bis zu 9 verschiedene Programme zeitge- steuert bearbeiten lassen, von denen jedes in einem anderen Zeitraster aufgerufen wird. Auslösung Ein Weckalarm wird automatisch in seinem Zeitraster ausgelöst, wenn der entsprechende OB geladen ist.
Betriebszustand RUN Unterbrechungen Die Bearbeitung eines Weckalarms kann entweder an Bausteingren- zen (Voreinstellung) oder an Befehlsgrenzen (Programmierung DX 0) unterbrochen werden durch • • die Bearbeitung eines Prozeßalarms, • • die Bearbeitung eines Verzögerungsalarms, • • die Bearbeitung eines Regleralarms, •...
Seite 197
Betriebszustand RUN Beim Aufruf des OB 33 hinterlegt das Systemprogramm in AKU 1 und AKKU 2 zusätzliche Informationen, die den ersten aufgetretenen Fehler näher erläutern: Tabelle 4-4 Weckfehlerkennungen Fehlerkennung Erläuterung AKKU-1-L AKKU-2-L 1001H 0016H Weckfehler bei OB 10 ( 10 ms) 1001H 0014H Weckfehler bei OB 11 ( 20 ms)
Betriebszustand RUN Hinweis Beachten Sie im Hinblick auf die zeitgesteuerte Programm- bearbeitung die Sonderfunktionen OB 120, OB 121, OB 122 und OB 123, mit denen Sie die Bearbeitung von Weckalarmen für einen bestimmten Programmteil sperren bzw. verzögern können. (Dies ist möglich entweder für alle programmierten Weckalarme oder für einzelne von ihnen.) Je "schneller"...
Betriebszustand RUN Unterbrechungen Eine Reglerbearbeitung kann entweder an Bausteingrenzen (Vorein- stellung) oder an Befehlsgrenzen (Programmierung DX 0) unterbro- chen werden durch • • die Bearbeitung eines Prozeßalarms, • • die Bearbeitung eines Verzögerungsalarms. Die Bearbeitung kann an Befehlsgrenzen unterbrochen bzw. ganz ab- gebrochen werden: •...
Seite 200
Betriebszustand RUN Unterbrechungen Eine prozeßalarmgesteuerte Programmbearbeitung kann nur unter- brochen werden durch • • einen Programm- oder Gerätefehler (an Befehlsgrenzen), • • Bedienung (PG-Funktion, Stoppschalter, MP-STP), • • Stopp-Befehl. Hinweis Eine alarmgesteuerte Programmbearbeitung kann nicht durch eine zeitgesteuerte Programmbearbeitung oder eine erneute alarmgesteuerte Programmbearbeitung unterbrochen werden! Mehrfachalarme Treten während der alarmgesteuerten Programmbearbeitung erneut...
Seite 201
Betriebszustand RUN Ein Prozeßalarm wird auch dann erkannt und bearbeitet, wenn das In- terrupt-Signal an der Bausteingrenze nicht mehr aktiv ist. inaktiv Interrupt aktiv OB 2 OB 2 OB 2 OB 2 Prozeßalarm (an Bausteingrenzen) Zyklus = Bausteingrenzen Bild 4-7 pegelgetriggerte Prozeßalarmsignale Der aufgerufene OB 2 wird vollständig bearbeitet.
Betriebszustand RUN Sperren der Ein alarmgesteuertes Programm wird an einer Bausteingrenze oder einer prozeßalarmgesteuerten STEP-5-Befehlsgrenze in das zyklische Programm eingeschoben. Bearbeitung Diese Unterbrechung kann sich ungünstig auswirken, wenn ein zykli- scher Programmteil in einer bestimmten Zeit bearbeitet werden muß (um z.B. eine bestimmte Reaktionszeit zu erreichen) oder eine Befehls- folge nicht unterbrochen werden darf (z.
Seite 203
Betriebszustand RUN Wenn gleichzeitig ein Prozeßalarm und ein Weckalarm auftreten, dann wird an der nächsten Unterbrechungsstelle zuerst der Prozeßalarm bear- beitet. Erst wenn dieser abgearbeitet ist, wird der noch anstehende Weck- alarm bearbeitet. Bild 4-9 zeigt schematisch, wie die Unterbrechung der Programmbear- beitung an Bausteingrenzen durch zeitgesteuerte und programmgesteu- erte Alarmbearbeitung erfolgt.
Seite 204
Betriebszustand RUN Reaktionszeit Die Reaktionszeit auf eine Weckalarmanforderung entspricht der Bear- beitungszeit eines Bausteins bzw. eines STEP-5-Befehls (je nach ge- wählter Voreinstellung). Wenn jedoch zum Zeitpunkt der Unterbrechung der zyklischen Programmbearbeitung noch Prozeßalarme anstehen, wird das zeitgesteuerte Programm erst dann bearbeitet, nachdem alle anste- henden Prozeßalarme vollständig abgearbeitet sind.
Unterbrechungs- und Fehlerbehandlung Inhalt von Kapitel 5 Häufige Fehler im Anwenderprogramm ........5 - 4 Fehlerinformationen .
Seite 206
Inhalt 5.6.4 QVZ (Quittungsverzug) ..........5 - 53 QVZ bei Direktzugriff über S5-Bus .
Seite 207
Unterbrechungs- und Fehlerbehandlung In diesem Kapitel erfahren Sie, wie Sie Fehler beim Planen und Pro- grammieren Ihrer STEP-5-Programme vermeiden können. Sie werden informiert, welche Hilfen Ihnen das Systemprogramm zur Fehlerdiagnose und evtl. Fehlerreaktion zur Verfügung stellt und in welchen Bausteinen Sie Reaktionen auf bestimmte Fehler program- mieren können.
Häufige Fehler im Anwenderprogramm Häufige Fehler im Anwenderprogramm Das Systemprogramm kann fehlerhaftes Arbeiten der CPU, Fehler in der Systemprogrammbearbeitung oder Auswirkungen einer fehler- haften Programmierung durch den Anwender feststellen. Die folgende Liste enthält eine Aufzählung von Fehlern, die bei der In- betriebnahme des Anwenderprogramms am häufigsten auftreten, die Sie jedoch schon beim Erstellen Ihres Programms leicht vermeiden können.
Fehlerinformationen Fehlerinformationen Wenn im Anlauf oder bei der zyklischen Bearbeitung des Anwenderpro- gramms ein Fehler auftritt, haben Sie verschiedene "Informationsquel- len" zur Verfügung, um diesem Fehler auf die Spur zu kommen. Dies sind: • • LEDs auf der Frontplatte der CPU •...
Fehlerinformationen PG-Online-Funktion Die PG-Online-Funktion AUSGABE USTACK gibt Ihnen Auskunft AUSGABE USTACK über die Zustände CPU-interner Steuerbits und den Inhalt des Unter- brechungsstacks (USTACK). In den USTACK trägt das Systemprogramm beim Übergang in den Stoppzustand alle Informationen ein, die es für einen Wiederanlauf be- nötigt.
Seite 211
Fehlerinformationen Die beiden Datenwörter sind unter folgenden absoluten Speicheradres- sen hinterlegt: Systemdatenwort BS 3: KH = EA03 Systemdatenwort BS 4: KH = EA04 Über die Fehlerkennung im Systemdatenwort BS 3 können Sie feststel- len, was für ein Fehler aufgetreten ist. Das Systemdatenwort BS 4 gibt Ihnen Auskunft darüber, wo der Feh- ler aufgetreten ist.
Seite 212
Fehlerinformationen Auswertung von AKKU 1 und Mit der Online-Funktion AUSGABE USTACK können Sie den Inhalt AKKU 2 mit dem der beiden Akkumulatoren direkt aus dem USTACK lesen und so die Programmiergerät genaue Fehlerursache ermitteln. Auswertung von AKKU 1 und Da die Fehlerkennungen automatisch beim Aufruf eines Fehler-Organi- AKKU 2 mit STEP 5 sationsbausteins im AKKU 1 und 2 abgelegt werden, können Sie diese Kennungen bei der Programmierung Ihres Fehler-OBs berücksichti-...
Seite 213
Fehlerinformationen Beispiel AUSGABE BSTACK auswerten: BAUST.-NR. BAUST.-ADR. RUECKSPR.-ADR. REL.-ADR DB-NR. DB-ADR. OB 23 0063 0064 0001 0078 FB 5 006A 0072 0008 0078 FB 6 008A 0091 0007 0098 OB 1 009D 009E 0001 Im diesem Beispiel ist der Stoppzustand im OB 23 bei der Bearbeitung derjeni- gen STEP-5-Anweisung aufgetreten, die im Speicher unter der Absolutadresse "0064 - 1 = 0063"...
Steuerbits und Unterbrechungsstack Steuerbits und Unterbrechungsstack Über die Online-Funktionen AG-INFO und AUSGABE USTACK kön- nen Sie mit dem Programmiergerät sowohl Betriebszustand, Eigen- schaften der CPU und des Anwenderprogramms als auch eventuelle Fehler- und Unterbrechungsursachen analysieren. Hinweis Die Ausgabe der Steuerbits erhalten Sie in jedem Betriebszustand, die Ausgabe des USTACK-Inhalts nur im STOP.
Steuerbits und Unterbrechungsstack 5.3.1 Steuerbits Bei der PG-Ausgabe des USTACKs werden auf der 1. Bildschirmseite die Zustände der Steuerbits angezeigt (siehe Bild 5-1). S T E U E R B I T S >>STP<< STP-6 FE-STP BARBEND PG-STP STP-SCH STP-BEF MP-STP >>ANL<<...
Seite 216
Steuerbits und Unterbrechungsstack In den nachfolgenden Tabellen finden Sie, welche Aussage die einzel- nen Bits haben. Tabelle 5-1 Bedeutung der Steuerbits in der Zeile >>STP<< Zeile >>STP<< (STEUERBITS) Steuerbit Bedeutung >>STP<< CPU ist im Betriebszustand STOP STP-6 nicht belegt FE-STP Fehler-Stop: Stoppzustand nach NAU (Netzausfall), (Peripherie unklar), BAU (Batterie unklar), STUEB (BSTACK-Überlauf), STUEU (USTACK-Überlauf),...
Seite 217
Steuerbits und Unterbrechungsstack Tabelle 5-2 Bedeutung der Steuerbits in der Zeile >>ANL<< Zeile >>ANL<< (STEUERBITS) Steuerbit Bedeutung >>ANL<< CPU ist im Betriebszustand ANLAUF ANL-6 MANUELLER NEUSTART MIT GEDÄCHTNIS M W A ANL-6 AUTOMATISCHER NEUSTART MIT GEDÄCHTNIS NEUSTA MANUELLER NEUSTART ist angefordert (STOP) oder wurde als letzter ANLAUF durchgeführt (ANLAUF/RUN).
Seite 218
Steuerbits und Unterbrechungsstack Tabelle 5-3 Bedeutung der Steuerbits in der Zeile >>RUN<< Zeile >>RUN<< (STEUERBITS) Steuerbit Bedeutung >>RUN<< CPU ist im Zustand RUN (zykl. Bearbeitung aktiv) RUN-6 nicht belegt EINPROZ Einzelprozessorbetrieb BARB Online-Funktion BEARBEITUNGSKONTROLLE ist aktiv. OB1GEL Organisationsbaustein OB 1 ist in den Anwender- speicher geladen worden.
Seite 219
Steuerbits und Unterbrechungsstack Zeilen 4 und 5 (STEUERBITS) Steuerbit Bedeutung Fortsetzung der Tabelle 5-4: DIG-EIN Adreßliste für digitale Eingänge vorhanden DIG-AUS Adreßliste für digitale Ausgänge vorhanden URGELOE CPU wurde urgelöscht (NEUSTART erforderlich). URL-IA CPU wird momentan urgelöscht. STP-VER CPU hat Stoppzustand des AG verursacht. ANL-ABB ANLAUF wurde abgebrochen (NEUSTART erforderlich).
Seite 220
Steuerbits und Unterbrechungsstack Tabelle 5-5 Bedeutung der Steuerbits in den Zeilen 6 bis 8 Zeilen 6 bis 8 (STEUERBITS) Steuerbit Bedeutung DX0-FE Parametrierfehler im DX 0 oder DX 2 FE-22 nicht belegt MOD-FE Inhalt des Anwendermoduls ist fehlerhaft (URLÖSCHEN erforderlich). RAM-FE Inhalt des Systemprogramm-RAMs oder des DB-RAMs ist fehlerhaft (URLÖSCHEN...
Seite 221
Steuerbits und Unterbrechungsstack Zeilen 6 bis 8 (STEUERBITS) Steuerbit Bedeutung Fortsetzung der Tabelle 5-5: B C F Befehlscodefehler: Substitutionsfehler: Bearbeiteter STEP-5-Befehl ist nicht substituierbar, Operationscodefehler: Bearbeiteter STEP-5-Befehl ist falsch, Parameterfehler: Parameter des bearbeiteten STEP-5- Befehls ist falsch. FE-6 nicht belegt FE-5 Hinweis auf schweren Systemfehler, Zusatz- information in BS 80...
Steuerbits und Unterbrechungsstack 5.3.2 USTACK-Inhalt Befindet sich die CPU im Stoppzustand, so erscheint nach Ausgabe der Steuerbits und Betätigen der Übernahmetaste auf dem Bildschirm des PGs der Inhalt des USTACKS. Das Systemprogramm trägt beim Übergang in den Stoppzustand alle Informationen in den USTACK ein, die es für einen Wiederanlauf benötigt.
Steuerbits und Unterbrechungsstack Erläuterung der USTACK-Anzeigen TIEFE Stufe der Informationsebene des USTACK-Inhalts bei Fehler- schachtelung: TIEFE 01 = zuletzt aufgetretene Störungsursache, TIEFE 02 = vorletzte aufgetretene Störungsurache ..TIEFE13 = ..(maximale Tiefe) Angaben über die Die folgenden Tabelle enthält Angaben (USTACK-Kennungen) über Fehlerstelle die Fehlerstelle, mit denen im Anwenderprogramm die Anweisung ge- funden werden kann, bei deren Bearbeitung die CPU in STOP gegan-...
Seite 224
Steuerbits und Unterbrechungsstack Angaben zur Fehlerstelle USTACK-Kennung Bedeutung Fortsetzung 1 der Tabelle 5-6: EBENE Z Z: 001A: nicht belegt (Forts.) 001C: REGLERALARM 001E: nicht belegt 0020: VERZÖGERUNGSALARM 0022: nicht belegt 0024: PROZESSALARM 0026: nicht belegt 0028: MANUELLER NEUSTART MIT GEDÄCHTNIS 002A: AUTOMATISCHER NEU- START MIT GEDÄCHTNIS...
Seite 225
Steuerbits und Unterbrechungsstack Angaben zur Fehlerstelle USTACK-Kennung Bedeutung Fortsetzung 2 der Tabelle 5-6: REL-SAZ Relativer STEP-Adreßzähler: Enthält die Relativadresse (bezogen auf die Bausteinanfangsadresse) des zuletzt bearbeiteten Befehls im zuletzt bearbei- teten Baustein (Relativadressen können vom PG in Betriebsart "Eingabesperre"/ Schlüsselschalter oder mit S5-DOS ab Stufe IV über Funktionstaste angezeigt werden oder bei der Ausgabe des Bausteins auf den Drucker).
Seite 226
Steuerbits und Unterbrechungsstack Angaben zur Fehlerstelle USTACK-Kennung Bedeutung Fortsetzung 3 der Tabelle 5-6: KLAMMERN Anzahl der Klammerebenen: "KEx abc" mit x = 1 bis 7 Ebenen, a = ’OR’ (Oder, siehe Bitanzeigen), b =’ VKE’ (Verknüpfungsergebnis, siehe Bitanzeigen), c = 1: ’U(’, c = 0: ’O(’.
Seite 227
Steuerbits und Unterbrechungsstack STOERUNGSURSACHE USTACK- Bedeutung (aufgerufener Fehler-OB) Kennung Fortsetzung 1 der Tabelle 5-7: Zyklusüberwachungszeit überschritten Quittungsverzug beim Datenaustausch mit der Peripherie) Adressierfehler bei digitalen Eingängen und Ausgängen mit Prozeßabbild Stoppzustand durch Stoppschalter in Stellung STOP - Stoppzustand durch Befehl vom PG Stoppzustand nach Bearbeitung der STEP-5- Operation ’STP’...
Seite 228
Steuerbits und Unterbrechungsstack STOERUNGSURSACHE USTACK- Bedeutung (aufgerufener Fehler-OB) Kennung Fortsetzung 2 der Tabelle 5-7: WECK Weckfehler: Vor oder während der Bearbeitung eines bestimmten Weckalarm-OBs ist ein weiterer Weckalarm für diesen OB ausgelöst worden DOPP Doppelfehler: Eine noch aktive Fehlerprogrammbearbeitungs- ebene (ADF, BCF, LZF, QVZ, REG-FE, ZYK) wird ein zweites Mal aktiviert (NEUSTART erforderlich) Programmieranleitung CPU 928B...
Steuerbits und Unterbrechungsstack 5.3.3 Beispiele zur Fehler- diagnose über USTACK Beispiel 1: Bild 5-3 zeigt Ihnen den Aufbau des USTACK in Zusammenhang mit den aufgetre- tenen Unterbrechungen. - Die Programmbearbeitungsebene ZYKLUS (OB 1) wird unterbrochen durch das Auftreten eines Interrupts. - Daraufhin wird die Programmbearbeitungsebene WECKALARM aktiviert und der bearbeitet.
Seite 230
Steuerbits und Unterbrechungsstack Beispiel 2: In diesem Beispiel erkennt die CPU bei der Ausführung der Operation U Ex.y im OB 1 einen Adressierfehler. Dies führt zur Bearbeitung des OB 25. Augrund einer STP-Operation im PB 5 geht die CPU in den Stoppzustand (siehe Bild 5-4). PB 5 OB 25 0100...
Seite 231
Steuerbits und Unterbrechungsstack Fortsetzung 1 von Beispiel 2: Zwei unterbrochene Programmbearbeitungsebenen führen zum Aufbau eines zwei- stufigen USTACKs (siehe Bilder 5-5 und 5-6): UNTERBRECHUNGSSTACK TIEFE BEF-REG: SAZ: 1007 DB-ADR: BA-ADR: 0106 BST-STP: 0003 PB-NR.: DB-NR.: OB-NR.: REL-SAZ: 0007 DBL-REG.: EBENE: 003C UAMK: 0300...
Seite 232
Steuerbits und Unterbrechungsstack Fortsetzung 2 von Beispiel 2: UNTERBRECHUNGSSTACK TIEFE BEF-REG: SAZ: 001A DB-ADR: BA-ADR: 0000 U Ex.y BST-STP: 0001 OB-NR.: DB-NR.: REL-SAZ: 000A DBL-REG.: EBENE: 0004 UAMK: 0200 UALW: 0000 AKKU1: ERGEBNISANZEIGE:... STOERUNGSURSACHE: Bild 5-6 Beispiel 2 zur Auswertung des USTACKs: 2. USTACK-Ebene Programmieranleitung CPU 928B 5 - 28 C79000-B8500-C898, 01...
Fehlerbehandlung über Organisationsbausteine Fehlerbehandlung über Organisationsbausteine Wenn das Systemprogramm einen bestimmten Fehler erkannt hat, ruft es den für diesen Fall vorgesehenen Organisationsbaustein auf. Durch entsprechende Programmierung dieses Organisationsbausteins können Sie nun das weitere Verhalten der CPU festlegen. Abhängig davon, wie Sie den Organisationsbaustein programmieren, können Sie •...
Fehlerbehandlung über Organisationsbausteine Fehlerursache Aufruf Reaktion bei nicht geladenem OB Fortsetzung der Tabelle 5-8: Fehler bei der Bearbeitung der Reglerstruktur R64 (REG-FE) OB 34 STOP Kommunikationsfehler auf der zweiten seriellen Schnittstelle OB 35 keine (FE-3) mit DX-0-Voreinstellung. Reaktion bei nicht Die Reaktion bei nicht gelademem Organisationsbaustein ist fehlerab- geladenem hängig:...
Seite 235
Fehlerbehandlung über Organisationsbausteine Wenn Sie den betreffenden Organisationsbaustein nicht programmie- ren wollen, haben Sie die Möglichkeit, durch entsprechende Parame- trierung des Datenbausteins DX 0 den Übergang der CPU in den Stoppzustand zu verhindern. Unterbrechungen bei der Nachdem das Systemprogramm den betreffenden Organisationsbau- Bearbeitung der stein aufgerufen hat, wird das darin enthaltene Anwenderprogramm Fehler-Organisations-...
Fehler im ANLAUF Fehler im ANLAUF Bei der Initialisierung und im Anlauf auftretende Störungs- und Feh- lerursachen können dazu führen, daß das Anlaufprogramm abgebro- chen wird und die CPU in den Stoppzustand übergeht. Im Anlaufprogramm (Organisationsbausteine OB 20, 21 und 22) auf- tretende Unterbrechungsursachen werden wie im ZYKLUS behandelt.
Fehler im ANLAUF Steuerbit oder Kennung Erläuterung im USTACK Fortsetzung der Tabelle 5-9: DB2-FE Fehler bei der Auswertung des DB 2 der Regler- struktur R64 DX0-FE Fehler bei der Auswertung des Datenbausteins DX 0 oder Fehler bei der Auswertung des Datenbausteins DX 2 Diese Fehler werden nachfolgend näher erläutert.
Fehler im ANLAUF 5.5.2 DB1-FE (DB-1-Fehler) Fehler bei der Auswertung des DB 1 zum Aufbau der Adreßliste für die Prozeßabbildaktualisierung • • fehlender DB 1 im Mehrprozessorbetrieb oder • • fehlerhafte DB1-Adreßliste bei NEUSTART. Hinweis Im Mehrprozessorbetrieb wird bei allen Anlaufarten geprüft, ob der DB 1 vorhanden ist.
Fehler im ANLAUF Fehlerkennung Erläuterung BS 3 BS 4 Fortsetzung der Tabelle 5-11: 041BH yyyyH Quittungsverzug bei Koppelmerker-Eingang yyyy =Adresse des nicht quittierten Koppelmerkerbytes 041CH yyyyH Quittungsverzug bei Koppelmerker-Ausgang yyyy =Adresse des nicht quittierten Koppel- merkerbytes 5.5.3 DB2-FE (DB-2-Fehler) Fehler bei der Auswertung des Parametrierungs-Datenbaustein DB 2 der Reglerstruktur R64 (Reglerinitialisierung).
Fehler im ANLAUF 5.5.4 DX0-FE (DX-0- oder DX-2-Fehler) Hinweis DX-0-Fehler und DX-2-Fehler haben ein gemeinsames Steuerbit (DX0-FE) in der Steuerbit-Maske. Fehler bei der Auswertung Bei einem DX-0-Fehler finden Sie in den Systemdatenwörtern BS 3 des Datenbausteins DX 0 und BS 4 Fehlerkennungen, die den aufgetretenen Fehler näher defi- nieren.
Seite 241
Fehler im ANLAUF Fehlerkennung Erläuterung BS 3 BS 4 Fortsetzung der Tabelle 5-14: 0453H yyyyH Kopplungstyp unzulässig yyyy = Kopplungstyp 0454H xx00H Datenkennung für stat. Parametersatz ungültig ( ungleich 44H, 58H) xx = Datenkennnung 0455H xxyyH Baustein für statischen Parametersatz unzulässig xx = Kennung / yy = DB-Nummer 0456H...
Fehler im RUN und im ANLAUF Fehler im RUN und im ANLAUF Im Betriebszustand RUN kann eine zyklische, eine zeit- oder alarmgesteu- erte Programmbearbeitung oder eine Reglerbearbeitung an Befehls- grenzen unterbrochen werden durch das Auftreten von Störungen wie z. B. Ausfall der Versorgungsspannung am Zentralgerät oder Überlauf des Bausteinstacks .
Fehler im RUN und im ANLAUF Fehler, bei denen ein Fehler-OB aufgerufen wird Tabelle 5-16 Fehler- und Unterbrechungsursachen im ANLAUF und RUN, bei denen ein Fehler-OB aufgerufen wird Steuerbit auf- oder Kennung Erläuterung gerufe- im USTACK ner OB Befehlscodefehler: Substitutionsfehler OB 27 Operationscodefehler OB 29...
Fehler im RUN und im ANLAUF 5.6.1 BCF (Befehlscodefehler) Ein Befehlscodefehler tritt dadurch auf, daß die CPU einen STEP-5- Befehl des Anwenderprogramms nicht interpretieren oder ausführen kann. Alle zulässigen Befehlscodes sind in der Operationsliste aufgeli- stet. Der Befehl, der den entsprechenden Befehlscodefehler verursacht, wird nicht ausgeführt.
Fehler im RUN und im ANLAUF Operationscodefehler Ein Operationscodefehler wird von der CPU bei der Bearbeitung eines (OB 29) STEP-5-Programms festgestellt, wenn ein Befehl programmiert wor- den ist, der nicht zum STEP-5-Befehlsumfang der CPU 928B gehört (z.B. können RU- und SU-Befehle mit dem PG programmiert, jedoch von den CPUs 928B, 928, 922 (R-Prozessor) und 921 (S-Prozessor) im AG 135U nicht interpretiert werden).
Fehler im RUN und im ANLAUF Parameterfehler Ein unzulässiger Parameter tritt auf, wenn ein Befehl mit einem Para- (OB 30) meter, der für die entsprechende CPU unzulässig ist, programmiert worden ist (z. B. Aufruf eines reservierten Datenbausteins) oder wenn eine nicht vorhandene Sonderfunktion aufgerufen wird. Wenn ein unzulässiger Parameter von der CPU erkannt wird, unter- bricht das Systemprogramm die Bearbeitung des Anwenderpro- gramms und ruft den Organisationsbaustein OB 30 auf, wenn dieser...
Fehler im RUN und im ANLAUF Fehlerkennung Erläuterung AKKU-1-L AKKU-2-L (unzulässiger Parameter bei ..) Fortsetzung der Tabelle 5-19: 183BH – L SD/T SD Parameter >1020 183CH – E DB/EX DX Parameter 0, 1 oder 2 (DB bzw. DX 0, 1, 2 nicht erzeugbar) 5.6.2 LZF (Laufzeitfehler) Ein Laufzeitfehler tritt dadurch auf, daß...
Fehler im RUN und im ANLAUF Bei Aufruf des OB 19 stehen im AKKU 1 zusätzliche Informationen, die den aufgetretenen Fehler näher erläutern: Tabelle 5-20 LZF – Aufruf eines nicht geladenen Bausteins Fehlerkennung Erläuterung AKKU-1-L AKKU-2-L 1A01H – Nicht geladener Datenbaustein bei A DB 1A02H –...
Fehler im RUN und im ANLAUF Beim Erkennen eines Lade-/Transferfehlers ruft das Systemprogramm den Organisationsbaustein OB 32 auf, wenn dieser geladen ist. Der Be- fehl, der den Transferfehler verursacht hat, wird nicht mehr bearbeitet. Bei Aufruf von OB 32 stehen im AKKU 1 zusätzliche Informationen, die den aufgetretenen Fehler näher erläutern: Tabelle 5-21 LZF –...
Seite 250
Fehler im RUN und im ANLAUF Bei Aufruf des OB 31 stehen in AKKU 1 und AKKU 2 zusätzliche In- formationen, die den aufgetretenen Fehler näher erläutern: Fehleranzeigen von verschiedenen Operationen, OB 254/255 und OB 250 Tabelle 5-22 LZF – Sonstige Laufzeitfehler/Teil 1 Fehlerkennung Erläuterung AKKU-1-L AKKU-2-L...
Seite 251
Fehler im RUN und im ANLAUF Fehleranzeigen von OB 182 Tabelle 5-23 LZF – Sonstige Laufzeitfehler/Teil 2 (Anzeigen von OB 182) Fehlerkennung Erläuterung AKKU-1-L AKKU-2-L 1A34H 0001H Beschreibung des Datenfeldes ist unzulässig 1A34H 0100H Adreßbereichs-Typ ist unzulässig 1A34H 0101H Datenbaustein-Nr. ist unzulässig 1A34H 0102H "Nummer des ersten Parameterwortes"...
Seite 252
Fehler im RUN und im ANLAUF Fehleranzeigen Die nachfolgende Tabelle enthält Anzeigen von OB 110,OB 121, verschiedener OB 122, OB 221, OB 240, OB 241, OB 242 un d OB 250. Sonderfunktions-OBs Tabelle 5-24 LZF – Sonstige Laufzeitfehler/Teil 3 Fehlerkennung Erläuterung AKKU-1-L AKKU-2-L 1A35H...
Seite 253
Fehler im RUN und im ANLAUF Fehleranzeigen von OB 150 Tabelle 5-25 LZF – Sonstige Laufzeitfehler/Teil 4 (Anzeigen von OB 150) Fehlerkennung Erläuterung AKKU-1-L AKKU-2-L 1A4CH 0001H Funktionsnummer ist unzulässig (=0 oder >2) 1A4CH 0100H Adreßbereichs-Typ ist unzulässig 1A4CH 0101H Datenbaustein-Nr.
Seite 254
Fehler im RUN und im ANLAUF Fehleranzeigen von OB 151, OB 152 und OB 153 Tabelle 5-26 LZF – Sonstige Laufzeitfehler/Teil 5 (Anzeigen von OB 151, OB 152und OB 153) Fehlerkennung Erläuterung AKKU-1-L AKKU-2-L Anzeigen von OB 151 1A4DH 0001H Funktionsnummer ist unzulässig (=0 oder >2) 1A4DH...
Seite 255
Fehler im RUN und im ANLAUF Fehleranzeigen von verschiedenen Systemoperationen Tabelle 5-27 LZF – Sonstige Laufzeitfehler/Teil 6 (Anzeigen von verschiedenen Systemoperationen) Fehlerkennung Erläuterung AKKU-1-L AKKU-2-L 1A50H – LRW, TRW: Die errechnete Speicheradresse <BR+ Konstante> liegt nicht im Bereich "0 .. EDFFH" 1A51H –...
Seite 256
Fehler im RUN und im ANLAUF Fehlerkennung Erläuterung AKKU-1-L AKKU-2-L Fortsetzung der Tabelle 5-27: 1A58H – TNW, TNB: Der Quellblock liegt nicht vollständig in einem dieser Bereiche: 0000 .. 7FFF Anwenderspeicher 8000 .. DD7F Datenbaustein-RAM DD80 .. E3FF DB 0 E400 ..
Fehler im RUN und im ANLAUF 5.6.3 ADF (Adressierfehler) Ein Adressierfehler tritt auf, wenn mit einer STEP-5-Operation ein Ein- oder Ausgang im Prozeßabbild angesprochen wird, dem zum Zeitpunkt des letzten NEUSTARTs keine Peripheriebaugruppe zuge- ordnet war (Baugruppe war nicht gesteckt, defekt oder nicht im Daten- baustein DB 1 der CPU angegeben).
Fehler im RUN und im ANLAUF Fehleranzeigen In den AKKUs 1 und 2 stehen dabei zusätzliche Informationen, die den aufgetretenen Fehler näher erläutern AKKU-1-L = 1E23H AKKU-2-L = QVZ-Adresse QVZ-Adresse Die QVZ-Addresse weist auf dasjenige Peripheriebyte, welches als er- stes einen QVZ erzeugt hat. In der Regel ist dies das Byte mit der niedrigsten Adresse bei Peripheriebefehlen.
Seite 259
Fehler im RUN und im ANLAUF Hinweis Wenn die aufgerufenen Organisationsbausteine nicht programmiert sind, wird die Bearbeitung des Anwender- programms fortgesetzt. Bei einem aufgetretenen Quittungsverzug liest die CPU "ersatz- weise" den Wert "00H" ein und arbeitet, falls der QVZ quittiert wird, mit diesem Wert weiter.
Fehler im RUN und im ANLAUF 5.6.5 ZYK (Zykluszeitfehler) Die Zykluszeit umfaßt die gesamte Zeitdauer einer Bearbeitung des zy- klischen Programms. Eine Überschreitung der in der CPU eingestell- ten Zyklusüberwachungszeit kann ausgelöst werden z.B. durch fehlerhafte Programmierung, durch eine Programmschleife in einem Funktionsbaustein, durch Ausfall des Taktgenerators oder durch System- leistungen wie z.B.
Fehler im RUN und im ANLAUF 5.6.6 WECK-FE (Weckfehler) Wenn für einen bestimmten Weckalarm-OB eine erneute Anforderung auftritt, bevor seine letzte Anforderung vollständig bearbeitet ist, er- kennt das Systemprogramm einen Weckfehler und ruft den Organisa- tionsbaustein OB 33 auf, wenn dieser geladen ist, oder die CPU geht in den Stoppzustand.
Fehler im RUN und im ANLAUF 5.6.7 REG-FE (Reglerfehler) Ein Fehler beim Bearbeiten der vom Systemprogramm unterstützten Standard-Funktionsbausteine der Reglerstruktur R 64 wird als Regler- fehler erkannt. Hinweis Weckfehler werden vom Systemprogramm immer dann erkannt, wenn ein bestimmter Weckalarm-OB nicht innerhalb seines Zeitrasters (z.
Seite 263
Fehler im RUN und im ANLAUF Bei Aufruf des OB 34 stehen in den AKKUs 1 und 2 zusätzliche Infor- mationen, die den aufgetretenen Fehler näher erläutern. Tabelle 5-30 REG-FE– Anzeigen Fehlerkennung Erläuterung AKKU-1-L AKKU-2-L 0801H DByyH Abtastzeitfehler yy = Nummer des betreffenden Regler-Datenbausteins 0802H DByyH...
Fehler im RUN und im ANLAUF Abtastzeitfehler Nach Ablauf der vorgegebenen Abtastzeit wird das zyklische Pro- gramm an der nächsten Bausteingrenze abgebrochen und die Reglerbe- arbeitung eingeschoben. Nun ist es möglich, daß die Bearbeitung "langer" Bausteine zu viel Zeit in Anspruch nimmt und in der Folge die Reglerbearbeitung "außer Tritt"...
Fehler im RUN und im ANLAUF 5.6.9 Kommunikationsfehler Treten auf der zweiten seriellen Schnittstelle bei Rechnerkopplung (FE-3) RK 517, Datenübertragung mit Prozedur 3964/3964R, Datenübertra- gung mit "offenem Treiber" oder bei Datenübertragung mit SINEC L1 Störungen auf, so ruft das Systemprogramm den Organisationsbau- stein OB 35 auf und übergibt in AKKU 1 zusätzliche Informationen, die die aufgetretenen Störungen näher erläutern.
Seite 266
Fehler im RUN und im ANLAUF BREAK Bei BREAK auf der Schnittstelle wird der OB 35 nur zu Beginn des BREAK-Zustandes aufgerufen. Fehlernummer 1 bis Hier werden maximal 3 Fehlernummern zu den auf der Schnittstelle er- Fehlernummer 3 kannten Störungen eingetragen und zwar in der Reihenfolge, wie sie vom System erkannt werden.
Integrierte Sonderfunktionen Inhalt von Kapitel 6 Einführung ............. 6 - 6 OB 110: Zugiff auf das Anzeigenbyte .
Seite 268
Inhalt 6.17 OB 182: Datenbereich kopieren ..........6 - 65 6.18 OB 190/192: Merker in Datenbaustein übertragen .
Seite 269
Inhalt 6.32 OB 250/251: Regelung/ PID-Algorithmus ........6 - 110 6.32.1 Funktionsbeschreibung des PID-Reglers .
Seite 270
Inhalt Programmieranleitung CPU 928B 6 - 4 C79000-B8500-C898, 01...
Seite 271
Integrierte Sonderfunktionen Das nachfolgende Kapitel schildert Ihnen, welche integrierten Sonder- funktionen das Systemprogramm enthält, wo Sie diese anwenden kön- nen und wie Sie die Sonderfunktions-OBs aufrufen und parametrieren müssen. Ferner erfahren Sie, wie Sie Fehler bei der Bearbeitung einer Sonder- funktion erkennen und per Programm bearbeiten können.
Einführung Einführung Das Betriebssystem der CPU 928B bietet Ihnen Sonderfunktionen an, die Sie bei Bedarf mit einem bedingten (SPB OB x) oder einem unbe- dingten (SPA OB x) Bausteinaufruf aufrufen können. Für diese Sonder- funktionen sind die Organisationsbausteine OB 100 bis 255 reserviert. Diese Funktionen werden als Integrierte Sonderfunktionen bezeichnet, da sie ein fester Bestandteil des Systemprogramms sind.
Seite 273
Einführung Baustein Funktion siehe Abschnitt/Seite Fortsetzung der Tabelle 6-1: OB 220 Vorzeichenerweiterung 6.22/6 - 90 OB 221 Zyklusüberwachungszeit einstellen 6.23/6 - 91 OB 222 Zyklusüberwachungszeit neu starten 6.24/6 - 92 OB 223 Anlaufarten vergleichen 6.25/6 - 93 OB 224 Koppelmerker blockweise übertragen 6.26/6 - 94 OB 226 Wort aus Systemprogramm lesen...
Einführung Schnittstellen Als Schnittstellen zu den Sonderfunktionen stehen Ihnen bei der Pro- grammierung zur Verfügung: • • Bausteinaufruf Aufruf mit bedingtem/unbedingtem Bausteinaufruf SPB .. / SPA .. • • Parameter Parameter zur Voreinstellung über AKKU 1 und evtl. AKKU 2 und/oder Speicherzellen.
Seite 275
Einführung Fehlerbearbeitung Tritt bei der Bearbeitung der aufgerufenen Sonderfunktion ein Fehler auf, so reagiert das Systemprogramm darauf mit einer speziellen Feh- lerreaktion. Hinsichtlich dieser Fehlerreaktion des Systemprogramms können zwei Gruppen von Sonderfunktionen unterschieden werden. Fehler-OB, Akku-Anzeigen Zur Gruppe 1 zählen alle Sonderfunktionen, bei denen im Fehlerfall ein Fehler-Organisationsbaustein (Fehler-OB) aufgerufen wird, in dem Sie das weitere Verhalten der CPU festlegen können.
Einführung VKE , Bei einigen Sonderfunktionen werden für das Anzeigen von sonder- ANZ 0/ANZ 1 funktionsspezifischen Fehlern das VKE oder die Anzeigen ANZ 0/ANZ 1 beeinflußt. Wenn bei der Bearbeitung dieser Sonderfunktionen ein Fehler auftritt, wird in den meisten Fällen das VKE gesetzt (VKE = 1). Sie können in Ihrem STEP-5-Programm bei diesen Sonderfunktionen mit einer SPB- Operation (Springe bedingt) das VKE auswerten und damit auf einen Fehler reagieren.
OB 110: Zugiff auf das Anzeigenbyte OB 110: Zugiff auf das Anzeigenbyte Funktion Mit Hilfe des OB 110 können Sie das Anzeigenregister mit dem Inhalt des AKKU 1 beschreiben, mit ’1’ maskieren oder mit ’0’ maskieren. Belegung des AKKU 1 für den Zugriff auf das Anzeigenregister STA VKE ERAB...
Seite 278
OB 110: Zugiff auf das Anzeigenbyte Ergebnis Nach Ablauf des OB 110 ist das Anzeigenbyte entsprechend Funktion und AKKU-1-Inhalt verändert. • • Fehlerfälle Funktions-Nr. in AKKU-2-L ungleich 1, 2 oder 3. • • In AKKU 1 ist eines der Bits Nr 8 bis Nr. 31 gesetzt. Im Fehlerfall wird der OB 31 (Sonstige Laufzeitfehler) aufgerufen.
OB 111: AKKU 1, 2, 3 und 4 löschen OB 111: AKKU 1, 2, 3 und 4 löschen Funktion Durch den einmaligen Aufruf des Sonderfunktions-Organisations- bausteins OB 111 können Sie die Inhalte der AKKUs 1 bis 4 auf einfache Weise löschen: Der OB 111 überschreibt alle vier Register mit ’0’.
OB 112/113: AKKU-Roll-Up/AKKU-Roll-Down OB 112/113: AKKU-Roll-Up/AKKU-Roll-Down Funktion OB 112 und OB 113 bewirken ein "Rollen" der AKKU-Inhalte in auf- steigender bzw. absteigender Richtung: • • Der OB 112 (Roll Up) verschiebt den Inhalt von AKKU 1 in den AKKU 2, den Inhalt von AKKU 2 in den AKKU 3 usw... •...
OB 120: "Alarme gemeinsam sperren" ein-/ausschalten OB 120: "Alarme gemeinsam sperren" ein-/ausschalten Ein STEP-5-Programm kann an Baustein- oder Befehlsgrenzen von Pro- grammen höherer Priorität unterbrochen werden. Zu diesen höherprio- ren Programmbearbeitungsebenen gehören die Prozeß- und alle Weckalarme (zyklische Weckalarme, uhrzeitgesteuerter Weckalarm und Verzögerungsalarm).
Seite 283
OB 120: "Alarme gemeinsam sperren" ein-/ausschalten Die Bits des Steuerdoppelwortes haben folgende Bedeutung: Bit-Nr. im Steuerdop- Funktion pelwort 0 = ’1’ alle zyklischen Weckalarme werden gesperrt 1 = ’1’ der uhrzeitgesteuerte Weckalarm wird gesperrt 2 = ’1’ alle Prozeßalarme werden gesperrt 3 = ’1’...
Seite 284
OB 120: "Alarme gemeinsam sperren" ein-/ausschalten Ergebnis Der Aufruf des OB 120 bringt folgende Ergebnisse: Inhalt von AKKU 1 Funkt.-Nr. in AKKU-2-L vorher nachher Steuerwort Steuerwort Maske neues Steuerwort Maske neues Steuerwort • • Fehlerfälle unzulässige Funktions-Nr. in AKKU-2-L • • eines der reservierten Bits in AKKU 1 (Nr.
OB 121: "Weckalarme einzeln sperren" ein-/ausschalten OB 121: "Weckalarme einzeln sperren" ein-/ausschalten Mit Hilfe des OB 121 können Sie das Einschachteln von bestimmten Weckalarm-OBs (Weckalarme mit festem Zeitraster) an einer oder an mehreren aufeinanderfolgenden Baustein- oder Befehlsgrenzen verhin- dern. Beispielsweise können Sie für einen bestimmten Programmteil festle- gen, daß...
Seite 286
OB 121: "Weckalarme einzeln sperren" ein-/ausschalten Die Bits des Steuerwortes haben folgende Bedeutung: Bit-Nr. Alarm 0 bis 2 reserviert, diese Bits müssen ’0’ sein! zyklische Weckalarm mit festem Zeitraster: 3 = ’1’ 10 ms (OB 10) 4 = ’1’ 20 ms (OB 11) 5 = ’1’...
Seite 287
OB 121: "Weckalarme einzeln sperren" ein-/ausschalten • • unzulässige Funktions-Nr. in AKKU-2-L Fehlerfälle • • eines der reservierten Bits in AKKU 1 (Nr. 4 bis 31) ist gleich ’1’ Im Fehlerfall wird der OB 31 (Sonstige Laufzeitfehler) aufgerufen. Ist der OB 31 nicht geladen, geht die CPU in den Stoppzustand. In beiden Fällen wird in AKKU-1-L die Fehlerkennung 1A4AH hin- terlegt.
OB 122: "Alarme gemeinsam verzögern" ein-/ausschalten OB 122: "Alarme gemeinsam verzögern" ein-/ausschalten Ein STEP-5-Programm kann an Baustein- oder Befehlsgrenzen von Pro- grammen höherer Priorität unterbrochen werden. Zu diesen höherprio- ren Programmbearbeitungsebenen gehören die Prozeß- und alle Weckalarme (zyklische Weckalarme, uhrzeitgesteuerter Weckalarm und Verzögerungsalarm).
Seite 289
OB 122: "Alarme gemeinsam verzögern" ein-/ausschalten Die Bits des Steuerdoppelwortes haben folgende Bedeutung: Bit-Nr. im Steuerdop- Funktion pelwort 0 = ’1’ alle zyklischen Weckalarme werden verzögert 1 = ’1’ der uhrzeitgesteuerte Weckalarm wird verzögert 2 = ’1’ alle Prozeßalarme werden verzögert 3 = ’1’...
Seite 290
OB 122: "Alarme gemeinsam verzögern" ein-/ausschalten Ergebnis Der Aufruf des OB 122 bringt folgende Ergebnisse: Inhalt von AKKU 1 Funkt.-Nr. in AKKU-2-L vorher nachher Steuerwort Steuerwort Maske neues Steuerwort Maske neues Steuerwort • • Fehlerfälle unzulässige Funktions-Nr. in AKKU-2-L • • eines der reservierten Bits in AKKU 1 (Nr.
OB 123: "Weckalarme einzeln verzögern" ein-/ausschalten OB 123: "Weckalarme einzeln verzögern" ein-/ausschalten Mit Hilfe des OB 123 können Sie das Einschachteln von bestimmten Weckalarm-OB (Weckalarme mit festem Zeitraster) an einer oder an mehreren aufeinanderfolgenden Baustein- oder Befehlsgrenzen verhin- dern. Funktion Der OB 123 hat Auswirkungen auf die Reaktion auf Weckalarme: "Weckalarme einzeln verzögern"...
Seite 292
OB 123: "Weckalarme einzeln verzögern" ein-/ausschalten Die Bits des Steuerwortes haben folgende Bedeutung: Bit-Nr. Alarm 0 bis 2 reserviert, diese Bits müssen ’0’ sein! zyklische Weckalarm mit festem Zeitraster: 3 = ’1’ 10 ms (OB 10) 4 = ’1’ 20 ms (OB 11) 5 = ’1’...
Seite 293
OB 123: "Weckalarme einzeln verzögern" ein-/ausschalten • • unzulässige Funktions-Nr. in AKKU-2-L Fehlerfälle • • eines der reservierten Bits in AKKU 1 (Nr. 4 bis 31) ist gleich ’1’ Im Fehlerfall wird der OB 31 (Sonstige Laufzeitfehler) aufgerufen. Ist der OB 31 nicht geladen, geht die CPU in den Stoppzustand. In beiden Fällen wird in AKKU-1-L die Fehlerkennung 1A4BH hinter- legt.
OB 150: Systemzeit stellen/lesen OB 150: Systemzeit stellen/lesen • • Eigenschaften der Die Auflösung beträgt 10ms beim Lesen und 1s Systemzeit beim Setzen. • • Schaltjahre werden berücksichtigt. • • Stundendarstellung wahlweise 24 Stunden oder 12 Stunden "am" (Vormittagszeit) und "pm" (Nachmittagszeit). •...
Seite 295
OB 150: Systemzeit stellen/lesen 1b) Format des Datenfeldes beim Lesen der Hardwareuhr Bit-Nr. 1. Wort Sekunden 1/100 Sekunde 2. Wort Format Stunden Minuten 3. Wort Monatstag Wochentag 4. Wort Jahr Monat Die Zeitparameter haben folgende Bedeutung, zulässige Werteberei- che und Darstellung: Parameter zulässiger Wertebereich Darstellung...
Seite 296
OB 150: Systemzeit stellen/lesen 2. Akkus 2a) AKKU-2-L Der AKKU-2-L enthält Angaben zur gewünschten Funktion und zum verwendeten Datenfeld. Er muß folgenden Aufbau haben: Bit-Nr. Funktions-Nr. Adreßbereichs-Typ Datenbaustein-Nr. Parameter im AKKU-2-L Funktions-Nr., zulässige Werte: 1 = Systemzeit stellen 2 = Zystemzeit lesen Adreßbereichs-Typ, zulässige Werte: 1 = DB-Datenbaustein...
Seite 297
OB 150: Systemzeit stellen/lesen Tabelle 6-2 Fehlerkennungen des OB 150 AKKU-1-L AKKU-2-L deutung aufger. OB 1A07H – Datenbaustein nicht geladen OB 19 1A4CH 0001H Funktions-Nr. = 0 oder > 2 OB 31 0010H Adreßbereich-Typ unzulässig 0101H Datenbaustein-Nr. unzulässig 0102H "Nummer des ersten Datenfeldwortes" unzulässig Datenbausteinlänge im Bausteinkopf <...
OB 151: Zeit für uhrzeitgesteuerten Weckalarm stellen/lesen 6.10 OB 151: Zeit für uhrzeitgesteuerten Weckalarm stellen/lesen Funktion Durch Aufruf des OB 151 können Sie • • die CPU 928B dazu veranlassen, zu einer vorgegebenen Zeit den uhrzeitgesteuertern Weckalarm ("Zeitauftrag" – OB 9, siehe Abschnitt 4.5.2) zu aktivieren: - minütlich - stündlich...
OB 151: Zeit für uhrzeitgesteuerten Weckalarm stellen/lesen Die Parameter haben folgende Bedeutung, zulässige Wertebereiche und Darstellung: Parameter zulässiger Wertebereich Darstellung Auftragsart 0 bis 7 mit: BCD-Format 0: Auftrag stornieren bzw. kein Auftrag aktiv 1: minütlich 2: stündlich 3: täglich 4: wöchentlich 5: monatlich 6: jährlich 7: einmalig...
Seite 301
OB 151: Zeit für uhrzeitgesteuerten Weckalarm stellen/lesen 2. Akkus 2a) AKKU-2-L Der AKKU-2-L enthält Angaben zur gewünschten Funktion und zum verwendeten Datenfeld. Er muß folgenden Aufbau haben: Bit-Nr. Funktions-Nr. Adreßbereichs-Typ Datenbaustein-Nr. Parameter im AKKU-2-L Funktions-Nr., zulässige Werte: 1 = Auftrag erzeugen 2 = Auftragsstatus lesen Adreßbereichs-Typ, zulässige Werte:...
Seite 302
OB 151: Zeit für uhrzeitgesteuerten Weckalarm stellen/lesen Hinweis Wenn beim Auslesen des Zeitauftrags im Datenfeld die Auftrags- art ’0’ und alle restlichen Parameter ’F’ oder ’FF’ (hexadezimal) sind, ist kein Zeitauftrag aktiv. Dieser Zustand kann entstehen a) wenn NEUSTART durchgeführt wurde, ohne einen Zeitauftrag zu erzeugen, b) wenn ein einmaliger Zeitauftrag fällig war oder...
Seite 303
OB 151: Zeit für uhrzeitgesteuerten Weckalarm stellen/lesen Was Sie bei den Abhängig davon, wann ein uhrzeitgesteuerter Weckalarm (Zeit- Zeitparametern beachten auftrag) ausgelöst werden soll, müssen Sie die einzelnen Zeitpara- müssen meter in bestimmten Kombinationen vorgeben. Dabei müssen Sie – abhängig vom gewählten Zeitpunkt für den uhrzeitgesteuerten Weck- alarm –...
Seite 304
OB 151: Zeit für uhrzeitgesteuerten Weckalarm stellen/lesen Verschiedene Zeitaufträge (im 24-Stunden-Anzeigeformat), 1.Fortsetzung : 3. "Auftrag täglich um 5:32:47 Uhr": Sie müssen angeben: Auftragsart = 3 (Funktions-Nr. in AKKU-2-L = 1) Sekunden Minuten Stunden 4. "Auftrag wöchentlich, dienstags um10:50:00 Uhr": Sie müssen angeben: Auftragsart = 4 (Funktions-Nr.
Seite 305
OB 151: Zeit für uhrzeitgesteuerten Weckalarm stellen/lesen Verschiedene Zeitaufträge (im 24-Stunden-Anzeigeformat), 2.Fortsetzung : "Auftrag stornieren": Sie müssen angeben: Auftragsart = (Funktions-Nr. in AKKU-2-L = 1) 9. "Zeitauftrag auslesen": Sie müssen angeben: Funktions-Nr. in AKKU-2-L = 2 Falls kein Auftrag aktiv ist, erhalten Sie als Ergebnis im Datenfeld: Datenfeldwort 0: FFFF H Datenfeldwort 1:...
OB 152: Zyklusstatistik 6.11 OB 152: Zyklusstatistik In der CPU 928B können eine Reihe statistischer Daten zur Zyklus- dauer erfaßt werden (Zyklusstatistik). Mit Hilfe des OB 152 können Sie die Zyklusstatistik initialisieren, die Statistikdaten auslesen und das Er- fassen der Statistikdaten ein- und ausschalten. Übersicht Die statistischen Daten umfassen •...
Seite 307
OB 152: Zyklusstatistik Wurde die Statistik-Funktion mit dem OB 152 eingeschaltet, so werden die statistischen Daten an jeder Zyklusgrenze aktualisiert und können über Aufruf des OB 152 ausgelesen werden. Wenn Sie die Statistikfunktion nicht mehr benötigen, so können Sie sie im Betriebszustand ANLAUF oder RUN über den OB 152 wieder ausschalten.
Seite 308
OB 152: Zyklusstatistik Berechnung des Mittelwertes Der Mittelwert wird durch den OB 152 nach folgendem Algorithmus berechnet: In einem systeminternen Umlaufpuffer wird bei jedem Aktualisieren der statistischen Daten der Wert von LASTZYK gespeichert. Dieser Puf- fer kann maximal 256 Werte aufnehmen. Ist der Puffer gefüllt, so fällt der jeweils älteste Wert von LASTZYK heraus, und der neueste Wert wird abgespeichert.
Seite 309
OB 152: Zyklusstatistik Parameter AKKU-1-L Der AKKU-1-L enthält die Funktions-Nr.; er muß folgenden Aufbau haben: Bit-Nr. Funktions-Nr. Funktions-Nr. zulässige Werte: siehe Tabelle 6-4 Bit-Nr. 4 bis 15 müssen ’0’ sein! Ergebnis Nach Aufruf des OB 152 sind die Anzeigen OS, OR und ERAB = ’0’, das VKE ist bis auf die nachfolgend aufgeführten Fälle ebenfalls = ’0’.
Seite 310
OB 152: Zyklusstatistik Fehlerfall Der Fehlerfall tritt ein, wenn im AKKU-1-L eine falsche Funktions- Nr. übergeben wird (erlaubt sind nur die Nummern 0 bis 3, 8 und 15). Es wird der OB 31 (sonstige Laufzeitfehler) aufgerufen. Ist der OB 31 nicht geladen, geht die CPU in den Stoppzustand. In beiden Fällen wird in AKKU-1-L die Fehlerennung 1A4EH und in AKKU-2-L Fehlerkennung 0001H hinterlegt.
Seite 311
OB 152: Zyklusstatistik Beim Initialisieren der statistischen Daten werden außer den in der Ta- belle aufgeführten Vorbesetzungen der Daten systemintern der Um- laufpuffer für die Mittelwertbildung gelöscht sowie ein interner Merker für Zykluszählerüberlauf rückgesetzt. Aufruf des OB 152 in einem Je nach Anlaufart liefert der Aufruf des OB 152 zum Lesen der statisti- Anlauf-OB schen Daten in AKKU-1-L und AKKU-2-L folgende Werte (grau un-...
OB 152: Zyklusstatistik Initialisieren der statistischen Nachfolgende Tabelle zeigt Ihnen, wie bei einer Initialiserung der statisti- Daten durch Aufruf des schen Daten diese durch Aufruf des OB 152 im ZYKLUS verändert wer- OB 152 den. Die grau unterlegten Spalten enthalten die beim Lesen der statistischen Daten übergebenen Werte.
Seite 313
OB 152: Zyklusstatistik Verfälschung der Durch das Auftreten bestimmter Ereignisse wird die Erfassung der Zy- statistischen Daten klusdauer für den aktuellen Zyklus gestört und führt dann zu falschen Werten. Daher werden in solchen Fällen die statistischen Daten für den betroffenen Zyklus nicht aktualisiert. Zu diesen Ereignissen gehören: •...
OB 153: Zeit für Verzögerungsalarm stellen/lesen 6.12 OB 153: Zeit für Verzögerungsalarm stellen/lesen Über den OB 153 können Sie sogenannte "Verzögerungsaufträge" an das Systemprogramm übergeben. Diese führen dazu, daß nach Ablauf einer vorgegebenen Verzögerungszeit ein "Verzögerungsalarm" bear- beitet wird (siehe OB 6, Abschnitt 4..5.3). Funktion Durch Aufruf des OB 153 können Sie •...
Seite 315
OB 153: Zeit für Verzögerungsalarm stellen/lesen Hinweis Ist beim Definieren einer Verzögerungszeit eine vorher definierte Verzögerungszeit noch nicht abgelaufen, so wird diese "verges- sen" und die neue Verzögerungszeit gestartet. Ergebnis Nach korrekter Bearbeitung des OB 153 sind die Anzeigenbits OR, ERAB und OS = 0.
Seite 316
OB 153: Zeit für Verzögerungsalarm stellen/lesen Verzögerungszeit stoppen (Auftrag stornieren): STEP-5-Operationen zum Aufrufen des OB 153: KF +2 Wert fuer AKKU-1-L: Funktions-Nr. = 2 fuer "Verzoegerungszeit stoppen" :SPA OB 153 OB 153 aufrufen Restzeit eines Verzögerungsauftrags auslesen): STEP-5-Operationen zum Aufrufen des OB 153: KF +3 Wert fuer AKKU-1-L: Funktions-Nr.
OB 160 bis 163: Zählschleifen 6.13 OB 160 bis 163: Zählschleifen Mit Hilfe dieser Sonderfunktions-Organisationsbausteine realisieren Sie Programmschleifen mit besonders günstiger Laufzeit. Funktion Die vier Organisationsbausteine OB 160, OB 161, OB 162 und OB 163 ermöglichen eine vierfache Schachtelung von Schleifen. Sie können damit in Systemdatenwörtern BS 60 bis 63 vier verschiedene Schleifenzähler einsetzen.
Seite 318
OB 160 bis 163: Zählschleifen Ergebnis Schleifenzähler im Systemdatenwort > 0: VKE wird gesetzt (VKE = 1) Schleifenzähler im Systemdatenwort = 0: VKE wird gelöscht (VKE = 0) Die restlichen Bit- und Wortanzeigen werden immer gelöscht. Die Akkumulatoren werden nicht verändert und nicht ausgewertet. So- mit stehen diese zu Beginn des nächsten Schleifendurchlaufs noch zur Verfügung und müssen nicht neu geladen werden.
OB 170: Bausteinstack (BSTACK) lesen 6.14 OB 170: Bausteinstack (BSTACK) lesen Im Bausteinstack sind, ausgehend vom OB 1 bzw. FB 0, alle Bausteine eingetragen, die nacheinander aufgerufen worden sind und deren Bear- beitung noch nicht abgeschlossen ist. Funktion Mit Hilfe des Sonderfunktions-Organisationsbausteins OB 170 kön- nen Sie die im BSTACK vorhandenen Einträge in einen Datenbaustein einlesen.
Seite 320
OB 170: Bausteinstack (BSTACK) lesen Ergebnis Nach erfolgreichem Aufruf des OB 170 • • steht im AKKU-2-L weiterhin der Offset im Datenbaustein, • • steht im AKKU-1-L die tatsächlich dargestellte Anzahl an BSTACK- Elementen • • wird das VKE gelöscht, •...
Seite 321
OB 170: Bausteinstack (BSTACK) lesen Bausteinkopf DW 0 Offset DW n DW n+1 letzter Eintrag im BSTACK (B = 1) DW n+2 DW n+3 Länge DW n+4 DW n+5 vorletzter Eintrag im BSTACK (B = 2) DW n+6 DW n+7 Länge ältere BSTACK-Einträge Bild 6-3...
Seite 322
OB 170: Bausteinstack (BSTACK) lesen • • Fehlerfälle kein Datenbaustein aufgeschlagen • • aufgeschlagener Datenbaustein nicht vorhanden oder nicht ausrei- chend lang, um die gewünschte Anzahl von BSTACK-Einträgen aufnehmen zu können • • unzulässige Parameter in AKKU 1 und AKKU 2 Im Fehlerfall werden das VKE sowie die Ergebnisanzeigen ANZ 0 und ANZ 1 gesetzt (VKE, ANZ 0 und ANZ 1 = 1), die übrigen Bit- und Wortanzeigen werden gelöscht.
Seite 323
OB 170: Bausteinstack (BSTACK) lesen Fortsetzung des Beispiels: Nach Aufruf des OB 170 ist der Datenbaustein DX 10 folgendermaßen belegt: DX 10 Bausteinkopf DW 0 Offset DW 16 Tiefe 1 DW 17 DW 18 Länge DW 19 DW 20 Tiefe 2 DW 21 DW 22 DW 23...
OB 180: Variabler Datenbaustein-Zugriff 6.15 OB 180: Variabler Datenbaustein-Zugriff DBA- DBL-Register Beim Aufschlagen eines Datenbausteins mit den Operationen A DB und AX DX wird das ’DBA’-Register (Datenbaustein-Anfangsadresse) mit der Adresse des Datenwortes DW 0 geladen, die im DB 0 hinterlegt ist. Zugriffe auf Datenbausteine mit Opertationen wie L DR 60 oder B DW 240 usw.
Seite 325
OB 180: Variabler Datenbaustein-Zugriff • • Arbeiten mit Datenbausteinen, die eine Länge größer 261 Wörter (5 Wörter Kopf) haben: Mit Hilfe des OB 180 können Sie ein "Zugriffs- fenster" von 256 Datenwörtern beliebig über einem Datenbaustein verschieben. • • Anwendung bei Datenstrukturen: Ein Datenbaustein kann in mehrere Datensätze mit gleicher Länge und gleicher Anordnung der darin enthaltenen Daten unterteilt sein.
OB 180: Variabler Datenbaustein-Zugriff Ergebnis Nach erfolgreichem Aufruf des OB 180 • • ist der Wert des DBA-Registers (= Adresse des DW 0) um den Wert des AKKU-1-L erhöht, • • ist der Wert des DBL-Registers um den Wert des AKKU-1-L erniedrigt, •...
Seite 327
OB 180: Variabler Datenbaustein-Zugriff Fortsetzung des Beispiels: Adresse DB 17 1516H 5 Wörter 1517H Bausteinkopf 151BH 151CH DW 0 151DH cccc 151EH dddd DW 1 151FH eeee DW 2 1520H ffff DW 3 gggg DW 4 1521H DW 5 1522H hhhh Bild 6-6 Verschieben der DB-Anfangsadresse...
OB 181: Datenbausteine (DB/DX) testen 6.16 OB 181: Datenbausteine (DB/DX) testen Mit dem Sonderfunktions-Organisationsbaustein OB 181 können Sie prüfen, • • ob ein bestimmter DB- oder DX-Datenbaustein vorhanden ist, • • unter welcher Adresse das erste Datenwort des Datenbausteins ab- gelegt ist, •...
Seite 329
OB 181: Datenbausteine (DB/DX) testen • • Der geprüfte Baustein ist in der CPU vorhanden: Ergebnis AKKU-1-L: Adresse des 1. Datenwortes (DW 0), AKKU-2-L: Länge des Datenbausteins in Wörtern (ohne Bausteinkopf) Beispiel: In AKKU-2-L steht der Wert ’7’: Der Datenbaustein besteht aus den Daten- wörtern DW 0 bis DW 6, VKE: = 0,...
OB 182: Datenbereich kopieren 6.17 OB 182: Datenbereich kopieren Funktion Der OB 182 kopiert einen Datenblock variabler Länge von einem Daten- baustein in einen anderen. Als Quell- und Zielbausteine können DB- und DX-Datenbausteine verwendet werden. Der Blockanfang im Quell- und Zieldatenbaustein ist frei wählbar. Der OB 182 kann maxi- mal 4091 Datenwörter kopieren.
Seite 332
OB 182: Datenbereich kopieren Die Parameter haben folgende Bedeutung und zulässige Wertebereiche: Parameter zulässiger Wertebereich Datenbaustein-Typ (Quelle und Ziel) 1 = DB 2 = DX Datenbaustein-Nr. (Quelle und Ziel) 3 bis 255 Nr. des 1. Datenwortes (Quelle und Ziel) 0 bis 4090 Anzahl der Datenwörter 1 bis 4091 Datenfeld im Merkerbereich...
Seite 333
OB 182: Datenbereich kopieren 2b) AKKU-1-L Nummer des 1. Datenfeldwortes, mögliche Werte (in Abhängigkeit vom Adreßbeeichs-Typ: DB, DX: 0 bis 2043 M-Merker: 0 bis 246 (= Nr. Merkerbyte ’x ’) S-Merker 0 bis 1014 (= Nr. Merkerbyte ’x ’) Ergebnis Nach korrekter Bearbeitung des OB 150 sind die Anzeigenbits OR, ERAB und OS = 0.
OB 190/192: Merker in Datenbaustein übertragen 6.18 OB 190/192: Merker in Datenbaustein übertragen Anwendung Die Organisationsbausteine OB 190 und OB 192 übertragen eine vom Anwender vorgegebene Anzahl Merkerbytes in einen dafür vorgesehe- nen Datenbaustein. Dies kann z.B. von Vorteil sein vor Bausteinaufrufen, in Fehler-Orga- nisationsbausteinen oder bei Unterbrechung der zyklischen Programm- bearbeitung durch eine zeit- oder alarmgesteuerte Programmbearbeitung.
Seite 335
OB 190/192: Merker in Datenbaustein übertragen Die folgende Abbildung soll diesen Unterschied verdeutlichen: Merker kopieren mit OB 190: OB 192: Merker Datenbaustein Datenbaustein MB 0 DW 0 MB 1 DW 1 MB 2 DW 2 MB 3 Bild 6-7 Byteweises (OB 190) und wortweises (OB 192) Übertragen Hinweis Falls eine ungerade Anzahl von Merkerbytes übertragen wird, so wird das letzte benutzte Datenwort des Datenbausteins nur zur...
Seite 336
OB 190/192: Merker in Datenbaustein übertragen 2. Angaben zum Ziel AKKU-1-L Nummer des ersten zu beschreibenden Datenwortes im aufgeschla- genen Datenbaustein: Die zulässigen Werte orientieren sich an der Länge des Datenbau- steins im Speicher. Es können dabei Nummern > 255 auftreten. Ergebnis Wird der Sonderfunktions-OB 190/192 korrekt bearbeitet, so wird das VKE gelöscht (VKE = 0).
OB 191/193: Datenblöcke in Merkerbereich übertragen 6.19 OB 191/193: Datenblöcke in Merkerbereich übertragen Anwendung Mit Hilfe der Organisationsbausteine OB 191 und OB 193 können Sie Daten aus einem Datenbaustein in den Merkerbereich übertragen. So können beispielsweise die zuvor in einen Datenbaustein "geretteten" Merkerbytes wieder in den Merkerbereich zurückgeschrieben werden.
Seite 338
OB 191/193: Datenblöcke in Merkerbereich übertragen OB 191 Datenbaustein Merker DW 0 ( DR 0) MB 0 DW 1 ( DL 0) MB 1 ( DR 1) MB 2 DW 2 DW 3 ( DL 1) MB 3 OB 193 Datenbaustein Merker DW 0...
Seite 339
OB 191/193: Datenblöcke in Merkerbereich übertragen Parameter 1. Angaben zur Quelle: 1a) AKKU-2-L Nummer des ersten zu übertragenden Datenwortes im aufgeschlage- nen Datenbaustein 2. Angaben zum Ziel 2a) AKKU-1-LH Erstes zu beschreibendes Merkerbyte, zulässige Werte: 0 bis 255 2b) AKKU-1-LL Letztes zu beschreibendes Merkerbyte, zulässige Werte: 0 bis 255...
Seite 340
OB 191/193: Datenblöcke in Merkerbereich übertragen Beispiele Beispiel 1: Vor Aufruf des Programmbausteins PB 12 sind alle Merker (MB 0 bis MB 255) in den Datenbaustein DX 37 ab Adresse 100 zu retten und anschließend wieder zurückzuschreiben. Retten: Datenbaustein aufrufen 0,255 Merkerbereich MB 0 bis MB 255 Nummer des 1.
Seite 341
OB 191/193: Datenblöcke in Merkerbereich übertragen Fortsetzung von Beispiel 2: OB 1 OB 13 DB z OB 190 MB x - Retten DW a-b der MB MB y DB z OB 191 MB x - Zurückschreiben DW a-b MB y der MB Bild 6-9 Retten von Merkerbereichen bei Wechsel der Programmbearbeitungsebene...
Seite 342
OB 191/193: Datenblöcke in Merkerbereich übertragen Weitere Anwendungen für die Organisationsbausteine OB 190 bis 193 - Bei der CPU 928B werden Operationen zur Einzelbitverarbeitung (U, O, ON, UN, S, R, =), die auf den Merkerbereich zugreifen, wesentlich schneller bear- beitet als vergleichbare Operationen, die auf Datenbausteine zugreifen (vergleichen Sie hierzu z.
OB 202 bis 205: Mehrprozessor-Kommunikation 6.20 OB 202 bis 205: Mehrprozessor-Kommunikation Eine detaillierte Anleitung zu diesen Sonderfunktions-Organisationsbau- steinen finden Sie in Kapitel 10. Die Sonderfunktions-Organisationsbausteine OB 200 und OB 202 bis OB 205 ermöglichen im Mehrprozessorbetrieb Datenübertragungen zwischen den einzelnen CPUs unter Verwendung des Koordinators KOR 923C.
OB 216 bis 218: Kachelzugriffe 6.21 OB 216 bis 218: Kachelzugriffe Was sind Kacheln? Um im Adreßbereich des S5-Busses eine große Anzahl von Kommuni- kationsspeichern unterbringen zu können, ist ein Adreßbereich mit ei- ner Länge von 1024 bytes (reserviert sind 2048 bytes) 256-mal auf den Speicher abgebildet.
OB 216 bis 218: Kachelzugriffe Wie können Sie auf Kacheln Die Organisationsbausteine OB 216 bis OB 218 sowie einige STEP-5- zugreifen? Operationen (siehe Kapitel 9) ermöglichen den Zugriff auf sogenannte "Kacheln". Die Organisationsbausteine enthalten folgende Funktionen: • • OB 216: Schreiben eines Bytes/Wortes/Doppelwortes auf eine Kachel •...
OB 216 bis 218: Kachelzugriffe Welche der insgesamt 256 Kacheln verwendet werden soll, geben Sie bei der Parametrierung der Sonderfunktions-Organisationsbausteine OB 216, OB 217 und OB 218 an. Die Nummer der "aktuellen" Kachel wird dar- aufhin automatisch in eine Zelle mit der Adresse 0FEFFH eingetragen (siehe Bild 6-11).
OB 216 bis 218: Kachelzugriffe 6.21.1 OB 216: Schreiben auf eine Kachel Funktion Der Sonderfunktions-Organisationsbaustein überträgt ein Byte, Wort oder Doppelwort vom AKKU 1 (rechtsbündig) zu einer be- stimmten Kachel. Das Adressieren der Kachel im Ein- oder Mehrprozessorbetrieb und das Übertragen des vollständigen Datums (1, 2 oder 4 byte) bilden eine untrennbare Programmeinheit, die nicht unterbrochen werden kann.
Seite 349
OB 216 bis 218: Kachelzugriffe Akku-Belegung vor dem Schreiben: High-Word Low-Word High-Byte Low-Byte High-Byte Low-Byte AKKU 4 Längen-Kennung Kachel-Nummer 0 bis 255 0: Byte (8 bit) AKKU 3 1: Wort (16 bit) 2: Doppelwort (32 bit) Adresse (relativ zum Kachel-Anfang) 0 ...
OB 216 bis 218: Kachelzugriffe • • Fehlerfälle falsche Längenkennung in AKKU-3-LH, • • Zieladresse auf der Kachel falsch oder nicht vorhanden, • • angegebene Kchel-Nr. nicht vorhanden. 6.21.2 OB 217: Lesen aus einer Kachel Funktion Der Sonderfunktions-Organisationsbaustein überträgt ein Byte, Wort oder Doppelwort von einer bestimmten Kachel zum AKKU 1 (rechts- bündig).
Seite 351
OB 216 bis 218: Kachelzugriffe Akku-Belegung vor dem Lesen: High-Word Low-Word High-Byte Low-Byte High-Byte Low-Byte AKKU 4 Längen-Kennung Kachel-Nummer 0: Byte (8 bit) 0 bis 255 AKKU 3 1: Wort (16 bit) 2: Doppelwort (32 bit) Adresse (relativ zum Kachel-Anfang) 0 + 1 ...
OB 216 bis 218: Kachelzugriffe • • Das Lesen der Kachel ist nicht möglich: alle Akkus: werden nicht verändert, VKE: = 0, restliche Bit- und Wort- anzeigen: werden gelöscht. • • Fehlerfälle falsche Längenkennung in AKKU-3-LH, • • Quelladresse auf der Kachel falsch oder nicht vorhanden, •...
Seite 353
OB 216 bis 218: Kachelzugriffe Akku-Belegung vor Aufruf des OB 218: Low-Word High-Word High-Byte Low-Byte High-Byte Low-Byte Kachel-Nummer AKKU 2 0 bis 255 Adresse (relativ zum Kachel-Anfang) AKKU 1 0 bis 2047 24 23 Bild 6-15 Inhalte der AKKUs vor Aufruf des OB 218 •...
OB 216 bis 218: Kachelzugriffe 6.21.4 Programmierbeispiel Aufgabenstellung: Vom DB 45 einer CPU 928B sollen die Datenwörter 4 bis 11 über den KOR 923C in den DX 45 (Datenwörter 0 bis 7) einer zweiten CPU 928B übertragen werden. Die Synchronisation zwischen Sender und Empfänger (im Mehrprozessorbetrieb) geschieht mittels OB 218.
Seite 355
OB 216 bis 218: Kachelzugriffe Fortsetzung des Beispiels: STEP-5-Operationen im EMPFÄNGER: Kachelnummer Koordinierungszelle :SPA OB Kachelbelegung durch 2. CPU :SPB =M002 Wenn VKE = 1, Sprung auf Marke :BEA M002 :AX Ziel-Datenbaustein 2,255 :ENT AKKU 3 beschreiben AKKU 2 beschreiben :SPA OB Lesen 1.
OB 220: Vorzeichenerweiterung 6.22 OB 220: Vorzeichenerweiterung Anwendung Eine Vorzeichenerweiterung ist notwendig, um eine negative 16-bit- Festpunktzahl vor einer Festpunkt-Gleitpunkt-Wandlung (32-bit, Ope- ration FDG) zu einer 32-bit-Festpunktzahl zu erweitern. Funktion Diese Sonderfunktion erweitert das Vorzeichen einer 16-bit-Festpunkt- zahl im AKKU-1-L auf das höherwertige Wort (AKKU-1-H): •...
OB 221: Zyklusüberwachungszeit einstellen 6.23 OB 221: Zyklusüberwachungszeit einstellen Funktion Durch Aufruf dieser Sonderfunktion können Sie die Zyklusüberwa- chungszeit ändern und damit die maximal zulässige Zykluszeit neu festlegen. Standardmäßig ist die Zyklusüberwachungszeit auf 150 ms eingestellt. Mit diesem Aufruf wird gleichzeitig der Timer für die Über- wachung neu gestartet: Die maximal zulässige Zykluszeit für den Zy- klus, in dem der OB 221 aufgerufen wird, verlängert sich um den neu eingestellten Wert, vom Zeitpunkt des Sonderfunktionsaufrufes an ge-...
OB 222: Zyklusüberwachungszeit neu starten 6.24 OB 222: Zyklusüberwachungszeit neu starten Funktion Die Sonderfunktion OB 222 bewirkt ein Nachtriggern der Zyklusüber- wachungszeit, d. h. der Timer für die Überwachung wird neu gestartet. Durch Aufruf dieser Sonderfunktion wird die maximal zulässige Zy- kluszeit für den aktuellen Zyklus um den eingestellten Wert vom Zeit- punkt des Aufrufs an verlängert.
OB 223: Anlaufarten vergleichen 6.25 OB 223: Anlaufarten vergleichen Funktion Durch Aufruf des OB 223 wird im Mehrprozessorbetrieb überprüft, ob die Anlaufarten aller beteiligten CPUs gleich sind. Hinweis Der OB 223 darf erst dann aufgerufen werden, wenn alle CPUs ihren Anlauf beendet haben. Bei eingeschalteter Anlaufsynchronisation (DX 0) ist dies durch Aufruf des OB 223 im Betriebszustand RUN gewährleistet.
OB 224: Koppelmerker blockweise übertragen 6.26 OB 224: Koppelmerker blockweise übertragen Funktion Die Übertragung der Koppelmerker erfolgt am Ende jedes Programm- zyklus. Im Einzelprozessorbetrieb werden die Koppelmerker jeweils komplett als Datenblock zum Speicher auf dem Koordinator (KOR) oder dem CP und /oder aus diesem Speicher in die Merker der CPU übertragen.
OB 226: Wort aus dem Systemprogramm lesen 6.27 OB 226: Wort aus dem Systemprogramm lesen Funktion Das Systemprogramm der CPU hat eine Länge von 128 x 2 Wörtern und liegt in einem Speicherbereich, auf den Sie mit STEP-5-Anwei- sungen keinen Zugriff haben. Mit Hilfe des OB 226 können Sie je- doch auch aus diesem Speicherbereich einzelne Datenwörter lesen.
OB 227: Quersumme des Systemprogramms lesen 6.28 OB 227: Quersumme des Systemprogramms lesen Anwendung Sie können während der zyklischen Programmbearbeitung den Inhalt des Systemprogramms prüfen, indem Sie • • die einzelnen Speicherzellen des Systemprogramms von Adresse 0H bis Adresse 1DFFFH mit Hilfe des OB 226 lesen, •...
Seite 363
OB 227: Quersumme des Systemprogramms lesen Beispiel Quersumme des Systemprograms überprüfen Zur Überprüfung der Checksumme des Systemprogramms wird der Funktionsbaustein FB 111 programmiert. Dieser bildet von den Inhalten aller Systemprogram- Speicherwörter die Quersumme und vergleicht diese über den OB 227 mit der im Systemspeicher hinterlegten Quersumme des Systemprogramms.
OB 228: Statusinformation einer Programmbearbeitungsebene lesen 6.29 OB 228: Statusinformation einer Programmbearbeitungsebene lesen Funktion Beim Auftreten von bestimmten Ereignissen ruft das Systempro- gramm die dazugehörige Programmbearbeitungsebene auf. Die Pro- grammbearbeitungsebene ist damit "aktiviert". Mit Hilfe des Organisationsbausteins OB 228 können Sie feststellen, ob zu einem Zeitpunkt eine bestimmte Programmbearbeitungsebene aktiviert ist oder nicht.
Seite 365
OB 228: Statusinformation einer Programmbearbeitungsebene lesen Ergebnis - AKKU-1-L: enthält die Stausinformation: = 0 → Programmbearbeitungsebene ist nicht aufgerufen ≠ 0 → Programmbearbeitungsebene ist aktiviert - AKKU-2-L: enthält den vorherigen Inhalt des AKKU-1-L; der vorherige Inhalt von AKKU-2-L geht verloren. Fehlerfälle keine Beispiel...
OB 230 bis 237: Funktionen für Standard-Funktionsbausteine 6.30 OB 230 bis 237: Funktionen für Standard-Funktionsbausteine Die Sonderfunktions-Organisationsbausteine OB 230 bis OB 237 sind für Hantierungsfunktionen reserviert und können nur innerhalb der Standard-Funktionsbausteine FB 120 bis FB 127 aufgerufen werden. Hantierungsbausterine Diese Standard-Funktionsbausteine –...
OB 240 bis 242: Sonderfunktionen für Schieberegister 6.31 OB 240 bis 242: Sonderfunktionen für Schieberegister 6.31.1 Schieberegister In der nachfolgenden Einführung erfahren Sie, wozu Sie Schieberegi- ster anwenden können und was Sie dabei beachten müssen. Anwendung Schieberegister können dazu benutzt werden um z. B. in einem Ferti- gungsbetrieb mit dem Automatisierungsgerät eine Materialverfolgung zu programmieren.
OB 240 bis 242: Sonderfunktionen für Schieberegister Zeiger 1 Z eiger 2 Z eiger 3 Merkerbit 0 Merkerbit 1 Merkerbit 2 Merkerbit 3 Merkerbit 4 Merkerbit 5 Merkerbit 6 Merkerbit 7 Bit 0 Bit 1 Bit 2 Bit 3 Bit 4 Bit 5 Bit 6 Bit 7...
Seite 369
OB 240 bis 242: Sonderfunktionen für Schieberegister Beispiel Die Bilder 6-17 und 6-18 zeigen das Verschieben der Information innerhalb eines Schieberegisters mit 3 Zeigern und 12 Speicherzellen. Vor Aufruf der Sonderfunktion werden in den Zeigern (Merkern) bestimmte Bits zur Kennzeichnung der Zeigerinformation gesetzt: Merkerbit 0 von Zeiger 1 setzen :S M 0.0 Merkerbit 3 von Zeiger 2 setzen...
OB 240 bis 242: Sonderfunktionen für Schieberegister Fortsetzung des Beispiels Die Information, die sich jetzt in den Zeigern befindet, können Sie auswerten :L MB 0 usw. Merkerbit 0, 3 und 2 lassen sich am Basiszeiger abfragen: Auf diese Weise kann die gesamte Information, die aus den Einträgen in allen Zeigern stammt, am Basiszeiger ausgewertet wer Organisationsbausteine...
OB 240 bis 242: Sonderfunktionen für Schieberegister 6.31.2 OB 240: Schieberegister initialisieren Anwendung Vor der Bearbeitung eines Schieberegisters muß dieses zuerst initiali- siert werden. Dazu wird einmalig - zweckmäßigerweise in einem An- lauf-Organisationsbaustein - der OB 240 aufgerufen. Die Parameter, die der OB 240 zum Einrichten eines bestimmten Schieberegisters benötigt, stehen in einem Datenbaustein mit der Num- mer des zu initialisierenden Schieberegisters.
Seite 372
OB 240 bis 242: Sonderfunktionen für Schieberegister Die einzelnen Datenwörter müssen folgendermaßen belegt werden: Datenwort 0 Muß immer den Inhalt 0 haben. Datenwort 1 Die Schieberegisterlänge L ist die Anzahl (in Bytes) der Speicherzellen des Schieberegisters. Sie kann im Bereich 2 ≤ L ≤ 256 liegen. Datenwort 2 Die Nummer des ersten Merkerbytes legt den Basiszeiger fest und da- mit den Merkerblock, der den Zeigern zugeordnet wird.
Seite 373
OB 240 bis 242: Sonderfunktionen für Schieberegister Hinweis Die Anzahl der Zeiger (maximal 6 inklusive Basiszeiger) darf nicht größer sein als die Länge des Schieberegisters! Der Abstand eines Zeigers zum Basiszeiger darf nicht größer sein als die Länge des Schieberegisters. Das Datenwort DW 0 und das Datenwort nach dem letzten Zeigerabstand müssen immer den Inhalt 0 haben.
OB 240 bis 242: Sonderfunktionen für Schieberegister 6.31.3 OB 241: Schieberegister Der Sonderfunktions-Organisationsbaustein OB 241 bearbeitet ein bearbeiten Schieberegister, das zuvor durch den OB 240 initialisiert worden sein muß. In der CPU 928B können maximal 64 Schieberegister aufgerufen wer- den. Anwendung Vor dem Aufruf des OB 241 werden im Normalfall bestimmte Merker- bits in den Zeigern gesetzt/rückgesetzt.
OB 240 bis 242: Sonderfunktionen für Schieberegister 6.31.4 OB 242: Schieberegister löschen Funktion Mit dieser Funktion wird ein Schieberegister im Datenbaustein-RAM "gelöscht": der Eintrag in der Adressliste DB 0 wird gelöscht und das entsprechende Schieberegister im DB-RAM für ungültig erklärt (Ach- tung: Auch gelöschte Schieberegister belegen weiterhin Speicher- platz!).
OB 250/251: Regelung/ PID-Algorithmus 6.32 OB 250/251: Regelung/ PID-Algorithmus In der CPU 928B des AG 135U können Sie einen oder mehrere PID- Regler aufrufen. Jeder Regler muß im Anlauf-Organisationsbaustein in- itialisiert werden. Zur Übergabe von Parametern wird ein Datenbau- stein verwendet. Der eigentliche Regel-Algorithmus ist im Systemprogramm integriert und vom Anwender lediglich als Organisationsbaustein aufrufbar.
Seite 377
OB 250/251: Regelung/ PID-Algorithmus Index k k-te Abtastung Schalter Stellung Wirkung STEU-BIT 1 Dem Differenzierer wird die Regel- differenz XW zugeführt. Dem Differenzierer kann über XZ ein anderes Signal zugeführt werden. STEU-BIT 0 Handbetrieb Automatik STEU-BIT 3 Stellungs-Algorithmus Geschwindigkeits-Algorithmus STEU-BIT 5 Mit Störgrößenaufschaltung Ohne Störgrößenaufschaltung Steuerwort STEU...
OB 250/251: Regelung/ PID-Algorithmus Invertierter Reglersinn Wenn ein invertierter Reglersinn gefordert wird, ist ein negativer K- Wert vorzugeben. Begrenzung der Wenn die Stellinformation (dY oder Y) an einer Begrenzung liegt, Stellinormation wird der I-Anteil automatisch abgeschaltet, um eine Verschlechterung des Reglerverhaltens zu vermeiden. Das Reglerprogramm kann durch Vorgabe von Festwerten oder über adaptive (dynamische) Vorgabe von Parametern (K, R, TI, TD) ver- sorgt werden.
Seite 379
OB 250/251: Regelung/ PID-Algorithmus = (XW - XW = TI ⋅ XW TI = ( TD ⋅ QU + dD TD = − Wenn als Reglerausgang zum Zeitpunkt t die Stellgröße Y wünscht wird, wird sie nach folgender Formel gebildet: ∑...
Seite 380
OB 250/251: Regelung/ PID-Algorithmus Aufbau des Übergabe-Datenbausteins Tabelle 6-10 Übergabe-Datenbaustein für PID-Regelung Adr. Name Zahlen- Bemerkung im DB format Format DW 0 – – – – Reserve DD 1 Proportionalbeiwert K >0: Positiver Regelsinn d.h. gleichsinnige Änderung von Sollwert und Stellgröße K <0: Negativer Regelsinn;...
Seite 381
OB 250/251: Regelung/ PID-Algorithmus Adr. Name Zahlen- Bemerkung im DB format Format Fortsetzung der Tabelle 6-10: DW 24 ≤ Störgröße (-1 <1) DD 25 Störgrößeneingabe hier, wenn STEU-Bit 7 = 1 ≤ <1) DD 27 – Vergangenheitswert der Störgröße DW 29 Über den Eingang XZ dem Differenzierer zugeführte ≤...
OB 250/251: Regelung/ PID-Algorithmus Beispiel für Begrenzungswerte - Begrenzungswerte Oberer Begrenzungswert = 0,1 Unterer Begrenzungswert = -0,1 - Einträge in den DB: DD 14: +1000 000 DD 16: -1000 000 - Ausgangsgröße wird begrenzt: ±3 276 DW 48: ± 0,1 DD 15: Anmwerkung: Für Begrenzungswerte außerhalb 1 wird die Ausgangsgröße im GP-Format begrenzt...
Seite 383
OB 250/251: Regelung/ PID-Algorithmus Belegung des Steuerwortes STEU (Datenwort DW 11 im Übergabe-DB) Tabelle 6-11 Steuerwort im Übergabe-DB DW 11 Name Bedeutung Bit-Nr. 11.0 AUTO = 1: Automatikbetrieb = 0: Handbetrieb 11.1 XZ_EIN = 1: Dem Differenzierer wird über den XZ-Eingang eine andere Größe zugeführt,die nicht XW sein darf.
OB 250/251: Regelung/ PID-Algorithmus DW 11 Name Bedeutung Bit-Nr. Fortsetzung der Tabelle 6-11: 11.7 VAR_GP = 1: Die Variablen X , XZ und Z werden als Gleitpunktzahl ein- gegeben. = 0: Eingabe der Variablen als Linkspunktzahl 11.8 STOS = 1: keine stoßfreie Hand-Automatik-Umschaltung = 0: stoßfreie Hand-Automatik-Umschaltung...
OB 250/251: Regelung/ PID-Algorithmus Hinweis Wenn bei der Initialisierung der DB x + 1 nicht freigehalten war, wird dieser ohne Meldung vom Systemprogramm als Regler- datenfeld verwendet, sofern er die gleiche Länge hat wie ein Regler-DB (48 Datenwörter); dabei werden die Datenwörter 20 bis 48 gelöscht.
OB 250/251: Regelung/ PID-Algorithmus Format der Reglereingänge Der PID-Regelalgorithmus verwendet intern zur Zahlendarstellung das und -ausgänge Gleitpunktformat und kann mit Gleitpunktwerten versorgt werden. Eine Versorgung des PID-Regelalgorithmus im Linkspunktformat ist eben- falls möglich (siehe dazu Bit 6 und 7 im Steuerwort STEU). In diesem Fall wandelt der Regler bei jedem Aufruf selbständig die Wörter ins Gleitpunktformat um.
OB 250/251: Regelung/ PID-Algorithmus Allgemeine Hinweise Verwendung von STOS Wenn STOS (STEU-Bit 8) auf Null steht, verläuft die Umschaltung von Hand- auf Automatikbetrieb stoßfrei; d. h. eine anstehende, belie- big große Regeldifferenz wird nur über den I-Anteil ausgeregelt. Wenn jedoch TI = TA/TN = 0 gewählt wird (P- oder PD-Regler), ver- ursacht die Regeldifferenz bei der Umschaltung keine Änderung der Stellgröße.
OB 250/251: Regelung/ PID-Algorithmus Reglerkenngrößen P-Regler Die Kenngröße für einen P-Regler ist K. Sie ist der Quotient aus Aus- gangs- und Eingangsgröße: K = Xa/Xe. t = 0 t = 0 PI-Regler Die Kenngrößen für einen PI-Regler sind der Proportionalbeiwert K und die Nachstellzeit TN.
OB 250/251: Regelung/ PID-Algorithmus PID-Regler Die Kenngröße für einen PID-Regler sind der Proportionalbeiwert K, die Nachstellzeit TN und die Vorhaltezeit TV. Sie bestimmen jeweils das P-, I- und D-Verhalten. Parameteränderung Der P-Anteil der Stellgröße wird nach folgender Formel gebildet: P-Anteil = - XW Wird KP oder R im Automatikbetrieb geändert, wirkt sich dies nur auf nachfolgende Änderungen der Regeldifferenz XW...
OB 250/251: Regelung/ PID-Algorithmus Linkspunktzahl Zur Darstellung einer Linkspunktzahl im Datenbaustein wird ein Wort benötigt. Die Zuordnung zwischen dezimal dargestellter Linkspunkt- zahl, dual dargestellter Linkspunktzahl und der Darstellung im Format KF am Programmiergerät ist im folgenden Beispiel dargestellt. Tabelle 6-12 Linkspunktzahlen Linkspunktzahl in Festpunktzahl...
OB 254/255: Einen Datenbaustein verschieben/duplizieren 6.33 OB 254/255: Einen Datenbaustein verschieben/duplizieren Mit den Sonderfunktionen OB 254/255 übertragen Sie einzelne Daten- bausteine vom Anwenderspeicher in das DB-RAM(Datenbausteinspei- cher) der CPU. Die Sonderfunktionen OB 254 und OB 255 laufen identisch ab, wobei der OB 254 ausschließlich für DX-Datenbausteine und der OB 255 für DB-Datenbausteine zuständig ist.
Seite 392
OB 254/255: Einen Datenbaustein verschieben/duplizieren Parameter 1. AKKU-1-L-L Nummer des zu kopierenden Bausteins, zulässige Werte: 0 bis 255 (0 nur für DX oder Dupli- zieren eines DBs) 2. AKKU-1-H-L Mit dem Wert in AKKU-1-H-L legen Sie fest, ob Sie einen Baustein verschieben oder duplizieren wollen: AKKU-1-H-L = 0: Der Datenbaustein DB (Aufruf OB 255) oder DX (Aufruf OB 254)
Seite 393
OB 254/255: Einen Datenbaustein verschieben/duplizieren Beispiel Es wird angenommen, daß im Anwenderspeicher die Datenbausteine DB 3 und DB 4 definiert sind. Im DB-RAM soll außer DB 0 noch kein Datenbaustein DB vorhanden sein. Die nachfolgende Tabelle zeigt Ihnen, welche Speicherbelegung nach mehrmaligem Aufruf von OB 255 mit den in der Tabelle aufgeführten Parametern ergibt.
Seite 394
OB 254/255: Einen Datenbaustein verschieben/duplizieren Programmieranleitung CPU 928B 6 - 128 C79000-B8500-C898, 01...
Erweiterter Datenbaustein DX 0 Im nachfolgenden Kapitel erfahren Sie, wofür Sie den Datenbaustein DX 0 einsetzen können und wie er aufgebaut ist. Sie werden informiert, welche Bedeutung die verschiedenen DX-0-Parameter haben, und Sie ler- nen an Hand von Beispielen, wie Sie einen Datenbaustein DX 0 erstellen bzw.
Anwendung Anwendung Als Anwender können Sie bestimmte Leistungen des Systempro- gramms Ihren Erfordernissen anpassen, wenn Sie im DX 0 alternativ zu den Standard-Voreinstellungen (in der Parameter-Tabelle mit "V" gekennzeichnet) durch Parametereingabe andere Einstellungen vor- nehmen. Die Voreinstellungen des Systemprogramms (V) werden automatisch bei jedem NEUSTART gesetzt.
Aufbau des DX 0 Aufbau des DX 0 Der DX 0 setzt sich aus drei Teilen zusammen: • • der Anfangskennung für den DX 0 (DW 0, 1 und 2) • • mehreren Blöcken unterschiedlicher Länge (je nach Parameteran- zahl) •...
Seite 400
Aufbau des DX 0 Formaler Aufbau: Bit-Nr. ASCII- zeichen: Blockkennung 1 Blocklänge 1 Parameter Block 1 Parameter Parameter Blockkennung 2 Blocklänge 2 Block 2 Parameter Blockkennung n Blocklänge n Parameter Block n Parameter Parameter DW m Endekennung Bild 7-1 Aufbau des DX 0 Programmieranleitung CPU 928B 7 - 6 C79000-B8500-C898-01...
Parameter für DX 0 Parameter für DX 0 Tabelle 7-1 DX-0-Parameter und ihre Bedeutung Block- Parameter Bedeutung kennung/-länge 1. Wort/2. Wort ANLAUF und RUN 02xx 1000 V AUTOMATISCHER WIEDERANLAUF nach NETZ EIN 1001 AUTOMATISCHER NEUSTART nach NETZ EIN 2000 V Synchronisation ANLAUF im Mehrprozessorbetrieb 2001 Keine Synchronisation ANLAUF im Mehrprozessor- betrieb...
Seite 403
Parameter für DX 0 Block- Parameter Bedeutung kennung/-länge 1. Wort/2. Wort Fortsetzung 1 der Tabelle 7-1: Alarmbearbeitung: Weckalarme 06xx Auswahl des Bearbeitungs-Modus 2000 V Prozeßalarm-Signal, pegelgetriggert 2001 Prozeßalarm-Signal, flankengetriggert Fehlerbehandlung 10xx Weckfehlerbehandlung: 1000 V Systemstopp, wenn Ereignis eintritt und der OB 33 nicht geladen ist.
Seite 404
Parameter für DX 0 Block- Parameter Bedeutung kennung/-länge 1. Wort/2. Wort Fortsetzung 2 der Tabelle 7-1: 10xx Adressierfehlerbehandlung: 1C00 V Systemstopp, wenn Ereignis eintritt und der OB 25 nicht geladen ist. 1C01 Kein Systemstopp, wenn Ereignis eintritt und der OB 25 nicht geladen ist. Quittungsverzugsfehlerbehandlung: 1E00 Systemstopp, wenn Ereignis eintritt und der OB 23/24...
Seite 405
Parameter für DX 0 • • Standardmäßig werden die Zeitzellen T 0 bis T 255 aktualisiert. Aktualisierung der Zeitzellen • • Wenn Sie im DX 0 die Anzahl ’0’ eintragen, werden keine Zeitzel- len aktualisiert, auch dann nicht, wenn Sie im Programm enthalten sind.
Parameter für DX 0 Parameter für die Aus der folgenden Tabelle können Sie für Ihre Alarmbearbeitung den Alarmbearbeitung passenden Parameter heraussuchen und den DX 0 damit program- mieren. Je nachdem, welchen Parameter Sie wählen, sind entspre- chend den Symbolen bestimmte (oder alle) Alarme an Bausteingrenzen, andere (oder alle) an Befehlsgrenzen wirksam: Para- W e c k a l a r m e...
Parametrierungsbeispiele Parametrierungsbeispiele 7.4.1 STEP-5-Programmierung Beispiel A: Sie wollen im Mehrprozessorbetrieb drei CPUs einsetzen: CPU A, B und C. CPU A und B arbeiten eng miteinander zusammen, tauschen häufig Daten aus und bearbeiten ein umfangreiches Anlaufprogramm. CPU C bearbeitet weitgehend unabhängig davon ein kurzes, zeitkritisches Programm. Standardmäßig beginnen im Mehrprozessorbetrieb alle CPUs gemeinsam mit der zyklischen Programmbearbeitung, d.h., die CPUs warten solange aufeinander, bis alle ihren Anlauf beendet haben, und gehen dann gemeinsam in die zyklische...
Seite 408
Parametrierungsbeispiele Beispiel B: Mit der folgenden Parametrierung des DX 0 wird - die Adressierfehler-Überwachung abgeschaltet, - die Zeitzellenaktualisierung abgeschaltet, - die Zykluszeit auf 4 s eingestellt. DX 0 Anfangskennung "MASKX0" DW 0: KH = 4D41 DW 1: KH = 534B DW 2: KH = 5830 1.
Parametrierungsbeispiele 7.4.2 Parametrierung über PG- Für die Parametrierung des DX 0 stehen Ihnen bei der PG-Systemsoft- Maske ware S5-DOS (ab Version 3) Masken zur Verfügung. Die PG-Softwa- re generiert entsprechend den Parametervorbesetzungen und den von Ihnen eingegebenen Parametern automatisch den Datenbaustein DX 0. Für die Parametrierung werden zwei Masken benötigt.
Seite 410
Parametrierungsbeispiele Haben Sie die notwendigen Parametereinstellungen in der 1. Teilmaske durchgeführt oder finden Sie die zu ändernden Parameter dort nicht, so können Sie sich die zweite Teilmaske (Bild 7-3) mit folgender Parametergruppe anzeigen lassen: ADRESSIERFEHLER, ZYKLUSFEHLER, QUITTUNGSFEHLER, WECKFEHLER BEFEHLSCODEFEHLER, REGLERFEHLER, LAUFZEITFEHLER, PROZESSALARMBEARBEITUNG, UNTERBRECHBARKEIT DES ANWENDERPROGRAMMS...
Seite 411
Parametrierungsbeispiele Ablaufdiagramm zum Ausfüllen der DX-0-Masken: Sind in der 1. Teilmaske Parameter zu ändern ? NEIN Wiederholen Sie folgenden Vorgang sooft, bis Sie alle notwendigen Änderungen in der Teilmaske durchgeführt haben: - Eingabefeld anwählen: Schreibmarke vor das Parameterfeld positionieren. Das Anzeigefeld F3 am unteren Bildschirmrand zeigt an, ob Sie zwischen Alternativen auswählen (Anzeige "WAEHLEN") oder den Parameterwert verändern können (Anzeige "EINGEBEN").
Parametrierungsbeispiele Beispiel zum Ausfüllen der DX-0-Maske: Sie wollen den DX 0 für folgendes Verhalten des Systemprogramms abweichend von den Vorbesetzungen parametrieren: - Im Mehrprozessorbetrieb soll die CPU, für die der DX 0 programmiert wird, im Anlauf nicht warten bis die übrigen CPUs ihren Anlauf beendet haben. - Die Zyklusüberwachungszeit soll 100 ms betragen.
Speicherbelegung und Speicherorganisation In diesem Kapitel können Sie nachschlagen, wie der Speicher der CPU 928B organisiert ist. Sie finden ferner wichtige und für den An- wender zugängliche Informationen, die in einigen Systemdatenwör- tern hinterlegt sind. Programmieranleitung CPU 928B 8 - 3 C79000-B8500-C898, 01...
Struktur des Speicherbereiches Struktur des Speicherbereiches Der Speicherbereich in der CPU 928B enthält im wesentlichen folgen- de Bereiche: Tabelle 8-1 Struktur des Speicherbereiches Speicherbereich Länge Datenbreite Anwenderspeicher für: OB, FB, FX, PB, SB, DB, DX max. 32 Wörter 16 bit DB-RAM für: Datenbausteine, Schieberegister Wörter...
Adreßraumaufteilung der CPU 928B Adreßraumaufteilung der CPU 928B Bit-Nr.15 0000 Anwenderspeicher RAM- oder EPROM- max. 32 x 2 Wörter Module, steckbar in CPU 7FFF 8000 DB-RAM 23 x 2 Wörter DD7F DD80 DB 0 (Bausteinadreßlisten) E3FF E400 System-RAM, CPU-intern S-Merker (siehe auch Bild 8-2) E7FF E800...
Adreßraumaufteilung der CPU 928B 8.2.2 Adreßraumaufteilung der Peripherie Bit-Nr. 7 F000 Digitale Peripherie (mit PA), 1024 bit Eingänge / 1024 bit Ausgänge F07F P-Bereich F080 Digitale oder analoge Peripherie (ohne PA), 1024 bit Eingänge / 1024 bit Ausgänge F08F F100 Q-Bereich 2048 bit Erweiterte Peripherie F1FF...
Seite 420
Adreßraumaufteilung der CPU 928B Adreßbereiche für Peripherie und deren Programmierung Bereich Wird angesprochen Parameter (absolute Adresse) L EB / T EB bis 127 EF00 L EW / T EW bis 126 (Prozeßabbild L ED / T ED bis 124 EF7F Eingänge) / UN E / O E / ON E 0.0 bis 127.7...
Organisation des Anwenderspeichers in der CPU 928B Organisation des Anwenderspeichers in der CPU 928B Der Anwenderspeicher umfaßt – abhängig vom gesteckten Speichermo- dul – den Speicherbereich von 0000H bis 7FFFH. Beim Laden der ein- zelnen Bausteine des Anwenderprogramms werden diese in beliebiger Reihenfolge im Speicher abgelegt (aufsteigende Adressen).
Organisation des Anwenderspeichers in der CPU 928B 8.3.1 Bausteinköpfe im Jeder Baustein im Speicher beginnt mit einem 5 Wörter langen Bau- Anwenderspeicher steinkopf. 1. Wort: Baustein-Anfangskennung: 7070H 2. Wort: High-Byte = Bausteintyp Bit-Nr. Datenbaustein DB Schrittbaustein SB Programmbaustein PB Funktionsbaustein FX Funktionsbaustein FB Datenbaustein DX Organisationsbaustein OB...
Organisation des Anwenderspeichers in der CPU 928B 8.3.2 Bausteinadreßlisten im Der Datenbaustein DB 0 enthält die Adreßiste mit den Anfangsadressen Datenbaustein DB 0 aller Anwenderbausteine, die sich im Speichermodul oder im DB-RAM der CPU befinden. Diese Adreßliste wird nach NETZ EIN vom System- programm bei NEUSTART aufgebaut, bei WIEDERANLAUF überprüft und bei jeder Eingabe oder Änderung von Bausteinen mit dem PG auto- matisch aktualisiert.
Organisation des Anwenderspeichers in der CPU 928B Ablage der Bausteinadressen im DB 0 n = Anfangsadresse der PB-Adreßliste (= Inhalt von BS 36) DB 0 Adresse PB 0 Adresse PB 1 Adresse PB 2 Adresse PB 178 Ist als Adresse der Wert ’0’ eingetragen, n+178 ist der Baustein nicht geladen Adresse PB 179...
Seite 425
Organisation des Anwenderspeichers in der CPU 928B Anfangsadresse und Länge des Datenbausteins DB 50 ermitteln a) über indirekten Speicherzugriff: BS 34 Basisadresse der DB-Adressliste laden KB 50 Die Adresse des Eintrags für den DB 50 errechnen und die Anfangsadresse :LIR 1 in den AKKU 1 laden KB 0 Bei nicht vorhandenem Baustein zur Marke...
Organisation des Anwenderspeichers in der CPU 928B Fortsetzung des Beispiels (Adresse un Länge von DB 50): b) mit dem Sonderfunktionsorganisationsbaustein OB 181 "Datenbausteine (DB/DX) testen": Der OB 181 (siehe Abschnitt 6.16) führt dieselbe Funktion aus wie unter Beispiel 2a beschrieben. Er testet jedoch zusätzlich, ob der Datenbaustein im Anwenderspeicher (RAM- oder EPROM-Modul) oder im DB-RAM liegt.
BS-/BT-Bereich 8.3.4 BS-/BT-Bereich BS- und BT-Bereich enthalten teils Informationen für den System- programmierer, teils systeminterne Daten. Der BS-Bereich ist ein 256 Wörter langer Bereich im internen System- RAM der CPU. Er belegt die Adressen EA00H bis EAFFH. Warnung Es dürfen ausschließlich die Systemdatenwörter BS 1, BS 60 bis BS 63, BS 133, BS 140 und BS 144 beschrieben werden: BS 60 bis BS 63 stehen für ihre eigenen Zwecke zur Verfügung.
Bitbelegung der Systemdatenwörter 8.3.5 Bitbelegung der System- datenwörter Systemdatum BS 0 Unterbrechungsanzeigenwort Adresse EA00H Tabelle 8-2 Belegung BS 0 (Unterbrechungsanzeigenwort) High-Byte Bit-Nr. Belegung MP-STP Low-Byte FE-3 STUEB STUEU WECK DOPP Das Systemdatum BS 0 entspricht der STOERUNGSURSACHE im USTACK. Tritt bei der Programmbearbeitung z. B ein Laufzeitfehler auf, wird das Bit Nr.
Seite 431
Bitbelegung der Systemdatenwörter Systemdatum BS 1 Unterbrechungsanzeigen-Löschwort UALW Adresse: EA01H BS 1: Aktive Schnittstelle, für Anwender freigegeben! Durch Setzen von Bit Nr. 9 bzw. Bit Nr. 10 des UALW erreichen Sie, daß der nächstfolgende ADF bzw. QVZ ignoriert wird und die laufen- de Programmbearbeitung dadurch nicht beeinflußt wird.
Bitbelegung der Systemdatenwörter Beispiel zum UALW In diesem Beispiel wird getestet, ob unter einer bestimmten Peripheriadresse eine Baugruppe ansprechbar ist. Ist die Baugruppe nicht vorhanden, wird mit Hilfe des UALW ein Quittungsverzug verhindert und ein für diesen Fall vorgesehenes Programm bearbeitet. Ebenso wird getestet, ob eine bestimmte Peripherieadresse im DB 1 eingetragen ist.
Seite 433
Bitbelegung der Systemdatenwörter Systemdatum BS 2 Unterbrechungsanzeigen-Sammelwort UAMK Adresse: EA02H Die 16 Bits des Unterbrechungsanzeigen-Sammelworts entsprechen den unter STOERUNGSURSACHE im USTACK aufgeführten mögli- chen Fehlerursachen. Bei Auftreten eines bestimmten Fehlers wird das dazugehörige Bit ge- setzt. Tabelle 8-4 Belegung BS 2 (Unterbrechungsanzeigen-Sammelwort) High-Byte Bit-Nr.
Bitbelegung der Systemdatenwörter Beispiel zum UAMK Geht die CPU aufgrund eines Adressierfehlers (ADF) in STOP, so wird im UAMK Bit Nr. 9 gesetzt. Wenn nun bei der Bearbeitung des ADF ein Befehlscodefehler (BCF) auftritt, wird im UAMK außerdem Bit Nr. 7 gesetzt. Inhalt des UAMK (binär): 00000010 10000000 Darstellung (hexadezimal) im USTACK:...
Seite 435
Bitbelegung der Systemdatenwörter Systemdatum BS 5 STOP- und ANLAUF-Kennungen Adresse: EA05H Die Kennungen entsprechen den Steuerbits in Zeile 1 und 2 des USTACK. Tabelle 8-5 Belegung BS 5 (STOP- und ANLAUF-Kennungen) High-Byte: STOP-Kennungen Bit-Nr. Belegung PRI-STP nicht belegt FE-STP BARB-END PG-STP STP-SCH STP-BEF...
Seite 436
Bitbelegung der Systemdatenwörter Systemdatum BS 6 ZYKLUS- und Modul-/MPL-Kennungen Adresse: EA06H Die Kennungen entsprechen den Steuerbits in Zeile 3 und 4 des USTACK. Tabelle 8-6 Belegung BS 6 (ZYKLUS- und Modul-/MPL-Kennungen) High-Byte: ZYKLUS-Kennungen Bit-Nr. Belegung nicht belegt EIN-PROZ BARB OB1-GEL FB0-GEL OB-PROZA OB-WECKA...
Seite 437
Bitbelegung der Systemdatenwörter BS 7 URLÖSCH-Kennungen/Fehlerkennungen Initialisieren Adresse: EA07H Die Kennungen entsprechen den Steuerbits in Zeile 5 und 6 des USTACK. Tabelle 8-7 Belegung BS 7 (URLÖSCH-/Fehler-Kennungen Initialisieren) High-Byte: URLÖSCH-Kennungen Bit-Nr. Belegung URGELOE URL-IA STP-VER ANL-ABB UA-PG UA-SYS UA-PRFE UA-SCH Low-Byte: Fehlerkennungen Initialisieren DX0-FE nicht belegt...
Seite 438
Bitbelegung der Systemdatenwörter BS 8 Fehlerkennungen HW/SW Adresse: EA08H Die Kennungen entsprechen den Steuerbits in Zeile 7 und 8 des USTACK. Tabelle 8-8 Belegung BS 8 (Fehlerkennungen HW/SW) Bit-Nr. High-Byte: Fehlerkennungen HW STUE-FE WECK-FE Bit-Nr. Low-Byte: Fehlerkennungen SW nicht belegt FE-5 Power-down-Fehler FE-3...
Seite 439
Bitbelegung der Systemdatenwörter BS 29 Steckplatzkennung/CPU-/AG-Typ Adresse: EA1DH Tabelle 8-9 Belegung BS 29 (Steckplatz-Kennung/CPU-/AG-Typ) Bit-Nr. High-Byte: Fehlerkennungen HW nicht belegt CPU Nr. 4 CPU Nr. 3 CPU Nr. 2 CPU Nr. 1 Bit-Nr. Low-Byte: Fehlerkennungen SW CPU-Typ AG-Typ BS 29 (high) Aktive Schnittstelle, wird von den Hantierungsbausteinen und bei der Mehrprozessorkommunikation sowie vom OB 218 und den Operatio- nen SES und SEF benutzt.
Seite 440
Bitbelegung der Systemdatenwörter BS 80 Adresse: EA50H (high und low) Hier steht eine zusätzliche Information zur Spezifizierung des aufgetre- tenen Fehlers, wenn das Bit Nr. 5 in BS 8 vom System gesetzt bzw. wenn das Steuerbit FE-5 in der USTACK-Ausgabe angekreuzt ist: Kennung in BS 80 Fehlerursache 2460H Ready-Signal auf S5-Bus steht dauernd an...
Seite 441
Bitbelegung der Systemdatenwörter BS 131 Anzeigenwort "Alarme gemeinsam sperren": siehe OB 120 (Abschnitt 6.5) Adresse EA83 (low) Das Systemdatum BS 131 zeigt Ihnen folgende Zustände der Programmbearbeitungsebenen "Alarmbearbeitung" an: Tabelle 8-10 Belegung BS 131 (Alarme gemeinsam sperren) Bit-Nr. Low-Byte: Alarme gemeinsam sperren Verzögerungsalarm Prozeßalarm uhrzeitgesteuerter Weckalarm...
Seite 442
Bitbelegung der Systemdatenwörter BS 133 Prozeßbildaktualisierung Adresse EA85 (low) Tabelle 8-12 Belegung BS 133 (Prozeßbildaktualisierung) Bit-Nr. Low-Byte: Prozeßbildaktualisierung nicht belegt KM-AUS KM-EIN DIGH-EIN DIG-AUS Bit-Nr. 0 = 0: Nächstes Prozeßabbild der digitalen Ausgänge wird ausgegeben. Bit-Nr. 0 = 1: Nächste Prozeßabbildaktualisierung der digitalen Ausgänge wird unterdrückt.
Seite 443
Bitbelegung der Systemdatenwörter BS 135 Anzeigenwort "Weckalarme einzeln sperren": siehe OB 121 (Abschnitt 6.6) Adresse EA87 Das Systemdatum BS 135 zeigt Ihnen folgende Zustände der Pro- grammbearbeitungsebenen "Weckalarmbearbeitung" an: Tabelle 8-13 Belegung BS 135 (Weckalarme einzeln sperren) Bit-Nr. High-Byte: Weckalarme einzeln sperren Weckalarm 5 s (OB 18) Weckalarm 2 s (OB 17) Weckalarm 1 s (OB 16)
Seite 444
Bitbelegung der Systemdatenwörter BS 137 Anzeigenwort "Weckalarme einzeln verzögern": siehe OB 123 (Abschnitt 6.8) Adresse EA89 Das Systemdatum BS 137 zeigt Ihnen folgende Zustände der Pro- grammbearbeitungsebenen "Weckalarmbearbeitung" an: Tabelle 8-14 Belegung BS 137 (Weckalarme einzeln verzögern) Bit-Nr. High-Byte: Weckalarme einzeln verzögern Weckalarm 5 s (OB 18) Weckalarm 2 s (OB 17) Weckalarm 1 s (OB 16)
Seite 445
Bitbelegung der Systemdatenwörter BS 140 Anzeigenwort "Bausteine Schreiben und Lesen" Adresse EA8C Das Systemdatum BS 140 zeigt Ihnen an, ob seit dem letzten URLÖ- SCHEN der CPU bzw. seit dem letzten Löschen des Systemdatums BS 140 Bausteine überschrieben, neu geladen oder gelöscht wurden. Für jeden Baustein werden die Bits für Veränderung und Bausteintyp dazugeodert.
Seite 446
Bitbelegung der Systemdatenwörter BS 144 "alternatives Laden von Datenbausteinen in das DB-RAM" Adresse EA90 Standardmäßig werden bei der CPU 928B alle Bausteine vom PG zu- erst in das Anwenderspeichermodul geladen. Erst wenn dort kein Platz mehr frei ist, werden Datenbausteine (DX, DX) und nur diese im DB- RAM abgelegt.
Seite 447
Speicherzugriffe über absolute Adressen Inhalt von Kapitel 9 Einführung ............. 9 - 4 Speicherzugriffe über Adresse in AKKU 1 .
Seite 448
Inhalt Programmieranleitung CPU 928B 9 - 2 C79000-B8500-C898, 01...
Seite 449
Speicherzugriffe über absolute Adressen In diesem Kapitel erfahren Sie, wie Sie mit Hilfe von STEP-5-Opera- tionen und speziellen STEP-5-Registern Daten in bestimmten Spei- cherbereichen über Absolutadressen ansprechen können. Programmieranleitung CPU 928B 9 - 3 C79000-B8500-C898-01...
Einführung Einführung Die Programmiersprache STEP 5 enthält Operationen, mit denen Zu- griffe auf den gesamten Adreßraum möglich sind. Diese Operationen gehören zu den "Systemoperationen". Warnung Bei einer nicht sachgerechten Anwendung dieser Operationen können STEP-5-Bausteine und Systemdaten überschrieben werden. Dies kann unerwünschte Betriebszustände zur Folge haben.
Seite 452
Einführung Speicherzugriffe Die folgenden Operationen ermöglichen Zugriffe auf lokale bzw. glo- bale Speicherbereiche über absolute Adressen (siehe auch Bild 9-2). Zugriffe auf den Lokal- Sie können sowohl auf den Lokal- als auch auf den Globalbereich zu- und Globalbereich greifen: • • auf Lokalbereich (Adressen 0000H bis EFFFH) und den byteweise organisierten Teil des Globalbereichs (Adressen F000H bis F3FFH, FC00H bis FFFFH) mit:...
Seite 453
Einführung kein Zugriff m öglich Zugriff m öglich a ) L IR, T IR, T NB, T NW b) LRW, T RW, LRD, T RD c) LB GB, LB GW, LB GD d) LW GW, LW GD T B GB, T B GW, T B GD, ( T SG) T W GW, T W GD, ( T SG) e) LB CB, LB CW, LB CD f) LW CW, LW CD,...
Speicherzugriffe über Adresse in AKKU 1 Speicherzugriffe über Adresse in AKKU 1 Anwendung Die Register sind Betriebsmittel der CPU zum Bearbeiten des STEP-5-Programms. Jedes Register ist 16 bit breit. Mit den System- operationen LIR (Lade indirekt Register) und TIR (Transferiere indi- rekt Register) können Sie auf die Inhalte der Register zugreifen.
Speicherzugriffe über Adresse in AKKU 1 9.2.1 LIR/TIR: 16-bit-Register Die folgende Tabelle zeigt Ihnen, welche Registernummern Sie bei indirekt laden/transferieren der CPU 928B für die Operationen LIR und TIR verwenden dürfen und wie diese belegt sind. Tabelle 9-2 16-bit-Register für LIR/TIR Register-Nr.
Seite 456
Speicherzugriffe über Adresse in AKKU 1 Die Bilder 9-3 und 9-4 zeigen Ihnen den Unterschied bei Zugriffen mit LIR/TIR auf wort-und byteweise orientierte Speicherbereiche: adressierte Register n Speicherzelle AKKU 1 LIR n adressierte Register n Speicherzelle AKKU 1 TIR n Bild 9-3 LIR/TIR auf 16-bit-Speicherbereiche (wortweise orientiert) adressierte...
Speicherzugriffe über Adresse in AKKU 1 Register 0 bis 3 und 9 bis Die Akkumulatoren werden von der CPU bei der Programmbear- 12: AKKU 1, 2, 3 und 4 beitung als Zwischenspeicher verwendet. Mit den Operationen TIR und LIR können Sie die Inhalte der AKKUs in absolut adressierte Speicher- zellen transferieren bzw.
Speicherzugriffe über Adresse in AKKU 1 Es ändert sich, wenn • • ein anderer Datenbaustein aufgeschlagen wird oder • • ein Rücksprung in einen übergeordneten Baustein erfolgt nachdem im aufgerufenen Baustein ein neuer Datenbaustein aufgeschlagen wurde (siehe auch Abschnitt 2.4.3). Hinweis Im USTACK ist die im DBA-Register eingetragene Adresse unter ’DB-ADR’...
Seite 459
Speicherzugriffe über Adresse in AKKU 1 Beispiel 2: Durch Ändern von Register 6 wird das Datenwort DW 300 des Datenbausteins DB 100 geladen. FB 7 NAME: LIR/TIR6 BS 34 Anfangsadresse der DB-Adressliste plus 100 :ADD BF +100 ergibt Adresslisteneintrag des DB 100 :LIR 1 Anfangsadresse des DB 100 (DW 0) nach AKKU 1 :ADD KF +200...
Speicherzugriffe über Adresse in AKKU 1 Register 8: Zusätzlich zum DBA-Register wird bei jedem Aufruf eines Datenbau- DBL = Datenbaustein- steins das DBL-Register geladen. Es enthält die Länge (in Wörtern) Länge des aufgerufenen Datenbausteins ohne Baustein-Kopf. Das DBL-Regi- ster wird vor jedem Aufruf des OB 1 oder FB 0 gleich ’0’ gesetzt. Das DBL-Register bleibt erhalten, wenn •...
Speicherzugriffe über Adresse in AKKU 1 Beispiel Wirkung der Operation "AX DX 17" auf das DBL: D X 1 7 A d r e s s e n 4 1 5 1 B H 5 W ö r t e r 4 1 5 1 C H B a u s t e i n k o p f 4 1 5 1 D H...
Speicherzugriffe über Adresse in AKKU 1 9.2.2 Beispiele für die Anwen- dung der Register Beispiel 1: Alle Datenwörter eines Datenbausteins sollen mit einer Konstanten beschrieben werden. Das unten dargestellte Programm beschreibt alle Datenwörter des DB 50 mit der Konstanten KH = A5A5. Nach Ändern der fettgedruckten STEP-5-Befehle kann es auch zum Beschreiben anderer Datenbausteine (DB oder DX) mit beliebigen Werten benutzt werden.
Seite 463
Speicherzugriffe über Adresse in AKKU 1 Fortsetzung von Beispiel 1: WEIT : nachdem alle Datenwörter beschrieben wurden :BEA NIVO : . falls der DB 50 nicht vorhanden ist oder null Datenwörter enthält. Hinweis: Der Programmteil ab Marke "SCHL" kann zum Beschreiben beliebiger Speicherbereiche (z.
Speicherblöcke transferieren Speicherblöcke transferieren Anwendung Mit den Systemoperationen TNB und TNW können Sie Speicherblök- ke transferieren (max. 255 byte mit TNB, max. 255 Wörter mit TNW). Sie können mit diesen Operationen sowohl auf den lokalen Speicher- bereich als auch auf den byteweise organisierten Teil des globalen Speicherbereichs (Adressen F000H bis F3FFH, FC00H bis FFFFH) zugreifen.
Seite 465
Speicherblöcke transferieren Adressen Speicherbereich Fortsetzung der Tabelle 9-4: System-RAM: 8000H bis DD7FH DB-RAM (16 bit) DD80H bis E3FFH DB 0 (16 bit) E400H bis E7FFH S-Merker (8 bit) E800H bis EDFFH Systemdaten (16 bit: BA, BB, BS, BT, Zähler und Zeiten) EE00H bis EFFFH RAM (8 bit: Merker, Prozeßabbild) F000H bis FFFFH...
Speicherblöcke transferieren 9.3.1 Beispiel für Übertragen von Speicherblöcken a) Aufgabenstellung: Kopieren eines Blocks von max. 4095 Datenwörtern aus einem DB- oder DX-Datenbaustein in einen anderen DB- oder DX-Datenbaustein. Der Anfang des Blocks wird innerhalb des Quell- und Ziel-Datenbausteins durch je einen Offset-Wert zwischen 0 und 4095 festgelegt.
Seite 468
Speicherblöcke transferieren Fortsetzung 1 des Beispiels: b) Programmstruktur: Der FB 10 gliedert sich in fünf Programmabschnitte mit folgenden Aufgaben: - Eingangsparameter: a) Prüfen, ob Quell- und Ziel-Datenbaustein nicht denselben Typ und dieselbe Nummer haben. b) Prüfen, ob die Eingangsparameter "Quell-Offset", "Ziel-Offset" und "Blocklänge"...
Seite 469
Speicherblöcke transferieren Fortsetzung 2 des Beispiels: b) Programmierung des Funktinsbausteins FB 10: Hinweis: Soll ab Datenwort DW 0 kopiert werden, entfallen die fett-kursiv gedruckten Programmteile. Es wird kein Offset-Wert angegeben. FB10 NETZWERK 1 NAME:DB-DB-TR DATENBAUST.-DATENBAUST.-TRANSFER :QTNR E/A/D/B/T/Z: KM/KH/KY/KC/KF/KT/KZ/KG: :QOFF E/A/D/B/T/Z: KM/KH/KY/KC/KF/KT/KZ/KG: KF :ZTNR E/A/D/B/T/Z: KM/KH/KY/KC/KF/KT/KZ/KG:...
Seite 470
Speicherblöcke transferieren Fortsetzung 3 des Beispiels: BEGINN QUELL-DATENBAUSTEIN MW 254 TYP U. NUMMER DES QUELL-DATENBAUSTEINS :SPA OB 181 DATENBAUSTEIN TESTEN :SPB =F003 SPRUNG, FALLS BST.-TEST NEGATIV :TAK A1: ANZAHL DW , A2: ADRESSE :ENT A3: ADRESSE MW 252 OFFSET IM QUELL-DATENBAUSTEIN :ENT A3: ANZAHL DW, A4: ADRESSE MW 246...
Seite 471
Speicherblöcke transferieren Fortsetzung 4 des Beispiels: BEGINN TRANSFER KB 0 VERGLEICHSWERT MB 246 BLOCK-LAENGE, HIGH-BYTE :!=F BLOCK-LAENGE >= 256 WORTE ? :SLW 1 MULTIPL. MIT 2, ANZAHL TEIL- BS 60 BLOECKE MIT JE 128 WORTEN MW 244 END-ADRESSE DER DATEN-QUELLE MW 242 END-ADRESSE DES DATEN-ZIELS :SPB =REST...
Operationen mit dem Basisadressregister (BR-Register) Operationen mit dem Basisadressregister (BR-Register) Anwendung Das Basisadreßregister (32 bit) ermöglicht Ihnen Adreßrechnungen und indirekte Register-Lade- und -Transferoperationen ohne Verwen- dung der AKKUs für die Adressierung. Zugegriffen wird auf die Speicherzelle, deren absolute Adresse sich als Summe von BR-Registerinhalt und einer Konstanten errechnet: Absolute Adresse = BR-Registerinhalt + Konstante Operationen...
Operationen mit dem Basisadressregister (BR-Register) 9.4.1 Transferoperationen zwischen Registern Anwendung Die in diesem Abschnitt aufgeführten Operationen können Sie dazu benutzen, schnell Werte zwischen den Registern AKKU 1, STEP- Adreßzähler (SAZ) und Basisadreßregister (BR) auszutauschen. Operationen Tabelle 9-6 Register-Register-Operationen Operation Operand Funktion –...
Operationen mit dem Basisadressregister (BR-Register) ....AKKU 1, BR MSA, MSB MAS, MBS 16 15 AKKU 1, BR ....AKKU 1 MAB, MBA Bild 9-11 Register-Register-Transferoperationen 9.4.2 Zugriffe auf den lokalen Speicher Anwendung Die folgenden Operationen ermöglichen den Zugriff auf den lokalen, wortweise organisierten Speicher über eine absolute Speicheradresse.
Operationen mit dem Basisadressregister (BR-Register) Operation Operand Beschreibung Fortsetzung der Tabelle 9-7: Konstante die angegebene Konstante zum Inhalt (-32768 bis des BR-Registers addieren und den +32767) Inhalt des AKKU 1 in das so adres- sierte Doppelwort transferieren AKKU 2 = AKKU 1 zulässiger Adreßbereich Die Abolutadresse muß...
Seite 476
Operationen mit dem Basisadressregister (BR-Register) Die Operation TSG bearbeitet das Testen und Setzen einer Belegtzelle. Operation Operand Beschreibung -32768 bis die angegebene Konstante zum Inhalt +32767 des BR-Registers addieren und die so adressierte Belegtzelle testen und setzen Ablauf Als Belegtzelle wird das Low-Byte des durch BR-Register + Kon- stante adressierten Wortes verwendet.
Operationen mit dem Basisadressregister (BR-Register) Lade und Tranfer- operationen auf den byte- Tabelle 9-8 Operationen für Zugriffe auf den byteweise organisierten weise organisierten globalen Speicher globalen Speicher Operation Operand Beschreibung LB GB -32768 bis die angegebene Konstante zum Inhalt +32767 des BR-Registers addieren und das so adressierte Byte in den AKKU-1-LL 1) 3)
Operationen mit dem Basisadressregister (BR-Register) Fehlerreaktion Liegt die errechnete Adresse der Speicherzelle nicht im zulässigen Adreßbereich, so erkennt die CPU einen Laufzeitfehler und ruft den OB 31 auf, falls er geladen ist. Ist der OB 31 nicht geladen, so geht die CPU in den Stoppzustand.
Operationen mit dem Basisadressregister (BR-Register) 9.4.4 Zugriffe auf den Kachel- speicher Anwendung Mit den folgenden Operationen können Sie auf byte- oder wortweise or- ganisierte Kacheln über eine absolute Speicheradresse zugreifen. Die Absolutadresse ist die Summe vom BR-Register-Inhalt und der im Be- fehl enthaltenen Konstanten (-32768 bis 32767).
Operationen mit dem Basisadressregister (BR-Register) Aufschlagen einer Kachel Operation Parameter Beschreibung diejenige Kachel aufschlagen, deren Nummer im AKKU-1-L steht, zulässige Werte: 0 bis 255 Fehlerreaktion Die Kachelnummer muß zwischen 0 und 255 liegen. Ist dies nicht der Fall, so erkennt die CPU einen Laufzeitfehler und ruft den OB 31 auf, falls er geladen ist.
Operationen mit dem Basisadressregister (BR-Register) Ergebnis Das Ergebnis der Operation TSC ist über die Anzeigen ANZ 0 und ANZ 1 auswertbar: ANZ 1 ANZ 0 Bedeutung Inhalt der Belegtzelle ist ’0’; die CPU trägt ihre Steckplatzkennung ein. Die eigene Steckplatzkennung ist bereits in der Belegtzelle eingetragen.
Seite 482
Operationen mit dem Basisadressregister (BR-Register) Operation Operand Beschreibung Fortsetzung der Tabelle 9-10: TB CB -32768 bis die angegebene Konstante zum Inhalt des BR-Registers addieren und den +32767 Inhalt des AKKU-1-LL in das so adressierte Byte in der aufgeschlagenen Kachel transferieren TB CW -32768 bis die angegebene Konstante zum Inhalt...
Operationen mit dem Basisadressregister (BR-Register) Lade- und Transfer- operationen für wortweise organisierte Kacheln Tabelle 9-11 Operationen für Zugriffe auf wortweise organisierte Kacheln Operation Operand Beschreibung LW CW -32768 bis die angegebene Konstante zum Inhalt +32767 des BR-Registers addieren und das so adressierte Wort in der aufgeschlagenen Kachel in den AKKU-1-L laden LW CD...
Seite 484
Operationen mit dem Basisadressregister (BR-Register) Programmieranleitung CPU 928B 9 - 38 C79000-B8500-C898-01...
Mehrprozessorbetrieb und Mehrprozessorkommunikation Inhalt von Kapitel 10 10.1 Mehrprozessorbetrieb ........... . 10 - 4 10.1.1 Wann verwenden Sie den Mehrprozessorbetrieb? .
Seite 487
Mehrprozessorbetrieb und Mehrprozessorkommunikation Dieses Kapitel gibt Ihnen zunächst einige Hinweise, wann Sie den Mehrprozessorbetrieb anwenden können und wie der Datenaustausch der CPU erfolgt. Es gibt Ihnen Informationen darüber, was Sie als Pro- grammierer für den Mehrprozessorbetrieb tun und beachten müssen (Abschnitt 10.1).
Mehrprozessorbetrieb 10.1 Mehrprozessorbetrieb Begriffsdefinition Sie befinden sich im Mehrprozessorbetrieb, sobald Sie eine Koordina- torbaugruppe gesteckt haben, unabhängig davon, wieviele CPUs ge- steckt sind. 10.1.1 • • Wann verwenden Sie den Wenn Ihr Anwenderprogramm zu umfangreich für eine CPU ist Mehrprozessorbetrieb? und Speicherplatz knapp wird, so verteilen Sie Ihr Programm auf mehrere CPUs.
Mehrprozessorbetrieb 10.1.3 Daten über Koppelmerker Für den zyklischen Austausch binärer Daten stehen Ihnen die "Koppel- austauschen merker" zur Verfügung. Diese dienen in erster Linie zum byteweisen Übertragen von Informationen. Dieser Datentransfer kann erfolgen zwischen CPU(s) CPU(s) CPU(s) Kommunikationsprozessor(en) Das Systemprogramm überträgt die Koppelmerker einmal pro Zyklus. Bei einem Datentransfer zwischen CPUs werden die Koppelmerker physikalisch auf dem Koordinator zwischengespeichert.
Seite 490
Mehrprozessorbetrieb Beispiel CPU 1 Koordinator Koppelmerkerausgänge: Schreiben MB 96 bis MB 119 Koppelmerkereingänge: per Brücken frei- Lesen MB 120 bis MB 125 gegebener Bereich: Koppelmerkerbytes MB 96 bis MB 127 CPU 2 Koppelmerkerausgänge: Schreiben MB 120 bis MB 125 Koppelmerkereingänge: Lesen MB 96 bis MB 119 Bild 10-1...
Seite 491
Mehrprozessorbetrieb Datenaustausch zwischen Sollen Daten zwischen einer CPU und einem Kommunikations- CPUs und Kommuni- prozessor übertragen werden, müssen Sie die benötigte Anzahl der Kop- kationsprozessoren pelmerker auf dem Kommunikationsprozessor (CP) freigeben. Auch dort stehen Ihnen 256 byte zur Verfügung, die in Bereiche von 32 byte eingeteilt werden können.
Mehrprozessorbetrieb Übertragung der Die im DB 1 angegebenen Koppelmerkerbytes werden am Ende jedes Koppelmerker im Programmzyklus zusammen mit der Aktualisierung des Prozeß- Mehrprozessorbetrieb abbildes übertragen. Der Koordinator erteilt reihum jeder CPU das Busfreigabesignal. Da- bei darf eine CPU jeweils nur ein Byte übertragen. Dadurch kann es vorkommen, daß...
Mehrprozessorbetrieb 10.1.4 Peripherie- und Koppel- Der Peripheriebereich des Automatisierungsgerätes ist auf dem S5- merkerzuteilung im Mehr- Bus nur einmal vorhanden. Der Peripheriebereich umfaßt die Adres- prozessorbetrieb (DB 1) sen F000H bis FFFFH. Im Mehrprozessorbetrieb greifen alle CPUs im Automatisierungsgerät "gleichzeitig" auf diesen Peripheriebereich zu. Damit dabei keine Da- ten überschrieben werden, muß...
Mehrprozessorbetrieb 3. Übernehmen Sie die eingetragenen Werte durch Betätigen der Übernahmetaste am PG. Das PG generiert danach den DB 1. 4. Übertragen Sie den DB 1 in die CPU oder laden Sie ihn in ein EPROM-Modul. Hinweis Die Zeitenblocklänge können Sie in der DX-0- und/oder DB-1-Maske angeben.
Seite 495
Mehrprozessorbetrieb 2. Geben Sie anschließend (ab Datenwort 3) die einzelnen Operanden- bereiche ein. Vor jedem Operandenbereich müssen Sie eine bestimmte Kennung eingeben. Die möglichen Kennwörter sind: Kennwort für digitale Eingänge KH = DE00 Kennwort für digitale Ausgänge KH = DA00 Kennwort für Eingangskoppelmerker KH = CE00 Kennwort für Ausgangskoppelmerker KH = CA00 Anschließend an das Kennwort listen Sie die Nummern der verwen-...
Seite 496
Mehrprozessorbetrieb Übernahme des DB 1 Bei NEUSTART wird der DB 1 vom Systemprogramm übernommen. Es überprüft dabei, ob die im DB 1 angegebenen Ein- und Ausgänge bzw. Koppelmerker auf entsprechenden Baugruppen quittieren. Falls nicht, geht die CPU mit DB-1-Fehler in den Stoppzustand mit langsamem Blinken der STOP-LED.
Mehrprozessorkommunikation 10.2 Mehrprozessorkommunikation Begriffsbestimmung Unter Mehrprozessorkommunikation versteht man den Austausch größerer Datenmengen (Datenbausteine) zwischen CPUs, die im Mehrprozessorbetrieb arbeiten. Für die Mehrprozessorkommunikation ist der Koordinator KOR 923C erforderlich. 10.2.1 Einführung Für die Übertragung von Datenbausteinen, genauer: von Datenblöcken mit einer Größe von max. 64 byte (= 32 Datenwörtern), stehen Ihnen –...
Mehrprozessorkommunikation Der Datenbaustein in der Empfangs-CPU kann länger oder kürzer sein als der Sende-Datenbaustein. Entscheidend ist, daß die von der Funk- tion SENDEN übertragenen Datenwörter im Empfangs-Daten- baustein existieren; andernfalls erkennt die Funktion EMPFANGEN einen Fehler. Beispiel: Sende-Daten in Empfangs-Daten der Sende-CPU: in der Empfangs-CPU:...
Mehrprozessorkommunikation 10.2.3 Warum Daten zwischen- In der Regel wird der Mehrprozessorbetrieb dazu benutzt, zu bear- gespeichert werden beitende Aufgaben auf mehrere CPUs zu verteilen. Da diese Aufgaben nicht identisch sind und zudem die Leistungsmerkmale der beteiligten CPUs unterschiedlich sein können, läuft im Mehrprozessorbetrieb die Programmbearbeitung auf den einzelnen CPUs immer asynchron ab.
Mehrprozessorkommunikation 10.2.4 Wie der Zwischenspeicher abgearbeitet und verwaltet wird Abarbeitung Dem Zwischenspeicher liegt das FIFO-Prinzip zugrunde (First in – first out, Warteschlangenprinzip). Somit ist die Empfangsreihen- folge gleich der Sendereihenfolge. Dies gilt für jede einzelne Verbin- dungsstrecke (gekennzeichnet durch Sende - und Empfangs- CPU) und ist von anderen Verbindungen unabhängig.
Seite 501
Mehrprozessorkommunikation Beispiel Belegung des Zwischenspeichers durch eine Verbindungsstrecke: Die Verbindungsstrecke "von CPU 3 nach CPU 2" wird initialisiert. Dabei werden ihr auf dem Zwischenspeicher des Koordinators sieben Speicherblöcke zuge- wiesen. Anschließend könnte z. B. folgende Datenübertragung ablaufen: Sende-Kapazität (Anzahl freier Speicherblöcke) Initiali- Senden...
Mehrprozessorkommunikation Zusammenfassung Das Zwischenspeichern im Koordinator KOR 923C hat die Aufgabe, die asynchronen Abläufe von Sende- und Empfangs-CPU und deren un- terschiedliche Arbeitsgeschwindigkeiten auszugleichen. Da die Kapazität des Zwischenspeichers begrenzt ist, sollte der Emp- fänger "häufig" und "regelmäßig" überprüfen, ob Daten gespei- chert sind (Funktion EMPFANGS-TEST, Empfangs-Kapazität >...
Mehrprozessorkommunikation 10.2.5 Was Sie beim System- Die Mehrprozessor-Kommunikation erfordert, daß bei allen beteilig- Anlauf beachten müssen ten CPUs der STOP-RUN-Übergang (= ANLAUF) gleich abläuft, d. h. entweder einheitlich NEUSTART oder einheitlich WIEDERANLAUF. Durch entsprechende • • Bedienung (Frontschalter, Programmiergerät), • • Parametrierung (DX 0) und/oder •...
Mehrprozessorkommunikation 10.2.6 Was Sie beim Aufrufen der Kommunikations-OBs be- achten müssen Gehen Sie folgendermaßen vor: 1. Rufen Sie die Funktion INITIALISIEREN nur im Neustart- Organisationsbaustein OB 20 auf einer CPU auf. 2. Rufen Sie die Funktionen SENDEN, SENDE-TEST, EMPFANGEN, EMPFANGS-TEST entweder nur innerhalb der zyklischen Programmbearbeitung oder nur innerhalb der zeitgesteuerten Programmbearbeitung auf.
Mehrprozessorkommunikation Ergebnisanzeigen Die Ergebnisanzeigen (ANZ 1/ANZ 0, VKE usw.) werden von den Kommunikations-OBs beeinflußt. Nähere Information dazu entneh- men Sie bitte dem Abschnitt 10.2.8. • • CPU 922, CPU 928, Veränderung der Akkus Die Inhalte AKKU 1 bis AKKU 4 sowie CPU 928B: die Registerinhalte werden von den Kommunikations-OBs nicht verändert.
Mehrprozessorkommunikation Aufrufparameter Als Aufrufparameter wird bei allen Kommunikations-OBs die Num- mer des ersten Merker-Bytes im Datenfeld (= Zeiger auf Datenfeld) im AKKU-1-L übergeben. Zulässige Werte dafür sind 0 bis 246. Beispiel Datenfeld mit Parametern der Funktion EMPFANGEN (OB 204) MB x + 0: Sende-CPU Eingangsparameter MB x + 1:...
Seite 507
Mehrprozessorkommunikation Tabelle 10-1 Anzeigen der Kommunikations-OBs Anzeigen Auswertung Bedeutung ANZ 1 ANZ 0 SPB= Funktion vollständig und korrekt abgearbeitet SPB= Funktion abgebrochen, Zeiger auf Datenfeld unzulässig (>246) Funktion abgebrochen aufgrund eines Initialisie- rungskonfliktes SPB= und Funktion abgebrochen SPM= aufgrund eines Fehlers (Fehler-Nr.
Seite 508
Mehrprozessorkommunikation Das erste Byte im Feld der Ausgangsparameter (Anzeigenbyte) zeigt ebenfalls an, ob eine Funktion korrekt und vollständig abgearbeitet worden ist. Der Grund eines Funktionsabbruchs wird detaillierter dar- gestellt als in den Ergebnisanzeigen. Unter der oben getroffenen Vereinbarung, daß zumindest der Zeiger auf das Datenfeld einen korrekten Wert enthält, ist dieses Byte immer re- levant.
Seite 509
Mehrprozessorkommunikation Beispiel Die Funktion SENDEN zeigt Fehler an und wird nicht durchgeführt. Wenn Sie nun Programm- und/oder Parameteränderungen durchführen und die Funktion SENDEN erneut einen Fehler mit höherer Nummer als vorher anzeigt, so können Sie daraus schließen, daß Sie einen von mehreren Fehlern beseitigt haben. Initialisierungskonflikt Ein Initialisierungskonflikt kann nur bei der Funktion INITIALI- SIEREN auftreten.
Seite 510
Mehrprozessorkommunikation Anz.- Bedeutung Byte Fortsetzung der Tabelle 10-3: Die Zuordnungsliste im Datenbaustein ist nicht korrekt aufgebaut. Die Summe der vergebenen Speicherblöcke ist größer als 48. Fehler Ein aufgetretener Fehler erfordert eine Änderung in der Program- mierung/Parametrierung. Fehler-Nummern (byteweise Auswertung des Anzeigenbytes): Tabelle 10-4 Anzeigenbyte: Fehler-Nummern Anz.-...
Seite 511
Mehrprozessorkommunikation Anz.- Bedeutung Byte Fortsetzung der Tabelle 10-4: Die Verwaltungsdaten (Warteschlangenverwaltung) der angewählten Verbindungsstrecken sind fehlerhaft; den Zwischenspeicher im Koordinator KOR 923C richten Sie mit Hilfe der Funktion INITIALISIEREN neu ein (SENDEN, EMPFANGEN, SENDE-TEST, EMPFANGS- TEST). Der Parameter "Baustein-Kennung" (SENDEN) bzw. die vom Sender überlieferte Baustein-Kennung (EMPFANGEN) ist unzulässig.
Seite 512
Mehrprozessorkommunikation Warnung Die Funktion konnte nicht durchgeführt werden; der Funktionsaufruf ist zu wiederholen, z. B. im nächsten Zyklus. Warnungs-Nummern (byteweise Auswertung des Anzeigenbytes): Tabelle 10-5 Anzeigenbyte: Warnungs-Nummern Anz- Bedeutung Byte Die Funktion SENDEN kann keine Daten übergeben, da die Sende-Kapazität bereits beim Funktionsaufruf gleich Null war.
Laufzeiten der Kommunikations-OBs 10.3 Laufzeiten der Kommunikations-OBs "Laufzeit" ist die Bearbeitungszeit der Sonderfunktions- Organisationsbausteine. Tabelle 10-6 Laufzeiten der Kommunikations-OBs Sonderfunktions-OB Baustein- CPU 922 CPU 928 CPU 928B CPU 946/ CPU 948 Name OB 200/ 230 ms 130 ms 130 ms 128 ms 90 ms Initialisieren...
Seite 514
Laufzeiten der Kommunikations-OBs Übertragungszeit Ein wichtiges Leistungsmerkmal einer Verbindungsstrecke (z. B. von CPU 1 nach CPU 2) ist die gesamte Datenübertragungszeit. Sie setzt sich aus den folgenden drei Komponenten zusammen: • • Sende-Dauer (siehe Laufzeit), • • Dauer der Zwischenspeicherung (im Koordinator KOR 923C) •...
Funktion INITIALISIEREN (OB 200) 10.4 Funktion INITIALISIEREN (OB 200) 10.4.1 Funktion Um von einer CPU an eine andere CPU Daten übertragen zu können, müssen diese vorübergehend zwischengespeichert werden. Die Funktion INITIALISIEREN richtet zu diesem Zweck einen Zwischenspeicher im Koordinator KOR 923C ein. Die Speicherkapazität wird in Speicherblöcken mit einer festen Länge von 32 Wörtern eingerichtet (initialisiert).
Funktion INITIALISIEREN (OB 200) Bei vier gesteckten CPUs ergeben sich zwölf Verbindungsstrecken: CPU 1 CPU 2 CPU 4 CPU 3 Mit der Funktion INITIALISIEREN wird festgelegt, wie die insgesamt 48 zur Verfügung stehenden Speicherblöcke den maximal zwölf Ver- bindungsstrecken zugeordnet werden. D.
Funktion INITIALISIEREN (OB 200) 10.4.2 Aufrufparameter Aufbau des Vor Aufruf des OB 200 müssen Sie im Datenfeld die Eingangs- (Paramerter-)Datenfeldes parameter bereitstellen. Der OB 200 benötigt im Datenfeld 8 M-Mer- kerbytes für Ein- und Ausgangsparameter: MB x + 0: Betriebsart (Automatisch/ Eingangsparameter Manuell ) MB x + 1: Anzahl CPUs...
Funktion INITIALISIEREN (OB 200) Baustein-Kennung, Die Parameter sind nur relevant, wenn Sie die Betriebsart "Manuell" Baustein-Nummer. gewählt haben. Sie müssen dann in einem Datenbaustein eine Zuord- Adresse Zuordnungsliste nungsliste bereitstellen, in der nach einem festgelegten Schema die 48 zur Verfügung stehenden Speicherblöcke (oder weniger) den maximal 12 Verbindungsstrecken zugeordnet werden.
Seite 519
Funktion INITIALISIEREN (OB 200) Zuordnungsliste Mit der Zuordnungsliste legen Sie fest, wieviele der vorhandenen 48 Speicherblöcke den einzelnen Verbindungswegen zugeordnet werden sollen. Die Liste wird vom Systemprogramm nicht verändert. Sie hat fol- genden Aufbau: Tabelle 10-7 Zuordnungsliste für OB 200 (Initialisieren) Datenwort Format Wert...
Funktion INITIALISIEREN (OB 200) Beispiel Sie haben drei CPUs gesteckt. Von CPU 2 sind sehr viele Daten an die beiden anderen zu übertragen. Diese wiederum senden nur wenige Daten zurück an CPU 2 als Rückmeldung in einem logischen Quittungsverkehr. Zwischen CPU 1 und CPU 3 ist kein Datenaustausch nötig.
Seite 521
Funktion INITIALISIEREN (OB 200) Anz.- Bedeutung Byte Die für die Mehrprozessorkommunikation benötigten Kacheln (Nr. 252 bis Nr. 255) sind nicht bzw. nicht vollständig vorhanden. Die für die Mehrprozessorkommunikation benötigten Kacheln (Nr. 252 bis 255) sind defekt. Der Parameter "Automatisch/Manuell" ist unzulässig. Unterscheiden Sie folgende Fälle: - die Kennung "Automatisch/Manuell"...
Funktion SENDEN (OB 202) 10.5 Funktion SENDEN (OB 202) 10.5.1 Funktion Die Funktion SENDEN übergibt einen Datenblock in den Zwischen- speicher des Koordinators KOR 923C. Zusätzlich zeigt sie an, wieviele Datenblöcke noch gesendet und zwischengespeichert werden können. 10.5.2 Aufrufparameter Aufbau des Vor Aufruf des OB 202 müssen Sie im Datenfeld die Eingangs- (Paramerter-)Datenfeldes parameter bereitstellen.
Seite 523
Funktion SENDEN (OB 202) Baustein-Kennung Kennung = 1: DB-Datenbaustein Kennung = 2: DX-Datenbaustein Kennung = 0 oder 3 bis 255: Unzulässig, führt zu einer Fehleranzeige Baustein-Nummer Die Baustein-Nummer ergibt zusammen mit der Baustein-Kennung und der Block-Nummer den Bereich, dem die Sende-Daten entnom- men werden (und in dem sie auf der Empfangs-CPU abgelegt werden).
Seite 524
Funktion SENDEN (OB 202) Folgende Fälle sind zu unterscheiden: • • DB ist länger als Quellbereich: Ist der Datenbaustein ausreichend lang, so ergibt sich pro Block ein 32 Wörter großer Bereich gemäß der angeführten Tabelle. • • DB ist zu kurz: Liegt das Datenbaustein-Ende innerhalb des parametrierten Blok- kes, so wird im letzten Block ein Bereich mit einer Länge zwi- schen einem und 31 Wörtern übertragen.
Seite 525
Funktion SENDEN (OB 202) Fehler Beim Aufrufen der Funktion SENDEN können folgende Fehlernum- mern (byteweise Auswertung des Anzeigenbytes) auftreten: Anz.- Bedeutung Byte Der Parameter "Empfangs-CPU" ist unzulässig. Unterscheiden Sie folgende Fälle: - die Nummer der Empfangs-CPU ist größer 4, - die Nummer der Empfangs-CPU ist kleiner 1, - die Nummer der Empfangs-CPU ist identisch mit der "eigenen"...
Funktion SENDEN (OB 202) Warnung Die Funktion konnte nicht durchgeführt werden; der Funktionsaufruf ist zu wiederholen, z. B. im nächsten Zyklus. Es kann folgende Warnungsnummer (byteweise Auswertung des An- zeigenbytes) auftreten: Anz.- deutung Byte Die Funktion SENDEN kann keine Daten übergeben, da die Sende-Kapazität (s.
Funktion SENDE-TEST (OB 203) 10.6 Funktion SENDE-TEST (OB 203) 10.6.1 Funktion Die Funktion SENDE-TEST ermittelt die Anzahl der freien Speicher- blöcke im Zwischenspeicher des Koordinators KOR 923C. Entsprechend dieser Anzahl m kann die Funktion SENDEN m-mal aufgerufen werden um m Datenblöcke zu übergeben. 10.6.2 Aufrufparameter Aufbau des...
Seite 528
Funktion SENDE-TEST (OB 203) Initialisierungskonflikt Hat bei der Funktion SENDE-TEST keine Bedeutung. Fehler Beim Aufrufen der Funktion SENDE-TEST können folgende Fehler- nummern (byteweise Auswertung des Anzeigenbytes) auftreten: Anz.-Byte Bedeutung Der Parameter "Empfangs-CPU" ist unzulässig. Unterscheiden Sie folgende Fälle: - die Nummer der Empfangs-CPU ist größer 4, - die Nummer der Empfangs-CPU ist kleiner 1, - die Nummer der Empfangs-CPU ist identisch mit der "eigenen"...
Funktion EMPFANGEN (OB 204) 10.7 Funktion EMPFANGEN (OB 204) 10.7.1 Funktion Die Funktion EMPFANGEN übernimmt einen Datenblock vom Zwischenspeicher des Koordinators KOR 923C. Zusätzlich zeigt sie an, wieviele Datenblöcke noch zwischengespeichert sind und empfangen werden können. Die Funktion EMPFANGEN sollte in einer Schleife so oft aufgerufen werden, bis alle zwischengespeicherten Datenblöcke übernommen sind.
Funktion EMPFANGEN (OB 204) 10.7.4 Ausgangsparameter Anzeigenbyte Dieses Byte informiert Sie, ob die Funktion EMPFANGEN korrekt und vollständig abgearbeitet worden ist. Initialisierungskonflikt Hat bei der Funktion EMPFANGEN keine Bedeutung. Fehler Beim Aufrufen der Funktion EMPFANGEN können folgende Fehler- nummern (byteweise Auswertung des Anzeigenbytes) auftreten: Anz.- Bedeutung Byte...
Seite 531
Funktion EMPFANGEN (OB 204) Anz.- Bedeutung Byte Fortsetzung der Fehler-Nummern: Die vom Sender übergebene Baustein-Nummer ist unzulässig, da es sich um einen Datenbaustein mit spezieller Bedeutung handelt. Unterscheiden Sie folgende Fälle: - falls Baustein-Kennung = 1 : DB 0, DB 1 - falls Baustein-Kennung = 2 : DX 0 Die vom Sender übergebene Baustein-Nummer ist fehlerhaft.
Funktion EMPFANGEN (OB 204) Baustein-Kennung: Kennung = 1: DB-Datenbaustein Kennung = 2: DX-Datenbaustein Kennung = 0 oder 3 bis 255: Unzulässig, führt zu einer Fehleranzeige Baustein-Nummer Baustein-Nummer des DB/DX, in dem die Daten empfangen und ab- gelegt wordene sind (und aus dem sie in der Sende-CPU von der Funk- tion SENDEN entnommen worden sind).
Funktion EMPFANGS-TEST (OB 205) 10.8 Funktion EMPFANGS-TEST (OB 205) 10.8.1 Funktion Die Funktion EMPFANGS-TEST ermittelt die Anzahl belegter Speicherblöcke im Zwischenspeicher des Koordinators KOR 923C. Entsprechend dieser Anzahl m kann die Funktion EMPFANGEN m-mal aufgerufen werden um m Datenblöcke zu übernehmen. 10.8.2 Aufrufparameter Aufbau des...
Funktion EMPFANGS-TEST (OB 205) Fehler Beim Aufrufen der Funktion EMPFANGS-TEST können folgende Fehlernummern (byteweise Auswertung des Anzeigenbytes) auftreten: Anz.- Bedeutung Byte Der Parameter "Sende-CPU" ist unzulässig. Unterscheiden Sie folgende Fälle: - die Nummer der Sende-CPU ist größer 4, - die Nummer der Sende-CPU ist kleiner 1, - die Nummer der Sende-CPU ist identisch mit der "eigenen"...
Anwendungen 10.9 Anwendungen Dieser Abschnitt erläutert Ihnen an Hand einiger Beispiele, wie Sie Ihre Mehrprozessor-Kommunikation programmieren können. Hinweis Wenn Sie die nachfolgend aufgeführten Funktionsbausteine verwenden und auf Ihrer CPU zusätzlich Alarme bearbeiten (z. B. durch OB 2), so achten Sie darauf, daß am Anfang einer Unter- brechungsbehandlung die "Schmiermerker"...
Anwendungen Hinweis Es handelt sich bei den folgenden Anwendungsbeispielen um fertige Applikationen, die Sie in Ihr Programm übernehmen können. Programmieren der Funktionsbausteine FB 200: Vorbesetzen der Verbindungen FB 200 INITIAL AUMA INIK ANZC GKAP TNZU ANFZ Parameter- Bedeutung Parameter- Name feld AUMA Automatik/Manuell...
Seite 537
Anwendungen Fortsetzung von FB 200 FB 200 LAE=45 NETZWERK 1 0000 NAME:INITIAL :AUMA E/A/D/B/T/Z: E BI/BY/W/D: BY :ANZC E/A/D/B/T/Z: E BI/BY/W/D: BY :TNZU E/A/D/B/T/Z: E BI/BY/W/D: W :ANFZ E/A/D/B/T/Z: E BI/BY/W/D: W :INIK E/A/D/B/T/Z: A BI/BY/W/D: BY :GKAP E/A/D/B/T/Z: A BI/BY/W/D: BY 0017 =AUMA...
Seite 538
Anwendungen FB 202: Senden eines Datenblocks FB 202 SENDEN ECPU FEWA TNDB SKAP BLNR Parameter- Bedeutung Parameter- Name feld ECPU Empfangs-CPU MB 246 TNDB Typ (H-Byte) und Nummer (L-Byte) MB 247 des Quell-Datenbausteins BLNR Block-Nummer MW 249 FEWA Fehler/Warnung MW 250 SKAP Sende-Kapazizät MB 251...
Seite 539
Anwendungen FB 203: Sendemöglichkeit testen FB 203 SEND-TST ECPU FEHL SKAP Parameter- Bedeutung Parameter- Name Feld ECPU Empfangs-CPU MB 246 FEHL Fehler MB 248 SKAP Sende-Kapazität MB 249 FB 203 LAE=30 NETZWERK 1 0000 NAME:SEND-TST :ECPU E/A/D/B/T/Z: E BI/BY/W/D: BY :FEHL E/A/D/B/T/Z: A BI/BY/W/D: BY...
Seite 540
Anwendungen FB 204: Empfangen eines Datenblocks FB 204 EMPFANG SCPU FEWA EKAP TNDB ANFA ENDA Parameter- Bedeutung Parameter- Name Feld SCPU Sende-CPU MB 246 FEWA Fehler/Warnung MB 248 EKAP Empfangs-Kapazität MB 249 TNDB Typ (H-Byte) und Nummer (L-Byte) des MW 250 Ziel-Datenbausteins ANFA Adresse des ersten empfangenen...
Seite 541
Anwendungen Fortsetzung von FB 204: FB 204 LAE=45 NETZWERK 1 0000 NAME:EMPFANG :SCPU E/A/D/B/T/Z: E BI/BY/W/D: BY :FEWA E/A/D/B/T/Z: A BI/BY/W/D: BY :EKAP E/A/D/B/T/Z: A BI/BY/W/D: BY :TNDB E/A/D/B/T/Z: A BI/BY/W/D: W :ANFA E/A/D/B/T/Z: A BI/BY/W/D: W :ENDA E/A/D/B/T/Z: A BI/BY/W/D: W 0017 =SCPU...
Anwendungen Fortsetzung von FB 205: FB 205 LAE=30 NETZWERK 1 0000 NAME:EMPF-TST :SCPU E/A/D/B/T/Z: E BI/BY/W/D: BY :FEHL E/A/D/B/T/Z: A BI/BY/W/D: BY :EKAP E/A/D/B/T/Z: A BI/BY/W/D: BY 000E =SCPU Sende-CPU 000F MB 246 0010 0011 KB 246 SF-OB: 0012 :SPA OB 205 "Empfangsmoeglichkeit testen"...
Seite 543
Anwendungen Fortsetzung 1 von FB 110: Enthält der Ausgangsparameter REST jedoch einen Wert größer als Null, sind – z. B. im nächsten Zyklus – Folgeaufrufe erforderlich. In diesem Fall darf der gesamte Parametersatz (d.h. die Werte aller Parameter) vom Anwender (-Programm) erst dann verändert werden, wenn der Ausgangsparameter REST den Wert Null hat, d.
Seite 544
Anwendungen Fortsetzung 2 von FB 110: Parameter- Bedeutung Name STAR Übertragung des Datenbausteins nach positiver Flanke starten. Empfangs-CPU ECPU Typ (H-Byte) und Nummer (L-Byte) des zu übertragenden TNDB Datenbausteins. Anzahl der zu übertragenden Datenblöcke. ANZB Nummer des ersten zu übertragenden Datenblocks. ERSB Fehler FEHL...
Anwendungen Anwendung des FB 110 Anwendung des FB 110 Aufgabenstellung Die CPU 1 soll im zyklischen Anwenderprogramm die Datenbausteine DB 3 (Daten- blöcke 2 bis 5) und DB 4 (Datenblöcke 1 bis 3) an die CPU 2 senden. In der CPU 2 soll ebenfalls im zyklischen Anwenderprogramm die Funktion EMPFANGEN 04) aufgerufen werden.
Seite 547
Anwendungen Fortsetzung 1 des Anwendungsbeispiels: 0009 :SPA FB 110 000A NAME :UEBT-DAT 000B STAR : E 2.0 000C ECPU : MB 0 000D TNDB : MW 1 000E ANZB : MB 3 000F ERSB : MB 4 0010 FEHL : MB 5 0011 REST : MB 6...
Anwendungen Fortsetzung 2 des Anwendungsbeispiels: In der CPU 2 überträgt die vom FB 2 aufgerufene Funktion EMPFANGEN (OB 204) jeden ausgesendeten Datenblock in den zugehörigen Datenbaustein. Der vollständige Empfang eines Datenbausteins kann sich über mehrere Zyklen verteilen. FB 2 LAE=yy NETZWERK 1 0000 NAME:E-ORG...
Anwendungen Lösung Aufeinanderfolgende Datenwörter eines DB- oder DX- Datenbau- steins, jeweils ab DW 0, werden als "Koppel-Datenwörter" definiert. Jede Verbindungsstrecke erhält "ihren" Datenbaustein und ist von den anderen Verbindungsstrecken völlig unabhängig. Zu Beginn des Zyklus-Bausteins werden mit Hilfe der Sonderfunktions- Organisationsbausteine zur Mehrprozessor-Kommunikation die Kop- pel-Datenwörter empfangen.
Anwendungen Aufbau der Verbindungsliste Tabelle 10-8 Verbindungsliste für die Erweiterung des Koppelmerkerbereichs TEILLISTE 1 TEILLISTE 2 Verbindungs- DB-Typ Block strecke Nummer anzahl von CPU 1 DW 0 DW 16 nach ..CPU 2 DW 1 DW 17 ... CPU 3 DW 2 DW 18 ...CPU 4...
Seite 551
Anwendungen Die Verbindungsliste besteht aus zwei ähnlich strukturierten Teillisten zu je 16 Datenwörtern. Ausgehend von jeder der vier Sende-CPUs (S1, S2, S3, S4) sind zur Beschreibung jeder Verbindungsstrecke 3 Ein- träge vorgesehen: • • Blockanzahl Die Anzahl der Blöcke legt die Größe (= Anzahl der Datenwörter) des zu übertragenden Datenwortbereiches fest.
Anwendungen Programmstruktur Auf dem Koordinator werden von einer CPU beim Anlauf durch Auf- ruf der Funktion INITIALISIEREN (OB 200) genau so viele Speicher- blöcke pro Verbindungsstrecke reserviert, wie Datenblöcke auf dieser Strecke zu übertragen sind. Zum Aussenden und Empfangen der Datenwortbereiche werden auf je- der CPU zwei Funktionsbausteine verwendet: FB-Nr.
Seite 553
Anwendungen OB 20 Neustart-OB zum Vorbesetzen Der OB 200 darf des Zwischenspeichers im nur in einer CPU Koordinator KOR 923C aufgerufen werden. OB 200 OB 1 Zyklisches Anwenderprogramm das um den Aufruf der Funktions- DB xxx bausteine EMPF-DAT und SEND-DAT FB 101 erweitert wird.
Anwendungen Programmieren der Funktionsbausteine FB 100: Senden von Datenwortbereichen Vor Aufruf des FB 100 muß der Datenbaustein aufgeschlagen werden, der die Verbindungsliste enthält. Der Funktionsbaustein SEND-DAT benötigt zum Aus- werten der in der Verbindungsliste enthaltenen Informationen die Nummer der CPU, auf der er aufgerufen wird. Falls innerhalb des Funktionsbausteins die Funktion SENDEN (OB 202) nicht korrekt abgearbeitet werden konnte, wird die jeweilige Fehler- oder Warnungs- Nummer im Ausgangsparameter FEWA übergeben und das VKE = 1 gesetzt.
Anwendungen Anwendungsbeispiel Anwendung der FB 100/101 Aufgabenstellung Zwischen drei CPUs sollen Daten ausgetauscht werden: - von CPU 1 nach CPU 2: Datenbaustein DB 3, DW 0 bis DW 127 (= 4 Blöcke) on CPU 1 nach CPU 3: Datenbaustein DX 4, DW 0 bis DW 63 (= 2 Blöcke) - von CPU 2 nach CPU 1 und CPU 3: Datenbaustein DB 5, DW 0 bis DW 95 (= 3 Blöcke)
Seite 560
Anwendungen Fortsetzung 1 des Anwendungsbeispiels: Realisierung 1. Bausteine laden Folgende Bausteine müssen zusätzlich zum OB 1 in die einzelnen CPUs geladen werden: Funktion CPU 1 CPU 2 CPU 3 Anlauf-OB OB 20 — — Anwenderprogramm FB: SEND-DAT FB 100 FB 100 FB 100 FB: EMPF-DAT FB 101...
Seite 561
Anwendungen Fortsetzung 2 des Anwendungsbeispiels: – – Teilliste 1 – – KC = ’S1’; von CPU 1 zu .. KY = 002,004; .. CPU 2 vier Datenblöcke senden KY = 003,002; .. CPU 3 zwei Datenblöcke senden KY = 004,000; KC = S2’;...
Seite 562
Anwendungen Fortsetzung 3 des Anwendungsbeispiels: 4. Aufrufe der Funktionsbausteine in den FB 1 der CPUs programmieren Auf jeder CPU wird das Anwenderprogramm um den Aufruf der Funktionsbausteine EMPF-DAT und SEND-DAT erweitert. Der abgedruckte Funtionsbaustein FB 1 ist für die CPU 1 bestimmt. Für den Ablauf auf den anderen CPUs muß lediglich der Eingangsparameter CPUN (CPU-Nummer) angepaßt werden.
Seite 563
PG-Schnittstellen -Testhilfen In halt vo n Kapitel 11 11.1 Übersicht ............. . 11 - 4 11.2 PG-Funktionen .
Seite 564
I nhalt P rog ram m iera nleitung CPU 928B 11 - 2 C79000-B8500-C898, 01...
Übersicht 11.1 Üb ersicht • • • • alternativ Tabel le 11-1 Hil fen für I nbetriebnahme und Test Hilfe Abschnitt Pro gra mmie ranle itung CPU 928B 11 - 4 C79000-B8500-C898, 01...
PG-Funktionen 11.2 P G -Fun ktion en Hinw eis Aufrufen und Bedienen Ausführung Systemkontrollpunkte Stop Zyklus "Wartezustand" Asyn- chron Anwenderkontrollpunkte P rog ram m iera nleitung CP U 928B 11 - 5 C79000-B8500-C898, 01...
PG-Funktionen Ausgabe Adresse 11.2.2 Speicher- und Übertra- gungsfunktionen Urlöschen Hinw eis S peicher komprimieren P rog ram m iera nleitung CP U 928B 11 - 7 C79000-B8500-C898, 01...
PG-Funktionen S tatus Baustein Funktion aufrufen und Haltepunkt vorgeben Aufruf im STOP Hinw eis Einschachtelungen und Unterbrechungen → → Pro gra mmie ranle itung CPU 928B 11 - 10 C79000-B8500-C898, 01...
PG-Funktionen Bearbeitu ngskontrolle Funktion aufrufen und 1. Haltepunkt vorgeben Vorsicht Koordinator Testbetrieb nicht Aufruf im ANLAUF und im Programmbearbeitung einschließlich Aufruf im STOP P rog ram m iera nleitung CP U 928B 11 - 11 C79000-B8500-C898, 01...
Seite 574
PG-Funktionen Funktion fortführen und Ausgangspunkt: weiteren Haltepunkt vorgeben Folge Hinw eis keinen neuen Hinw eis Pro gra mmie ranle itung CPU 928B 11 - 12 C79000-B8500-C898, 01...
Seite 575
PG-Funktionen Haltepunkt z urücknehmen Funktion abbrechen Einschachtelungen Hinw eis P rog ram m iera nleitung CP U 928B 11 - 13 C79000-B8500-C898, 01...
Seite 576
PG-Funktionen Befehl ausführen 1. Haltepunkt Daten lesen WARTEZUSTAND (Daten ausgeben) Prozeßalarm, Weck- Folge-Halte- < <<<<< alarm, Fehler-OB punkt Befehl ausführen Daten lesen WARTEZUSTAND (Daten ausgeben) Prozeßalarm, Weck- < <<<<< alarm, Fehler-OB Bil d 11- 1 Testablauf bei "Bearbei tungskontrol le" Hinw eis Pro gra mmie ranle itung CPU 928B 11 - 14...
Seite 577
PG-Funktionen • • → Unterbrechungen • • → • • → Hinw eis P rog ram m iera nleitung CP U 928B 11 - 15 C79000-B8500-C898, 01...
PG-Funktionen S tatus Variablen Ablauf während der Programmbearbeitung Prozeßabbild Ablauf der Funktion im S TOP Eingänge direkt Ablauf der Funktion im WARTEZUSTAND Prozeßabbild Wechsel des → → Betriebsz ustandes/ Beenden der Funktion Hinw eis Pro gra mmie ranle itung CPU 928B 11 - 16 C79000-B8500-C898, 01...
PG-Funktionen S teuern Hinw eis STOP Ablauf der Funktion gesamte alle nicht gelöscht. Beenden der Funktion S teuern Variablen Hinw eis mehrere Operanden P rog ram m iera nleitung CP U 928B 11 - 17 C79000-B8500-C898, 01...
Tätigkeiten an Kontrollpunkten 11.3 Tätigkeiten an Kon trollp un kten Tabell e 11- 2 Tätigkei ten an Kontrol lpunkten Sytemkontrollpunkt Tätigkeiten der Online- Anw ender- kontroll- "Stop" "Zyklus" "Warte- "Asyn- Funktionen punkt zustand" chron" 1) 2) Tätigkeiten, die über mehrere Systemkontrollpunkte verteilt werden können Pro Systemkontrollpunkt maximal ein Baustein Nach "Komprimieren im STOP"...
Serielle Kopplung PG AG über 1. oder 2. serielle Schnittstelle 11.4 S erielle Ko pp lun g P G A G üb er 1. od er 2. serielle S chnittstelle • • • • • • • • P rog ram m iera nleitung CP U 928B 11 - 19 C79000-B8500-C898, 01...
Parallelbetrieb von z wei seriellen PG-Schnittstellen 11.5 P arallelb etrieb von zwei seriellen P G -Schn ittstellen PG-Schnittstelle Schnittstellen- modul Bil d 11- 2 Zwei te Schni ttstell e al s PG- Schnittstel le nutzen Pro gra mmie ranle itung CPU 928B 11 - 20 C79000-B8500-C898, 01...
Seite 583
Parallelbetrieb von zwei seriellen PG-Schnittstellen Konfigurations-Beispiele CPU 928B CP 143 PG über SINEC H1 und KOR C angeschlossen PG direkt angeschlossen "Affenschaukel" SINEC H1 Bil d 11- 3 1. Konfigurations- Bei spi el CPU 928B SS 1 OP direkt angeschlossen (zum Bedienen und Beobachten) SS 2 PG direkt angeschlossen (zum Programmieren)
Parallelbetrieb von z wei seriellen PG-Schnittstellen 11.5.1 I nbetriebnahme Schritt Aktion 11.5.2 Betrieb Gruppe Kennzeichen kurzlaufende langlaufende zyklische Vorsicht Pro gra mmie ranle itung CPU 928B 11 - 22 C79000-B8500-C898, 01...
Seite 585
Parallelbetrieb von zwei seriellen PG-Schnittstellen nicht parallel Tabel le 11-3 F unktionen, di e nicht paral lel auf zwei PGs abl aufen Am ersten PG Diese Funktion ist am zw eiten läuft die Funktion: PG nicht möglich: "A S -F u nktio n gesperrt: la ufend e F u n ktion " "...
Parallelbetrieb von z wei seriellen PG-Schnittstellen 11.5.3 A blauf bei bestimmten Betriebsfällen Paralleler Betrieb bei kurzlaufenden Funktionen Anwender am PG 1 CPU 928B Anwender am PG 2 Eingabe PG 2 über Tastatur Eingabe PG 1 über Tastatur Aufbereitung Eingabe1 im PG 1 Aufbereitung Eingabe 2 im PG 2 Übertragen Auftrag 1 an die CPU Hier muß...
Parallelbetrieb von zwei seriellen PG-Schnittstellen Paralleler Betrieb bei langlaufenden Funktionen Paralleler Betrieb bei zyklischen Funktionen Anwender am PG 1 CPU 928B Anwender am PG 2 PG 1 teilt der CPU mit, welche Variablen aus- gegegeben werden sollen. PG 1 fordert die aktuellen Daten an.
Seite 588
Parallelbetrieb von z wei seriellen PG-Schnittstellen Pro gra mmie ranle itung CPU 928B 11 - 26 C79000-B8500-C898, 01...
Seite 589
Parallelbetrieb von zwei seriellen PG-Schnittstellen Anwender am PG 1 CPU 928B Anwender am PG 2 PG 1 teilt der CPU mit, welche Variablen aus- gegeben werden sollen. PG 1 fordert die aktuellen Daten an. (PG meldet: Status- bearbeitung läuft.) PG 1 fordert die aktuellen Daten an.
Parallelbetrieb von z wei seriellen PG-Schnittstellen Besonderheit bei zyklischen Funktionen auf beiden PG CPU 928B Anwender am PG 1 Anwender am PG 2 PG 1 teilt der CPU mit, welche Variablen aus- gegeben werden sollen. PG 1 fordert die aktuellen Daten an. (PG meldet: Status- bearbeitung läuft.) PG 1 fordert die...
Anhang Inhalt von Kapitel 12 Anhang 1: Technische Daten der CPUs im AG S5-135U ........12 - 4 Anhang 2: Fehlerkennungen .
Seite 592
Inhalt Programmieranleitung CPU 928B 12 - 2 C79000-A8500-C898, 01...
Seite 593
Anhang Dieses Kapitel gibt Ihnen einige zusätzliche Informationen zur CPU 928B wie Laufzeitenvergleich mit CPU 922, CPU 928 und CPU 928B, Fehler- und Ebenenkennungen und andere für die Fehler- diagnose hilfreiche Daten und Erläuterungen Programmieranleitung CPU 928B 12 - 3 C79000-A8500-C898, 01...
Anhang 1: Technische Daten der CPUs im AG S5-135U Anhang 1: Technische Daten der CPUs im AG S5-135U Operation / Bearbeitung CPU 922 CPU 928 CPU 928B typische Befehlsausführungszeiten für Bitbefehle: µ µ µ M, E, A 0,57 µ µ µ...
Seite 595
Anhang 1: Technische Daten der CPUs im AG S5-135U Operation / Bearbeitung CPU 922 CPU 928 CPU 928B alarmgesteuerte Programmbearbeitung Verlängerung der Zykluszeit durch Einschachtelung eines leerenOB 2 (ohne STEP-5-Opera- µ µ µ tionen) an einer Bausteingrenze µ µ µ Reaktionszeit zeitgesteuerte Programmbearbeitung µ...
Anhang 1: Technische Daten der CPUs im AG S5-135U Operation / Bearbeitung CPU 922 CPU 928 CPU 928B Speichergrößen Größe des Anwenderspeichermoduls (in K byte) Größe des Speichers für Daten- bausteine (DB-RAM, in ca. 22,2 ca. 46,6 ca. 46,6 K byte) Zeit- und Zählzellen, Merker Anzahl der Zeit- und Zählzellen je 128...
Anhang 2: Fehlerkennungen Anhang 2: Fehlerkennungen Fehlerkennungen im System- datum BS 3 und BS 4 BS 3 BS 4 Erläuterung Aufbau der Bausteinadreßlisten (Auswertung des DB 0) 8001H yyyyH Falsche Bausteinlänge yyyy = Adresse des Bausteins mit falscher Länge 8002H yyyyH Berechnete Endadresse des Bausteins im Speicher falsch yyyy = Bausteinadresse...
Seite 598
Anhang 2: Fehlerkennungen BS 3 BS 4 Erläuterung Auswertung des DB 2 0421H DByyH Datenbaustein nicht geladen yy = Nummer des nicht geladenen Datenbausteins 0422H FByyH Funktionsbaustein nicht geladen yy = Nummer des nicht geladenen Funktionsbausteins 0423H FByyH Funktionsbaustein nicht erkannt yy = Nummer des nicht erkannten Funktionsbausteins 0424H FByyH...
Seite 599
Anhang 2: Fehlerkennungen BS 3 BS 4 Erläuterung Auswertung des DX 2 (Fortsetzung) 045BH xxyyH Baustein für Sendefach/Auftragsfach unzulässig xx = Kennung / yy = DB-Nummer 045CH xx00H Datenkennung für Empfangsfach ungültig (ungleich 44H, 58H, 00H) xx = Datenkennung 045DH xxyyH Baustein für Empfangsfach unzulässig xx = Kennung / yy = DB-Nummer...
Seite 600
Anhang 2: Fehlerkennungen Fehlerkennungen in AKKU 1 und AKKU 2 aufgeru- Erläuterung fener OB REG-FE (Reglerfehler) 0801H DByyH Abtastzeitfehler OB 34 yy = Nummer des betreffenden Regler-Datenbausteins 0802H DByyH Regler-Datenbaustein nicht geladen yy = Nummer des nicht geladenen Datenbausteins 0803H FByyH Regler-Funktionsbaustein nicht geladen yy = Nummer des nicht geladenen Funktionsbausteins...
Seite 601
Anhang 2: Fehlerkennungen aufgeru- Erläuterung fener OB BCF (Befehlscodefehler)/Operationscodefehler 1811H – Befehl mit unzulässigem Opcode OB 29 1812H – Unzulässiger Opcode bei einem Befehl, bei dem das High- Byte des 1. Befehlswortes den Wert 68H enthält 1813H – Unzulässiger Opcode bei einem Befehl, bei dem das High- Byte des 1.
Seite 602
Anhang 2: Fehlerkennungen aufgeru- Erläuterung fener OB LZF (Laufzeitfehler)/Lade-bzw.Transferfehler 1A11H – Zugriff mit U/UN D, O/ON D, S/R D, = D auf ein nicht definiertes OB 32 Datenwort 1A12H – Transferfehler bei TDR auf ein nicht definiertes Datenwort 1A13H – Transferfehler bei TDL auf ein nicht definiertes Datenwort –...
Seite 603
Anhang 2: Fehlerkennungen aufgeru- Erläuterung fener OB LZF (Laufzeitfehler)/sonstige Laufzeitfehler (Fortsetzung) Fehleranzeige von .../durch ... : OB 31 1A34H 0220H OB 182: "Anzahl zu übertragender Datenworte" ist unzulässig (= 0 oder > 4091) 0221H OB 182: Quelldatenbaustein ist zu kurz 1A34H OB 182: Zieldatenbaustein zu kurz 1A34H...
Seite 604
Anhang 2: Fehlerkennungen aufgeru- Erläuterung fener OB LZF (Laufzeitfehler)/sonstige Laufzeitfehler (Fortsetzung) Fehleranzeige von .../durch ... : 1A4DH 0102H OB 151: "Nummer des ersten Datenfeldwortes" ist unzulässig OB 31 1A4DH 0103H OB 151: als Länge des Datenbausteins ist im Bausteinkopf ein Wert <...
Seite 605
Anhang 2: Fehlerkennungen aufgeru- Erläuterung fener OB LZF (Laufzeitfehler)/sonstige Laufzeitfehler (Fortsetzung) Fehleranzeige von .../durch ... : 1A58H – TNW/TNB: Der Quellblock liegt nicht vollständig in einem dieser OB 31 Bereiche: 0000 .. 7FFF Anwenderspeicher (siehe Kapitel 9) 8000 .. DD7F Datenbaustein-RAM DD80..
Anhang 3: STEP-5-Operationen, die in der CPU 928B nicht vorhanden sind Anhang 3: STEP-5-Operationen, die in der CPU 928B nicht vorhanden sind Beachten Sie bitte, daß die folgenden STEP-5-Operationen der CPU 946/947 und CPU 948 in der CPU 928B nicht ablauffähig sind: Befehl Funktion Befehlsausgabe sperren...
Anhang 5: Beispiel "USTACK-Auswertung" Anhang 5: Beispiel "USTACK-Auswertung" Dieses (stark vereinfachte) Beispiel verdeutlicht Ihnen eine mögliche Vorgehensweise bei der Auswertung des USTACK. Beachten Sie dazu auch das Abschnitt 5.4 "Steuerbits und Unterbre- chungsstack"! Ausgangspunkt Die CPU hat die zyklische Programmbearbeitung abgebrochen und ist in den Stoppzustand übergegangen.
Seite 609
Anhang 5: Beispiel "USTACK-Auswertung" Möglicherweise hat das Systemprogramm bei Auftreten eines Laufzeit- fehlers festgestellt, daß der zugehörige Fehler-Organisationsbaustein nicht programmiert ist. Da es jedoch verschiedene Laufzeitfehler gibt, und Sie nicht wissen, welcher davon aufgetreten ist, sind die Informa- tionen aus den Steuerbits noch nicht ausreichend. Lassen Sie sich deshalb den USTACK ausgeben: UNTERBRECHUNGSSTACK TIEFE...
Seite 610
Anhang 5: Beispiel "USTACK-Auswertung" Durch Weiterschalten erscheint am PG der USTACK mit der Tiefe 02: UNTERBRECHUNGSSTACK TIEFE BEF-REG: SAZ: 0037 DB-ADR: 0000 BA-ADR: 0000 2006 BST-STP: 0001 OB-NR.: DB-NR.: -NR.: REL-SAZ: 0004 DBL-REG.: 0000 EBENE: 0004 UAMK: 0020 UALW: 0000 AKKU1: 0001 1001 AKKU2:...
Seite 611
Anhang 5: Beispiel "USTACK-Auswertung" ! SYMB.ANZ.! !BIB.NR. ! AUSGABE GERAET: AG BAUST: SUCHLAUF: 4H REL-SAZ Am PG sehen Sie nach erfolgtem Suchlauf den Befehl "A DB 6", der für die Unterbrechung verantwortlich ist, da ein Datenbaustein mit der Nummer 6 im Anwenderspeicher nicht vorhanden ist. OB 1 NETZWERK 1 0000...
Seite 612
Anhang 5: Beispiel "USTACK-Auswertung" Programmieranleitung CPU 928B 12 - 22 C79000-A8500-C898, 01...
Literaturhinweise Programmieranleitung CPU 928B 13 - 1 C79000-A8500-C898, 01...
Seite 614
Literaturhinweise Programmieranleitung CPU 928B 13 - 2 C79000-A8500-C898, 01...
Seite 615
Bestell-Nr. 6ES5 998-1SA01 Standard-Funktionsbausteine Hantierungsbausteine CPU 922, CPU 922, CPU 928B Automatisierungsgerät S5-135U, S5-155U SINEC Handbuch CP 143 mit COM 143 Bestell-Nr. 6GK1970-1AB43-0AA0 Hans Berger: Automatisieren mit SIMATIC S5-155U SIEMENS AG ISBN 3-8009-1538-3 Programmieranleitung CPU 928B 13 - 3 C79000-A8500-C898-01...
Seite 616
Literaturhinweise Speicherprogrammierbare Steuerungen Grundbegriffe SIEMENS AG Bestell-Nr. E80850-C293-X-A2 Katalog ST 59: Programmiergeräte SIMATIC S5 /10/ Katalog ST 54.1: Automatisierungsgeräte S5-135U, S5-155U und S5-155H /11/ Katalog ST 57: Standard-Funktionsbausteine und Treiberprogramme für Automatisierungsgeräte der U-Reihe SIMATIC S5 /12/ Handbuch SCL Bestell-Nr. C79000-G8500-C162...
Verzeichnis der Tabellen und Bilder Verzeichnis der Tabellen und Bilder Verzeichnis der Tabellen Tabelle 2-1 Übersicht der OBs für die Programmbearbeitung ......2 - 20 Tabelle 2-2 Übersicht der OBs für den Anlauf .
Seite 628
Verzeichnis der Tabellen und Bilder Tabelle 3-12 Digitalverknüpfungen ........... .3 - 50 Tabelle 3-13 Speicheroperationen mit Formaloperanden .
Seite 629
Verzeichnis der Tabellen und Bilder Tabelle 5-5 Bedeutung der Steuerbits in den Zeilen 6 bis 8 ....... .5 - 16 Tabelle 5-6 Bedeutung der USTACK-Kennungen zur Fehlerstelle .
Seite 630
Verzeichnis der Tabellen und Bilder Tabelle 5-28 QVZ – Anzeigen bei Aufruf des OB 24 ........5 - 54 Tabelle 5-29 WECK-FE–...
Seite 631
Verzeichnis der Tabellen und Bilder Tabelle 8-6 Belegung BS 6 (ZYKLUS- und Modul-/MPL-Kennungen) ..... .8 - 24 Tabelle 8-7 Belegung BS 7 (URLÖSCH-/Fehler-Kennungen Initialisieren) ....8 - 25 Tabelle 8-8 Belegung BS 8 (Fehlerkennungen HW/SW) .
Seite 632
Verzeichnis der Tabellen und Bilder Tabelle 10-1 Anzeigen der Kommunikations-OBs ........10 - 23 Tabelle 10-2 Anzeigenbyte der Kommunikations-OBs/Nummerngruppen .
Verzeichnis der Tabellen und Bilder Verzeichnis der Bilder Bild 1-1 Aufgaben des Systemprogramms ..........1 - 8 Bild 1-2 Aufbau eines STEP-5-Anwenderprogramms .
Seite 634
Verzeichnis der Tabellen und Bilder Bild 4-7 pegelgetriggerte Prozeßalarmsignale ........4 - 41 Bild 4-8 flankengetriggerte Prozeßalarmsignale .
Seite 635
Verzeichnis der Tabellen und Bilder Bild 6-13 Inhalte der AKKUs vor Aufruf des OB 216 ........6 - 83 Bild 6-14 AKKU-Belegung vor Aufruf des OB 217 .
Seite 636
Verzeichnis der Tabellen und Bilder Bild 9-3 LIR/TIR auf 16-bit-Speicherbereiche (wortweise orientiert) ..... .9 - 10 Bild 9-4 LIR/TIR auf 8-bit-Speicherbereiche (byteweise orientiert) ..... . .9 - 10 Bild 9-5 Verwendung des DBA-Registers .
Seite 637
Verzeichnis der Tabellen und Bilder Bild 11-7 Zeitlicher Ablauf zweier paralleler zyklischer Funktionen ..... 11 - 27 Bild 11-8 Zeitlicher Ablauf, wenn eine Funktion die CPU 928B blockiert ....11 - 28 Programmieranleitung CPU 928B V - 11 C79000-T8500-C898-01...
Seite 638
Verzeichnis der Tabellen und Bilder Programmieranleitung CPU 928B V - 12 C79000-T8500-C898-01...
Seite 639
Ihre Anmerkungen und Vorschläge helfen uns, die Qualität und Benutzbarkeit unserer Dokumentation zu verbessern. Bitte füllen Sie diesen Fragebogen bei der nächsten Gelegenheit aus und senden Sie ihn an Siemens zurück. Vergessen Sie dabei nicht, Titel und Bestellnummer mit Ausgabestand anzugeben.
Seite 640
Siemens AG AUT E 1163 Östl. Rheinbrückenstraße 50 76181 Karlsruhe – Absender: Name: ....... . .