238
Vorwort, Inhaltsverzeichnis Vorgehensweise beim Steuerungsent- wurf 1 Strukturieren des Anwenderprogramms 2 Organisationsbausteine und Programm- bearbeitung 3 Bearbeiten von Alarmen 4 Speicherbereiche der S7-CPUs 5 Adressierung der Peripherie 6 Datenaustausch zwischen programmier- baren Baugruppen 7 Einstellen von Systemparametern 8 Betriebszustände und Übergänge 9 Multicomputing 10 Fehlerdiagnose und Störungsbehand- lung 11 Beispielprogramm für einen industriellen Mischprozeß A Beispielprogramm zu den Kommunika- tions-SFBs für projektierte Verbindungen B Daten- und Parametertypen C Literaturverzeichnis D Glossar, Index C79000-G7000-C506-01 Systemsoftware für S7-300/400 Programmentwurf Programmierhandbuch SIMATIC Dieses Handbuch ist Bestandteil des Doku- mentationspaketes mit der Bestellnummer: 6ES7810-4CA02-8AA0

Systemsoftware für S7-300/400, Programmentwurf · iii Systemsoftware für S7-300/400 Programmentwurf C79000-G7000-C506-01 Vorwort Dieses Handbuch informiert Sie über die verschiedenen

  • Upload
    others

  • View
    18

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Systemsoftware für S7-300/400, Programmentwurf · iii Systemsoftware für S7-300/400 Programmentwurf C79000-G7000-C506-01 Vorwort Dieses Handbuch informiert Sie über die verschiedenen

Vorwort, Inhaltsverzeichnis

Vorgehensweise beim Steuerungsent-wurf

1

Strukturieren des Anwenderprogramms2

Organisationsbausteine und Programm-bearbeitung

3

Bearbeiten von Alarmen4

Speicherbereiche der S7-CPUs5

Adressierung der Peripherie6

Datenaustausch zwischen programmier-baren Baugruppen

7

Einstellen von Systemparametern8

Betriebszustände und Übergänge9

Multicomputing10

Fehlerdiagnose und Störungsbehand-lung

11

Beispielprogramm für einen industriellenMischprozeß

A

Beispielprogramm zu den Kommunika-tions-SFBs für projektierte Verbindungen

B

Daten- und ParametertypenC

LiteraturverzeichnisD

Glossar, Index

C79000-G7000-C506-01

Systemsoftware für S7-300/400Programmentwurf

Programmierhandbuch

SIMATIC

Dieses Handbuch ist Bestandteil des Doku-mentationspaketes mit der Bestellnummer:

6ES7810-4CA02-8AA0

Page 2: Systemsoftware für S7-300/400, Programmentwurf · iii Systemsoftware für S7-300/400 Programmentwurf C79000-G7000-C506-01 Vorwort Dieses Handbuch informiert Sie über die verschiedenen

Dieses Handbuch enthält Hinweise, die Sie zu Ihrer persönlichen Sicherheit sowie zur Ver-meidung von Sachschäden beachten müssen. Die Hinweise sind durch ein Warndreieck her-vorgehoben und je nach Gefährdungsgrad folgendermaßen dargestellt:

!Gefahr

bedeutet, daß Tod, schwere Körperverletzung oder erheblicher Sachschaden eintreten wer-den, wenn die entsprechenden Vorsichtsmaßnahmen nicht getroffen werden.

!Warnung

bedeutet, daß Tod, schwere Körperverletzung oder erheblicher Sachschaden eintreten kön-nen, wenn die entsprechenden Vorsichtsmaßnahmen nicht getroffen werden.

!Vorsicht

bedeutet, daß eine leichte Körperverletzung oder ein Sachschaden eintreten können, wenndie entsprechenden Vorsichtsmaßnahmen nicht getroffen werden.

Hinweis

ist eine wichtige Information über das Produkt, die Handhabung des Produktes oder denjeweiligen Teil der Dokumentation, auf den besonders aufmerksam gemacht werden soll.

Inbetriebsetzung und Betrieb eines Gerätes dürfen nur von qualifiziertem Personal vorge-nommen werden. Qualifiziertes Personal im Sinne der sicherheitstechnischen Hinweise die-ses Handbuchs sind Personen, die die Berechtigung haben, Geräte, Systeme und Stromkreisegemäß den Standards der Sicherheitstechnik in Betrieb zu nehmen, zu erden und zu kenn-zeichnen.

Beachten Sie folgendes:

!Warnung

Das Gerät darf nur für die im Katalog und in der technischen Beschreibung vorgesehenenEinsatzfälle und nur in Verbindung mit von Siemens empfohlenen bzw. zugelassenenFremdgeräten und -Komponenten verwendet werden.

Der einwandfreie und sichere Betrieb des Produktes setzt sachgemäßen Transport. sachge-mäße Lagerung, Aufstellung und Montage sowie sorgfältige Bedienung und Instandhaltungvoraus.

SIMATIC� und SINEC� sind eingetragene Marken der SIEMENS AG.

Die übrigen Bezeichnungen in dieser Schrift können Marken sein, deren Benutzung durchDritte für deren Zwecke die Rechte der Inhaber verletzen können.

Wir haben den Inhalt der Druckschrift auf Übereinstimmung mit derbeschriebenen Hard- und Software geprüft. Dennoch können Ab-weichungen nicht ausgeschlossen werden, so daß wir für die voll-ständige Übereinstimmung keine Gewähr übernehmen. Die Anga-ben in dieser Druckschrift werden regelmäßig überprüft, und not-wendige Korrekturen sind in den nachfolgenden Auflagen enthalten.Für Verbesserungsvorschläge sind wir dankbar.

HaftungsausschlußCopyright � Siemens AG 1996 All rights reserved

Weitergabe sowie Vervielfältigung dieser Unterlage, Verwertungund Mitteilung ihres Inhalts ist nicht gestattet, soweit nichtausdrücklich zugestanden. Zuwiderhandlungen verpflichten zuSchadenersatz. Alle Rechte vorbehalten, insbesondere für den Fallder Patenterteilung oder GM-Eintragung.

Siemens AGBereich AutomatisierungstechnikGeschäftsgebiet Industrie-AutomatisierungPostfach 4848, D- 90327 Nürnberg

� Siemens AG 1996Technische Änderungen bleiben vorbehalten.

Siemens Aktiengesellschaft C79000-G7000-C506

Sicherheitstech-nische Hinweise

QualifiziertesPersonal

Bestimmungs-gemäßer Gebrauch

Marken

Page 3: Systemsoftware für S7-300/400, Programmentwurf · iii Systemsoftware für S7-300/400 Programmentwurf C79000-G7000-C506-01 Vorwort Dieses Handbuch informiert Sie über die verschiedenen

iiiSystemsoftware für S7-300/400 ProgrammentwurfC79000-G7000-C506-01

Vorwort

Dieses Handbuch informiert Sie über die verschiedenen Möglichkeiten, wieSie Ihr S7-300/S7-400 Automatisierungssystem (AS) programmieren können.Schwerpunkt des Handbuchs sind die Aufgaben, die beim Entwerfen einesProjekts (“auf dem Papier”) zu erfüllen sind.

Das Handbuch soll Sie

� mit den Betriebssystemen der S7-300- und S7-400-CPUs vertraut machen

� beim Entwerfen des Anwenderprogramms unterstützen

� über die Kommunikations- und Diagnosemöglichkeiten der S7-300 undS7-400 CPUs informieren.

Informationen zu den einzelnen Programmiersprachen finden Sie in denzugehörigen Handbüchern (siehe Tabelle Einordnung in die Informations-landschaft).

Zielgruppe dieses Handbuchs sind Anwender, die mit der Steuerung vonProzessen betraut sind und Programme für Automatisierungssystemeentwerfen. Dieses Handbuch beschreibt die Aufgaben, die vorwiegend ohnedie STEP 7-Software erfüllt werden können, wie beispielsweise das Festlegendes Programmablaufs für ein Projekt.

Dieses Handbuch gilt für folgende CPUs der S7-300- und S7-400-Familien:

CPU Bestellnummer ab Ausgabestand

CPU 312 IFM 6ES7312-5AC00-0AB0 03

CPU 313 6ES7313-1AD00-0AB0 01

CPU 314 6ES7314-1AE00-0AB0 04

CPU 314 IFM 6ES7312-5AE00-0AB0 01

CPU 315 6ES7314-1AF00-0AB0 03

CPU 315–2DP 6ES7314-2AF00-0AB0 03

CPU 412-1 6ES7412-1XF01-0AB0 01

CPU 413-1 6ES7413-1XG01-0AB0 01

CPU 413-2 6ES7413-2XG01-0AB0 01

CPU 414-1 6ES7414-1XG01-0AB0 01

CPU 414-2 mit 128K 6ES7414-2XG01-0AB0 01

Zweck des Hand-buchs

Leserkreis

Gültigkeitsbereichdes Handbuchs

Page 4: Systemsoftware für S7-300/400, Programmentwurf · iii Systemsoftware für S7-300/400 Programmentwurf C79000-G7000-C506-01 Vorwort Dieses Handbuch informiert Sie über die verschiedenen

ivSystemsoftware für S7-300/400 Programmentwurf

C79000-G7000-C506-01

CPU ab AusgabestandBestellnummer

CPU 414-2 mit 384K 6ES7414-2XJ00-0AB0 01

CPU 416-1 6ES7416-1XJ01-0AB0 01

CPU 416-2 mit 0,8M 6ES7416-2XK00-0AB0 01

CPU 416-2 mit 1,6M 6ES7416-2XL00-0AB0 01

Die in diesem Handbuch beschriebenen CPU-Funktionen sind ab Ausgabe-stand 3.1 der Basissoftware STEP 7 nutzbar.

Zur Unterstützung der Konfigurierung und Programmierung eines S7-Auto-matisierungssystems gibt es eine umfangreiche Anwenderdokumentation, diefür eine selektive Benutzung vorgesehen ist. Die folgenden Erläuterungensollen Ihnen, gemeinsam mit dem Bild, die Nutzung der Anwenderdokumen-tation erleichtern.

Einordnung in dieInformations-landschaft

Vorwort

Page 5: Systemsoftware für S7-300/400, Programmentwurf · iii Systemsoftware für S7-300/400 Programmentwurf C79000-G7000-C506-01 Vorwort Dieses Handbuch informiert Sie über die verschiedenen

vSystemsoftware für S7-300/400 ProgrammentwurfC79000-G7000-C506-01

KOP AWL SCL

CFC fürS7

Referenz-handbuch

Program-mierhand-buch

Benutzer-handbuch

GRAPH HiGraph

/234/

/231/

/233/ /232/ /250/

/254//251/ /252/

/xxx/: Literaturnummer des Literaturverzeichnisses

/235/

Systemsoftware für S7-300/400Programmentwurf

Basissoftware für S7 und M7STEP 7

Fibel

/30/

Automatisierungssystem S7-300Einfach aufbauen undprogrammieren

Systemsoftware für S7-300/400System- und Standardfunktionen

Benutzer-handbuch

/230/

Basissoftware für S7-300/400S5-Programme konvertieren

Sprachpakete

Online-Hilfe

Die angegebene Reihenfolgeist ein Vorschlag für den Erstanwender einer S7.

Die Dokumentation führt in die Methodik ein.

Nachschlagewerke und daher nur selektiv zu nutzen.

Die Dokumentation wird durch eine Online-Hilfe ergänzt.

Symbol Bedeutung

FUP

/236/

Vorwort

Page 6: Systemsoftware für S7-300/400, Programmentwurf · iii Systemsoftware für S7-300/400 Programmentwurf C79000-G7000-C506-01 Vorwort Dieses Handbuch informiert Sie über die verschiedenen

viSystemsoftware für S7-300/400 Programmentwurf

C79000-G7000-C506-01

Titel Inhalt

Fibel S7-300 Einfach aufbauenund programmieren

Die Fibel bietet einen sehr einfachen Einstieg in die Methodik des Aufbaus und derProgrammierung einer S7-300/400. Sie ist insbesondere für den Erstanwender einesS7-Automatisierungssystems geeignet.

ProgrammierhandbuchProgrammentwurfS7-300/400

Das Programmierhandbuch ”Programmentwurf S7-300/400” vermittelt das grund-legende Wissen über den Aufbau des Betriebssystems und eines Anwenderprogrammseiner S7-CPU. Es sollte vom Erstanwender einer S7-300/400 dazu genutzt werden, sicheinen Überblick über die Programmiermethodik zu verschaffen und darauf das Designseines Anwenderprogramms aufzubauen.

ReferenzhandbuchSystem- und Standard-funktionen S7-300/400

Die S7-CPUs enthalten in das Betriebssystem integrierte Systemfunktionen und Organi-sationsbausteine, die Sie bei der Programmierung nutzen können. Das Handbuch gibtIhnen einen Überblick über die bei S7 verfügbaren Systemfunktionen, Organisations-bausteine und ladbare Standardfunktionen sowie – als Nachschlageinformation – detail-lierte Schnittstellenbeschreibungen für deren Nutzung in Ihrem Anwenderprogramm.

Benutzerhandbuch STEP 7

Das Benutzerhandbuch ”STEP 7” erläutert Ihnen die prinzipielle Nutzung und dieFunktionen der Automatisierungssoftware STEP 7. Als Erstanwender von STEP 7ebenso wie als Kenner von STEP 5 verschafft Ihnen das Handbuch einen Überblicküber die Vorgehensweise bei der Konfigurierung, Programmierung und Inbetriebnahmeeiner S7-300/400. Bei dem Arbeiten mit der SW können Sie gezielt auf die Online-Hilfe zugreifen, die Ihnen Unterstützung zu den Detailfragen der SW-Nutzung bietet.

BenutzerhandbuchS5-Programme konver-tieren

Das Benutzerhandbuch ”S5-Programme konvertieren” benötigen Sie, wenn Sie vor-handene S5-Programme konvertieren wollen, um diese dann in S7-CPUs zum Ablaufzu bringen. Das Handbuch gibt Ihnen einen Überblick über die Vorgehensweise und dieNutzung des Konverters; die detaillierte Bedienung der Konverterfunktionen entneh-men Sie bitte der Online-Hilfe. Ebenso erhalten Sie über die Online-Hilfe die Schnitt-stellenbeschreibung der verfügbaren konvertierten S7-Funktionen.

Handbücher FUP, KOP, AWL, SCL1

Die Handbücher zu den Sprachpaketen FUP, KOP, AWL und SCL enthalten sowohl dieBenutzeranleitungen als auch die Sprachbeschreibung. Sie benötigen für dieProgrammierung einer S7-300/400 nur eine der Sprachen, können aber auch bei Bedarfdie Sprachen innerhalb eines Projektes mischen. Für den erstmaligen Einsatz derSprachen ist es empfehlenswert, sich anhand des Handbuchs mit der Methodik derProgrammerstellung vertraut zu machen.

Bei Arbeiten mit der SW können Sie die Online-Hilfe nutzen, die Ihnen alle Detail-fragen zur Nutzung der zugehörigen Editoren/Compiler beantwortet.

Handbücher GRAPH1 , HiGraph1,CFC1

Die Sprachen GRAPH, HiGraph, CFC bieten zusätzlich Möglichkeiten, Ablauf-steuerungen, Zustandssteuerungen oder graphische Verschaltungen von Bausteinen zurealisieren. Die Handbücher enthalten sowohl die Benutzeranleitung als auch dieSprachbeschreibung. Für einen erstmaligen Einsatz der Sprache ist es empfehlenswert,sich mit der Methodik der Programmerstellung anhand des HBs vertraut zu machen.Beim Arbeiten mit der SW können Sie zudem die Online-Hilfe nutzen (Ausnahme Hi-Graph), die Ihnen die Detailfragen zu der Nutzung der Editoren/Compilern beantwortet.

1 Optionspakete zu Systemsoftware für S7-300/400

Die einzelnen S7-300- und S7-400-CPUs, die S7-300- undS7-400-Baugruppen sowie die Operationen der CPUs sind beschrieben

� für das Automatisierungssystem S7-300 in den Handbüchern: Aufbauen,CPU-Daten; Baugruppendaten und in der Operationsliste.

� für das Automatisierungssystem S7-400 in den Handbüchern: Aufbauen;Baugruppendaten und in der Operationsliste.

WeitereHandbücher

Vorwort

Page 7: Systemsoftware für S7-300/400, Programmentwurf · iii Systemsoftware für S7-300/400 Programmentwurf C79000-G7000-C506-01 Vorwort Dieses Handbuch informiert Sie über die verschiedenen

viiSystemsoftware für S7-300/400 ProgrammentwurfC79000-G7000-C506-01

Da dieses Handbuch eine grundlegende Übersicht über das BetriebssystemS7-300/400 bietet, empfehlen wir, sich zuerst einen Überblick über den Inhaltder einzelnen Kapitel zu verschaffen und dann selektiv das Wissen über dieFunktionen zu vertiefen, die Sie beim Programmentwurf einsetzen.

� Kapitel 1 beschreibt die grundlegenden Aufgaben beim Planen einerAutomatisierungslösung.

� Kapitel 2 unterstützt Sie beim Festlegen der Bausteinstruktur IhresS7-Programms.

� Kapitel 3 und 4 beschreiben die Rolle der Organisationsbausteine bei derProgrammbearbeitung.

� Kapitel 5 und 6 beschreiben die Speicherbeiche der CPU und dieAdressierung der Peripherie.

� Kapitel 7 und 8 beschreiben, wie Sie zwischen S7-CPUs Datenaustauschen können und wie Sie die Eigenschaften eines Auto-matisierungssystems, die nicht fest vorgegeben sind, durch Einstellen vonSystemparametern beeinflussen können.

� Kapitel 9 gibt eine Übersicht über die Betriebszustände und dieverschiedenen Anlaufarten der S7-CPUs. Außerdem erfahren Sie, wie Siedas Betriebsystem beim Testen des Anwenderprogramms unterstützt.

� Kapitel 10 beschreibt den Betriebsmodus Multicomputing und die hierbeizu beachtenden Programmbesonderheiten.

� Kapitel 11 beschreibt die Systemdiagnose bei S7-CPUs und gibtHinweise, was Sie tun können, um Fehler und Störungen zu beheben.

� In den Anhängen A und B finden Sie Beispielprogramme für einen indu-striellen Mischprozeß und für den Datenaustausch über Kommunikations-Funktionsbausteine.

� Anhang C ist ein Nachschlage-Kapitel zu Daten- und Parametertypen.

� Anhang D enthält das Literaturverzeichnis.

� Im Glossar sind wichtige Begriffe erklärt. Das Stichwortverzeichnis hilftIhnen, Textstellen zu wichtigen Stichworten schnell zu finden.

Hinweise auf weitere Dokumentation sind mit Hilfe von Literaturnummern inSchrägstrichen /.../ angegeben. Anhand dieser Nummern können Sie demLiteraturverzeichnis in Anhang D den genauen Titel der Dokumentationentnehmen.

Bei Fragen zur Nutzung der beschriebenen Software, die Sie weder in derPapierdokumentation noch in der Online-Hilfe beantwortet finden, wendenSie sich bitte an Ihre Siemens-Ansprechpartner in den für Sie zuständigenVertretungen und Geschäftsstellen.

Bei Fragen oder Anmerkungen zum vorliegenden Handbuch füllen Sie bitteden Fragebogen am Ende des Handbuchs aus und schicken Sie ihn an die dortangegebene Adresse. Bitte, tragen Sie dort auch Ihre persönliche Bewertungdes Handbuchs ein.

Wegweiser

Konventionen

Weitere Unter-stützung

Vorwort

Page 8: Systemsoftware für S7-300/400, Programmentwurf · iii Systemsoftware für S7-300/400 Programmentwurf C79000-G7000-C506-01 Vorwort Dieses Handbuch informiert Sie über die verschiedenen

viiiSystemsoftware für S7-300/400 Programmentwurf

C79000-G7000-C506-01

Um Ihnen den Einstieg in das Automatisierungssystem SIMATIC S7 zuerleichtern, bieten wir entsprechende Kurse an. Wenden Sie sich bitte an Ihrregionales Trainingscenter oder an das zentrale Trainingscenter in:D–90327 Nürnberg, Tel. 0911 / 895 3154.

Vorwort

Page 9: Systemsoftware für S7-300/400, Programmentwurf · iii Systemsoftware für S7-300/400 Programmentwurf C79000-G7000-C506-01 Vorwort Dieses Handbuch informiert Sie über die verschiedenen

ixSystemsoftware für S7-300/400 ProgrammentwurfC79000-G7000-C506-01

Inhaltsverzeichnis

1 Vorgehensweise beim Steuerungsentwurf 1-1. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

1.1 Planen der Automatisierungslösung 1-2. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

1.2 Untergliedern des Prozesses in einzelne Aufgaben 1-3. . . . . . . . . . . . . . . . . . .

1.3 Beschreiben der einzelnen Aufgaben und Bereiche 1-5. . . . . . . . . . . . . . . . . . .

1.4 Festlegen der Sicherheitsanforderungen 1-9. . . . . . . . . . . . . . . . . . . . . . . . . . . .

1.5 Beschreiben der notwendigen Anzeige- und Bedienelemente 1-10. . . . . . . . . .

1.6 Erstellen eines Konfigurationsplans 1-11. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

2 Strukturieren des Anwenderprogramms 2-1. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

2.1 Programme in einer CPU 2-2. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

2.2 Elemente des Anwenderprogramms 2-3. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

2.3 Aufrufhierarchie der Bausteine 2-4. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

2.4 Variablen eines Bausteins 2-5. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

2.5 Operationsumfang der S7-CPUs 2-7. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

2.6 Organisationsbausteine (OB) und Programmstruktur 2-9. . . . . . . . . . . . . . . . .

2.7 Systemfunktionsbausteine (SFB) und Systemfunktionen (SFC) 2-10. . . . . . . .

2.8 Funktionen (FC) 2-11. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

2.9 Funktionsbausteine (FB) 2-12. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

2.10 Instanz-Datenbausteine 2-15. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

2.11 Globale Datenbausteine (DB) 2-17. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

2.12 Speichern der Daten eines unterbrochenen Bausteins 2-18. . . . . . . . . . . . . . . .

2.13 Vermeiden von Fehlern beim Aufrufen von Bausteinen 2-20. . . . . . . . . . . . . . . .

3 Organisationbausteine und Programmbearbeitung 3-1. . . . . . . . . . . . . . . . . . . . . . . .

3.1 Arten von Organisationsbausteinen 3-2. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

3.2 Organisationsbausteine für das Anlaufprogramm 3-4. . . . . . . . . . . . . . . . . . . . .

3.3 Organisationsbaustein für die zyklische Programmbearbeitung 3-5. . . . . . . . .

3.4 Organisationsbaustein für die Programmbearbeitung im Hintergrund 3-7. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

3.5 Organisationsbausteine für die alarmgesteuerte Programmbearbeitung 3-8. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

Page 10: Systemsoftware für S7-300/400, Programmentwurf · iii Systemsoftware für S7-300/400 Programmentwurf C79000-G7000-C506-01 Vorwort Dieses Handbuch informiert Sie über die verschiedenen

xSystemsoftware für S7-300/400 Programmentwurf

C79000-G7000-C506-01

3.6 Organisationsbausteine zur Fehlerbearbeitung 3-10. . . . . . . . . . . . . . . . . . . . . . .

3.7 Unterbrechen der Programmbearbeitung 3-12. . . . . . . . . . . . . . . . . . . . . . . . . . . .

3.8 Verwalten der Lokaldaten (L-Stack) 3-13. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

4 Bearbeiten von Alarmen 4-1. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

4.1 Hinweise zum Einsatz von Alarm-OBs 4-2. . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

4.2 Uhrzeitalarme (OB 10 bis OB 17) 4-3. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

4.3 Verzögerungsalarme (OB 20 bis OB 23) 4-5. . . . . . . . . . . . . . . . . . . . . . . . . . . .

4.4 Weckalarme (OB 30 bis OB 38) 4-6. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

4.5 Prozeßalarme (OB 40 bis OB 47) 4-8. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

5 Speicherbereiche der S7-CPUs 5-1. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

5.1 Speicherbereiche der CPU 5-2. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

5.2 Absolute und symbolische Adressierung 5-5. . . . . . . . . . . . . . . . . . . . . . . . . . . .

5.3 Speichern von Programmen in der CPU 5-6. . . . . . . . . . . . . . . . . . . . . . . . . . . .

5.4 Remanente Speicherbereiche in S7-300-CPUs 5-8. . . . . . . . . . . . . . . . . . . . . .

5.5 Remanente Speicherbereiche in S7-400-CPUs 5-10. . . . . . . . . . . . . . . . . . . . . .

5.6 Prozeßabbild der Ein-/Ausgänge 5-11. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

5.7 Lokaldaten-Stack 5-13. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

6 Adressierung der Peripherie 6-1. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

6.1 Zugriff auf Prozeßdaten 6-2. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

6.2 Zugriff auf den Peripheriedatenbereich 6-4. . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

6.3 Besonderheiten bei dezentraler Peripherie DP 6-6. . . . . . . . . . . . . . . . . . . . . . .

7 Datenaustausch zwischen programmierbaren Baugruppen 7-1. . . . . . . . . . . . . . . . .

7.1 Kommunikationstypen 7-2. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

7.2 Datenaustausch über Kommunikations-SFBs für projektierte Verbindungen 7-3. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

7.3 Projektieren einer Kommunikationsverbindung zwischen Kommunikationspartnern 7-5. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

7.4 Arbeiten mit Kommunikations-SFBs für projektierte Verbindungen 7-7. . . . . .

7.5 Datenaustausch über Kommunikations-SFCs für nichtprojektierte Verbindungen 7-8. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

Inhaltsverzeichnis

Page 11: Systemsoftware für S7-300/400, Programmentwurf · iii Systemsoftware für S7-300/400 Programmentwurf C79000-G7000-C506-01 Vorwort Dieses Handbuch informiert Sie über die verschiedenen

xiSystemsoftware für S7-300/400 ProgrammentwurfC79000-G7000-C506-01

8 Einstellen von Systemparametern 8-1. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

8.1 Ändern des Verhaltens und der Eigenschaften von Baugruppen 8-2. . . . . . . .

8.2 Nutzen der Uhrzeitfunktionen 8-4. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

8.3 Bestimmen des Anlaufverhaltens 8-5. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

8.4 Parametrieren des Zyklus 8-6. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

8.5 Festlegen der MPI-Parameter 8-9. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

8.6 Festlegen remanenter Speicherbereiche 8-10. . . . . . . . . . . . . . . . . . . . . . . . . . . .

8.7 Verwenden von Taktmerkern und Zeiten 8-11. . . . . . . . . . . . . . . . . . . . . . . . . . . .

8.8 Ändern der Prioritätsklassen und der Anzahl der Lokaldaten 8-12. . . . . . . . . . .

9 Betriebszustände und Übergänge 9-1. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

9.1 Betriebszustände und Übergänge 9-2. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

9.2 Betriebszustand STOP 9-5. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

9.3 Betriebszustand ANLAUF 9-6. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

9.4 Betriebszustand RUN 9-12. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

9.5 Betriebszustand HALT 9-13. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

9.6 Testen des Anwenderprogramms 9-14. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

10 Multicomputing 10-1. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

10.1 Übersicht 10-2. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

10.2 Konfigurieren der Baugruppen 10-4. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

10.3 Programmieren der CPUs 10-6. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

10.4 Synchronisierung der CPUs 10-8. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

10.5 Fehlerbehandlung 10-10. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

11 Fehlerdiagnose und Störungsbehandlung 11-1. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

11.1 Übermitteln von Diagnoseinformationen 11-2. . . . . . . . . . . . . . . . . . . . . . . . . . . . .

11.2 Systemzustandsliste SZL 11-4. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

11.3 Diagnosepuffer 11-7. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

11.4 Eigene Diagnosemeldungen senden 11-8. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

11.5 Auswerten des Ausgangsparameter RET_VAL 11-9. . . . . . . . . . . . . . . . . . . . . . .

11.6 Fehler-OBs als Reaktion auf die Erkennung eines Fehlers 11-10. . . . . . . . . . . . .

11.7 Einfügen von “Ersatzwerten” bei Fehlererkennung 11-14. . . . . . . . . . . . . . . . . . . .

11.8 Zeitfehler-OB 80 11-17. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

11.9 Stromversorgungsfehler-OB 81 11-18. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

11.10 Diagnosealarm-OB 82 11-19. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

11.11 Ziehen-/Stecken-Alarm-OB 83 11-20. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

Inhaltsverzeichnis

Page 12: Systemsoftware für S7-300/400, Programmentwurf · iii Systemsoftware für S7-300/400 Programmentwurf C79000-G7000-C506-01 Vorwort Dieses Handbuch informiert Sie über die verschiedenen

xiiSystemsoftware für S7-300/400 Programmentwurf

C79000-G7000-C506-01

11.12 CPU-Hardwarefehler-OB 84 11-21. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

11.13 Prioritätsklassenfehler-OB 85 11-22. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

11.14 Baugruppenträgerausfall-OB 86 11-23. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

11.15 Kommunikationsfehler-OB 87 11-24. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

11.16 Programmierfehler-OB 121 11-25. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

11.17 Peripheriezugriffsfehler-OB 122 11-26. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

A Beispielprogramm für einen industriellen Mischprozeß A-1. . . . . . . . . . . . . . . . . . . .

A.1 Beispiel eines industriellen Mischprozesses A-2. . . . . . . . . . . . . . . . . . . . . . . . .

A.2 Definieren von Codebausteinen A-4. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

A.3 Zuordnen von symbolischen Namen A-5. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

A.4 Erstellen des FB für den Motor A-7. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

A.5 Erstellen der FC für die Ventile A-11. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

A.6 Erstellen des OB 1 A-13. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

B Beispielprogramm zu den Kommunikations-SFBs für projektierte Verbindungen B-1. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

B.1 Übersicht B-2. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

B.2 Beispielprogramm auf der sendenden CPU B-3. . . . . . . . . . . . . . . . . . . . . . . . . .

B.3 Beispielprogramm auf der empfangenden CPU B-6. . . . . . . . . . . . . . . . . . . . . .

B.4 Anwendung des Beispielprogramms B-8. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

B.5 Aufrufhierarchie der Bausteine im Beispielprogramm B-9. . . . . . . . . . . . . . . . .

C Daten- und Parametertypen C-1. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

C.1 Datentypen C-2. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

C.2 Verwenden von zusammengesetzten Datentypen C-6. . . . . . . . . . . . . . . . . . . .

C.3 Verwenden von Feldern für den Datenzugriff C-7. . . . . . . . . . . . . . . . . . . . . . . . .

C.4 Verwenden von Strukturen für den Datenzugriff C-10. . . . . . . . . . . . . . . . . . . . . .

C.5 Verwenden von anwenderdefinierten Datentypen für den Datenzugriff C-12. .

C.6 Verwenden des Parametertyps ANY C-15. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

C.7 Zuordnen von Datentypen zu Lokaldaten von Codebausteinen C-17. . . . . . . . .

C.8 Einschränkungen beim Übergeben von Parametern C-19. . . . . . . . . . . . . . . . . .

D Literaturverzeichnis D-1. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

Glossar Glossar-1. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

Stichwortverzeichnis Index-1. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

Inhaltsverzeichnis

Page 13: Systemsoftware für S7-300/400, Programmentwurf · iii Systemsoftware für S7-300/400 Programmentwurf C79000-G7000-C506-01 Vorwort Dieses Handbuch informiert Sie über die verschiedenen

1-1Systemsoftware für S7-300/400 ProgrammentwurfC79000-G7000-C506-01

Vorgehensweise beim Steuerungsentwurf

Dieses Kapitel enthält Informationen zu den grundlegenden Aufgaben beimPlanen einer Automatisierungslösung und dem Entwerfen eines Anwender-programms für ein Automatisierungssystem (AS).

Anhand eines Beispiels zur Automatisierung eines industriellen Mischprozes-ses wird beschrieben, wie Sie Schritt für Schritt dabei vorgehen können.

In Anhang A ist das Beispielprogramm Industrieller Mischprozeß zusammen-hängend beschrieben.

Im Kapitel finden Sie auf Seite

1.1 Planen der Automatisierungslösung 1-2

1.2 Untergliedern des Prozesses in einzelne Aufgaben 1-3

1.3 Beschreiben der einzelnen Aufgaben und Bereiche 1-5

1.4 Festlegen der Sicherheitsanforderungen 1-9

1.5 Beschreiben der notwendigen Anzeige- und Bedienelemente 1-10

1.6 Erstellen eines Konfigurationsplans 1-11

Was beschreibtdieses Kapitel?

Wo finden SieweitereInformationen?

Kapitelübersicht

1

Page 14: Systemsoftware für S7-300/400, Programmentwurf · iii Systemsoftware für S7-300/400 Programmentwurf C79000-G7000-C506-01 Vorwort Dieses Handbuch informiert Sie über die verschiedenen

1-2Systemsoftware für S7-300/400 Programmentwurf

C79000-G7000-C506-01

1.1 Planen der Automatisierungslösung

Es gibt viele Methoden, eine Automatisierungslösung zu planen. DieserAbschnitt beschreibt die grundsätzliche Vorgehensweise, die Sie für jedesbeliebige Projekt verwenden können.

Bild 1-1 zeigt die grundlegenden Schritte.

Untergliedern Sie den Prozeß.

Beschreiben Sie die einzelnen Funktionsbereiche.

Definieren Sie die Sicherheitsanforderungen.

Beschreiben Sie die notwendigen Anzeige- und Bedienelemente.

Erstellen Sie Konfigurationspläne für das Automatisierungssystem.

Bild 1-1 Grundlegende Schritte beim Planen einer Automatisierungslösung

Die einzelnen Schritte sind in den Kapiteln 1.2 bis 1.6 ausführlichbeschrieben.

Übersicht

Vorgehensweise beim Steuerungsentwurf

Page 15: Systemsoftware für S7-300/400, Programmentwurf · iii Systemsoftware für S7-300/400 Programmentwurf C79000-G7000-C506-01 Vorwort Dieses Handbuch informiert Sie über die verschiedenen

1-3Systemsoftware für S7-300/400 ProgrammentwurfC79000-G7000-C506-01

1.2 Untergliedern des Prozesses in einzelne Aufgaben

Ein Automatisierungsprozeß besteht aus einzelnen Aufgaben. Selbst derkomplizierteste Prozeß kann definiert werden, wenn Sie zusammenhängendeAufgabenbereiche innerhalb des Prozesses bestimmen und diese in kleinereTeilaufgaben zerlegen.

Im folgenden Beispiel wird anhand eines industriellen Mischprozessesgezeigt, wie Sie einen Prozeß in Funktionsbereiche und einzelne Aufgabenstrukturieren können (siehe Bild 1-2).

M

M

MagnetschalterAbflußventil

Schalter zur Füll-standsmessung

Rührwerkmotor

Stoff A

Stoff B

Einlaß-ventil

Speise-ventil

Speise-pumpe

Einlaß-ventil

Speise-ventil

Speise-pumpe

Durch-flußgeber

M

M M

M

Bild 1-2 Beispiel für einen industriellen Mischprozeß

Nachdem Sie den Prozeß, der gesteuert werden soll, definiert haben,unterteilen Sie das Projekt in zusammengehörige Gruppen bzw. Bereiche(siehe Bild 1-3). Da jeder Bereich in kleinere Aufgaben unterteilt wird, sinddie Aufgaben zur Steuerung dieses Prozeßabschnitts nicht sehr kompliziert.

Übersicht

Bestimmen derBereiche einesProzesses

Vorgehensweise beim Steuerungsentwurf

Page 16: Systemsoftware für S7-300/400, Programmentwurf · iii Systemsoftware für S7-300/400 Programmentwurf C79000-G7000-C506-01 Vorwort Dieses Handbuch informiert Sie über die verschiedenen

1-4Systemsoftware für S7-300/400 Programmentwurf

C79000-G7000-C506-01

M

M

Abflußventil

Schalter zur Füll-standsmessung

RührwerkmotorEinlaß-ventil

Speise-ventil

Speise-pumpe

Einlaß-ventil

Speise-ventil

Speise-pumpe

Durch-flußgeber

Bereich: Stoff B

Bereich: Stoff A

Bereich: MischbehälterM

M M

M

Bereich: Abfluß

Bild 1-3 Definieren von Bereichen innerhalb eines Prozesses

Im Beispiel des industriellen Mischprozesses können Sie vier Bereichebestimmen (siehe Tabelle 1-1). In diesem Beispiel enthält der Bereich fürStoff A die gleichen Geräte wie der Bereich für Stoff B.

Tabelle 1-1 Funktionsbereiche und zugehörige Geräte in dem Beispielprozeß

Funktionsbereich Zugehörige Geräte

Stoff A Speisepumpe für Stoff AEinlaßventil für Stoff ASpeiseventil für Stoff ADurchflußgeber für Stoff A

Stoff B Speisepumpe für Stoff BEinlaßventil für Stoff BSpeiseventil für Stoff BDurchflußgeber für Stoff B

Mischbehälter RührwerkmotorSchalter zur Füllstandsmessung

Abfluß Abflußventil

Vorgehensweise beim Steuerungsentwurf

Page 17: Systemsoftware für S7-300/400, Programmentwurf · iii Systemsoftware für S7-300/400 Programmentwurf C79000-G7000-C506-01 Vorwort Dieses Handbuch informiert Sie über die verschiedenen

1-5Systemsoftware für S7-300/400 ProgrammentwurfC79000-G7000-C506-01

1.3 Beschreiben der einzelnen Aufgaben und Bereiche

Wenn Sie jeden Bereich und jede Aufgabe in Ihrem Prozeß beschreiben, danndefinieren Sie nicht nur die Funktionsweise jedes Bereichs, sondern auch dieverschiedenen Elemente, die diesen Bereich steuern. Diese umfassen:

� Elektrische, mechanische und logische Eingänge und Ausgänge für jedeAufgabe

� Verriegelungen und Abhängigkeiten zwischen den einzelnen Aufgaben

In dem Beispiel des industriellen Mischprozesses werden Pumpen, Motorenund Ventile eingesetzt. Diese müssen genau beschrieben werden, um dieBetriebsmerkmale und die Art der Verriegelungen festzulegen, die währenddes Betriebs erforderlich sind. In den Tabellen 1-2 bis 1-6 finden SieBeispiele für die Beschreibung der Geräte, die in dem industriellen Misch-prozeß eingesetzt werden. Diese Beschreibung können Sie auch für dieBeschaffung der benötigten Geräte verwenden.

Tabelle 1-2 Beschreibung der Speisepumpenmotoren für die Stoffe A und B

Stoff A/B: Speisepumpenmotoren

1. Die Speisepumpen fördern die Stoffe A und B in den Mischbehälter.

– Durchflußleistung: 400 l pro Minute

– Leistung: 100 KW bei 1200 UPM

2. Die Pumpen werden von einem Bedienpult gesteuert (Starten/Stoppen), das sich inder Nähe des Mischbehälters befindet. Die Anzahl der Starts wird zu Wartungs-zwecken gezählt. Der Zähler und die Anzeige können mit einem gemeinsamenTaster zurückgesetzt werden.

3. Es gelten die folgenden Freigabebedingungen:

– Der Mischbehälter ist nicht voll.

– Das Abflußventil des Mischbehälters ist geschlossen.

– NOT-AUS ist nicht aktiviert.

4. Es gilt die folgende Abschaltbedingung:

– Durchflußgeber meldet 7 s nach Start des Pumpenmotors keinen Durchfluß.

– Durchflußgeber meldet während des Laufs keinen Durchfluß mehr.

Tabelle 1-3 Beschreibung der Einlaß- und Speiseventile

Stoff A/B: Einlaß- und Speiseventile

1. Die Einlaß- und Speiseventile für die Stoffe A und B ermöglichen/verhindern denZufluß der Stoffe in den Mischbehälter. DieVentile haben einen Magnetschaltermit Federrückholeinrichtung.

– Wenn der Magnetschalter aktiviert ist, ist das Ventil geöffnet.

– Wenn der Magnetschalter deaktiviert ist, ist das Ventil geschlossen.

2. Die Einlaß- und Speiseventile werden vom Anwenderprogramm gesteuert.

Übersicht

Beschreiben derFunktionsweise

Vorgehensweise beim Steuerungsentwurf

Page 18: Systemsoftware für S7-300/400, Programmentwurf · iii Systemsoftware für S7-300/400 Programmentwurf C79000-G7000-C506-01 Vorwort Dieses Handbuch informiert Sie über die verschiedenen

1-6Systemsoftware für S7-300/400 Programmentwurf

C79000-G7000-C506-01

Tabelle 1-3 Beschreibung der Einlaß- und Speiseventile, Fortsetzung

Stoff A/B: Einlaß- und Speiseventile

3. Es gilt die folgende Freigabebedingung:

– Der Speisepumpenmotor ist mindestens 1 Sekunde angesteuert.

4. Es gilt die folgende Abschaltbedingung:

– Der Durchflußgeber meldet keinen Durchfluß.

Tabelle 1-4 Beschreibung des Rührwerkmotors

Rührwerkmotor

1. Mit dem Rührwerkmotor werden die Stoffe A und B im Mischbehälter gemischt.

– Leistung: 100 KW bei 1200 UPM

2. Der Rührwerkmotor wird von einem Bedienpult gesteuert (Starten/Stoppen), dassich in der Nähe des Mischbehälters befindet. Die Anzahl der Starts wird zu War-tungszwecken gezählt. Der Zähler und die Anzeige können mit einem gemeisamenTaster zurückgesetzt werden.

3. Es gelten die folgenden Freigabebedingungen:

– Der Füllstandsmesser zeigt nicht ”Behälter unter Minimum”.

– Das Abflußventil des Mischbehälters ist geschlossen.

– NOT-AUS ist nicht aktiviert.

4. Es gilt die folgende Abschaltbedingung:

– Drehzahlgeber meldet nicht spätestens 10 s nach Start des Motors, daß dieNenndrehzahl erreicht ist.

Tabelle 1-5 Beschreibung des Abflußventils

Abflußventil

1. Durch Fallspeisung gelangt das Gemisch durch das Abflußventil zum nächstenProzeßschritt. Das Ventil hat einen Magnetschalter mit Federrückholeinrichtung.

– Wenn der Magnetschalter aktiviert ist, ist das Abflußventil geöffnet.

– Wenn der Magnetschalter deaktiviert ist, ist das Abflußventil geschlossen.

2. Das Abflußventil wird vom Bedienpult gesteuert (Öffnen/Schließen).

3. Das Abflußventil kann unter folgenden Bedingungen geöffnet werden:

– Der Rührwerkmotor ist abgeschaltet.

– Der Füllstandsmesser zeigt nicht ”Behälter ist leer”.

– NOT-AUS ist nicht aktiviert.

4. Es gibt folgende Abschaltbedingung:

– Die Füllstandsmessung ergibt “Behälter leer”.

Tabelle 1-6 Beschreibung der Schalter zur Füllstandsmessung

Schalter zur Füllstandsmessung

1. Die Schalter im Mischbehälter informieren über den Füllstand im Behälter undwerden für die Verriegelung der Speisepumpen und des Rührwerkmotorsverwendet.

Vorgehensweise beim Steuerungsentwurf

Page 19: Systemsoftware für S7-300/400, Programmentwurf · iii Systemsoftware für S7-300/400 Programmentwurf C79000-G7000-C506-01 Vorwort Dieses Handbuch informiert Sie über die verschiedenen

1-7Systemsoftware für S7-300/400 ProgrammentwurfC79000-G7000-C506-01

Nachdem Sie jedes Gerät, das gesteuert werden soll, physikalischbeschrieben haben, zeichnen Sie für jedes Gerät oder jeden Aufgabenbereichein Eingangs-Ausgangs-Diagramm (siehe Bild 1-4). Diese Diagrammeentsprechen den Codebausteinen, die zu programmieren sind.

Gerät

Eingang 1

Eingang n

Durchgang 1

Durchgang n

Ausgang n

Ausgang 1

Bild 1-4 Eingangs-Ausgangs-Diagramm

In dem Beispiel für den industriellen Mischprozeß werden zwei Speisepum-pen und ein Rührwerk eingesetzt. Die Ansteuerung der jeweiligen Motorenerfolgt durch je einen “Motorbaustein”, der für alle drei Geräte gleich ist.Dieser Baustein benötigt sechs Eingänge: Zwei Eingänge zum Starten bzw.Stoppen des Motors, einen Eingang zum Rücksetzen der Wartungsanzeige,einen Eingang für die Motorrückmeldung (Motor läuft/läuft nicht), einenEingang für die Zeitdauer, in der die Rückmeldung erfolgen muß, und einenEingang für die Nummer des Timers, der zur Zeitmessung verwendet werdensoll.Außerdem benötigt der Codebaustein vier Ausgänge: Zwei Ausgänge zurAnzeige des Betriebszustandes des Motors, einen Ausgang zur Anzeige vonFehlern und einen Ausgang, der anzeigt, daß die Wartung des Motors fälligist.Weiterhin wird ein Durchgang benötigt: Er dient zur Ansteuerung des Mo-tors, wird aber gleichzeitig im Programm des “Motorbausteines” bearbeitetbzw. verändert.

Motor

Start

Response

Reset_Maint

Timer_No

Fault

Maint

Stop_Dsp

Start_DspStop

Response_Time

Motor

Bild 1-5 Eingangs-Ausgangs-Diagramm des “Motorbausteines”

Auflisten von Ein-,Aus- und Durch-gängen

Erstellen einesEingangs-Aus-gangs-Diagrammsfür die Motoren

Vorgehensweise beim Steuerungsentwurf

Page 20: Systemsoftware für S7-300/400, Programmentwurf · iii Systemsoftware für S7-300/400 Programmentwurf C79000-G7000-C506-01 Vorwort Dieses Handbuch informiert Sie über die verschiedenen

1-8Systemsoftware für S7-300/400 Programmentwurf

C79000-G7000-C506-01

Die Ansteuerung des jeweiligen Ventils erfolgt über einen “Ventilbaustein”,der für alle verwendeten Ventile gleich ist. Der Codebaustein hat zwei Ein-gänge: Einen Eingang zum Öffnen und einen zum Schließen des Ventiles.Außerdem sind zwei Ausgänge vorhanden: Ein Ausgang zeigt an, daß dasVentil geöffnet ist, der andere, daß es geschlossen ist.Der Baustein hat einen Durchgang: Er dient zur Ansteuerung des Ventils,wird aber gleichzeitig im Programm des “Ventilbausteines” bearbeitet bzw.verändert.

Ventil

Open

Valve

Dsp_ClosedClose

Dsp_Open

Bild 1-6 Eingangs-Ausgangs-Diagramm des “Ventilbausteines”

Erstellen einesEingangs-Aus-gangs-Diagrammsfür die Ventile

Vorgehensweise beim Steuerungsentwurf

Page 21: Systemsoftware für S7-300/400, Programmentwurf · iii Systemsoftware für S7-300/400 Programmentwurf C79000-G7000-C506-01 Vorwort Dieses Handbuch informiert Sie über die verschiedenen

1-9Systemsoftware für S7-300/400 ProgrammentwurfC79000-G7000-C506-01

1.4 Festlegen der Sicherheitsanforderungen

Entscheiden Sie – im Rahmen der gesetzlichen Vorschriften und derVerfahrensanweisungen Ihres Unternehmens – welche Elemente notwendigsind, um die Sicherheit des Prozesses zu gewährleisten. Beschreiben Sieauch, wie diese Sicherheitselemente die Bereiche Ihres Prozesses beein-flussen.

Bestimmen Sie die Geräte, die aus Sicherheitsgründen festverdrahteteSchaltungen benötigen. Per Definition arbeiten diese Sicherheitsstromkreiseunabhängig vom Automatisierungssystem (obwohl der Sicherheitsstromkreisin der Regel eine E/A-Schnittstelle zur Koordination mit dem Anwender-programm zur Verfügung stellt). Üblicherweise konfigurieren Sie eineMatrix, um jeden Aktor mit einem eigenen NOT-AUS-Bereich zu verbinden.Diese Matrix ist die Grundlage für die Schaltpläne der Sicherheitsstrom-kreise.

Zum Entwerfen von Schutzvorrichtungen gehen Sie wie folgt vor:

� Legen Sie die logischen und mechanischen/elektrischen Verriegelungenzwischen den einzelnen Automatisierungsaufgaben fest.

� Entwerfen Sie Schaltungen, um im Notfall die am Prozeß beteiligtenGeräte manuell bedienen zu können.

� Bestimmen Sie weitere Sicherheitsanforderungen für einen sicherenAblauf des Prozesses.

In dem Beispiel für den industriellen Mischprozeß verwenden wir für denSicherheitsstromkreis folgende Schaltung:

� Einen NOT-AUS-Schalter, der unabhängig vom Automatisierungssystem(AS) die folgenden Geräte ausschaltet:

– Speisepumpe für Stoff A

– Speisepumpe für Stoff B

– Rührwerkmotor

– Ventile

� Der NOT-AUS-Schalter befindet sich am Bedienpult.

� Ein Eingang der Steuerung erfaßt den Zustand des NOT-AUS-Schalters.

Übersicht

Definieren derSicherheits-anforderungen

Erstellen einesSicherheitsstrom-kreises

Vorgehensweise beim Steuerungsentwurf

Page 22: Systemsoftware für S7-300/400, Programmentwurf · iii Systemsoftware für S7-300/400 Programmentwurf C79000-G7000-C506-01 Vorwort Dieses Handbuch informiert Sie über die verschiedenen

1-10Systemsoftware für S7-300/400 Programmentwurf

C79000-G7000-C506-01

1.5 Beschreiben der notwendigen Anzeige- und Bedienelemente

Jeder Prozeß benötigt ein Bedien- und Beobachtungssystem, das mensch-liches Eingreifen in den Prozeß ermöglicht. Als Teil der Entwurfs-beschreibung wird auch die Ausführung eines Bedienpultes beschrieben.

Beim industriellen Mischprozeß in unserem Beispiel wird jedes Gerät übereinen Taster, der sich auf dem Bedienpult befindet, gestartet bzw. gestoppt.Dieses Bedienpult ist mit Anzeigen versehen, die über den Betriebszustandinformieren (siehe Bild 1-7). Hier befinden sich auch die Anzeigelampen fürdie Geräte, die nach einer bestimmten Anzahl von Starts gewartet werdenmüssen, und der NOT-AUS-Schalter, mit dem der Prozeß sofort angehaltenwerden kann. Auf dem Bedienpult befindet sich außerdem ein Rücksetztasterfür die Wartungsanzeige der drei Motoren. Mit ihm schalten Sie die War-tungsanzeigelampen für diejenigen Motoren aus, bei denen eine Wartungfällig ist, und setzen die zugehörigen Zählerstände für das Wartungsintervallauf 0.

NOT-AUS

Stoff AStopp

Stoff AStart

Stoff BStart

Stoff BStopp

RührwerkStart

RührwerkStopp

Behältervoll

Behälterunter Min.

Behälterleer

Abflußöffnen

Abflußschließen

WartungPumpe A

WartungPumpe B

WartungRührwerk

Wartungsanzeigerücksetzen

Bild 1-7 Beispiel für ein Bedienpult

Übersicht

Definieren einesBedienpultes

Vorgehensweise beim Steuerungsentwurf

Page 23: Systemsoftware für S7-300/400, Programmentwurf · iii Systemsoftware für S7-300/400 Programmentwurf C79000-G7000-C506-01 Vorwort Dieses Handbuch informiert Sie über die verschiedenen

1-11Systemsoftware für S7-300/400 ProgrammentwurfC79000-G7000-C506-01

1.6 Erstellen eines Konfigurationsplans

Nachdem Sie die Entwurfsanforderungen dokumentiert haben, bestimmenSie die Steuergeräte, die für dieses Projekt erforderlich sind.

Mit der Entscheidung, welche Baugruppen Sie einsetzen wollen, legen Sieden Aufbau des Automatisierungssystems fest. Erstellen Sie einenKonfigurationsplan, in dem Sie folgende Punkte festlegen:

� Art der CPU

� Anzahl und Art der Signalbaugruppen

� Konfiguration der physikalischen Ein- und Ausgänge

Bild 1-8 zeigt die Konfiguration für den industriellen Mischprozeß inunserem Beispiel.

Digital-eingabe-baugr.

Digital-ausgabe-baugr.

Digital-ausgabe-baugr.

Industrieller Mischprozeß

Bedienpult

S7-300-CPUE 0.0bis E 1.7

A 4.0bis A 5.0

A 8.0bisA 9.0

NOT-AUS-Schaltung

Bild 1-8 Beispiel für eine S7-Konfiguration

Übersicht

Bestimmen derKonfiguration

Vorgehensweise beim Steuerungsentwurf

Page 24: Systemsoftware für S7-300/400, Programmentwurf · iii Systemsoftware für S7-300/400 Programmentwurf C79000-G7000-C506-01 Vorwort Dieses Handbuch informiert Sie über die verschiedenen

1-12Systemsoftware für S7-300/400 Programmentwurf

C79000-G7000-C506-01

Vorgehensweise beim Steuerungsentwurf

Page 25: Systemsoftware für S7-300/400, Programmentwurf · iii Systemsoftware für S7-300/400 Programmentwurf C79000-G7000-C506-01 Vorwort Dieses Handbuch informiert Sie über die verschiedenen

2-1Systemsoftware für S7-300/400 ProgrammentwurfC79000-G7000-C506-01

Strukturieren des Anwenderprogramms

Dieses Kapitel unterstützt Sie beim Festlegen der Bausteinstruktur IhresS7-Programms. Es beschreibt:

� die Programme einer CPU: Betriebssystem und Anwenderprogramm

� die Struktur von Anwenderprogrammen

� die Elemente eines Anwenderprogramms

Eine detaillierte Beschreibung der einzelnen Organisationsbausteine undSystemfunktionen enthält das Referenzhandbuch /235/.

Eine Übersicht über den Operationsumfang der S7-300- und S7-400-CPUsfinden Sie in den Operationslisten /72/ und /102/.

Im Kapitel finden Sie auf Seite

2.1 Programme in einer CPU 2-2

2.2 Elemente des Anwenderprogramms 2-3

2.3 Aufrufhierarchie der Bausteine 2-4

2.4 Variablen eines Bausteins 2-5

2.5 Operationsumfang der S7-CPUs 2-7

2.6 Organisationsbausteine (OB) und Programmstruktur 2-9

2.7 Systemfunktionsbausteine (SFB) und Systemfunktionen(SFC)

2-10

2.8 Funktionen (FC) 2-11

2.9 Funktionsbausteine (FB) 2-12

2.10 Instanz-Datenbausteine 2-15

2.11 Globale Datenbausteine (DB) 2-17

2.12 Speichern der Daten eines unterbrochenen Bausteins 2-18

2.13 Vermeiden von Fehlern beim Aufrufen von Bausteinen 2-20

Was beschreibtdieses Kapitel?

Wo finden SieweitereInformationen?

Kapitelübersicht

2

Page 26: Systemsoftware für S7-300/400, Programmentwurf · iii Systemsoftware für S7-300/400 Programmentwurf C79000-G7000-C506-01 Vorwort Dieses Handbuch informiert Sie über die verschiedenen

2-2Systemsoftware für S7-300/400 Programmentwurf

C79000-G7000-C506-01

2.1 Programme in einer CPU

In einer CPU laufen zwei verschiedene Programme ab:

� das Betriebssystem und

� das Anwenderprogramm.

Das Betriebssystem ist in jeder CPU enthalten und organisiert alleFunktionen und Abläufe der CPU, die nicht mit einer spezifischenSteuerungsaufgabe verbunden sind. Zu seinen Aufgaben gehören:

� das Abwickeln von Neustart und Wiederanlauf

� das Aktualisieren des Prozeßabbildes der Eingänge und die Ausgabe desProzeßabbildes der Ausgänge

� das Aufrufen des Anwenderprogramms

� das Erfassen von Alarmen und das Aufrufen der Alarm-OBs

� das Erkennen und Behandeln von Fehlern

� das Verwalten von Speicherbereichen

� das Kommunizieren mit Programmiergeräten und anderenKommunikationspartnern.

Durch Ändern der Betriebsystemparameter (Voreinstellungen des Betriebs-systems) können Sie das Verhalten der CPU in bestimmten Bereichen (sieheKapitel 8) beeinflussen.

Das Anwenderprogramm müssen Sie erstellen und in die CPU laden. Esenthält alle Funktionen, die zur Bearbeitung Ihrer spezifischen Automatisie-rungsaufgabe erforderlich sind. Zu den Aufgaben des Anwenderprogrammsgehören:

� das Festlegen der Voraussetzungen für den Neustart und den Wiederanlaufder CPU (z. B. Signale mit einem bestimmten Wert vorbesetzen)

� das Bearbeiten von Prozeßdaten (z. B. Binärsignale verknüpfen, Analog-werte einlesen und auswerten, Binärsignale für die Ausgabe festlegen,Analogwerte ausgeben)

� das Reagieren auf Alarme

� das Bearbeiten von Störungen im normalen Programmablauf.

Einleitung

Betriebssystem

Anwender-programm

Strukturieren des Anwenderprogramms

Page 27: Systemsoftware für S7-300/400, Programmentwurf · iii Systemsoftware für S7-300/400 Programmentwurf C79000-G7000-C506-01 Vorwort Dieses Handbuch informiert Sie über die verschiedenen

2-3Systemsoftware für S7-300/400 ProgrammentwurfC79000-G7000-C506-01

2.2 Elemente des Anwenderprogramms

Die Programmiersoftware STEP 7 bietet Ihnen die Möglichkeit, dasAnwenderprogramm zu strukturieren, d. h. in einzelne, in sich geschlosseneProgrammabschnitte aufzuteilen. Daraus ergeben sich die folgenden Vorteile:

� umfangreiche Programme lassen sich übersichtlich programmieren

� einzelne Programmteile können standardisiert werden

� die Programmorganisation wird vereinfacht

� Änderungen des Programms lassen sich leichter durchführen

� der Programmtest wird vereinfacht, weil er abschnittsweise erfolgen kann

� die Inbetriebnahme wird erleichtert.

Am Beispiel des industriellen Mischprozesses in Kapitel 1 haben Siegesehen, wie ein Automatisierungsprozeß sinnvoll in einzelne Aufgabenzerlegt werden kann. Die Programmabschnitte eines strukturiertenAnwenderprogramms entsprechen diesen einzelnen Aufgaben, sie werden alsBausteine eines Programms bezeichnet.

Ein S7-Anwenderprogramm besteht aus Bausteinen, Operationen undOperanden. Tabelle 2-1 gibt eine Übersicht.

Tabelle 2-1 Elemente eines Anwenderprogramms

Element Funktion Siehe

Organisationsbausteine OB OBs legen die Struktur des Anwenderprogramms fest. Sie

� bilden die Schnittstelle zwischen dem Betriebssystemund dem Anwenderprogramm.

� steuern das Anlaufverhalten des Automatisierungs-systems, die zyklische und alarmgesteuerte Programm-bearbeitung und die Behandlung von Fehlern.

Kapitel 2.6, 3, 4, 11

Systemfunktionsbausteine SFBund Systemfunktionen SFC

Vorgefertigte Bausteine, die Sie nicht selbst programmierenmüssen. SFBs und SFCs sind in die S7-CPU integriert. Siekönnen aus dem Anwenderprogramm aufgerufen werden.Weil sie Teil des Betriebssystems sind, müssen sie nicht, wieandere Bausteine, als Teil des Programms geladen werden.

Kapitel 2.7, 7, 8

Funktionen FC und Funktions-bausteine FB

Codebausteine, die Sie selbst programmieren müssen. FBssind Bausteine mit der Möglichkeit zur Parameterübergabemit Gedächtnis (= Speicher). FCs sind Bausteine mit derMöglichkeit zur Parameterübergabe ohne Gedächtnis.

Kapitel 2.8, 2.9

Datenbausteine Datenbereiche, die Anwenderdaten enthalten. Es gibt

� Instanz-Datenbausteine, die einem FB zugeordnet sind.

� globale Datenbausteine, auf die alle Codebausteinezugreifen können.

Kapitel 2.10,2.11

Operationsumfang der S7-CPUsDie CPUs stellen die Operationen zur Verfügung, mit denenSie die Bausteine in verschiedenen Programmiersprachenerstellen können.

Kapitel 2.5

Operanden Speicher- und Peripheriebereiche der S7-CPUs Kapitel 5, 6

Übersicht

Strukturieren des Anwenderprogramms

Page 28: Systemsoftware für S7-300/400, Programmentwurf · iii Systemsoftware für S7-300/400 Programmentwurf C79000-G7000-C506-01 Vorwort Dieses Handbuch informiert Sie über die verschiedenen

2-4Systemsoftware für S7-300/400 Programmentwurf

C79000-G7000-C506-01

2.3 Aufrufhierarchie der Bausteine

Die Bausteine eines Anwenderprogramms müssen zum Bearbeiten auf-gerufen werden. Dies geschieht durch spezielle STEP 7-Operationen, dieBausteinaufrufe. Bausteinaufrufe können nur innerhalb von Codebausteinen(OBs, FBs, FCs, SFBs und SFCs) programmiert werden. Sie sind vergleich-bar mit Sprüngen in ein Unterprogramm. Jeder Sprung verursacht einenBausteinwechsel. Die Rücksprungadresse im aufrufenden Baustein wird vomSystem zwischengespeichert.

Die Reihenfolge und Schachtelung der Bausteinaufrufe wird Aufrufhierarchiegenannt. Die zulässige Schachtelungstiefe ist CPU-abhängig.

OB FB FC

FB FBSFC

FCBet

riebs

syst

em

DB

Bild 2-1 Beispiel für die Aufrufhierarchie eines Anwenderprogramms

Bild 2-2 zeigt den Ablauf eines Baustein-Aufrufs innerhalb eines Anwender-programms: das Programm ruft den zweiten Baustein auf, dessen Operationendann vollständig bearbeitet werden. Ist die Bearbeitung des aufgerufenenBausteins beendet, wird die Bearbeitung des aufrufenden Bausteins mit der demBaustein-Aufruf folgenden Operation wiederaufgenommen.

Operation, die einen an-deren Baustein aufruft

Bausteinende

Aufrufender Baustein(OB, FB, FC)

Aufgerufener Baustein(FB, FC, SFB oder SFC)

Programm-bearbeitung

Programm-bearbeitung

Bild 2-2 Aufrufen eines Bausteins

Bevor Sie einen Baustein programmieren, müssen Sie erst festlegen, mitwelchen Daten die Bearbeitung Ihres Programms erfolgen soll: Sie müssendie Variablen des Bausteins deklarieren.

Einleitung

Bausteinaufrufe

Strukturieren des Anwenderprogramms

Page 29: Systemsoftware für S7-300/400, Programmentwurf · iii Systemsoftware für S7-300/400 Programmentwurf C79000-G7000-C506-01 Vorwort Dieses Handbuch informiert Sie über die verschiedenen

2-5Systemsoftware für S7-300/400 ProgrammentwurfC79000-G7000-C506-01

2.4 Variablen eines Bausteins

Bausteine beinhalten neben den Anweisungen des Anwenderprogramms dieBausteinvariablen, die Sie mit Hilfe von STEP 7 deklarieren, wenn Sie Bau-steine selbst programmieren. In der Variablendeklaration können SieVariablen angeben, die der Baustein bei seiner Bearbeitung verwenden soll.Variablen sind:

� Parameter, die zwischen Codebausteinen übergeben werden.

� statische Variablen, die in einem Instanz-Datenbaustein gespeichertwerden und auch nach der Bearbeitung des zugeordneten Funktions-baustein noch zur Verfügung stehen.

� temporäre Variablen, die nur während der Bearbeitung des Bausteins zurVerfügung stehen und dann wieder überschrieben werden. TemporärenDaten weist das Betriebssystem einen eigenen Speicherbereich zu (sieheauch Kapitel 3.8 Lokaldaten-Stack).

Durch die Möglichkeit, Parameter zu übergeben, können Sie allgemeine, wieder-verwendbare Bausteine erstellen, deren Programme von anderen Bausteinen inIhrem Programm verwendet werden können. Man unterscheidet:

� Formalparameter, die die Parameter bezeichnen und in der Variablen-deklaration festgelegt werden

� Aktualparametern, die beim Aufruf des Bausteins die Formalparameterersetzen.

Für jeden Formalparameter müssen Sie einen Deklarationstyp und einenDatentyp angeben.

Sie müssen festlegen, wie ein Parameter vom Codebaustein verwendetwerden soll. Sie können einen Parameter als Eingabewert oder als Ausgabe-wert definieren. Sie können ihn aber auch als Durchgangsvariableverwenden, die an den Baustein übergeben und vom Baustein wieder aus-gegeben wird. Bild 2-3 zeigt die Beziehung der Formalparameter zu einemFB “Motor”.

Motor_Daten_1

Drehzahl

Laufzeit

Vorgeschichte

Motor_EIN

Durchgang(IN_OUT)

Ausgang(OUT)

Motor

Eingang(IN)

Bild 2-3 Definieren der Ein-, Aus- und Durchgangsparameter eines Codebausteins

Einleitung

Bausteinparameter

Deklarationstypen

Strukturieren des Anwenderprogramms

Page 30: Systemsoftware für S7-300/400, Programmentwurf · iii Systemsoftware für S7-300/400 Programmentwurf C79000-G7000-C506-01 Vorwort Dieses Handbuch informiert Sie über die verschiedenen

2-6Systemsoftware für S7-300/400 Programmentwurf

C79000-G7000-C506-01

Tabelle 2-2 beschreibt die Deklarationstypen.

Tabelle 2-2 Deklarationstypen für Parameter und lokale Variablen

Parameter/Variable

Beschreibung Zulässig in

IN Eingangsparameter, wird vom aufrufenden Codebausteinbereitgestellt.

FB, FC

OUT Ausgangsparameter, wird vom aufgerufenen Codebau-stein bereitgestellt.

FB, FC

IN_OUT Parameter, dessen Wert von dem aufrufenden Bausteinbereitgestellt, von dem aufgerufenen Baustein verändertund an den aufrufenden Baustein zurückgegeben wird.

FB, FC

STAT Statische Variable, die in einem Instanz-DB gespeichertwird.

FB

TEMP Temporäre Variable, die im Lokaldaten-Stack gespeichertwird. Der Wert der Variablen ist nach der Bearbeitung desBausteins nicht mehr verfügbar.

FB, FC, OB

Bei FBs speichert der Instanz-DB die Daten, die als IN, OUT, IN_OUT sowieals statische Variablen STAT deklariert wurden. Temporäre Variablen TEMPwerden nicht gespeichert.

FCs können keine statischen Variablen besitzen. Die Eingangs-, Ausgangs-und Durchgangsparameter werden als Pointer auf die Aktualparameter, dievon dem aufrufenden Baustein zur Verfügung gestellt werden, gespeichert.

Alle in einem Anwenderprogramm verwendeten Daten müssen durch denjeweils benötigten Datentyp gekennzeichnet sein. Wenn Sie den Datentyp fürParameter und statische bzw. temporäre Variablen definieren, legen Sie dieLänge und Struktur der Variablen fest. Der Aktualparameter, der beim Bau-steinaufruf bereitgestellt wird, muß mit dem Datentyp des Formalparametersübereinstimmen. Variablen können die folgenden Datentypen haben:

� elementare Datentypen, die Ihnen STEP 7 zur Verfügung stellt

� zusammengesetzte Datentypen, die Sie erzeugen können, indem Sieelementare Datentypen verknüpfen

� anwenderdefinierte Datentypen

� Parametertypen, die spezielle Parameter definieren, die an FBs oder FCsübergeben werden können.

Datentypen und Parametertypen werden detailliert in Anhang C beschrieben.

Für alle Parameter und statische Daten können Sie Anfangswerte vorgeben.Der eingegebene Wert muß mit dem Datentyp kompatibel sein. Geben Siekeinen Anfangswert an, gilt ein Default-Wert, der durch den Datentyp derVariablen vorgegeben ist.

Datentypen

Anfangswerte

Strukturieren des Anwenderprogramms

Page 31: Systemsoftware für S7-300/400, Programmentwurf · iii Systemsoftware für S7-300/400 Programmentwurf C79000-G7000-C506-01 Vorwort Dieses Handbuch informiert Sie über die verschiedenen

2-7Systemsoftware für S7-300/400 ProgrammentwurfC79000-G7000-C506-01

2.5 Operationsumfang der S7-CPUs

Die Programmiersoftware STEP 7 ist das Bindeglied zwischen demAnwender und den speicherprogrammierbaren AutomatisierungssystemenS7-300 und S7-400. Mit STEP 7 können Sie Ihre Automatisierungsaufgabe inverschiedenen Programmiersprachen programmieren.

Die Programmiersprachen nutzen den Operationsumfang, den die S7-CPUsbieten. Dieser Operationsumfang ist detailliert beschrieben in denOperationslisten der CPUs /72/ und /102/. Die Operationen lassen sich infolgende Gruppen einteilen:

� Bausteinoperationen

� Verknüpfungsoperationen (binär, wortweise)

� Arithmetische Operationen (Festpunkt, Gleitpunkt)

� Vergleichsoperationen

� Logische Operationen

� Lade- und Transferoperationen

� Logarithmus und Trigonometrische Operationen

� Schiebe- und Rotieroperationen

� Umwandlungsoperationen

� Zeit- und Zähloperationen

� Sprungoperationen

Tabelle 2-3 zeigt, welche Programmiersprachen zur Verfügung stehen undihre wichtigsten Merkmale. Welche Sprache Sie wählen, hängt imwesentlichen davon ab, welche Vorkenntnisse Sie haben bzw. welche SpracheIhnen persönlich am meisten zusagt.

Tabelle 2-3 Programmiersprachen bei STEP 7

Programmier-sprache

Anwendergruppe Anwendungsfall inkremen-telle Ein-

gabe

quellorien-tierte Ein-

gabe

Baustein ausder CPU rück-

dokumentierbar

AnweisungslisteAWL

Anwender, diemaschinennahprogrammieren wollen.

laufzeit- undspeicherplatz-optimierteProgramme

ja ja ja

Kontaktplan KOP Anwender, die Umgangmit Stromlaufplänengewohnt sind.

Programmierungvon Verknüp-fungssteuerungen

ja nein ja

FunktionsplanFUP

Anwender, die mit denlogischen Boxen derBooleschen Algebravertraut sind..

Programmierungvon Verknüp-fungssteuerungen

ja nein ja

Übersicht

Programmier-sprachen

Strukturieren des Anwenderprogramms

Page 32: Systemsoftware für S7-300/400, Programmentwurf · iii Systemsoftware für S7-300/400 Programmentwurf C79000-G7000-C506-01 Vorwort Dieses Handbuch informiert Sie über die verschiedenen

2-8Systemsoftware für S7-300/400 Programmentwurf

C79000-G7000-C506-01

Tabelle 2-3 Programmiersprachen bei STEP 7

Programmier-sprache

Baustein ausder CPU rück-

dokumentierbar

quellorien-tierte Ein-

gabe

inkremen-telle Ein-

gabe

AnwendungsfallAnwendergruppe

SCL (StructuredControl Language)

Optionspaket

Anwender, die in Hoch-sprachen wie PASCALoder C programmierthaben.

Programmierenvon Datenverar-beitungsaufgaben

nein ja nein

GRAPH

Optionspaket

Anwender, die technolo-gieorientiert ohne tiefereProghrammier-/SPS-Kenntnisse arbeitenwollen.

komfortableBeschreibungsequentiellerVorgänge

ja nein ja

HiGraph

Optionspaket

Anwender, die technolo-gieorientiert ohne tiefereProghrammier-/SPS-Kenntnisse arbeitenwollen.

komfortableBeschreibungasynchroner, nicht-sequentiellerVorgänge.

nein ja nein

CFC

Optionspaket

Anwender, die technolo-gieorientiert ohne tiefereProghrammier-/SPS-Kenntnisse arbeitenwollen.

BeschreibungkontinuierlicherVorgänge.

nein ja 1) nein

1) aber mit Syntaxprüfung beim Editieren

Eine detaillierte Beschreibung der einzelnen Programmiersprachen finden Siein den Handbüchern /232/, /233/, /236/, /250/, /251/, /252/ und /254/.

Strukturieren des Anwenderprogramms

Page 33: Systemsoftware für S7-300/400, Programmentwurf · iii Systemsoftware für S7-300/400 Programmentwurf C79000-G7000-C506-01 Vorwort Dieses Handbuch informiert Sie über die verschiedenen

2-9Systemsoftware für S7-300/400 ProgrammentwurfC79000-G7000-C506-01

2.6 Organisationsbausteine (OB) und Programmstruktur

Organisationsbausteine (OBs) bilden die Schnittstelle zwischen demBetriebssystem und dem Anwenderprogramm. Sie werden vom Betriebs-system aufgerufen und steuern die zyklische und alarmgesteuerte Programm-bearbeitung, das Anlaufverhalten des Automatisierungssystems und dieBehandlung von Fehlern. Sie können die Organisationsbausteineprogrammieren und so das Verhalten der CPU bestimmen.

Bei speicherprogrammierbaren Steuerungen herrscht typischerweise diezyklische Programmbearbeitung vor, d. h. das Betriebsystem läuft in einerProgrammschleife (dem Zyklus) und ruft dabei in jeder Schleife einmal denOrganisationsbaustein OB 1 auf. Das Anwenderprogramm im OB 1 wird alsozyklisch bearbeitet.

Die zyklische Programmbearbeitung kann durch bestimmte Startereignisse(Alarme) unterbrochen werden. Tritt ein solches Startereignis ein, wird dergerade bearbeitete Baustein an einer Befehlsgrenze unterbrochen und einanderer Organisationsbaustein abgearbeitet, der dem Startereignis zugeordnetist. Danach wird die Bearbeitung des zyklischen Programms an der Unter-brechungsstelle wieder fortgesetzt.

Bei SIMATIC S7 gibt es die folgenden nicht-zyklischen Arten derProgrammbearbeitung:

� zeitgesteuerte Programmbearbeitung

� prozeßalarmgesteuerte Programmbearbeitung

� diagnosealarmgesteuerte Programmbearbeitung

� Bearbeitung synchroner und asynchroner Fehler

� Bearbeitung der Anlaufarten

� multicomputinggesteuerte Programmbearbeitung

� Bearbeitung eines Hintergrundzyklus

Nähere Informationen zur Programmbearbeitung und den Alarm-OBs findenSie in den Kapiteln 3 und 4.

Sie können Ihr gesamtes Anwenderprogramm in den OB 1 schreiben (lineareProgrammierung). Dies ist nur empfehlenswert bei einfachen Programmen,die auf S7-300-CPUs mit kleinem Speicherumfang laufen.

Komplexe Automatisierungsaufgaben können besser bearbeitet werden, wennsie in kleinere Teilaufgaben untergliedert werden, die den technologischenFunktionen des Automatisierungsprozesses entsprechen (siehe Kapitel 1.2)oder mehrfach verwendet werden sollen. Im Anwenderprogramm werdendiese Teilaufgaben durch entsprechende Programmteile, die Bausteine,repräsentiert (strukturierte Programmierung).

Definition

Zyklische Pro-grammbearbeitung

AlarmgesteuerteProgramm-bearbeitung

Linear oderstrukturiert pro-grammieren

Strukturieren des Anwenderprogramms

Page 34: Systemsoftware für S7-300/400, Programmentwurf · iii Systemsoftware für S7-300/400 Programmentwurf C79000-G7000-C506-01 Vorwort Dieses Handbuch informiert Sie über die verschiedenen

2-10Systemsoftware für S7-300/400 Programmentwurf

C79000-G7000-C506-01

2.7 Systemfunktionsbausteine (SFB) und Systemfunktionen (SFC)

Sie müssen nicht jede Funktion selbst programmieren. S7-CPUs bieten Ihnenvorgefertigte Bausteine, die Sie aus dem Anwenderprogramm herausaufrufen können.

Ein Systemfunktionsbaustein SFB ist ein Funktionsbaustein, der in dieS7-CPU integriert ist. Weil SFBs Teil des Betriebssystems sind, werden sienicht als Teil des Programms geladen. Wie FBs sind SFBs Bausteine ”mitGedächtnis”. Sie müssen auch für SFBs Instanz-Datenbausteine erstellen undals Teil des Progamms in die CPU laden.

S7-CPUs bieten SFBs

� zur Kommunikation über projektierte Verbindungen

� für intergrierte Sonderfunktionen (z. B. SFB 29 ”HS_COUNT”auf der CPU 312 IFM und der CPU 314 IFM)

Eine Systemfunktion ist eine vorprogrammierte, getestete Funktion, die indie S7-CPU integriert ist. Sie können die SFC aus Ihrem Programm aufrufen.Weil SFCs Teile des Betriebssystems sind, werden sie nicht als Teil desProgramms geladen. Wie FCs sind SFCs Bausteine ”ohne Gedächtnis”.

S7-CPUs bieten SFCs für:

� Kopier- und Bausteinfunktionen

� die Programmkontrolle

� die Hantierung der Uhr und des Betriebsstundenzählers

� die Übertragung von Datensätzen

� Übertragung von Ereignissen im Betriebsmodus Multicomputing, voneiner CPU auf alle gesteckten CPUs

� die Hantierung von Uhrzeit- und Verzögerungsalarmen

� die Hantierung von Synchronfehlerereignissen, Alarm- und Asynchron-fehlerereignissen

� die Systemdiagnose

� die Prozeßabbildaktualisierung und die Bitfeldbearbeitung

� die Adressierung von Baugruppen

� die dezentrale Peripherie

� die Globaldaten-Kommunikation

� die Kommunikation über nichtprojektierte Verbindungen

� Erzeugung bausteinbezogener Meldungen

Nähere Informationen zu SFBs und SFCs entnehmen Sie dem Referenzhand-buch /235/. Den CPU-Beschreibungen /70/ und /101/ entnehmen Sie, welcheSFBs und SFCs verfügbar sind.

VorgefertigteBausteine

Systemfunktions-bausteine

Systemfunktionen

WeitereInformationen

Strukturieren des Anwenderprogramms

Page 35: Systemsoftware für S7-300/400, Programmentwurf · iii Systemsoftware für S7-300/400 Programmentwurf C79000-G7000-C506-01 Vorwort Dieses Handbuch informiert Sie über die verschiedenen

2-11Systemsoftware für S7-300/400 ProgrammentwurfC79000-G7000-C506-01

2.8 Funktionen (FC)

Funktionen gehören zu den Bausteinen, die Sie selbst programmieren. EineFunktion ist ein Codebaustein ”ohne Gedächtnis”. Temporäre Variablen derFC werden im Lokaldaten-Stack gespeichert. Diese Daten gehen nach derBearbeitung der FC verloren. Funktionen können zum Speichern von Datenglobale Datenbausteine nutzen.

Weil eine FC keinen zugeordneten Speicher hat, müssen Sie immer Aktual-parameter für eine FC angeben. Sie können den Lokaldaten einer FC keineAnfangswerte zuordnen.

Eine FC enthält ein Programm, das immer dann ausgeführt wird, wenn dieFC von einem anderen Codebaustein aufgerufen wird. Funktionen könneneingesetzt werden, um

� einen Funktionswert an den aufrufenden Baustein zurückzugeben(Beispiel: mathematische Funktionen)

� eine technologische Funktion auszuführen (Beispiel: Einzelsteuerung mitBinärverknüpfung).

Sie müssen den Formalparametern einer FC immer Aktualparameter zuordnen.Die Eingangs-, Ausgangs- und Durchgangsparameter, die von der FC verwendetwerden, werden als Pointer auf die Aktualparameter des Codebausteinsgespeichert, der die FC aufgerufen hat.

Definition

Anwendungs-bereich

Zuordnen von Ak-tualparametern zuFormalparametern

Strukturieren des Anwenderprogramms

Page 36: Systemsoftware für S7-300/400, Programmentwurf · iii Systemsoftware für S7-300/400 Programmentwurf C79000-G7000-C506-01 Vorwort Dieses Handbuch informiert Sie über die verschiedenen

2-12Systemsoftware für S7-300/400 Programmentwurf

C79000-G7000-C506-01

2.9 Funktionsbausteine (FB)

Funktionsbausteine gehören zu den Bausteinen, die Sie selbst programmie-ren. Ein Funktionsbaustein ist ein Baustein ”mit Gedächtnis”. Er verfügt übereinen zugeordneten Datenbaustein als Speicher (Instanz-Datenbaustein). DieParameter, die an den FB übergeben werden, sowie die statischen Variablenwerden im Instanz-DB gespeichert. Die temporären Variablen werden imLokaldaten-Stack gespeichert.

Daten, die im Instanz-DB gespeichert werden, gehen nicht verloren, wenn dieBearbeitung des FB beendet ist. Daten, die im Lokaldaten-Stack gespeichertwerden, gehen nach der Bearbeitung des FB verloren.

Hinweis

Um Fehler beim Arbeiten mit FBs zu vermeiden, lesen Sie Kapitel 2.13.

Ein FB enthält ein Programm, das immer dann ausgeführt wird, wenn der FBvon einem anderen Codebaustein aufgerufen wird. Funktionsbausteineerleichtern das Programmieren häufig wiederkehrender, komplexerFunktionen.

Jedem Aufruf eines Funktionsbausteins, der Parameter übergibt, ist einInstanz-Datenbaustein zugeordnet.

Durch das Aufrufen mehrerer Instanzen eines FB können Sie mit einem FBmehrere Geräte steuern. Ein FB für einen Motortyp beispielsweise kannverschiedene Motoren steuern, indem er verschiedene Instanz-Daten für dieverschiedenen Motoren verwendet. Die Daten für jeden einzelnen Motor (wieDrehzahl, Ramping, akkumulierte Betriebszeit usw.) können in einem odermehreren Instanz-DBs gespeichert werden (siehe auch Kapitel 2.10). Bild 2-4zeigt die Formalparameter eines FB, der die Aktualparameter verwendet, dieim Instanz-DB gespeichert sind.

FB20:Motor DB202:Motor_2

Start INT INDrehzahl INT IN

Vorge-schichte DT IN_OUTLaufzeit TIME IN_OUT

Ganzzahl (16 Bits): Start

Ganzzahl (16 Bits): Drehzahl

Datum und Zeit (48 Bits):Pointer auf die Adresse der Vor-geschichte

Zeit (32 Bits): Laufzeit

Bild 2-4 Beziehung zwischen Deklarationen des FB und Daten des Instanz-DB

Definition

Anwendungs-bereich

FBs und Instanz-DBs

Strukturieren des Anwenderprogramms

Page 37: Systemsoftware für S7-300/400, Programmentwurf · iii Systemsoftware für S7-300/400 Programmentwurf C79000-G7000-C506-01 Vorwort Dieses Handbuch informiert Sie über die verschiedenen

2-13Systemsoftware für S7-300/400 ProgrammentwurfC79000-G7000-C506-01

Ist Ihr Anwenderprogramm so strukturiert, daß in einem FB weitere, bereitsexistierende Funktionsbausteine aufgerufen werden, können Sie in dieVariablendeklarationstabelle des aufrufenden FB die aufzurufenden FBs alsstatische Variablen mit dem Datentyp FB aufnehmen. Damit erreichen Sieeine Verschachtelung von Variablen und die Konzentrierung der Instanzdatenin einem Instanz-Datenbaustein (Multiinstanz), siehe auch Kapitel 2.10.

Im allgemeinen ist es in STEP 7 nicht erforderlich, daß Sie den Formal-parametern eines FB Aktualparameter zuordnen. Es gibt jedoch Ausnahmen:Aktualparameter müssen zugeordnet werden:

� bei einem Durchgangsparameter eines zusammengesetzten Datentyps(z. B. STRING, ARRAY oder DATE_AND_TIME)

� bei allen Parametertypen (z. B. TIMER, COUNTER oder POINTER)

STEP 7 ordnet den Formalparametern eines FB die Aktualparameterfolgendermaßen zu:

� Wenn Sie in der Aufrufanweisung Aktualparameter angeben: DieOperationen des FB verwenden die bereitgestellten Aktualparameter.

� Wenn Sie in der Aufrufanweisung keine Aktualparameter angeben: DieOperationen des FB verwenden die Werte, die in dem Instanz-DBgespeichert sind.

Tabelle 2-4 zeigt, welchen Variablen Aktualparameter zugeordnet werdenmüssen.

Tabelle 2-4 Zuordnen von Aktualparametern zu Formalparametern eines FB

Datentyp

Variablen Elementarer Daten-typ

ZusammengesetzterDatentyp

Parametertyp

Eingang Parameter nicht erfor-derlich

Parameter nicht erfor-derlich

Aktualparametererforderlich

Ausgang Parameter nicht erfor-derlich

Parameter nicht erfor-derlich

Aktualparametererforderlich

Durchgang Parameter nicht erfor-derlich

Aktualparametererforderlich

Variablen vomDatentyp FB

Zuordnen von Ak-tualparametern zuFormalparametern

Strukturieren des Anwenderprogramms

Page 38: Systemsoftware für S7-300/400, Programmentwurf · iii Systemsoftware für S7-300/400 Programmentwurf C79000-G7000-C506-01 Vorwort Dieses Handbuch informiert Sie über die verschiedenen

2-14Systemsoftware für S7-300/400 Programmentwurf

C79000-G7000-C506-01

Sie können den Formalparametern im Deklarationsteil des FB Anfangswertezuordnen. Diese Werte werden in den Instanz-DB übernommen, der einemFB zugeordnet wird.

Ordnen Sie den Formalparametern in der Aufrufanweisung keine Aktual-parameter zu, dann verwendet STEP 7 die Werte, die im Instanz-DBgespeichert sind. Diese Daten können Anfangswerte sein, die in derVariablendeklarationstabelle eines FB eingegeben wurden.

Tabelle 2-5 zeigt, welche Variablen einem Anfangswert zugeordnet werdenkönnen. Weil die temporären Daten nach der Bearbeitung des Bausteins nichtgespeichert werden, können Sie ihnen keine Werte zuordnen.

Tabelle 2-5 Zuordnen von Anfangswerten zu den Variablen eines FB

Datentyp

Variablen ElementarerDatentyp

ZusammengesetzterDatentyp

Parametertyp

Eingang Anfangswert zulässig Anfangswert zulässig –

Ausgang Anfangswert zulässig Anfangswert zulässig –

Durchgang Anfangswert zulässig – –

Statisch Anfangswert zulässig Anfangswert zulässig –

Temporär – – –

Zuordnen von An-fangswerten zuFormalparametern

Strukturieren des Anwenderprogramms

Page 39: Systemsoftware für S7-300/400, Programmentwurf · iii Systemsoftware für S7-300/400 Programmentwurf C79000-G7000-C506-01 Vorwort Dieses Handbuch informiert Sie über die verschiedenen

2-15Systemsoftware für S7-300/400 ProgrammentwurfC79000-G7000-C506-01

2.10 Instanz-Datenbausteine

Jedem Aufruf eines Funktionsbausteins, der Parameter übergibt, ist einInstanz-Datenbaustein zugeordnet. Im Instanz-DB sind die Aktualparameterund die statischen Daten des FB abgelegt. Die im FB deklarierten Variablenbestimmen die Struktur des Instanz-Datenbausteins.

Mit Instanz wird der Aufruf eines Funktionsbausteins bezeichnet. Wird z. B.ein Funktionsbaustein im S7-Anwenderprogramm fünfmal aufgerufen, soexistieren fünf Instanzen dieses Bausteins.

Bevor Sie einen Instanz-Datenbaustein erzeugen, muß der zuzuordnende FBbereits existieren. Die Nummer dieses FB geben Sie beim Anlegen desInstanz-Datenbausteins an.

Wenn Sie mehrere Instanz-Datenbausteine einem Funktionsbaustein (FB)zuordnen, der einen Motor steuert, so können Sie diesen FB zum Steuernverschiedener Motoren verwenden.

Die unterschiedlichen Daten für die einzelnen Motoren (wie z. B. Drehzahl,Hochlaufzeit, Gesamtbetriebszeit) werden in den verschiedenen Datenbau-steinen gespeichert. Je nachdem welcher DB dem FB beim Aufruf zugeord-net wird, kann ein anderer Motor gesteuert werden. Auf diese Weise wird nurein Funktionsbaustein für mehrere Motoren benötigt (siehe Bild 2-5).

FB22:Motoren DB202:Motor_2

DB201:Motor_1

DB203:Motor_3

Aufruf FB22,DB201nutzt Daten für Motor 1

Aufruf FB22,DB202nutzt Daten für Motor 2

Aufruf FB22,DB203nutzt Daten für Motor 3

Bild 2-5 Verwendung eines Instanz-DB für jede Instanz

Sie können einem FB die Instanzdaten für verschiedene Motoren gemeinsamin einem Instanz-DB übergeben. Dazu müssen Sie den Aufruf der Motoren-steuerungen in einem weiteren FB vornehmen und im Deklarationsteil desrufenden FB statische Variablen mit dem Datentyp eines FB für die einzelnenInstanzen deklarieren (Multiinstanzen).

Wenn Sie einen Instanz-DB für mehrere Instanzen eines FB verwenden,sparen Sie Speicherplatz und optimieren den Einsatz von Datenbausteinen.

Definition

Erzeugen einesInstanz-DB

Ein Instanz-DB fürjede Instanz

Ein Instanz-DB fürmehrere Instanzeneines FB

Strukturieren des Anwenderprogramms

Page 40: Systemsoftware für S7-300/400, Programmentwurf · iii Systemsoftware für S7-300/400 Programmentwurf C79000-G7000-C506-01 Vorwort Dieses Handbuch informiert Sie über die verschiedenen

2-16Systemsoftware für S7-300/400 Programmentwurf

C79000-G7000-C506-01

In Bild 2-6 ist beispielsweise der rufende FB der FB 21 ”Motorbearbeitung”,die Variablen sind vom Datentyp FB 22 und die Instanzen werden mitMotor_1, Motor_2 und Motor_3 bezeichnet. Der FB 22 braucht in diesemBeispiel keinen eigenen Instanz-Datenbaustein, weil seine Instanzdaten imInstanz-Datenbaustein des rufenden FB gespeichert sind.

Daten für Motor_2

DB100

Daten für Motor_3

Aufruf des FB 21 aus einemCodebaustein:

CALL FB21,DB100 übergibt Daten für Motor_1,Motor_2, Motor_3

Aufruf des FB 22 aus FB 21:CALL Motor_1CALL Motor_2CALL Motor_3

FB21:Motorbearbeitung

Variablendeklaration:stat, Motor_1, FB 22stat, Motor_2, FB 22stat, Motor_3, FB 22

Daten für Motor_1

FB22:Motoren

Bild 2-6 Verwendung eines Instanz-DBs für mehrere Instanzen

Sie können in einem Funktionsbaustein Instanzen anderer, bereits erstellterFBs aufrufen. In dem Beispiel in Bild 2-7 werden die zugeordneten Instanz-daten ebenfalls gemeinsam in einem Instanz-DB gespeichert.

FB12:Motor

ÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇ

DB12:Motor Zugriff nur für FB12, Aufruf: CALL FB12,DB112

FB13:Pumpe

FB14:Rührer

ÉÉÉÉÉÉÉÉÉÉÉÉÉÉÉÉÉÉÉÉÉ

DB13:Pumpe Zugriff nur für FB 13, Aufruf: CALL FB13, DB13

ÉÉÉÉÉÉÉÉÉÉÉÉÉÉ

ÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇ

DB14

Variablendeklaration:stat, Motor_10, FB 12stat, Pumpe_10, FB 13

Zugriff für FB 14, FB 13 und FB 12, Aufruf: CALL FB14,DB14 übergibt Daten für Rührer,Motor_10 und Pumpe_10

Aufruf des FB 12 aus FB 14:CALL Motor_10

Aufruf des FB 13 aus FB 14:CALL Pumpe_10

Daten für Rührer

Daten für Motor_10

Daten für Pumpe_10

Bild 2-7 Verwendung eines Instanz-DB für mehrere Instanzen unterschiedlicher FBs

Ein Instanz-DB fürmehrere InstanzenunterschiedlicherFBs

Strukturieren des Anwenderprogramms

Page 41: Systemsoftware für S7-300/400, Programmentwurf · iii Systemsoftware für S7-300/400 Programmentwurf C79000-G7000-C506-01 Vorwort Dieses Handbuch informiert Sie über die verschiedenen

2-17Systemsoftware für S7-300/400 ProgrammentwurfC79000-G7000-C506-01

2.11 Globale Datenbausteine (DB)

Datenbausteine enthalten im Gegensatz zu Codebausteinen keineSTEP 7-Anweisungen. Sie dienen der Aufnahme von Anwenderdaten, d. h. inden Datenbausteinen stehen variable Daten, mit denen das Anwender-programm arbeitet. Globale Datenbausteine dienen der Aufnahme vonAnwenderdaten, die von allen anderen Bausteinen aus verwendet werdenkönnen.

Die Größe von DBs kann variieren. Die maximal zulässige Größe entnehmenSie den CPU-Beschreibungen /70/ und /101/.

Die Struktur globaler Datenbausteine können Sie beliebig festlegen.

Wird ein Codebaustein (FC, FB oder OB) aufgerufen, so kann er temporärSpeicherplatz im Lokaldatenbereich (L-Stack) belegen. Zusätzlich zu diesemLokaldatenbereich kann ein Codebaustein einen Speicherbereich in Formeines DB öffnen. Im Gegensatz zu den Daten im Lokaldatenbereich werdendie in einem DB enthaltenen Daten nicht gelöscht, wenn der DB geschlossenwird, bzw. die Bearbeitung des zugehörigen Codebausteins beendet ist.

Jeder FB, FC oder OB kann die Daten aus einem globalen DB lesen oderselbst Daten in einen globalen DB schreiben. Diese Daten bleiben im DBauch dann erhalten, wenn der DB verlassen wird.

Ein globaler DB und ein Instanz-DB können gleichzeitig geöffnet sein. Bild2-8 zeigt die verschiedenen Zugriffe auf Datenbausteine.

FC10

FC11

FB12

GlobalerDB

(DB 20)

Instanz-DB(DB 112)

Zugriff für alle Bau-steine

Zugriff nur für FB12

Bild 2-8 Zugriffe auf globale DBs und Instanz-DBs

Definition

Struktur

Globale Datenbau-steine im Anwen-derprogramm

Strukturieren des Anwenderprogramms

Page 42: Systemsoftware für S7-300/400, Programmentwurf · iii Systemsoftware für S7-300/400 Programmentwurf C79000-G7000-C506-01 Vorwort Dieses Handbuch informiert Sie über die verschiedenen

2-18Systemsoftware für S7-300/400 Programmentwurf

C79000-G7000-C506-01

2.12 Speichern der Daten eines unterbrochenen Bausteins

Die CPU verfügt über einen “Baustein-Stack” (B-Stack) zum Speichern vonInformationen zu einem Codebaustein, dessen Bearbeitung unterbrochen wurde.Mit den gespeicherten Daten kann das Anwenderprogramm nach der Unter-brechung wieder fortgesetzt werden. Die folgenden Ereignisse veranlassen dasSpeichern von Informationen im B-Stack:

� der Aufruf eines anderen Bausteins innerhalb eines CPU-Programms.

� eine Unterbrechung aus einer höheren Prioritätsklasse (nähereInformationen zu Prioritätsklassen entnehmen Sie Kapitel 3).

Der Baustein-Stack (B-Stack) ist ein Speicherbereich im Systemspeicher derCPU (siehe auch Kapitel 5). Wird die Bearbeitung eines Bausteins durch denAufruf eines anderen Bausteins unterbrochen, speichert der B-Stack folgendeDaten:

� Nummer, Art (OB, FB, FC, SFB, SFC) und Rücksprungadresse desBausteins, der unterbrochen wurde.

� Nummer der Datenbausteine (aus DB- und DI-Register), die zum Zeit-punkt der Unterbrechung geöffnet waren.

Befindet sich die CPU im Betriebszustand STOP, können Sie den B-Stack mitSTEP 7 am PG anzeigen lassen. Der B-Stack führt alle Bausteine auf, derenBearbeitung zu dem Zeitpunkt, als die CPU in den Betriebszustand STOPversetzt wurde, nicht beendet war. Die Bausteine werden in der Reihenfolgeaufgelistet, in der die Bearbeitung begonnen wurde (siehe Bild 2-9).

Lokaldaten des FC 2

Baustein-Stack (B-Stack)

Daten des FC 3: • Bausteinnummer• Rücksprungadresse

Daten des FC 2:• Bausteinnummer• Rücksprungadresse

Daten des FB 1:• Bausteinnummer• Rücksprungadresse

Die Anzahl derBausteine, dieim B-Stack (proPrioritätsklasse)gespeichert wer-den können, istCPU-abhängig.

Lokaldaten-Stack (L-Stack)

FB1 FC2 FC3Aufrufreihenfolge derBausteine

Lokaldaten des FB 1

Lokaldaten des FC 3

DB- und DI-Register:• Nr. des geöffneten DB• Nr. des geöffneten Instanz-DB

Bild 2-9 Informationen im B-Stack und L-Stack

Übersicht

Baustein-Stack

Strukturieren des Anwenderprogramms

Page 43: Systemsoftware für S7-300/400, Programmentwurf · iii Systemsoftware für S7-300/400 Programmentwurf C79000-G7000-C506-01 Vorwort Dieses Handbuch informiert Sie über die verschiedenen

2-19Systemsoftware für S7-300/400 ProgrammentwurfC79000-G7000-C506-01

Der Lokaldaten-Stack (L-Stack) ist ein Speicherbereich im Systemspeicherder CPU. Der L-Stack speichert die temporären Variablen (Lokaldaten) desBausteins (sihe auch Kapitel 3.8).

Hinweis

Der L-Stack speichert nicht nur die temporären Daten eines Bausteins,sondern stellt auch zusätzlichen Speicherplatz, z. B. zum Übergeben vonParametern, zur Verfügung.

Es existieren zwei Datenbausteinregister. Sie beinhalten die Nummern deraufgeschlagenen Datenbausteine

� im DB-Register steht die Nummer des aufgeschlagenen globalenDatenbausteins

� im DI-Register steht die Nummer des aufgeschlagenen Instanz-Datenbausteins.

Lokaldaten-Stack

Datenbaustein-register

Strukturieren des Anwenderprogramms

Page 44: Systemsoftware für S7-300/400, Programmentwurf · iii Systemsoftware für S7-300/400 Programmentwurf C79000-G7000-C506-01 Vorwort Dieses Handbuch informiert Sie über die verschiedenen

2-20Systemsoftware für S7-300/400 Programmentwurf

C79000-G7000-C506-01

2.13 Vermeiden von Fehlern beim Aufrufen von Bausteinen

STEP 7 ändert die Register der S7-300/S7-400-CPU bei verschiedenenOperationen. Die Inhalte der DB- und DI-Register beispielsweise werdengetauscht, wenn Sie einen FB aufrufen. Dadurch kann der Instanz-DB desaufgerufenen FB geöffnet werden, ohne die Adresse des vorherigenInstanz-DB zu verlieren.

Wenn Sie mit der absoluten Adressierung arbeiten, können Fehler beim Zu-greifen auf Daten auftreten, die in den Registern gespeichert sind: in einigenFällen werden die Adressen in dem Register AR1 (Adreßregister 1) und indem DB-Register überschrieben. Dadurch kann es sein, daß Sie falscheAdressen lesen oder in falsche Adressen schreiben.

!Warnung

Gefahr von Sachschäden und Personenschäden

Bei der Verwendung von

� CALL FC, CALL FB, CALL Multiinstanz

� vollqualifizierter DB-Zugriff (z. B. DB20.DBW10)

� Zugriff auf Variablen eines zusammengesetzten Datentyps

kann es dazu kommen, daß die Inhalte von DB-Register (DB und DI),Adreßregister (AR1, AR2) und Akkus (AKKU1, AKKU2) verändert werden.

Ebensowenig kann beim FB-CALL/FC-CALL das VerknüpfungsergebnisVKE als zusätzlicher (impliziter) Parameter verwendet werden.

Wenn Sie die oben genannten Programmiermöglichkeiten nutzen, müssenSie selbst für eine Wiederherstellung der Inhalte Sorge tragen, da es sonst zueinem Fehlverhalten kommen kann.

Kritisch wird es mit den Inhalten des DB-Registers, wenn Sie im abgekürztenFormat der absoluten Adressen auf Daten zugreifen. Gehen Sie beispiels-weise davon aus, daß DB20 geöffnet ist (und seine Nummer im DB-Registergespeichert ist), können Sie DBX0.2 angeben, um auf die Daten zuzugreifen,die in Bit 2 von Byte 0 des DB gespeichert sind, dessen Adresse in dem DB-Register abgelegt ist (also DB20). Enthält das DB-Register allerdings eineandere DB-Nummer, greifen Sie auf die falschen Daten zu.

Fehler beim Zugreifen auf Daten des DB-Registers können Sie vermeiden,wenn Sie die folgende Methode zum Adressieren von Daten verwenden:

� Verwenden Sie symbolische Adressierung

� Verwenden Sie die vollständige absolute Adresse (z. B. DB20.DBX0.2)

Bei diesen beiden Adressierungsmethoden öffnet STEP 7 automatisch denrichtigen DB. Wenn Sie das Register AR1 für die indirekte Adressierung ver-wenden, müssen Sie immer die richtige Adresse in AR1 laden.

STEP 7 über-schreibt Daten indem DB-Register

Speichern vonkorrekten Daten

Strukturieren des Anwenderprogramms

Page 45: Systemsoftware für S7-300/400, Programmentwurf · iii Systemsoftware für S7-300/400 Programmentwurf C79000-G7000-C506-01 Vorwort Dieses Handbuch informiert Sie über die verschiedenen

2-21Systemsoftware für S7-300/400 ProgrammentwurfC79000-G7000-C506-01

In den folgenden Situationen können die Inhalte des Adreßregisters AR1 unddes DB-Registers des aufrufenden Bausteins überschrieben werden:

� Wenn ein FB aufgerufen wird, werden AR1 und das DB-Register des auf-rufenden Bausteins überschrieben.

� Nach einem Aufrufbefehl an eine FC, die einen Parameter mit zusam-mengesetztem Datentyp übergibt (z. B. STRING, DATE_AND_TIME,ARRAY, STRUCT oder UDT), wird der Inhalt von AR1 und des DB-Re-gisters des aufrufenden Bausteins überschrieben.

� Nachdem Sie einer FC einen Aktualparameter zugeordnet haben, der ineinem DB gespeichert ist (z. B. DB20.DBX0.2), öffnet STEP 7 den DB(DB20), indem der Inhalt des DB-Registers überschrieben wird.

In den folgenden Situationen können die Inhalte des Adreßregisters AR1 unddes DB-Registers des aufgerufenen Bausteins überschrieben werden:

� Nachdem ein FB einen Durchgangsparameter mit zusammengesetztemDatentyp adressiert hat (z. B. STRING, DATE_AND_TIME, ARRAY,STRUCT oder UDT), verwendet STEP 7 das Adreßregister AR1 und dasDB-Register zum Zugreifen auf Daten. Dadurch werden die Inhalte derbeiden Register überschrieben.

� Nachdem eine FC einen Parameter (Eingang, Ausgang oder Durchgang)mit zusammengesetztem Datentyp adressiert hat (z. B. STRING,DATE_AND_TIME, ARRAY, STRUCT oder UDT), verwendet STEP 7das Adreßregister AR1 und das DB-Register zum Zugreifen auf Daten.Dadurch werden die Inhalte der beiden Register überschrieben.

Bei der Verwendung von Funktionsbausteinen ist folgendes zu beachten:

� Beim Aufruf eines FB und einer Multiinstanz wird das Adreßregister AR2beschrieben.

� Wird innerhalb eines FB das Adreßregister AR2 überschrieben, ist dieordnungsgemäße Bearbeitung dieses FB nicht mehr gewährleistet.

Hinweis

Es können auch in anderen Situationen als in den oben aufgeführtenSituationen Daten überschrieben werden.

Situationen, indenen Daten über-schrieben werden

Strukturieren des Anwenderprogramms

Page 46: Systemsoftware für S7-300/400, Programmentwurf · iii Systemsoftware für S7-300/400 Programmentwurf C79000-G7000-C506-01 Vorwort Dieses Handbuch informiert Sie über die verschiedenen

2-22Systemsoftware für S7-300/400 Programmentwurf

C79000-G7000-C506-01

Strukturieren des Anwenderprogramms

Page 47: Systemsoftware für S7-300/400, Programmentwurf · iii Systemsoftware für S7-300/400 Programmentwurf C79000-G7000-C506-01 Vorwort Dieses Handbuch informiert Sie über die verschiedenen

3-1Systemsoftware für S7-300/400 ProgrammentwurfC79000-G7000-C506-01

Organisationbausteine undProgrammbearbeitung

Dieses Kapitel gibt einen Überblick über die folgenden Themen:

� Arten von Organisationsbausteinen

� zyklische Programmbearbeitung

� alarmgesteuerte Programmbearbeitung

Weitere Informationen zu alarmgesteuerter Pogrammbearbeitung finden Siein Kapitel 4, Fehler-OBs sind in Kapitel 11 näher beschrieben.

Eine detaillierte Beschreibung der einzelnen Organisationsbausteine enthältdas Referenzhandbuch /235/.

Im Kapitel finden Sie auf Seite

3.1 Arten von Organisationsbausteinen 3-2

3.2 Organisationsbausteine für das Anlaufprogramm 3-4

3.3 Organisationsbaustein für die zyklische Programm-bearbeitung

3-5

3.4 Organisationsbaustein für die Programmbearbeitung imHintergrund

3-7

3.5 Organisationsbausteine für die alarmgesteuerte Programm-bearbeitung

3-8

3.6 Organisationsbausteine zur Fehlerbearbeitung 3-10

3.7 Unterbrechen der Programmbearbeitung 3-12

3.8 Verwalten der Lokaldaten (L-Stack) 3-13

Was beschreibtdieses Kapitel?

Wo finden SieweitereInformationen?

Kapitelübersicht

3

Page 48: Systemsoftware für S7-300/400, Programmentwurf · iii Systemsoftware für S7-300/400 Programmentwurf C79000-G7000-C506-01 Vorwort Dieses Handbuch informiert Sie über die verschiedenen

3-2Systemsoftware für S7-300/400 Programmentwurf

C79000-G7000-C506-01

3.1 Arten von Organisationsbausteinen

STEP 7 bietet Ihnen verschiedene Organisationsbausteine (OBs), mit denenSie auf bestimmte Anforderungen in Ihrem Prozeß reagieren können.

� Mit den Anlauf-OBs können Sie festlegen, unter welchen Ausgangs-bedingungen das Automatisierungssystem bei Neustart oder Wiederanlaufgestartet werden soll.

� Mit einigen OBs können Sie ein Programm zu einem bestimmtenZeitpunkt oder in bestimmten Zeitabständen bearbeiten.

� Andere OBs reagieren auf Alarme oder Fehler, die von der CPU erkanntwerden.

Organisationsbausteine bestimmen die Reihenfolge (Startereignisse), in derdie einzelnen Programmteile bearbeitet werden. Die Bearbeitung eines OBkann durch den Aufruf eines anderen OB unterbrochen werden. Welcher OBeinen anderen OB unterbrechen darf, hängt von seiner Priorität ab. Höher-priore OBs unterbrechen niederpriore OBs. Die niedrigste Priorität hat derHintergrund-OB, nämlich 0.29.

Die Startereignisse, die den Aufruf eines bestimmten OB veranlassen, werdenauch Alarme genannt. Tabelle 3-1 zeigt die Alarmarten bei STEP 7 und diePriorität der zugeordneten Organisationsbausteinen. Nicht alle angegebenenOrganisationsbausteine und deren Prioritätsklassen sind in allen S7-CPUsvorhanden (siehe CPU-Beschreibungen /70/ und /101/).

Tabelle 3-1 Alarmarten und Prioritätsklassen

Alarmart Organisationsbaustein Prioritätsklasse

Freier Zyklus OB 1 1

Uhrzeitalarme OB 10 bis OB 17 2

Verzögerungsalarme OB 20OB 21OB 22OB 23

3456

Weckalarme OB 30OB 31OB 32OB 33OB 34OB 35OB 36OB 37OB 38

789101112131415

Übersicht

Priorität

Alarmarten undOrganisations-bausteine

Organisationbausteine und Programmbearbeitung

Page 49: Systemsoftware für S7-300/400, Programmentwurf · iii Systemsoftware für S7-300/400 Programmentwurf C79000-G7000-C506-01 Vorwort Dieses Handbuch informiert Sie über die verschiedenen

3-3Systemsoftware für S7-300/400 ProgrammentwurfC79000-G7000-C506-01

Tabelle 3-1 Alarmarten und Prioritätsklassen, Fortsetzung

Alarmart PrioritätsklasseOrganisationsbaustein

Prozeßalarme OB 40OB 41OB 42OB 43OB 44OB 45OB 46OB 47

1617181920212223

Multicomputingalarm OB 60 Multicomputing 25

Asynchrone Fehleralarme OB 80 ZeitfehlerOB 81 StromversorgungsfehlerOB 82 DiagnosealarmOB 83 Ziehen/Stecken-AlarmOB 84 CPU-HardwarefehlerOB 85 PrioritätsklassenfehlerOB 86 BaugruppenträgerausfallOB 87 Kommunikationsfehler

26(bzw. 28, wenn derasynchroneFehler-OB imAnlaufprogrammvorkommt)

Hintergrundzyklus OB 90 29 1)

Anlauf OB 100 NeustartOB 101 Wiederanlauf

2727

Synchrone Fehleralarme OB 121 ProgrammierfehlerOB 122 Zugriffsfehler

Prioritätsklasse desfehlerverursachen-den OB

1) Der Prioritätsklasse 29 entspricht die Priorität 0.29. Der Hintergrundzyklus hat alsoeine niedrigere Priorität als der Freie Zyklus.

Bei S7-300-CPUs ist die Priorität der Organisationsbausteine fest zugeordnet.Bei S7-400-CPUs können Sie mit STEP 7 die Priorität der Organisationsbau-steine OB 10 bis OB 47 und die Priorität im Betriebszustand RUN der Orga-nisationsbausteine OB 81 bis OB 87 ändern. Zulässig sind für OB 10 bis OB 47 die Prioritätsklassen 2 bis 23, für OB 81 bis OB 87 die Prioritäts-klassen 24 bis 26. Sie können mehreren OBs die gleiche Priorität zuteilen.OBs mit gleicher Priorität werden in der Reihenfolge des Auftretens ihrerStartereignisse bearbeitet.

Jeder Organisationsbaustein verfügt über eine Startinformation von 20 Byte,die das Betriebssystem beim Starten eines OB übergibt. Die Startinformationgibt Auskunft über das Startereignis des OB, Datum und Uhrzeit desOB-Starts, aufgetretene Fehler und Diagnoseereignisse.

Ein Prozeßalarm-OB 40 enthält z. B. in der Startinformation die Adresse deralarmerzeugenden Baugruppe.

Verändern derPriorität

Startinformationeines OB

Organisationbausteine und Programmbearbeitung

Page 50: Systemsoftware für S7-300/400, Programmentwurf · iii Systemsoftware für S7-300/400 Programmentwurf C79000-G7000-C506-01 Vorwort Dieses Handbuch informiert Sie über die verschiedenen

3-4Systemsoftware für S7-300/400 Programmentwurf

C79000-G7000-C506-01

3.2 Organisationsbausteine für das Anlaufprogramm

Man unterscheidet die Anlaufarten NEUSTART und WIEDERANLAUF(siehe auch Kapitel 9). S7-300-CPUs kennen nur die Anlaufart NEUSTART.

Während des Anlaufs ruft das Betriebssystem den zugehörigen Anlauf-OBauf:

� im Neustart den Neustart-OB (OB 100)

� im Wiederanlauf den Wiederanlauf-OB (OB 101).

Die Anlauf-OBs werden gestartet

� nach NETZ-EIN

� nach Umschalten vom Betriebszustand STOP in den BetriebszustandRUN

� wenn Neustart oder Wiederanaluf vom PG aus oder überKommunikationsfunktionen angefordert wird.

Ob der Neustart oder Wiederanlauf-OB gestartet wird, hängt davon ab,welche Anlaufart für manuellen und automatischen Anlauf parametriertwurde, wie der Anlaufartenschalter CRST/WRST steht und ob der Betriebs-artenschalter im NETZ-AUS betätigt wurde (siehe auch Kapitel 8.3).

Sie können die Randbedingungen für das Anlaufverhalten (Initialisierungs-werte für RUN, Anlaufwerte für Peripheriebaugruppen) Ihrer CPUbestimmen, indem Sie Ihr Programm für den Anlauf in den Organisations-bausteinen OB 100 für Neustart bzw. OB 101 für Wiederanlauf hinterlegen.

Das Anlaufprogramm kann beliebig lang sein, für seine Ausführung bestehtkeine zeitliche Begrenzung, die Zykluszeitüberwachung ist nicht aktiv. Zeit-oder alarmgesteuerte Bearbeitung ist im Anlaufprogramm nicht möglich. ImAnlauf führen alle Digitalausgänge den Signalzustand 0.

Anlaufarten

Startereignisse

Anlaufprogramm

Organisationbausteine und Programmbearbeitung

Page 51: Systemsoftware für S7-300/400, Programmentwurf · iii Systemsoftware für S7-300/400 Programmentwurf C79000-G7000-C506-01 Vorwort Dieses Handbuch informiert Sie über die verschiedenen

3-5Systemsoftware für S7-300/400 ProgrammentwurfC79000-G7000-C506-01

3.3 Organisationsbaustein für die zyklische Programmbearbeitung

Die zyklische Programmbearbeitung ist die ”normale” Programmbearbeitungbei speicherprogrammierbaren Steuerungen. Das Betriebssystem ruft zyklischden OB 1 auf und startet damit die zyklische Bearbeitung des Anwender-programms.

Bild 3-1 veranschaulicht die Phasen der zyklischen Programmbearbeitung:

� Das Betriebssystem startet die Zyklusüberwachungszeit.

� Die CPU liest den Zustand der Eingänge an den Eingabebaugruppen ausund aktualisiert das Prozeßabbild der Eingänge.

� Die CPU bearbeitet das Anwenderprogramm und führt die im Programmangegebenen Operationen aus.

� Die CPU schreibt die Werte aus dem Prozeßabbild der Ausgänge in dieAusgabebaugruppen.

� Am Ende eines Zyklus führt das Betriebssystem anstehende Aufgabenaus, z. B. Laden und Löschen von Bausteinen, Empfangen und Sendenvon Globaldaten (siehe Kapitel 7).

Anschließend kehrt die CPU zum Zyklusanfang zurück und startet erneut dieZykluszeitüberwachung.

Starten der Zykluszeitüberwachung

Bearbeiten des Anwenderprogramms (OB 1 und alle darin aufgerufenen Bausteine)

Schreiben des Prozeßabbilds der Ausgängein die Baugruppen.

Lesen der Eingänge aus den Baugruppen undAktualisieren der Daten im Prozeßabbild derEingänge.

Fre

ier

Zyk

lus

Anlaufprogramm

Betriebssystemleistungen

Bild 3-1 Freier Zyklus

Einleitung

Ablauf

Organisationbausteine und Programmbearbeitung

Page 52: Systemsoftware für S7-300/400, Programmentwurf · iii Systemsoftware für S7-300/400 Programmentwurf C79000-G7000-C506-01 Vorwort Dieses Handbuch informiert Sie über die verschiedenen

3-6Systemsoftware für S7-300/400 Programmentwurf

C79000-G7000-C506-01

Damit der CPU für die Dauer der zyklischen Programmbearbeitung einkonsistentes Abbild der Prozeßsignale zur Verfügung steht, greift die CPUbeim Ansprechen der Operandenbereiche Eingänge (E) und Ausgänge (A)nicht direkt auf die Signalbaugruppen zu, sondern auf einen internenSpeicherbereich der CPU, in dem sich ein Abbild der Ein-/Ausgängebefindet.

Sie programmieren die zyklische Programmbearbeitung, indem Sie IhrAnwenderprogramm mit STEP 7 in den OB 1 und die darin aufgerufenenBausteine schreiben.

Die zyklische Programmbearbeitung beginnt, sobald das Anlaufprogrammfehlerfrei beendet wurde.

Die zyklische Programmbearbeitung kann unterbrochen werden durch:

� einen Alarm

� einen STOP-Befehl (Betriebsartenschalter, Menübefehl vom PG aus,SFC 46 STP, SFB 20 STOP)

� Netzspannungsausfall

� das Auftreten eines Geräte- oder Programmfehlers

Die Zykluszeit ist die Zeit, die das Betriebssystem für die Bearbeitung deszyklischen Programms sowie aller diesen Zyklus unterbrechendenProgrammteile (z. B. Bearbeitung anderer Organisationsbausteine) undSystemtätigkeiten (z. B. Prozeßabbildaktualisierung) benötigt. Die Zykluszeit(TZ) ist nicht für jeden Zyklus gleich lang (siehe auch Kapitel 8.4).

Bild 3-2 zeigt unterschiedliche Zykluszeiten (TZ1 ≠ TZ2). Im aktuellenZyklus wird OB 1 durch einen Uhrzeit-Alarm unterbrochen.

Aktueller Zyklus

OB10

OB1 OB1

Prozeßabbild-aktualisierungder Eingänge

Prozeßabbild-aktualisierungder Ausgänge

Prozeßabbild-aktualisierungder Eingänge

TZ1 TZ2

Nächster Zyklus

Prozeßabbild-aktualisierungder Eingänge

OB1Prozeßabbild-aktualisierungder Ausgänge

OB1

Nächster Zyklus

Bild 3-2 Unterschiedliche Zykluszeiten

Prozeßabbilder

Programmierenzyklischer Pro-grammbearbeitung

Startereignis

Unterbrechungs-möglichkeiten

Zykluszeit

Organisationbausteine und Programmbearbeitung

Page 53: Systemsoftware für S7-300/400, Programmentwurf · iii Systemsoftware für S7-300/400 Programmentwurf C79000-G7000-C506-01 Vorwort Dieses Handbuch informiert Sie über die verschiedenen

3-7Systemsoftware für S7-300/400 ProgrammentwurfC79000-G7000-C506-01

3.4 Organisationsbaustein für die Programmbearbeitung im Hintergrund

Falls Sie mit STEP 7 eine minimale Zykluszeit vorgegeben haben und diesegrößer als die tatsächliche Zykluszeit (siehe Kapitel 3.3) ist, steht der CPUam Ende des zyklischen Programms Bearbeitungszeit zur Verfügung. Diesewird für die Bearbeitung des Hintergrund-OBs genutzt. Falls der OB 90 aufIhrer CPU nicht vorhanden ist, wartet die CPU, bis die vorgegebene mini-male Zykluszeit abgelaufen ist.

Der Hintergrund-OB hat die Prioritätsklasse 29, was der Priorität 0.29 ent-spricht. Er ist also der OB mit der niedrigsten Priorität. Die Prioritätsklassekann durch Parametrierung nicht geändert werden.

OB10

OB1 OB1Prozeßabbildak-tualisierung der

Eingänge

Prozeßabbildak-tualisierung der

Ausgänge

TZ

Nächster Zyklus

OB10

OB90 OB90

Tmin

t

Priorität

Twait

Tmin: die über STEP 7 vorgegebene minimale ZykluszeitTwait: die vor Beginn des nächsten Zyklus zur Verfügung stehende Zeit

TZ: die tatsächlich benötigte Zykluszeit eines freien Zyklus

Bild 3-3 Beispiel für die Bearbeitung des Hintergrundzyklus, des Freien Zyklus und des OB 10

Die Laufzeit des OB 90 wird vom Betriebssystem der CPU nicht überwacht,so daß Sie im OB 90 Schleifen beliebiger Länge programmieren können.Achten Sie auf die Konsistenz der von Ihnen im Hintergrundprogramm ver-wendeten Daten, indem Sie

� die Rücksetzereignisse des OB 90 (siehe Referenzhandbuch /235/ )

� die zum OB 90 asynchrone Prozeßabbildaktualisierung bei Ihrer Programmierung berücksichtigen.

Beschreibung

Priorität

Programmierendes OB 90

Organisationbausteine und Programmbearbeitung

Page 54: Systemsoftware für S7-300/400, Programmentwurf · iii Systemsoftware für S7-300/400 Programmentwurf C79000-G7000-C506-01 Vorwort Dieses Handbuch informiert Sie über die verschiedenen

3-8Systemsoftware für S7-300/400 Programmentwurf

C79000-G7000-C506-01

3.5 Organisationsbausteine für die alarmgesteuerte Programmbearbeitung

STEP 7 stellt verschiedene Arten von OBs zur Verfügung, die dieBearbeitung von OB 1 in bestimmten Zeiträumen oder bei bestimmtenEreignissen unterbrechen.

Sie konfigurieren diese OBs entweder mit STEP 7 oder durch Programmiereneiner Systemfunktion (SFC). Nähere Informationen zum Konfigurierenentnehmen Sie dem STEP 7-Benutzerhandbuch /231/. Nähere Informationenzu den SFCs entnehmen Sie dem Referenzhandbuch /235/.

STEP 7 bietet die Möglichkeit, Teile des Anwenderprogramms, die nichtzyklisch bearbeitet werden müssen, nur bei Bedarf zu bearbeiten. DasAnwenderprogramm kann in Teilprogramme zerlegt und auf verschiedeneOrganisationsbausteine aufgeteilt werden. Soll das Anwenderprogramm aufein wichtiges Signal reagieren, das relativ selten vorkommt (z. B. Grenzwert-geber zur Füllstandsmessung eines Tanks meldet Füllstand erreicht), kann dasTeilprogramm, das bearbeitet werden soll, wenn das Signal ausgegeben wird,in einem OB stehen, der nicht zyklisch bearbeitet wird.

STEP 7 kennt außer der zyklischen Programmbearbeitung noch die folgendenProgrammbearbeitungsarten:

� zeitgesteuerte Programmbearbeitung

� prozeßalarmgesteuerte Programmbearbeitung

� diagnosealarmgesteuerte Programmbearbeitung

� multicomputingalarmgesteuerte Programmbearbeitung

� Fehlerbehandlung

Tabelle 3-2 Organisationsbausteine, die OB 1 unterbrechen können

Arten von OBs Startereignisse

Uhrzeitalarm-OBs (OB 10 bis OB 17)

Datum, Uhrzeit

Verzögerungsalarm-OBs(OB 20 bis OB 23)

Verzögerungszeit nach programmierten Ereignissen

Weckalarm-OBs (OB 30 bis OB 38)

Zeittakt (1 ms bis 1 Minute)

Prozeßalarm-OBs (OB 40 bis OB 47)

Prozeßsignal einer Signalbaugruppe an die CPU oderAlarm einer Funktionsbaugruppe

Synchrone Fehler-OBs(OB 121 und OB 122)

Fehler im Anwenderprogramm (Programmierfehler undZugriffsfehler)

Asynchrone Fehler-OBs(OB 80 bis OB 87)

Prioritätsklassenfehler oder Fehler im AS

Multcomputing–Alarm(OB 60)

Aufruf des SFC 35

Übersicht

Nicht-zyklischeProgramm-bearbeitung

Organisationbausteine und Programmbearbeitung

Page 55: Systemsoftware für S7-300/400, Programmentwurf · iii Systemsoftware für S7-300/400 Programmentwurf C79000-G7000-C506-01 Vorwort Dieses Handbuch informiert Sie über die verschiedenen

3-9Systemsoftware für S7-300/400 ProgrammentwurfC79000-G7000-C506-01

Sie können mit Systemfunktionen (SFC) die Startereignisse für einige Fehler-OBs maskieren bzw. verzögern oder sperren. Siehe hierzu auch Tabelle 3-3.

Maskieren vonStartereignissen

Organisationbausteine und Programmbearbeitung

Page 56: Systemsoftware für S7-300/400, Programmentwurf · iii Systemsoftware für S7-300/400 Programmentwurf C79000-G7000-C506-01 Vorwort Dieses Handbuch informiert Sie über die verschiedenen

3-10Systemsoftware für S7-300/400 Programmentwurf

C79000-G7000-C506-01

3.6 Organisationsbausteine zur Fehlerbearbeitung

Die Fehler, die S7-CPUs erkennen und auf die Sie mit Hilfe vonOrganisationsbausteinen reagieren können, lassen sich in zwei Kategorieneinteilen:

� Synchrone Fehler: Diese Fehler können einem bestimmten Teil desAnwenderprogramms zugeordnet werden. Der Fehler wird während derBearbeitung von einer bestimmten Operation ausgelöst. Ist derentsprechende synchrone Fehler-OB nicht geladen, geht die CPU inSTOP, wenn der Fehler auftritt.

� Asynchrone Fehler: Diese Fehler lassen sich nicht direkt dem bearbeitetenAnwenderprogramm zuordnen. Es handelt sich um Prioritätsklassenfehleroder Fehler im Automatisierungssystem (z. B. Baugruppendefekte). Istder entsprechende asynchrone Fehler-OB nicht geladen, geht die CPU inSTOP, wenn der Fehler auftritt (Ausnahme OB 81).

Bild 3-4 zeigt die beiden Kategorien von Fehler-OBs und beschreibtbeispielhaft die Arten von Fehlern, die auftreten können.

OB 121 Programmierfehler (z. B.: DB ist nichtgeladen)

OB 122 Peripheriezugriffsfehler (z. B.: Zugriffauf eine Signalbaugruppe, die nichtvorhanden ist)

Asynchrone Fehler Synchrone Fehler

Fehler-OBFehler-OB

OB 80 Zeitfehler (z. B.: Zykluszeit überschritten)OB 81 Stromversorgungsfehler (z. B.:

Batteriefehler)OB 82 Diagnosealarm (z. B.: Kurzschluß in

einer Eingangsbaugruppe)OB 83 Ziehen/Stecken-Alarm (z. B. Ziehen einer

Eingabebaugruppe)OB 84 CPU-Hardwarefehler (Fehler an

Schnittstelle zum MPI-Netz)OB 85 Prioritätsklassenfehler (z. B.: OB ist nicht

geladen)OB 86 BaugruppenträgerausfallOB 87 Kommunikationsfehler (z. B.: Falsche

Telegrammkennung beiGlobaldaten-Kommunikation)

Bild 3-4 Arten von Fehlern

Arten von Fehlern

Organisationbausteine und Programmbearbeitung

Page 57: Systemsoftware für S7-300/400, Programmentwurf · iii Systemsoftware für S7-300/400 Programmentwurf C79000-G7000-C506-01 Vorwort Dieses Handbuch informiert Sie über die verschiedenen

3-11Systemsoftware für S7-300/400 ProgrammentwurfC79000-G7000-C506-01

Synchrone Fehler werden während der Bearbeitung einer bestimmtenOperation verursacht. Wenn diese Fehler auftreten, erstellt das Betriebs-system einen Eintrag im U-Stack und startet den OB für synchrone Fehler.

Die Fehler-OBs, die von synchronen Fehlern aufgerufen werden, werden alsTeil des Programms in derselben Prioritätsklasse wie der Baustein bearbeitet,der beim Erkennen des Fehlers bearbeitet wird. OB 121 und OB 122 könnenalso auf die Werte, die zum Zeitpunkt der Unterbrechung in den Akku-mulatoren und anderen Registern gespeichert wurden, zugreifen. Sie könnendie Werte dazu verwenden, auf die Fehlerbedingung zu reagieren und dannzu der Bearbeitung Ihres Programms zurückzukehren (z. B. bei Zugriffsfehlerauf eine Analogeingabebaugruppe im OB 122 mit der SFC 44 RPL_VALeinen Ersatzwert vorgeben, siehe Kapitel 11.7). Damit belasten die Lokalda-ten der Fehler-OBs aber auch zusätzlich den L-Stack dieser Prioritätsklasse.

Bei S7-400-CPUs kann aus einem synchronen Fehler-OB ein weiterersynchroner Fehler-OB gestartet werden. Bei S7-300 CPUs ist dies nichtmöglich.

Wenn das Betriebssystem der CPU einen asynchronen Fehler entdeckt, dannstartet es den entsprechenden Fehler-OB (OB 80 bis OB 87). Die OBs fürasynchrone Fehler haben die höchste Priorität: Sie können von anderen OBsnicht unterbrochen werden. Treten mehrere asynchrone Fehler-OBs gleich-zeitig auf, werden sie in der Reihenfolge ihres Auftretens bearbeitet.

Sie können mit Systemfunktionen (SFC) die Startereignisse für einige Fehler-OBs maskieren bzw. verzögern oder sperren. Nähere Informationen hierzuund zu den Organisationsbausteinen im einzelnen entnehmen Sie demReferenzhandbuch /235/.

Tabelle 3-3 Systemfunktionen für das Maskieren, Sperren und Verzögern von Startereignissen

Art des Fehler-OBs SFC Funktion der SFC

Synchrone Fehler-OBs SFC 36 MSK_FLT Einzelne Synchronfehlerereignisse maskieren. Maskierte Fehler-ereignisse starten keinen Fehler-OB und führen nicht zurprogrammierten Ersatzreaktion.

SFC 37 DMSK_FLT Synchronfehlerereignisse demaskieren

Asynchrone Fehler-OBs SFC 39 DIS_IRT Alarm- und Asynchronfehlerereignisse pauschal sperren.Gesperrte Fehlerereignisse starten in keinem nachfolgendenCPU-Zyklus Fehler-OBs und führen nicht zur programmiertenErsatzreaktion.

SFC 40 EN_IRT Alarm- und Asynchronfehlerereignisse freigeben

SFC 41 DIS_AIRT Höherpriore Alarm- und Asynchronfehlerereignisse bis zumOB-Ende verzögern

SFC 42 EN_AIRT Höherpriore Alarm- und Asynchronfehlerereignisse freigeben

Verwenden derOBs für synchroneFehler

Verwenden derOBs für asyn-chrone Fehler

Maskieren vonStartereignissen

Organisationbausteine und Programmbearbeitung

Page 58: Systemsoftware für S7-300/400, Programmentwurf · iii Systemsoftware für S7-300/400 Programmentwurf C79000-G7000-C506-01 Vorwort Dieses Handbuch informiert Sie über die verschiedenen

3-12Systemsoftware für S7-300/400 Programmentwurf

C79000-G7000-C506-01

3.7 Unterbrechen der Programmbearbeitung

Das Betriebssystem startet die Programmbearbeitung durch Aufruf des OB 1.OB 1 hat die niedrigste Priorität. Dadurch kann der Aufruf eines beliebigenanderen OBs die Bearbeitung des zyklischen Programms unterbrechen.

Wenn das Betriebssystem ein Startereignis für einen OB mit höherer Prioritäterkennt, wird die Bearbeitung des Programms nach der aktuellen Operationunterbrochen. Das Betriebssystem speichert die Daten des unterbrochenenBausteins, die benötigt werden, wenn das Betriebssystem die Bearbeitung desunterbrochenen Bausteins wieder aufnimmt.

Ein OB, der die Bearbeitung eines anderen Bausteins unterbricht, kannFunktionen (FCs) und Funktionsbausteine (FBs) aufrufen. Die Anzahl derverschachtelten Aufrufe ist CPU-spezifisch. Entnehmen Sie bitte diemaximale Schachtelungstiefe den CPU-Beschreibungen /70/ und /101/.

Wird die Programmbearbeitung durch einen OB mit höherer Priorität unter-brochen, speichert das Betriebssystem die aktuellen Inhalte derAkkumulatoren und Adreßregister sowie die Nummer und die Größe dergeöffneten Datenbausteine im Unterbrechungs-Stack (U-Stack).

Ist die Bearbeitung des neuen OB beendet, lädt das Betriebssystem dieInformationen aus dem U-Stack und nimmt die Bearbeitung des unter-brochenen Bausteins an der Stelle wieder auf, an der die Unterbrechungeintrat.

Im Betriebszustand STOP können Sie mit STEP 7 am PG den U-Stackauslesen. Damit können Sie leichter die Ursache dafür erkennen, warum dieCPU in den Betriebszustand STOP gewechselt hat.

Einleitung

Ablauf

Speichern derDaten

Organisationbausteine und Programmbearbeitung

Page 59: Systemsoftware für S7-300/400, Programmentwurf · iii Systemsoftware für S7-300/400 Programmentwurf C79000-G7000-C506-01 Vorwort Dieses Handbuch informiert Sie über die verschiedenen

3-13Systemsoftware für S7-300/400 ProgrammentwurfC79000-G7000-C506-01

3.8 Verwalten der Lokaldaten (L-Stack)

Beim Erstellen von Organisationsbausteinen können Sie temporäre Variablen(TEMP) deklarieren, die nur während der Bearbeitung des Baustein zurVerfügung stehen und dann wieder überschrieben werden (siehe auch Kapitel2.4). Außerdem benötigt jeder Organisationsbaustein für seine Start-information 20 Lokaldaten-Byte.

Die CPU besitzt einen begrenzten Speicher für die temporären Variablen(Lokaldaten) gerade bearbeiteter Bausteine. Die Größe dieses Speicher-bereichs, des Lokaldaten-Stacks, ist CPU-abhängig (siehe CPU-Beschrei-bungen /70/ und /101/). Der Lokaldaten-Stack wird zu gleichen Teilen unterden Prioritätsklassen aufgeteilt (Voreinstellung). Das bedeutet, jedePrioritätsklasse verfügt über einen eigenen Lokaldatenbereich, und damit istgewährleistet, daß auch hochpriore Prioritätsklassen und ihre zugeordnetenOBs Platz für ihre Lokaldaten zur Verfügung haben.

Bild 3-5 zeigt den L-Stack in einem Beispiel, in dem OB 1 von OB 10unterbrochen wird, der dann wiederum von OB 81 unterbrochen wird.

OB 1 FB FC

FB

SFC

OB 10

OB 81benötigt 20 Bytes

im L-Stack

L-Stack

Prioritätsklasse 2

Prioritätsklasse 26

Prioritäts-klasse 1

benötigt 20 Bytesim L-Stack

benötigt 20 Bytesim L-Stack

Bild 3-5 Zuordnen von Lokaldaten zu den Prioritätsklassen

!Vorsicht

S7-CPUs wechseln in den Betriebszustand STOP, wenn Sie die zulässigeL-Stack-Größe für ein Programm überschreiten.

Alle temporäre Variablen (TEMP) eines OB und seiner unterlagerten Bau-steine werden im L-Stack gespeichert. Wenn Sie viele Schachtelungsebenenin Ihrer Bausteinbearbeitung verwenden, kann der L-Stack überlaufen.

Testen Sie den L-Stack (die temporären Variablen) in Ihrem Programm.

Übersicht

Lokaldaten-Stack

Organisationbausteine und Programmbearbeitung

Page 60: Systemsoftware für S7-300/400, Programmentwurf · iii Systemsoftware für S7-300/400 Programmentwurf C79000-G7000-C506-01 Vorwort Dieses Handbuch informiert Sie über die verschiedenen

3-14Systemsoftware für S7-300/400 Programmentwurf

C79000-G7000-C506-01

Nicht jede Prioritätsklasse benötigt gleichviel Speicher im Lokaldaten-Stack.Durch Parametrierung mit STEP 7 können Sie bei S7-400-CPUs die Größedes Lokaldatenbereichs für die einzelnen Prioritätsklassen unterschiedlichfestlegen. Nicht benötigte Prioritätsklassen können Sie abwählen. BeiS7-400-CPUs wird damit der Speicherbereich für andere Prioritätsklassenerweitert. Abgewählte OBs werden bei der Programmbearbeitung nichtberücksichtigt, dadurch sparen Sie Rechenzeit.

Bei S7-300-CPUs ist jeder Prioritätsklasse eine feste Anzahl von Lokaldatenzugeordnet (256 Bytes), die nicht verändert werden kann.

Zuordnen vonLokaldaten zuPrioritätsklassen

Organisationbausteine und Programmbearbeitung

Page 61: Systemsoftware für S7-300/400, Programmentwurf · iii Systemsoftware für S7-300/400 Programmentwurf C79000-G7000-C506-01 Vorwort Dieses Handbuch informiert Sie über die verschiedenen

4-1Systemsoftware für S7-300/400 ProgrammentwurfC79000-G7000-C506-01

Bearbeiten von Alarmen

Dieses Kapitel beschreibt die Alarm-OBs für Uhrzeitalarme, Verzögerungs-alarme, Weckalarme und Prozeßalarme.

Der Einsatz synchroner und asynchroner Fehler-OBs ist in Kapitel 11beschrieben.

Eine detaillierte Beschreibung der einzelnen Organisationsbausteine enthältdas Referenzhandbuch /235/. Weitere Informationen zum Parametrieren derAlarme finden Sie in den Handbüchern /70/ und /101/.

Im Kapitel finden Sie auf Seite

4.1 Hinweise zum Einsatz von Alarm-OBs 4-2

4.2 Uhrzeitalarme (OB 10 bis OB 17) 4-3

4.3 Verzögerungsalarme (OB 20 bis OB 23) 4-5

4.4 Weckalarme (OB 30 bis OB 38) 4-6

4.5 Prozeßalarme (OB 40 bis OB 47) 4-8

Was beschreibtdieses Kapitel?

Wo finden SieweitereInformationen?

Kapitelübersicht

4

Page 62: Systemsoftware für S7-300/400, Programmentwurf · iii Systemsoftware für S7-300/400 Programmentwurf C79000-G7000-C506-01 Vorwort Dieses Handbuch informiert Sie über die verschiedenen

4-2Systemsoftware für S7-300/400 Programmentwurf

C79000-G7000-C506-01

4.1 Hinweise zum Einsatz von Alarm-OBs

Die S7-CPUs geben Ihnen durch die Bereitstellung von Alarm-OBs dieMöglichkeit

� Programmteile zeitgesteuert zu bearbeiten

� auf externe Signale des Prozesses optimal zu reagieren.

Das zyklische Anwenderprogramm muß nicht ständig abfragen, ob Alarm-ereignisse eingetreten sind, sondern das Betriebssystem sorgt im Falle einesAlarms dafür, daß der Teil des Anwenderprogramms bearbeitet wird, der imAlarm-OB steht und festlegt, wie das Automatisierungssystems bei diesemAlarm reagieren soll.

Tabelle 4-1 zeigt, wie die Alarmarten eingesetzt werden können.

Tabelle 4-1 Anwendungsbeispiele

Alarmart Alarm-OBs Anwendungsbeispiele

Uhrzeitalarm OB 10 bisOB 17

Errechnen der Durchflußmenge eines Mischprozessesbei Schichtende

Verzögerungs-alarm

OB 20 bisOB 23

Steuern eines Lüfters, der nach dem Abschalten einesMotors noch 20 s laufen soll, bevor er abgeschaltetwird.

Weckalarm OB 30 bisOB 38

Abtasten eines Signalpegels für eine regelungs-technische Anlage

Prozeßalarm OB 40 bisOB 47

Melden, daß der maximale Füllstand eines Behälterserreicht ist.

Damit das Betriebssystem einen Alarm-OB bearbeiten kann, müssen Sie diefolgenden Schritte ausführen:

� Erzeugen Sie mit STEP 7 in Ihrem S7-Programm den gewünschtenAlarm-OB als Objekt.

� Schreiben Sie das Programm, das im Alarm-OB bearbeitet werden soll, inden erzeugten Baustein.

� Laden Sie den Alarm-OB als Teil Ihres Anwenderprogramms in die CPU.

Alarme sind mit STEP 7 parametrierbar. Mit der Parametrierung können Siez. B. Alarm-OBs abwählen oder Prioritätsklassen ändern.

AlarmgesteuerteProgramm-bearbeitung

Alarmarten undAnwendungen

Einsetzen vonAlarm-OBs

Parametrieren vonAlarmen

Bearbeiten von Alarmen

Page 63: Systemsoftware für S7-300/400, Programmentwurf · iii Systemsoftware für S7-300/400 Programmentwurf C79000-G7000-C506-01 Vorwort Dieses Handbuch informiert Sie über die verschiedenen

4-3Systemsoftware für S7-300/400 ProgrammentwurfC79000-G7000-C506-01

4.2 Uhrzeitalarme (OB 10 bis OB 17)

Die S7-CPUs stellen Uhrzeitalarm-OBs zur Verfügung, die zu einemangegebenen Datum oder in bestimmten Zeitabständen bearbeitet werdenkönnen.

Uhrzeitalarme können ausgelöst werden:

� einmalig zu einem bestimmten Zeitpunkt (Absolutzeitangabe mit Datum)

� periodisch mit Angabe des Startzeitpunktes und der Wiederholrate (z. B.minütlich, stündlich, täglich).

Damit die CPU einen Uhrzeitalarm starten kann, müssen Sie den Uhrzeit-alarm erst stellen und dann aktivieren. Es gibt drei Startmöglichkeiten:

� automatischer Start des Uhrzeitalarms durch Parametrieren mit STEP 7(Parameterblock ”Uhrzeitalarme”)

� stellen und aktivieren des Uhrzeitalarms durch SFC 28 SET_TINT undSFC 30 ACT_TINT aus dem Anwenderprogramm heraus

� stellen des Uhrzeitalarms durch Parametrieren mit STEP 7 und aktivierendes Uhrzeitalarms durch die SFC 30 ACT_TINT aus dem Anwender-programm heraus.

Um abzufragen, ob und zu welchem Zeitpunkt Uhrzeitalarme gestellt sind,können Sie

� die SFC 31 QRY_TINT aufrufen oder

� die Teilliste Alarmstatus der Systemzustandsliste anfordern (sieheKapitel 11).

Sie können Uhrzeitalarme, die noch nicht bearbeitet wurden, mit der SFC 29CAN_TINT deaktivieren. Deaktivierte Uhrzeitalarme können mit der SFC 28SET_TINT erneut gestellt und mit der SFC 30 ACT_TINT aktiviert werden.

Alle acht Uhrzeitalarm-OBs haben in der Voreinstellung die gleichePrioritätsklasse (2) (siehe auch Kapitel 3.1) und werden dementsprechend inder Reihenfolge ihres Startereignisses bearbeitet. Die Prioritätsklasse kanndurch Parametrierung geändert werden.

Beschreibung

Starten

Abfragen

Deaktivieren

Priorität

Bearbeiten von Alarmen

Page 64: Systemsoftware für S7-300/400, Programmentwurf · iii Systemsoftware für S7-300/400 Programmentwurf C79000-G7000-C506-01 Vorwort Dieses Handbuch informiert Sie über die verschiedenen

4-4Systemsoftware für S7-300/400 Programmentwurf

C79000-G7000-C506-01

Es gibt die folgenden Möglichkeiten, die eingestellte Uhrzeit zu ändern:

� ein Uhrzeitmaster synchronisiert die Uhrzeit für Master und Slaves

� im Anwenderprogramm wird durch SFC 0 SET_CLK die Uhrzeit neugestellt.

Tabelle 4-2 zeigt, wie sich Uhrzeitalarme nach dem Ändern der Uhrzeitverhalten.

Tabelle 4-2 Uhrzeitalarme nach Uhrzeitänderung

Wenn... dann...

durch das Vorstellen der Uhr ein odermehrere Uhrzeitalarme übersprungenwerden,

wird der OB 80 gestartet und in die Startinformation des OB 80 wirdeingetragen, welche Uhrzeitalarme über-sprungen wurden.

Sie im OB 80 die übersprungenenUhrzeitalarme deaktiviert haben,

werden die übersprungenen Uhrzeitalarmenicht nachgeholt.

Sie im OB 80 die übersprungenenUhrzeitalarme nicht deaktiviert haben,

wird der erste übersprungene Uhrzeitalarmnachgeholt, die anderen übersprungenenUhrzeitalarme werden ignoriert.

durch das Rückstellen der Uhr bereitsbearbeitete Uhrzeitalarme erneutanstehen,

wird die Bearbeitung dieser Uhrzeitalarmenicht wiederholt.

Uhrzeitalarme können nur bearbeitet werden, wenn ein Uhrzeitalarmparametriert wurde und ein entsprechender Organisationsbaustein imAnwenderprogramm enthalten ist. Ist dies nicht der Fall, wird eine Fehler-meldung in den Diagnosepuffer eingetragen und asynchrone Fehler-behandlung ausgeführt (OB 80, siehe Kapitel 11).

Periodische Uhrzeitalarme müssen einem realen Datum entsprechen. Diemonatliche Wiederholung eines OB 10 mit Startzeit 31.1. ist nicht möglich.In diesem Fall würde der OB nur in den Monaten gestartet, die 31 Tagehaben.

Ein Uhrzeit-Alarm, der während des Anlaufs (Neustart oder Wiederanlauf)aktiviert wird, wird erst nach der Beendigung des Anlaufs bearbeitet.

Uhrzeitalarm-OBs, die durch Parametrierung abgewählt wurden, könnennicht gestartet werden. Die CPU erkennt einen Programmierfehler und gehtin STOP.

Nach Neustart müssen gestellte Uhrzeitalarme neu aktiviert werden (z. B. mitHilfe der SFC 30 ACT_TINT im Anlaufprogramm).

Ändern der einge-stellten Uhrzeit

Verhalten bei Uhr-zeitänderung

Beachten Sie

Bearbeiten von Alarmen

Page 65: Systemsoftware für S7-300/400, Programmentwurf · iii Systemsoftware für S7-300/400 Programmentwurf C79000-G7000-C506-01 Vorwort Dieses Handbuch informiert Sie über die verschiedenen

4-5Systemsoftware für S7-300/400 ProgrammentwurfC79000-G7000-C506-01

4.3 Verzögerungsalarme (OB 20 bis OB 23)

Die S7-CPUs stellen Verzögerungsalarm-OBs zur Verfügung, mit deren HilfeSie die zeitverzögerte Bearbeitung von Teilen Ihres Anwenderprogrammsprogrammieren können.

Verzögerungsalarme werden ausgelöst, wenn die in der SFC 32 SRT_DINTangegebene Verzögerungszeit abgelaufen ist.

Um einen Verzögerungsalarm zu starten, müssen Sie in der SFC 32 dieVerzögerungszeit festlegen, nach deren Ablauf der entsprechendeVerzögerungsalarm-OB aufgerufen werden soll. Die maximal zulässigeLänge der Verzögerungszeit entnehmen Sie bitte den einzelnen CPU-Beschreibungen /70/ und /101/.

In der Voreinstellung haben die Verzögerungsalarm-OBs die Prioritätsklassen3 bis 6 (siehe auch Kapitel 3.1). Die Prioritätsklassen können durchParametrierung geändert werden.

Verzögerungsalarme können nur bearbeitet werden, wenn sich einentsprechender Organisationsbaustein im CPU-Programm befindet. Ist diesnicht der Fall, wird eine Fehlermeldung in den Diagnosepuffer eingetragenund asynchrone Fehlerbehandlung ausgeführt (OB 80, siehe Kapitel 11).

Verzögerungsalarm-OBs, die durch Parametrierung abgewählt wurden,können nicht gestartet werden. Die CPU erkennt einen Programmierfehlerund geht in STOP.

Beschreibung

Starten

Priorität

Beachten Sie

Bearbeiten von Alarmen

Page 66: Systemsoftware für S7-300/400, Programmentwurf · iii Systemsoftware für S7-300/400 Programmentwurf C79000-G7000-C506-01 Vorwort Dieses Handbuch informiert Sie über die verschiedenen

4-6Systemsoftware für S7-300/400 Programmentwurf

C79000-G7000-C506-01

4.4 Weckalarme (OB 30 bis OB 38)

Die S7-CPUs stellen Weckalarm-OBs zur Verfügung, die die zyklischeProgrammbearbeitung in bestimmten Abständen unterbrechen.

Weckalarme werden in bestimmten Zeitintervallen ausgelöst. Startzeitpunktdes Zeittaktes ist der Betriebszustandswechsel von STOP in RUN.

Um einen Weckalarm zu starten, müssen Sie mit STEP 7 im ParameterblockWeckalarme einen Zeittakt vorgeben. Der Zeittakt ist immer ein ganzzahligesVielfaches des Grundtaktes von 1 ms.

Zeittakt = n � Grundtakt 1 ms

Die neun zur Verfügung stehenden Weckalarm-OBs geben in ihrerVoreinstellung Zeittakte vor (siehe Tabelle 4-3). Der Defaultzeittakt wirdwirksam, wenn der ihm zugeordnete Weckalarm-OB geladen ist. Sie könnenjedoch durch Parametrierung die voreingestellten Werte ändern. Die Ober-grenze entnehmen Sie bitte den CPU-Beschreibungen /70/ und /101/.

Um zu verhindern, daß die Weckalarme verschiedener Weckalarm-OBs zumgleichen Zeitpunkt eine Startaufforderung erhalten und dadurch möglicher-weise ein Zeitfehler (Zykluszeitüberschreitung) entsteht, haben Sie dieMöglichkeit, eine Phasenverschiebung vorzugeben. Die Phasenverschiebungsorgt dafür, daß die Bearbeitung eines Weckalarms nach Ablauf des Zeit-taktes um einen bestimmten Zeitraum verschoben wird.

Phasenverschiebung = m � Grundtakt (mit 0 � m < n)

Bild 4-1 zeigt die Bearbeitung eines Weckalarm-OBs mit Phasen-verschiebung im Gegensatz zu einem Weckalarm ohne Phasenverschiebung.

0 8 16 24 32 40 4821 37 53

Grundtakt:

OB 38(n=8, m=0)

OB 37(n=16, m=5)

t [ms]

Bild 4-1 Bearbeitung von Weckalarmen ohne und mit Phasenverschiebung

Beschreibung

Starten

Phasen-verschiebung

Bearbeiten von Alarmen

Page 67: Systemsoftware für S7-300/400, Programmentwurf · iii Systemsoftware für S7-300/400 Programmentwurf C79000-G7000-C506-01 Vorwort Dieses Handbuch informiert Sie über die verschiedenen

4-7Systemsoftware für S7-300/400 ProgrammentwurfC79000-G7000-C506-01

Tabelle 4-3 zeigt die voreingestellten Zeittakte und Prioritätsklassen derWeckalarm-OBs. Zeittakt und Prioritätsklasse können durch Parametrierunggeändert werden.

Tabelle 4-3 Zeittakte und Prioritätsklassen der Weckalarm-OBs (Defaultwerte)

Weckalarm-OBs Zeittakt in ms Prioritätsklasse

OB 30 5000 7

OB 31 2000 8

OB 32 1000 9

OB 33 500 10

OB 34 200 11

OB 35 100 12

OB 36 50 13

OB 37 20 14

OB 38 10 15

Achten Sie beim Vorgeben der Zeittakte darauf, daß zwischen den Start-ereignissen der einzelnen Weckalarme genügend Zeit für die Bearbeitung derWeckalarme bleibt.

Weckalarm-OBs, die durch Parametrierung abgewählt wurden, können nichtgestartet werden. Die CPU erkennt einen Programmierfehler und geht inSTOP.

Priorität

Beachten Sie

Bearbeiten von Alarmen

Page 68: Systemsoftware für S7-300/400, Programmentwurf · iii Systemsoftware für S7-300/400 Programmentwurf C79000-G7000-C506-01 Vorwort Dieses Handbuch informiert Sie über die verschiedenen

4-8Systemsoftware für S7-300/400 Programmentwurf

C79000-G7000-C506-01

4.5 Prozeßalarme (OB 40 bis OB 47)

Die S7-CPUs stellen Prozeßalarm-OBs zur Verfügung, die auf Signale ausden Baugruppen (z. B. Signalbaugruppen SMs, KommunikationsprozessorenCPs, Funktionsbaugruppen FMs) reagieren. Mit STEP 7 können Sie fürparametrierbare Digital- und Analogbaugruppen einstellen, welches Signalden OB starten soll. Bei CPs und FMs verwenden Sie hierzu dieentsprechenden Parametriermasken.

Prozeßalarme werden ausgelöst, wenn eine prozeßalarmfähige Signal-baugruppe mit parametrierter Prozeßalarmfreigabe ein empfangenes Prozeß-signal an die CPU weiterleitet oder eine Funktionsbaugruppe der CPU einenAlarm meldet.

Jeder Kanal einer prozeßalarmfähigen Signalbaugruppe kann einen Prozeß-alarm auslösen. Deshalb müssen Sie mit STEP 7 in den Parametersätzenprozeßalarmfähiger Signalbaugruppen festlegen:

� wodurch ein Prozeßalarm ausgelöst werden soll

� welcher Prozeßalarm-OB bearbeitet werden soll (die Voreinstellung siehtfür die Bearbeitung aller Prozeßalarme den OB 40 vor).

Mit STEP 7 aktivieren Sie die Prozeßalarmgenerierung der Funktions-baugruppen. Weitere Parameter weisen Sie in den Parametriermasken dieserFunktionsbaugruppen zu.

In der Voreinstellung haben die Prozeßalarm-OBs die Prioritätsklassen 16 bis23 (siehe auch Kapitel 3.1). Die Prioritätsklassen können durchParametrierung geändert werden.

Prozeßalarme können nur bearbeitet werden, wenn sich ein entsprechenderOrganisationsbaustein im CPU-Programm befindet. Ist dies nicht der Fall,wird eine Fehlermeldung in den Diagnosepuffer eingetragen und asynchroneFehlerbehandlung ausgeführt (siehe Kapitel 11 ).

Prozeßalarm-OBs, die durch Parametrierung abgewählt wurden, können nichtgestartet werden. Die CPU erkennt einen Programmierfehler und geht inSTOP.

Beschreibung

Parametrieren

Priorität

Beachten Sie

Bearbeiten von Alarmen

Page 69: Systemsoftware für S7-300/400, Programmentwurf · iii Systemsoftware für S7-300/400 Programmentwurf C79000-G7000-C506-01 Vorwort Dieses Handbuch informiert Sie über die verschiedenen

5-1Systemsoftware für S7-300/400 ProgrammentwurfC79000-G7000-C506-01

Speicherbereiche der S7-CPUs

Dieses Kapitel beschreibt die Speicherbereiche der S7-300- undS7-400-CPUs.

Im Kapitel finden Sie auf Seite

5.1 Speicherbereiche der CPU 5-2

5.2 Absolute und symbolische Adressierung 5-5

5.3 Speichern von Programmen in der CPU 5-6

5.4 Remanente Speicherbereiche in S7-300-CPUs 5-8

5.5 Remanente Speicherbereiche in S7-400-CPUs 5-10

5.6 Prozeßabbild der Ein-/Ausgänge 5-11

5.7 Lokaldaten-Stack 5-13

Was beschreibtdieses Kapitel?

Kapitelübersicht

5

Page 70: Systemsoftware für S7-300/400, Programmentwurf · iii Systemsoftware für S7-300/400 Programmentwurf C79000-G7000-C506-01 Vorwort Dieses Handbuch informiert Sie über die verschiedenen

5-2Systemsoftware für S7-300/400 Programmentwurf

C79000-G7000-C506-01

5.1 Speicherbereiche der CPU

Der Speicher der S7-CPUs läßt sich in drei Bereiche aufteilen:

� Der Ladespeicher dient zur Aufnahme des Anwenderprogramms ohnesymbolische Operandenzuordnung oder Kommentare (diese bleiben imSpeicher des PG). Der Ladespeicher kann RAM- oder FEPROM-Speichersein.

Bausteine, die als nicht ablaufrelevant gekennzeichnet sind, werden aus-schließlich in den Ladespeicher aufgenommen.

� Der Arbeitsspeicher (integrierter RAM) dient zur Aufnahme der für denProgrammablauf relevanten Teile des S7-Programms. Die Programm-verarbeitung erfolgt ausschließlich im Bereich von Arbeitsspeicher undSystemspeicher.

� Der Systemspeicher (RAM) enthält die Speicherelemente, die jede CPUdem Anwenderprogramm zur Verfügung stellt, wie z. B.: das Prozeß-abbild der Ein- und Ausgänge, Merker, Zeiten und Zähler. Außerdementhält der Systemspeicher den Baustein-Stack und den Unterbrechungs-Stack.

Der Systemspeicher der CPU stellt außerdem temporären Speicher(Lokaldaten-Stack) zur Verfügung, der dem Programm beim Aufrufeneines Bausteins für dessen temporäre Daten zugeordnet wird. Diese Datensind nur solange gültig, wie der Baustein aktiv ist.

Bild 5-1 zeigt die Speicherbereiche der CPU.

Lokaldaten-Stack

Prozeßabbild der Ein-/Ausgänge, Merker, Zeiten, Zähler

Dynamischer Ladespeicher (RAM,integriert oder auf Memory Card): enthält das Anwenderprogramm

Remanenter Ladespeicher (FEPROM, auf Memory Card oder beiS7-300-CPUs auch integriert): enthält das Anwenderprogramm

Arbeitsspeicher (RAM) enthält das ausführbareAnwenderprogramm (z. B. Code- und Datenbausteine)

Systemspeicher (RAM) enthält:

CPU

Baustein-Stack

Unterbrechungs-Stack

Diagnosepuffer

Bild 5-1 Speicherbereiche der S7-CPUs

Aufteilung derSpeicherbereiche

Speicherbereiche der S7-CPUs

Page 71: Systemsoftware für S7-300/400, Programmentwurf · iii Systemsoftware für S7-300/400 Programmentwurf C79000-G7000-C506-01 Vorwort Dieses Handbuch informiert Sie über die verschiedenen

5-3Systemsoftware für S7-300/400 ProgrammentwurfC79000-G7000-C506-01

Bei S7-300-CPUs kann der Ladespeicher außer einem integrierten RAM-auch einen integrierten FEPROM-Anteil haben (siehe CPU-Beschreibungen/70/ und /101/). Bereiche in Datenbausteinen können durch Parametrierungmit STEP 7 remanent erklärt werden (siehe Kapitel 5.4).

Bei S7-400-CPUs ist der Einsatz einer Memory Card (RAM oder FEPROM)zur Erweiterung des Ladespeichers unerläßlich. Der integrierte Ladespeicherist ein RAM-Speicher und dient im wesentlichen dem Nachladen undKorrigieren von Bausteinen.

Aus der Struktur des Ladespeichers (RAM- und FEPROM-Bereich) ergebensich Konsequenzen für die Möglichkeiten beim Laden Ihres Anwender-programms bzw. beim Laden von einzelnen Bausteinen. Tabelle 5-1 zeigt dieLademöglichkeiten:

Tabelle 5-1 Ladespeicherstruktur und Lademöglichkeiten

Speicherart Lademöglichkeiten Ladeart

RAM Laden und Löschen von ein-zelnen Bausteinen

PG-CPU-Verbindung

Laden und Löschen einesgesamten S7-Programmes

PG-CPU-Verbindung

Nachladen von einzelnenBausteinen

PG-CPU-Verbindung

FEPROM integriert(nur bei S7-300)oder steckbar

Laden von gesamtenS7-Programmen

PG-CPU-Verbindung

FEPROM steckbar Laden von gesamtenS7-Programmen

Laden des FEPROMs auf demPG und Stecken der MemoryCard in die CPULaden des FEPROMs auf derCPU

Programme, die im RAM gespeichert sind, gehen verloren, wenn Sie dieCPU urlöschen (MRES) bzw. wenn Sie die CPU oder die RAM-MemoryCard ziehen.

Programme, die auf FEPROM-Memory-Cards gespeichert sind, gehen beimUrlöschen nicht verloren und bleiben auch ohne Batteriepufferung erhalten(Transport, Sicherungskopien).

Besonderheitenbei S7-300

Besonderheitenbei S7-400

Folgerungen ausder Struktur desLadespeichers

Speicherbereiche der S7-CPUs

Page 72: Systemsoftware für S7-300/400, Programmentwurf · iii Systemsoftware für S7-300/400 Programmentwurf C79000-G7000-C506-01 Vorwort Dieses Handbuch informiert Sie über die verschiedenen

5-4Systemsoftware für S7-300/400 Programmentwurf

C79000-G7000-C506-01

Der Speicher der S7-CPUs ist in Operandenbereiche aufgeteilt (sieheTabelle 5-2). Durch Verwendung der entsprechenden Operationen adressierenSie in Ihrem Programm die Daten direkt in den jeweiligen Operandenbe-reichen. Welche Adreßbereiche bei Ihrer CPU möglich sind, entnehmen Sieden CPU-Beschreibungen /70/, /101/ bzw. den Operationslisten /72/, /102/.

Tabelle 5-2 Operandenbereiche

OperandenbereichZugriff über Einheitender folgenden Größe:

S7-Nota-tion

Beschreibung

Prozeßabbild derEingänge

Eingang (Bit)EingangsbyteEingangswortEingangsdoppelwort

EEBEWED

Zu Beginn jedes Zyklus liest die CPU die Eingängeaus den Eingabebaugruppen und speichert die Wertein das Prozeßabbild der Eingänge.

Prozeßabbild derAusgänge

Ausgang (Bit)AusgangsbyteAusgangswortAusgangsdoppelwort

AABAWAD

Während des Zyklus berechnet das Programm dieWerte für die Ausgänge und legt sie im Prozeßabbildder Ausgänge ab. Am Ende des Zyklus schreibt dieCPU die errechneten Ausgangswerte in dieAusgabebaugruppen.

Merker Merker (Bit)MerkerbyteMerkerwortMerkerdoppelwort

MMBMWMD

Dieser Bereich stellt Speicherplatz für im Programmerrechnete Zwischenergebnisse zur Verfügung.

Zeiten Zeit (T) T In diesem Bereich stehen Zeiten zur Verfügung.

Zähler Zähler (Z) Z In diesem Bereich stehen Zähler zur Verfügung.

Datenbaustein Datenbaustein, geöffnetmit ”AUF DB”:DatenbitDatenbyteDatenwortDatendoppelwort

DB

DBXDBBDBWDBD

Datenbausteine speichern Informationen für dasProgramm. Sie können entweder so definiert sein,daß alle Codebausteine auf sie zugreifen können(globale DBs), oder sie sind einem bestimmten FBoder SFB zugeordnet (Instanz-DB).

Datenbaustein, geöffnetmit ”AUF DI”:DatenbitDatenbyteDatenwortDatendoppelwort

DI

DIXDIBDIWDID

Lokaldaten LokaldatenbitLokaldatenbyteLokaldatenwortLokaldatendoppelwort

LLBLWLD

Dieser Speicherbereich nimmt die temporären Dateneines Bausteins für die Dauer der Bearbeitung diesesBausteins auf. Der L-Stack stellt auch Speicher zumÜbertragen von Bausteinparametern und zumSpeichern von Zwischenergebnissen ausKOP-Netzwerken zur Verfügung.

Peripheriebereich:Eingänge

PeripherieeingangsbytePeripherieeingangswortPeripherieeingangs-doppelwort

PEBPEWPED

Die Peripheriebereiche der Ein- und Ausgängeerlauben direkten Zugriff auf zentrale und dezentraleEin- und Ausgabebaugruppen (DP, siehe Kapitel 6.3.)

Peripheriebereich:Ausgänge

PeripherieausgangsbytePeripherieausgangswortPeripherieausgangs-doppelwort

PABPAWPAD

Verwenden derSpeicherbereiche

Speicherbereiche der S7-CPUs

Page 73: Systemsoftware für S7-300/400, Programmentwurf · iii Systemsoftware für S7-300/400 Programmentwurf C79000-G7000-C506-01 Vorwort Dieses Handbuch informiert Sie über die verschiedenen

5-5Systemsoftware für S7-300/400 ProgrammentwurfC79000-G7000-C506-01

5.2 Absolute und symbolische Adressierung

Sie können die Operanden in einem STEP 7-Programm entweder absolutadressieren (z. B. E 1.7) oder Operanden Symbole zuordnen (z. B. Motor-Kontakt 1).

Die absolute Adresse eines Operanden enthält das Operandenkennzeichen(z. B. “M”) und den Zugriff auf den Datenbereich: B (Byte), W (Wort bzw.zwei Bytes) oder D (Doppelwort bzw. 4 Bytes). Geben Sie weder B, W bzw.D an, wird die Adressierung als Bitzugriff aufgefaßt. Die absolute Adresseenthält außerdem die Nummer des ersten Bytes und bei Bitzugriff dieentsprechende Bit-Nummer.

Tabelle 5-3 Beispiele für absolute Adressierung

AbsoluteAdresse

Beschreibung

MD 100 bezieht sich auf ein Doppelwort (ein Doppelwort entspricht vier Bytes),das in Merkerbyte 100 beginnt (also Bytes 100, 101, 102 und 103)

M 100.1 bezieht sich auf Bit 1 im Merkerbyte 100

Wenn Sie einem Operanden ein Symbol zuordnen, verdeutlichen Sie dieFunktion des Operanden und machen ihn eindeutig identifizierbar. Bei derZuordnung symbolischer Namen unterscheidet man:

� globale Symbolik, d. h. die symbolischen Namen gelten für alle Bausteineeines S7-Programms; sie werden in der Symboltabelle des S7-Programmsvereinbart sowie

� bausteinlokale Symbolik, d. h. die symbolischen Namen gelten nur füreinen Baustein; sie werden in der Deklarationstabelle dieses Bausteins fürdie Lokaldaten (z. B. Parameter) vereinbart.

Adressierungs-arten

Absolute Adressie-rung

SymbolischeAdressierung

Speicherbereiche der S7-CPUs

Page 74: Systemsoftware für S7-300/400, Programmentwurf · iii Systemsoftware für S7-300/400 Programmentwurf C79000-G7000-C506-01 Vorwort Dieses Handbuch informiert Sie über die verschiedenen

5-6Systemsoftware für S7-300/400 Programmentwurf

C79000-G7000-C506-01

5.3 Speichern von Programmen in der CPU

Wenn Sie das Anwenderprogramm vom Programmiergerät in die CPU laden,werden nur die Code- und Datenbausteine in den Lade- und den Arbeits-speicher der CPU geladen.

Die symbolische Operandenzuordnung (Symboltabelle) und die Baustein-kommentare bleiben im Speicherbereich des PG.

Um eine schnelle Bearbeitung des Anwenderprogramms zu gewährleistenund den nicht erweiterbaren Arbeitspeicher nicht unnötig zu belasten, werdennur die Teile der Bausteine, die für die Programmbearbeitung relevant sind,in den Arbeitsspeicher geladen (siehe Bild 5-2). Bausteinteile, die nichterforderlich sind, um das Programm ablaufen zu lassen (z. B. Bausteinköpfe),bleiben im Ladespeicher.

Der Ladespeicher kann durch den Einsatz von Memory Cards erweitertwerden. Die maximale Größe des Ladespeichers entnehmen Sie den CPU-Beschreibungen /70/ und /101/.

Je nachdem, ob Sie eine RAM- oder FEPROM-Memory Card zurErweiterung des Ladespeichers wählen, kann sich beim Laden, Nachladenund Urlöschen ein unterschiedliches Verhalten des Ladespeichers ergeben(siehe auch Kapitel 5.1).

Kommentare

Symbole

Programmier-gerät

Auf der Festplattegespeichert

Ganze Code-bausteine

Ganze Daten-bausteine

Ladespeicher Arbeitsspeicher

S7-400S7-300

AblaufrelevanteTeile der Code-und Datenbau-

steine

Codebausteine

Datenbausteine

Bild 5-2 Laden des Programms in den CPU-Speicher

Laden des Anwen-derprogramms

Aufteilung in Lade-und Arbeits-speicher

Speicherbereiche der S7-CPUs

Page 75: Systemsoftware für S7-300/400, Programmentwurf · iii Systemsoftware für S7-300/400 Programmentwurf C79000-G7000-C506-01 Vorwort Dieses Handbuch informiert Sie über die verschiedenen

5-7Systemsoftware für S7-300/400 ProgrammentwurfC79000-G7000-C506-01

Datenbausteine, die mit Hilfe von Systemfunktionen (z. B. SFC 22CREAT_DB) im Anwenderprogramm erstellt werden, speichert die CPU nurim Arbeitsspeicher, nicht im Ladespeicher.

Datenbausteine, die als Teil eines AWL-Programms in einer Quelldateiprogrammiert werden, können als ”nicht ablaufrelevant” gekennzeichnetwerden (Schlüsselwort UNLINKED). Das bedeutet, beim Laden in die CPUwerden diese DBs nur im Ladespeicher abgelegt. Ihr Inhalt kann bei Bedarfmit Hilfe der SFC 20 BLKMOV in den Arbeitspeicher kopiert werden.

Dadurch kann Platz im Arbeitsspeicher eingespart werden. Der erweiterbareLadespeicher dient als Zwischenspeicher (z. B. für Rezepturen: nur dieRezeptur, die als nächste bearbeitet werden soll, wird in den Arbeitsspeichergeladen).

Mit SFCs erstellteDatenbausteine

Nicht ablauf-relevante Daten-bausteine

Speicherbereiche der S7-CPUs

Page 76: Systemsoftware für S7-300/400, Programmentwurf · iii Systemsoftware für S7-300/400 Programmentwurf C79000-G7000-C506-01 Vorwort Dieses Handbuch informiert Sie über die verschiedenen

5-8Systemsoftware für S7-300/400 Programmentwurf

C79000-G7000-C506-01

5.4 Remanente Speicherbereiche in S7-300-CPUs

Bei Stromausfall oder Urlöschen (MRES) wird der Speicher der S7-300-CPU(dynamischer Ladespeicher (RAM), Arbeitsspeicher und Systemspeicher)zurückgesetzt, wobei alle Daten, die in diesen Bereichen gespeichert sind,verloren gehen. S7-300-CPUs bieten die folgenden Möglichkeiten, IhrProgramm und seine Daten zu sichern:

� Sie können alle Daten, die sich im Ladespeicher, Arbeitsspeicher und inTeilen des Systemspeichers befinden, durch eine Batterie puffern.

� Sie können Ihr Programm im FEPROM speichern (entweder MemoryCard oder in die CPU integriert, siehe CPU-Beschreibungen /70/).

� Sie können eine CPU-abhängige Menge Daten in einem Bereich desnichtflüchtigen NVRAM sichern.

Ihre S7-300-CPU stellt einen Bereich im NVRAM (nichtflüchtiger RAM) zurVerfügung (siehe Bild 5-3). Wenn Sie Ihr Programm im FEPROM des Lade-speichers abgelegt haben, können Sie einige Daten (bei Stromausfall oderbeim Übergang der CPU von STOP in RUN) auch durch eine entsprechendeKonfiguration speichern. Hierzu stellen Sie Ihre CPU so ein, daß diefolgenden Daten in dem nichtflüchtigen RAM gespeichert werden:

� Daten, die in einem DB gespeichert sind (dies ist nur nützlich, wenn Sieauch Ihr Programm in einem FEPROM des Ladespeichers abgelegt ha-ben)

� Werte von Zeiten und Zählern

� Daten, die in Merkern gespeichert sind

Bei jeder CPU können Sie eine bestimmte Anzahl an Zeiten, Zählern undMerkern puffern. Außerdem wird eine spezifische Anzahl an Bytes zurVerfügung gestellt, in denen die Daten, die in DBs abgelegt sind, gespeichertwerden können. Nähere Informationen hierzu entnehmen Sie den CPU-Beschreibungen /70/.

Die MPI-Adresse Ihrer CPU ist im NVRAM abgelegt. Damit ist sicher-gestellt, daß Ihre CPU nach einem Stromausfall oder Urlöschen nochkommunikationsfähig ist.

StatischerLadespeicher(FEPROM) Steckbares FEPROM-

Modul (optional)

DynamischerLadespeicher

(RAM)

Arbeits-speicher

System-speicher

KonfigurierbarerSpeicher(NVRAM)

CPU

Bild 5-3 Nichtflüchtiger Speicherbereich bei S7-300-CPUs

Übersicht

Verwenden desNVRAM

Speicherbereiche der S7-CPUs

Page 77: Systemsoftware für S7-300/400, Programmentwurf · iii Systemsoftware für S7-300/400 Programmentwurf C79000-G7000-C506-01 Vorwort Dieses Handbuch informiert Sie über die verschiedenen

5-9Systemsoftware für S7-300/400 ProgrammentwurfC79000-G7000-C506-01

Durch Batteriepufferung werden der Ladespeicher und der Arbeitsspeicherbei Stromausfall remanent. Wenn durch Ihre Konfiguration Zeiten, Zählerund Merker im NVRAM gespeichert werden, gehen unabhängig von derBatteriepufferung auch diese Informationen nicht verloren.

Wenn Sie die CPU mit STEP 7 konfigurieren, können Sie festlegen, welcheSpeicherbereiche remanent sein sollen.

Wieviel Speicher im NVRAM konfiguriert werden kann, ist CPU-abhängig.Sie können nicht mehr Daten puffern, als die für Ihre CPU angegebeneMenge. Nähere Informationen zu remanenten Speichern entnehmen Sie demHandbuch /70/.

Verwenden derBatteriepufferungzum Sichern vonDaten

Konfigurieren derDaten des NVRAM

Speicherbereiche der S7-CPUs

Page 78: Systemsoftware für S7-300/400, Programmentwurf · iii Systemsoftware für S7-300/400 Programmentwurf C79000-G7000-C506-01 Vorwort Dieses Handbuch informiert Sie über die verschiedenen

5-10Systemsoftware für S7-300/400 Programmentwurf

C79000-G7000-C506-01

5.5 Remanente Speicherbereiche in S7-400-CPUs

Bei Stromausfall oder Urlöschen (MRES) im ungepufferten Betrieb wird derSpeicher der S7-400-CPU (dynamischer Ladespeicher (RAM), Arbeits-speicher und Systemspeicher) zurückgesetzt, wobei alle Daten, die in diesenBereichen gespeichert sind, verloren gehen.

Im ungepufferten Betrieb ist nur Neustart möglich und es gibt keineremanenten Speicherbereiche. Nur die MPI-Parameter (z. B. MPI-Adresseder CPU) bleiben nach Spannungsausfall erhalten. Damit ist die CPU nachStromausfall oder Urlöschen noch kommunikationsfähig.

Im gepufferten Betrieb bleibt

� beim Wiederanlauf nach Spannungsausfall der Inhalt aller RAM-Bereichevollständig erhalten.

� beim Neustart werden die Operandenbereiche Merker, Zeiten, Zählergelöscht. Die Inhalte von Datenbausteinen bleiben erhalten.

� der Inhalt des RAM-Arbeitsspeichers bis auf nicht remanent parametrierteMerker, Zeiten, Zähler erhalten.

Sie können eine CPU-abhängige Menge von Merkern, Zeiten, Zählernremanent erklären. Beim Neustart im gepufferten Betrieb bleiben diese Datendann erhalten.

Durch Parametrierung mit STEP 7 legen Sie fest, welche Merker, Zeiten,Zähler bei einem Neustart remanent sein sollen. Sie können nicht mehr Datenpuffern, als die für Ihre CPU zulässige Menge.

Nähere Informationen zur Parametrierung remanenter Speicherbereicheentnehmen Sie dem Handbuch /101/.

UngepufferterBetrieb

Gepufferter Betrieb

Konfigurierenremanenter Daten-bereiche

Speicherbereiche der S7-CPUs

Page 79: Systemsoftware für S7-300/400, Programmentwurf · iii Systemsoftware für S7-300/400 Programmentwurf C79000-G7000-C506-01 Vorwort Dieses Handbuch informiert Sie über die verschiedenen

5-11Systemsoftware für S7-300/400 ProgrammentwurfC79000-G7000-C506-01

5.6 Prozeßabbild der Ein-/Ausgänge

Werden im Anwenderprogramm die Operandenbereiche Eingänge (E) undAusgänge (A) angesprochen, werden nicht die Signalzustände auf dendigitalen Signalbaugruppen abgefragt, sondern es wird auf einen Speicher-bereich im Systemspeicher der CPU und der dezentralen Peripheriezugegriffen. Diesen Speicherbereich bezeichnet man als Prozeßabbild.

Das Prozeßabbild ist in zwei Teile gegliedert: das Prozeßabbild der Eingängeund das Prozeßabbild der Ausgänge.

Die CPU kann nur auf das Prozeßabbild der Baugruppen zugreifen, die Siemit STEP 7 konfiguriert haben bzw. die über Default-Adressierung erreichbarsind.

Das Prozeßabbild wird vom Betriebssystem zyklisch aktualisiert. Zu Beginnder zyklischen Programmbearbeitung werden die Signalzustände von denEingabebaugruppen zum Prozeßabbild der Eingänge übertragen. Am Endejeder zyklischen Programmbearbeitung werden die Signalzustände vomProzeßabbild der Ausgänge zu den Ausgabebaugruppen transferiert.

...

Bearbeiten des Anwenderprogramms (OB1 und alle darin aufgerufenen Bausteine)

Schreiben des Prozeßabbilds der Ausgängein die Baugruppen.

Lesen der Eingänge aus den Baugruppen undAktualisieren der Daten im Prozeßabbild derEingänge.

Fre

ier

Zyk

lus

Anlaufprogramm

...

Bild 5-4 Aktualisieren des Prozeßabbilds

Einleitung

Voraussetzung

Aktualisieren desProzeßabbilds

Speicherbereiche der S7-CPUs

Page 80: Systemsoftware für S7-300/400, Programmentwurf · iii Systemsoftware für S7-300/400 Programmentwurf C79000-G7000-C506-01 Vorwort Dieses Handbuch informiert Sie über die verschiedenen

5-12Systemsoftware für S7-300/400 Programmentwurf

C79000-G7000-C506-01

Der Zugriff auf das Prozeßabbild hat gegenüber dem direkten Zugriff auf dieEin-/Ausgabebaugruppen den Vorteil, daß der CPU für die Dauer derzyklischen Programmbearbeitung ein konsistentes Abbild der Prozeßsignalezur Verfügung steht. Wenn sich während der Programmbearbeitung einSignalzustand auf einer Eingabebaugruppe ändert, bleibt der Signalzustandim Prozeßabbild erhalten bis zur Prozeßabbildaktualisierung zu Beginn desnächsten Zyklus. Außerdem benötigt der Zugriff auf das Prozeßabbildwesentlich weniger Zeit als der direkte Zugriff auf die Signalbaugruppen,weil sich das Prozeßabbild im internen Speicher der CPU befindet.

Einige CPUs erlauben das Aufbauen und Aktualisieren von bis zu achtTeil-Prozeßabbildern (siehe CPU-Beschreibungen /70/ und /101/). Damithaben Sie die Möglichkeit, unabhängig von der zyklischen Aktualisierungdes Prozeßabbilds, Teilbereiche des Prozeßabbildes bei Bedarf vomAnwenderprogramm aus zu aktualisieren.

Das Teil-Prozeßabbild definieren Sie mit STEP 7. Die Aktualisierung desTeil-Prozeßabbilds erfolgt mit Hilfe von SFCs.

Sie können mit Hilfe von SFCs das gesamte Prozeßabbild oder Teil-Prozeß-abbilder vom Anwenderprogramm aus aktualisieren

� mit der SFC 26 UPDAT_PI das Prozeßabbild der Eingänge

� mit der SFC 27 UPDAT_PO das Prozeßabbild der Ausgänge.

Hinweis

Bei S7-300 CPUs können nicht belegte Prozeßabbildein- und -ausgänge alszusätzliche Merkerbereiche verwendet werden. Programme, die dieseMöglichkeit nutzen, sind auf S7-400-CPUs nicht ablauffähig.

Vorteile

Teil-Prozeß-abbilderaktualisieren

Einsetzen vonSFCs

Speicherbereiche der S7-CPUs

Page 81: Systemsoftware für S7-300/400, Programmentwurf · iii Systemsoftware für S7-300/400 Programmentwurf C79000-G7000-C506-01 Vorwort Dieses Handbuch informiert Sie über die verschiedenen

5-13Systemsoftware für S7-300/400 ProgrammentwurfC79000-G7000-C506-01

5.7 Lokaldaten-Stack

Der Lokaldaten-Stack (L-Stack) ist ein Speicherbereich im Systemspeicherder CPU (siehe auch Kapitel 3.8). Er speichert:

� die temporären Variablen der Lokaldaten von Bausteinen

� die Startinformation der Organisationsbausteine

� Informationen zum Übergeben von Parametern

� Zwischenergebnisse der Logik in Kontaktplan-Programmen

Die Größe des Lokaldaten-Stacks ist CPU-abhängig (siehe CPU-Beschreibungen /70/ und /101/). Der Lokaldaten-Stack wird zu gleichen Tei-len unter den Prioritätsklassen aufgeteilt (Voreinstellung). Das bedeutet, jedePrioritätsklasse verfügt über einen eigenen Lokaldatenbereich und damit istgewährleistet, daß auch hochpriore Prioritätsklassen und ihre zugeordnetenOBs Platz für ihre Lokaldaten zur Verfügung haben (siehe auch Kapitel 3.8).

L-Stack

Größe

Speicherbereiche der S7-CPUs

Page 82: Systemsoftware für S7-300/400, Programmentwurf · iii Systemsoftware für S7-300/400 Programmentwurf C79000-G7000-C506-01 Vorwort Dieses Handbuch informiert Sie über die verschiedenen

5-14Systemsoftware für S7-300/400 Programmentwurf

C79000-G7000-C506-01

Speicherbereiche der S7-CPUs

Page 83: Systemsoftware für S7-300/400, Programmentwurf · iii Systemsoftware für S7-300/400 Programmentwurf C79000-G7000-C506-01 Vorwort Dieses Handbuch informiert Sie über die verschiedenen

6-1Systemsoftware für S7-300/400 ProgrammentwurfC79000-G7000-C506-01

Adressierung der Peripherie

Dieses Kapitel beschreibt die Adressierung von Peripheriedatenbereichen(Nutzdaten, Diagnose- und Parameterdaten).

Weitere Informationen zu den Systemfunktionen, die in diesem Kapitelerwähnt werden, finden Sie im Referenzhandbuch /235/.

Im Kapitel finden Sie auf Seite

6.1 Zugriff auf Prozeßdaten 6-2

6.2 Zugriff auf den Peripheriedatenbereich 6-4

6.3 Besonderheiten bei dezentraler Peripherie DP 6-6

Was beschreibtdieses Kapitel?

Wo finden SieweitereInformationen?

Kapitelübersicht

6

Page 84: Systemsoftware für S7-300/400, Programmentwurf · iii Systemsoftware für S7-300/400 Programmentwurf C79000-G7000-C506-01 Vorwort Dieses Handbuch informiert Sie über die verschiedenen

6-2Systemsoftware für S7-300/400 Programmentwurf

C79000-G7000-C506-01

6.1 Zugriff auf Prozeßdaten

Die CPU kann entweder indirekt über das Prozeßabbild oder über den Rück-wand-/P-Bus direkt auf Ein- und Ausgänge zentraler und dezentralerDigitalein-/ausgabebaugruppen zugreifen.

Auf Ein- und Ausgänge zentraler und dezentraler Analogein-/ausgabebau-gruppen greift die CPU direkt über den Rückwand-/P-Bus zu.

Die Zuordnung zwischen Adressen, die im Anwenderprogramm verwendetwerden, und den Baugruppen erfolgt durch die Konfigurierung derBaugruppen mit STEP 7

� bei zentraler Peripherie: Anordnung des Baugruppenträgers undZuordnung der Baugruppen auf Steckplätzen in der Konfigurationstabelle

� bei dezentraler Peripherie (PROFIBUS-DP): Anordnung der DP-Slaves inder Konfigurationstabelle ”Mastersystem” mit Vergabe der PROFIBUS-Adresse und Zuordnung der Baugruppen auf Steckplätze.

Das Konfigurieren der Baugruppen löst die Adreßeinstellung der einzelnenBaugruppen über Schalter ab. Die CPU erhält vom PG als Ergebnis derKonfigurierung Daten, anhand derer sie die zugeordneten Baugruppenerkennt.

Für Ein- und Ausgänge existiert jeweils ein eigener Adreßbereich. Deshalbmuß die Adresse eines Peripheriebereichs außer der Byte- oder Wortangabezusätzlich die Kennung E für die Eingänge und A für die Ausgängebeinhalten.

Tabelle 6-1 zeigt die zur Verfügung stehenden Peripherie-Adreßbereiche.Welche Adreßbereiche bei den einzelnen Baugruppen möglich sind,entnehmen Sie den Handbüchern /70/, /71/ und /101/.

Tabelle 6-1 Peripherie-Adreßbereiche

OperandenbereichZugriff über Einheiten der

folgenden Größe:S7-Notation

Peripheriebereich: Eingänge PeripherieeingangsbytePeripherieeingangswortPeripherieeingangs-Doppelwort

PEBPEWPED

Peripheriebereich: Ausgänge PeripherieausgangsbytePeripherieausgangswortPeripherieausgangs-Doppelwort

PABPAWPAD

Übersicht

Baugruppen-adressierung

Peripherie-adressierung

Adressierung der Peripherie

Page 85: Systemsoftware für S7-300/400, Programmentwurf · iii Systemsoftware für S7-300/400 Programmentwurf C79000-G7000-C506-01 Vorwort Dieses Handbuch informiert Sie über die verschiedenen

6-3Systemsoftware für S7-300/400 ProgrammentwurfC79000-G7000-C506-01

Die Baugruppen-Anfangsadresse ist die niedrigste Byte-Adresse einerBaugruppe. Sie stellt die Anfangsadresse des Nutzdatenbereichs derBaugruppe dar und wird in vielen Fällen stellvertretend für die ganzeBaugruppe verwendet.

Sie wird z. B. bei Prozeßalarmen, Diagnosealarmen, Ziehen/Stecken-Alarmen, und Stromversorgungsfehlern in die Startinformation deszugehörigen Organisationsbausteins eingetragen und identifiziert damit diealarmgebende Baugruppe.

Baugruppen-Anfangsadresse

Adressierung der Peripherie

Page 86: Systemsoftware für S7-300/400, Programmentwurf · iii Systemsoftware für S7-300/400 Programmentwurf C79000-G7000-C506-01 Vorwort Dieses Handbuch informiert Sie über die verschiedenen

6-4Systemsoftware für S7-300/400 Programmentwurf

C79000-G7000-C506-01

6.2 Zugriff auf den Peripheriedatenbereich

Der Peripheriedatenbereich läßt sich unterteilen in:

� Nutzdaten und

� Diagnose- und Parameterdaten.

Beide Bereiche haben einen Eingangsbereich (nur lesender Zugriff möglich)und einen Ausgangsbereich (nur schreibender Zugriff möglich).

Adressiert werden die Nutzdaten über die Byteadresse (bei digitalen Signal-baugruppen) oder die Wortadresse (bei analogen Signalbaugruppen) des Ein-bzw. Ausgangsbereichs. Auf Nutzdaten zugreifen können Sie über Lade- undTransferbefehle, Kommunikationsfunktionen (BuB-Zugriffe) bzw. über denProzeßabbildtransfer. Nutzdaten können sein:

� digitale und analoge Ein-, Ausgangssignale von Signalbaugruppen

� Steuer- und Statusinformationen von Funktionsbaugruppen und

� Informationen für Punkt-zu-Punkt und Buskopplungen vonKommunikationsbaugruppen (nur S7-300).

Bei der Übertragung von Nutzdaten kann eine Datenkonsistenz von maximal4 Byte erreicht werden (Ausnahme DP-Normslaves, siehe Kapitel 6.3).Verwenden Sie die Anweisung ”Transferiere Doppelwort”, werden 4 Bytezusammenhängend und unverändert (konsistent) übertragen. Verwenden Sievier einzelne Anweisungen ”Transferiere Eingangsbyte”, könnte an einerBefehlsgrenze ein Prozeßalarm-OB gestartet werden, der Daten an diegleiche Adresse überträgt und damit den Inhalt der ursprünglichen vier Byteverändert.

Die Diagnose- und Parameterdaten einer Baugruppe können nicht einzelnadressiert werden, sondern nur zusammengefaßt zu ganzen Datensätzen.Diagnose- und Parameterdaten werden grundsätzlich konsistent übertragen.

Adressiert werden die Diagnose- und Parameterdaten über die Anfangs-adresse der betreffenden Baugruppe und die Datensatznummer. Datensätzewerden unterteilt in Eingangs- und Ausgangsdatensätze. Eingangsdatensätzekönnen nur gelesen, Ausgangsdatensätz können nur beschrieben werden. AufDatensätze zugreifen können Sie mit Hilfe von Systemfunktionen oderKommunikationsfunktionen (Bedienen und Beobachten, BuB). Tabelle 6-2zeigt die Zuordnung der Datensätze zu Diagnose- und Parameterdaten.

Übersicht

Nutzdaten

Diagnose- undParameterdaten

Adressierung der Peripherie

Page 87: Systemsoftware für S7-300/400, Programmentwurf · iii Systemsoftware für S7-300/400 Programmentwurf C79000-G7000-C506-01 Vorwort Dieses Handbuch informiert Sie über die verschiedenen

6-5Systemsoftware für S7-300/400 ProgrammentwurfC79000-G7000-C506-01

Tabelle 6-2 Zuordnung der Datensätze

Daten Beschreibung

Diagnosedaten Bei diagnosefähigen Baugruppen erhalten Sie beim Lesender Datensätze 0 und 1 die Diagnosedaten dieser Baugruppe.

Parameterdaten Bei parametrierbaren Baugruppen übertragen Sie beimSchreiben der Datensätze 0 und 1 die Parameter dieserBaugruppe.

Die Informationen in den Datensätzen einer Baugruppe können Sie nutzen,um parametrierbare Baugruppen nachzuparametrieren und Diagnose-informationen diagnosefähiger Baugruppen auszulesen.

Tabelle 6-3 zeigt, mit welchen Systemfunktionen Sie auf Datensätzezugreifen können.

Tabelle 6-3 Systemfunktionen für den Zugriff auf Datensätze

SFC Anwendung

Baugruppen parametrieren

SFC 55 WR_PARM Übertragen der änderbaren Parameter (Datensatz 1) zuradressierten Signalbaugruppe.

SFC 56WR_DPARM

Übertragen der Parameter (Datensatz 0 oder 1) aus den SDBs100 bis 129 zur adressierten Signalbaugruppe.

SFC 57PARM_MOD

Übertragen aller Parameter (Datensätze 0 und 1) aus den SDBs100 bis 129 zur adressierten Signalbaugruppe.

SFC 58 WR_REC Übertragen eines beliebigen Datensatzes zur adressiertenSignalbaugruppe

Diagnoseinformation auslesen

SFC 59 RD_REC Auslesen der Diagnosedaten

Sie haben die Möglichkeit:

� Erweiterungsgeräte der SIMATIC S5 mit der AnschaltungsbaugruppeIM 463-2 an eine S7-400 zu koppeln und

� einige S5-Baugruppen in Adaptionskapseln in den zentralen Baugruppen-träger der S7-400 zu stecken.

Wie Sie die S5-Baugruppen bei SIMATIC S7 adressieren, entnehmen Siebitte dem Handbuch /100/ bzw. der mitgelieferten Beschreibung derAdaptionskapsel.

Zugreifen aufDatensätze

Adressieren vonS5-Baugruppen

Adressierung der Peripherie

Page 88: Systemsoftware für S7-300/400, Programmentwurf · iii Systemsoftware für S7-300/400 Programmentwurf C79000-G7000-C506-01 Vorwort Dieses Handbuch informiert Sie über die verschiedenen

6-6Systemsoftware für S7-300/400 Programmentwurf

C79000-G7000-C506-01

6.3 Besonderheiten bei dezentraler Peripherie DP

SIMATIC S7 bietet Ihnen die Möglichkeit, dezentrale Peripherie (DP)einzusetzen. Dezentrale Peripherie sind vom Zentralgerät räumlichabgesetzte, prozeßnahe Analog- und Digitalbaugruppen sowie Funktions-baugruppen FM am P-Bus.

Dezentrale Peripherie können Sie an S7 anbinden über das BussystemPROFIBUS-DP und

� die integrierte DP-Master-Schnittstelle einer CPU (z. B. CPU 315-2-DP,CPU 413-2 DP, CPU 414-2 DP) oder

� ein Schnittstellenmodul, das einer CPU/FM zugeordnet ist (z. B. IF 964-DP in CPU 388-5, CPU 488-5.

� eine externe DP-Master-Schnittstelle (z. B. CP 443-5, CP 342-5, IM 467)

Dezentrale Baugruppen werden ebenso mit STEP 7 konfiguriert wie zentraleBaugruppen (siehe STEP 7-Benutzerhandbuch /231/).

Der Adreßbereich dezentraler Peripherie ist für DP-Master- und DP-Slave-baugruppen gleich und entspricht dem in Tabelle 6-1 angegebenenPeripherie-Adreßbereich.

Für die Nutzdaten der dezentralen Peripherie stellt die DP-Masterbaugruppeeinen Datenbereich zur Verfügung. Die CPU greift bei der Adressierung derdezentralen Peripherie auf diesen Datenbereich zu.

Auf die Nutzdaten kann ebenso wie bei zentraler Peripherie über Lade- undTransferbefehle, Kommunikationsfunktionen (Bedienen und Beobachten,BuB) sowie über Prozeßabbildtransfer zugegriffen werden. Die maximaleDatenkonsistenz beträgt 4 Byte.

Auf Diagnose- und Parameterdaten kann ebenso wie bei zentraler Peripherieüber SFCs (siehe Tabelle 6-3) zugegriffen werden (Ausnahme DP-Norm-slaves).

DezentralePeripherie

Anbindung an S7

Konfigurieren

Adressierung vonDP-Master und DP-Slaves

Zugriff auf Nutz-daten

Zugriff aufDiagnose- undParameterdaten

Adressierung der Peripherie

Page 89: Systemsoftware für S7-300/400, Programmentwurf · iii Systemsoftware für S7-300/400 Programmentwurf C79000-G7000-C506-01 Vorwort Dieses Handbuch informiert Sie über die verschiedenen

6-7Systemsoftware für S7-300/400 ProgrammentwurfC79000-G7000-C506-01

Sollen DP-Normslaves Daten größer 4 Byte übertragen oder empfangen,müssen Sie für die Übertragung dieser Daten spezielle SFCs verwenden.

Tabelle 6-4 Systemfunktionen für DP-Normslaves

SFC Anwendung

Baugruppen parametrieren

SFC 15 DPWR_DAT Übertragen eines beliebigen Datensatzes zur adressiertenSignalbaugruppe

Diagnoseinformation auslesen

SFC 13 DPNRM_DG Auslesen der Diagnosedaten (asynchroner Lesevorgang)

SFC 14 DPRD_DAT Auslesen konsistenter Diagnosedaten (Länge 3 oder größer 4Byte)

Beim Eintreffen eines DP-Diagnosetelegramms wird ein Diagnosealarm mit4 Byte Diagnosedaten an die CPU gemeldet. Diese 4 Byte können mit derSFC 13 DPNRM_DG ausgelesen werden. Die gesamte DP-Diagnose-information kann mit der SFC 14 DPRD_DAT unter Angabe der Diagnose-adresse des DP-Normslaves ausgelesen werden.

Adressierung vonDP-Normslaves

Adressierung der Peripherie

Page 90: Systemsoftware für S7-300/400, Programmentwurf · iii Systemsoftware für S7-300/400 Programmentwurf C79000-G7000-C506-01 Vorwort Dieses Handbuch informiert Sie über die verschiedenen

6-8Systemsoftware für S7-300/400 Programmentwurf

C79000-G7000-C506-01

Adressierung der Peripherie

Page 91: Systemsoftware für S7-300/400, Programmentwurf · iii Systemsoftware für S7-300/400 Programmentwurf C79000-G7000-C506-01 Vorwort Dieses Handbuch informiert Sie über die verschiedenen

7-1Systemsoftware für S7-300/400 ProgrammentwurfC79000-G7000-C506-01

Datenaustausch zwischen programmier-baren Baugruppen

Dieses Kapitel beschreibt die Kommunikationsmöglichkeiten in denAutomatisierungssystemen S7-300 und S7-400.

Globaldaten-KommunikationBeim Datenaustausch über Globaldaten-Kommunikation teilen sich zweioder mehr vernetzte CPUs eine gemeinsame Datenmenge, die Globaldaten.

Weitere Informationen zum Thema Globaldaten-Kommunikation und zurVerbindungsprojektierung finden Sie in der STEP 7-Online-Hilfe und imSTEP 7-Benutzerhandbuch /231/.

Die Kommunikations-SFBs für projektierte Verbindungen für die homogeneKommunikation sind beschrieben im Referenzhandbuch /235/.

Nicht-homogene Kommunikation über SIMATIC CPs ist ausführlichbeschrieben in den Handbüchern /500/ und /501/. Dort sind auch diezugehörigen Kommunikations-Funktionsbausteine beschrieben.

Im Kapitel finden Sie auf Seite

7.1 Kommunikationstypen 7-2

7.2 Datenaustausch über Kommunikations-SFBs für projektierteVerbindungen

7-3

7.3 Projektieren einer Kommunikationsverbindung zwischenKommunikationspartnern

7-5

7.4 Arbeiten mit Kommunikations-SFBs für projektierte Verbin-dungen

7-7

7.5 Datenaustausch über Kommunikations-SFCs für nichtpro-jektierte Verbindungen

7-8

Was beschreibtdieses Kapitel?

Wo finden SieweitereInformationen?

Kapitelübersicht

7

Page 92: Systemsoftware für S7-300/400, Programmentwurf · iii Systemsoftware für S7-300/400 Programmentwurf C79000-G7000-C506-01 Vorwort Dieses Handbuch informiert Sie über die verschiedenen

7-2Systemsoftware für S7-300/400 Programmentwurf

C79000-G7000-C506-01

7.1 Kommunikationstypen

SIMATIC S7 kennt die folgenden Kommunikationstypen:

� Homogene Kommunikation ist die Kommunikation zwischenS7-Komponenten, die das S7-Protokoll benutzen.

� Nicht-homogene Kommunikation ist die Kommunikation zwischenS7-Komponenten und S5-Komponenten sowie zwischen S7-Komponen-ten und Fremdgeräten über beliebige Protokolle (z. B. TF, FMS).

� Kommunikation über Kommunikations-SFBs für projektierte Verbindungen

Die S7-400-CPUs stellen für den Datenaustausch zwischen programmier-baren Baugruppen Kommunikations-SFBs für projektierte Verbindungenzur Verfügung.

Darunter befinden sich Systemfunktionsbausteine (SFB), mit denen SieDaten programmgesteuert zwischen zwei Kommunikationspartnern (z. B.CPU, FM, CP) eines Subnetzes austauschen können.

Es werden außerdem SFBs für das gezielte Prüfen und Beeinflussen vonBetriebszuständen remoter Geräte zur Verfügung gestellt.

� Kommunikation über Kommunikations-SFCs für nichtprojektierte Verbin-dungen

Die S7-300- und die S7-400-CPUs stellen Kommunikations-SFCs fürnichtprojektierte Verbindungen zur Verfügung, um Daten zwischen zweiKommunikationspartnern auszutauschen.

Die beiden Kommunikationspartner müssen am gemeinsamen MPI-Sub-netz angeschlossen sein oder zu ein und derselben S7-Station gehören(kommunikationsfähige Baugruppen im Zentralgerät, in einem Erweite-rungsgerät oder in einer DP-Station).

Übersicht

S7-Kommunikation

Datenaustausch zwischen programmierbaren Baugruppen

Page 93: Systemsoftware für S7-300/400, Programmentwurf · iii Systemsoftware für S7-300/400 Programmentwurf C79000-G7000-C506-01 Vorwort Dieses Handbuch informiert Sie über die verschiedenen

7-3Systemsoftware für S7-300/400 ProgrammentwurfC79000-G7000-C506-01

7.2 Datenaustausch über Kommunikations-SFBs für projektierte Ver-bindungen

Um über Kommunikations-SFBs für projektierte Verbindungen Daten zwi-schen Kommunikationspartnern auszutauschen, müssen

� sich die Partner in einem Subnetz (MPI, PROFIBUS, Industrial Ethernet)befinden

� Sie eine Verbindung zwischen den Partnern projektieren

� Sie die benötigten Systemfunktionsbausteine und die zugehörigenInstanz-Datenbausteine im Anwenderprogramm aufrufen.

Die S7-CPUs stellen Kommunikations-SFBs für projektierte Verbindungenzur Verfügung, um Daten zwischen zwei Kommunikationspartnern (z.B.CPU, CP, FM) eines Netzes auszutauschen, ein remotes Gerät zu steuern undzu überwachen sowie den internen Zustand eines lokalen Kommunikations-SFB abzufragen.

Tabelle 7-1 SFBs und SFC für den Datenaustausch

SFB/SFC Kurzbeschreibung Kommuni-kationsart

Sende- und Empfangsfunktionen

SFB 8SFB 9

USENDURCV

unkoordinierter Datenaustausch über einenSende- und einen Empfangs-SFB

zweiseitig

SFB 12SFB 13

BSENDBRCV

Austausch von Datenblöcken variabler Längezwischen einem Sende-SFB und einemEmpfangs-SFB

zweiseitig

SFB 14 GET aus einem remoten Gerät Daten lesen einseitig

SFB 15 PUT in ein remotes Gerät Daten schreiben einseitig

Steuerfunktionen

SFB 19 START in einem remoten Gerät Neustart durchführeneinseitig

SFB 20 STOP ein remotes Gerät in den Zustand STOPversetzen

einseitig

SFB 21 RESUME in einem remoten Gerät Wiederanlauf durch-führen

einseitig

Überwachungsfunktionen

SFB 22 STATUS Gezielte Abfrage des Status eines remotenGeräts

einseitig

SFB 23 USTATUS Empfang von Statusmeldungen remoterGeräte

zweiseitig

Abfragefunktion

SFC 62 CONTROL Abfrage des internen Zustands eines lokalenKommunikations-SFB über dessen In-stanz-DB

Voraussetzung

Kommunikations-SFBs für projek-tierte Verbindun-gen

Datenaustausch zwischen programmierbaren Baugruppen

Page 94: Systemsoftware für S7-300/400, Programmentwurf · iii Systemsoftware für S7-300/400 Programmentwurf C79000-G7000-C506-01 Vorwort Dieses Handbuch informiert Sie über die verschiedenen

7-4Systemsoftware für S7-300/400 Programmentwurf

C79000-G7000-C506-01

Beim Datenaustausch über Kommunikations-SFBs für projektierte Verbin-dungen unterscheidet man zwischen

� zweiseitiger Kommunikation, die dadurch gekennzeichnet ist, daß sich jeein SFB eines zusammengehörigen Bausteinpaares auf dem lokalen unddem remoten Kommunikationspartner befindet.

� einseitiger Kommunikation, die dadurch gekennzeichnet ist, daß sich nurauf dem lokalen Kommunikationspartner ein Kommunikations-SFB be-findet.

Die Bilder 7-1 und 7-2 zeigen die beiden Kommunikationsarten.

USEND URCV

logische Verbindung

Kommunikationspartner1 (lokal) Kommunikationspartner2 (remote)

Bild 7-1 Zweiseitige Kommunikation

PUT

logische Verbindung

Kommunikationspartner1 (lokal) Kommunikationspartner2 (remote)

Kein SFB vorhanden;Kommunikationsdienstdurch Systemleistung

Bild 7-2 Einseitige Kommunikation

Zum Datenaustausch über Kommunikations-SFBs für projektierte Verbindun-gen wird bei STEP 7 ein Programmierbeispiel mitgeliefert. Die Beschreibungdes Beispielprogramms finden Sie im Anhang B, den zugehörigen Quellcodeim directory step7\examples\com_sfb.

Kommunikations-arten

Programmier-beispiel

Datenaustausch zwischen programmierbaren Baugruppen

Page 95: Systemsoftware für S7-300/400, Programmentwurf · iii Systemsoftware für S7-300/400 Programmentwurf C79000-G7000-C506-01 Vorwort Dieses Handbuch informiert Sie über die verschiedenen

7-5Systemsoftware für S7-300/400 ProgrammentwurfC79000-G7000-C506-01

7.3 Projektieren einer Kommunikationsverbindung zwischenKommunikationspartnern

Zwischen folgenden Partnern kann ein Datenaustausch über Kommunika-tions-SFBs für projektierte Verbindungen stattfinden:

� S7-CPUs

� M7-CPUs

� S7-CPUs und M7-CPUs

� CPUs und FMs

� CPUs und CPs.

Bild 7-3 und Tabelle 7-2 zeigen beispielhaft, welche KommunikationspartnerDaten austauschen können.

PG1

CPU1

S7-400_1 S7-400_2

M7/S7-400_3

S7-300_1

M7/S7-300_3

CP1...... CPU2 CP2FM1 CPU4 CP3FM2

CPU3 FM4 FM5 CPU5 FM3

PROFIBUS/Industrial Ethernet

MPI

K-Bus RückwandbusK-Bus

RückwandbusK-Bus

......

Fremd-system

Bild 7-3 Kommunikationspartner, die Daten austauschen können

Tabelle 7-2 Beispiele für Kommunikationspartner, die Daten austauschen können

Datenaustausch möglich zwischen Kommunikations-typ

CPU 1 ↔ CPU 2 homogen

CPU 1 ↔ CPU 3 homogen

CPU 2 → CPU 4 (nur mit PUT/GET/START/STOP/STATUS)homogen

CPU 3 → CPU 5 (nur mit PUT/GET/START/STOP/STATUS)homogen

CPU 1 ↔ Fremdsystem nicht homogen

Kommunikations-partner

Datenaustausch zwischen programmierbaren Baugruppen

Page 96: Systemsoftware für S7-300/400, Programmentwurf · iii Systemsoftware für S7-300/400 Programmentwurf C79000-G7000-C506-01 Vorwort Dieses Handbuch informiert Sie über die verschiedenen

7-6Systemsoftware für S7-300/400 Programmentwurf

C79000-G7000-C506-01

Hinweis

Dezentral gesteckte FMs (am P-Bus) können am Datenaustausch über Kom-munikations-SFBs für projektierte Verbindungen zur Zeit nicht teilnehmen.

Damit Daten zwischen Kommunikationspartnern ausgetauscht werdenkönnen, müssen die Partner vernetzt sein (MPI, PROFIBUS, Industrial Ether-net), und es muß eine Kommunikationsverbindung zwischen ihnen bestehen.Bei STEP 7 projektieren Sie diese Verbindung, indem Sie eine Verbindungs-tabelle erstellen und mit dem Anwenderprogramm in die entsprechendeBaugruppe laden. Die Tabelle enthält folgende Angaben:

� die Verbindungs-IDs für die beiden Kommunikationspartner

� den remoten Kommunikationspartner

� den Typ der Kommunikationsverbindung

Entsprechend der einseitigen und zweiseitigen Kommunikation gibt es aucheinseitige und zweiseitige Verbindungen:

� bei einseitiger Verbindung: es befindet sich nur ein Kommunikations-SFBauf dem lokalen Kommunikationspartner

� bei zweiseitiger Verbindung: es befindet sich ein zusammengehörigesBausteinpaar auf dem lokalen und dem remoten Kommunikationspartner

Auch die Art der Verbindung müssen Sie beim Erstellen der Verbindungs-tabelle angeben. Die Zahl der zulässigen Verbindungen je programmierbarerBaugruppe ist CPU-abhängig.

Jede projektierte Verbindung wird durch eine Verbindungs-ID identifiziert.Sie stellt die lokale Referenz zwischen dem Baustein und der Verbindung dar.Der lokale und der remote Kommuniaktionspartner einer projektiertenVerbindung können unterschiedliche Verbindungs-IDs haben. DieVerbindungs-IDs werden von STEP 7 vergeben bzw. vorgeschlagen.

Beim Aufruf der Kommunikations-SFBs müssen Sie als Eingangsparameterjedes Bausteins die entsprechende Verbindungs-ID angeben.

Verbindungs-projektierung

Einseitige/zwei-seitigeKommunikations-verbindungen

Verbindungs-ID

Datenaustausch zwischen programmierbaren Baugruppen

Page 97: Systemsoftware für S7-300/400, Programmentwurf · iii Systemsoftware für S7-300/400 Programmentwurf C79000-G7000-C506-01 Vorwort Dieses Handbuch informiert Sie über die verschiedenen

7-7Systemsoftware für S7-300/400 ProgrammentwurfC79000-G7000-C506-01

7.4 Arbeiten mit Kommunikations-SFBs für projektierte Verbindungen

Systemfunktionsbausteine und Systemfunktionen sind Bestandteile desBetriebssystems einer S7-CPU. Sie können aus dem Anwenderprogrammaufgerufen werden und werden nicht als Teil des Anwenderprogrammsgeladen.

Ebenso wie Funktionsbausteine benötigen Systemfunktionsbausteine einenInstanz-Datenbaustein, der die Aktualparameter und statischen Daten desSFB enthält. Instanz-Datenbausteine müssen mit STEP 7 erzeugt und als Teildes Anwenderprogramms geladen werden.

Die logische Verbindung zwischen zwei Kommunikationspartnern wirdidentifiziert durch ihre Verbindungs-IDs.

Es ist möglich, für unterschiedliche Sende-/Empfangsaufträge dieselbelogische Verbindung zu benutzen. Zu diesem Zweck müssen Sie zusätzlichzur Verbindungskennung ID eine Auftragskennung R_ID angeben, um dieZusammengehörigkeit des Sende- und Empfangsbausteins festzulegen.

USEND URCV

logische Verbindung

Kommunikationspartner1 (lokal) Kommunikationspartner2 (remote)

Sendebaustein Empfangsbaustein

R_ID1 R_ID1

USENDURCV

ID

SendebausteinEmpfangsbaustein

R_ID2

IDR_ID2

ID

ID

Bild 7-4 Adressierungsparameter ID und R_ID

In Anhang B finden Sie ein Beispielprogramm für den Datenaustausch überKommunikations-SFBs für projektierte Verbindungen.

Systemfunktions-bausteine undSystemfunktionen

Instanz-Datenbau-steine

Adressierung derKommunikations-partner

Beispielprogramm

Datenaustausch zwischen programmierbaren Baugruppen

Page 98: Systemsoftware für S7-300/400, Programmentwurf · iii Systemsoftware für S7-300/400 Programmentwurf C79000-G7000-C506-01 Vorwort Dieses Handbuch informiert Sie über die verschiedenen

7-8Systemsoftware für S7-300/400 Programmentwurf

C79000-G7000-C506-01

7.5 Datenaustausch über Kommunikations-SFCs für nichtprojektierteVerbindungen

Um über Kommunikations-SFCs für nichtprojektierte Verbindungen Datenzwischen einer S7-CPU und einer weiteren kommunikationsfähigen Bau-gruppe auszutauschen, müssen

� die Kommunikationspartner am gemeinsamen MPI-Subnetz angeschlos-sen sein oder zu ein und derselben S7-Station gehören (kommunikations-fähige Baugruppe im Zentralgerät, in einem Erweiterungsgerät oder ineiner DP-Station),

� Sie die benötigten SFCs im Anwenderprogramm aufrufen.

Die S7-300 und die S7-400 CPUs stellen Kommunikations-SFCs für nicht-projektierte Verbindungen zur Verfügung, um Daten zwischen zwei Kommu-nikationspartnern auszutauschen und bestehende Verbindungen abzubrechen.

Tabelle 7-3 SFCs für die Kommunikation zwischen S7-Stationen

Baustein Kurzbeschreibung

SFC 65 ”X_SEND”/

SFC 66 ”X_RCV”

Datenaustausch zwischen Kommunikationspartnern mittelseiner Sende- und einer Empfangs-SFC

SFC 67 ”X_GET” aus einem Kommunikationspartner eine Variable lesen

SFC 68 ”X_PUT” in einen Kommunikationspartner eine Variable schreiben

SFC 69 ”X_ABORT” bestehende Verbindung zu einem Kommunikationspartnerabbrechen. Damit werden auf beiden Seiten Verbindungsres-sourcen wieder freigegeben.

Tabelle 7-4 SFCs für die Kommunikation innerhalb einer S7-Station

Baustein Kurzbeschreibung

SFC 72 ”I_GET” aus einem Kommunikationspartner (z. B. FM) eine Variablelesen

SFC 73 ”I_PUT” in einen Kommunikationspartner (z. B. FM) eine Variableschreiben

SFC 74 ”I_ABORT” bestehende Verbindung zu einem Kommunikationspartnerabbrechen. Damit werden auf beiden Seiten Verbindungsres-sourcen wieder freigegeben.

Damit Daten zwischen Kommunikationspartnern ausgetauscht werden kön-nen, müssen die Partner vernetzt sein (K-Bus oder PROFIBUS-DP für dieSFCs I_GET, I_PUT und I_ABORT, MPI für die SFCs X_SEND, X_RCV,X_GET, X_PUT und X_ABORT). Eine Kommunikationsverbindung wirdvom Betriebssystem der CPU zur Laufzeit der SFC aufgebaut.

Voraussetzung

Kommunikations-SFCs für nichtpro-jektierte Verbin-dungen

Verbindung zumKommunikations-partner

Datenaustausch zwischen programmierbaren Baugruppen

Page 99: Systemsoftware für S7-300/400, Programmentwurf · iii Systemsoftware für S7-300/400 Programmentwurf C79000-G7000-C506-01 Vorwort Dieses Handbuch informiert Sie über die verschiedenen

7-9Systemsoftware für S7-300/400 ProgrammentwurfC79000-G7000-C506-01

Ob die Verbindung nach Abschluß der Datenübertragung abgebaut wird, be-stimmen Sie durch einen Eingangsparameter (näheres siehe Referenzhand-buch /235/).

Wenn eine Verbindung temporär nicht aufgebaut werden kann, müssen Siedie zugehörige SFC zu einem späteren Zeitpunkt erneut aufrufen.

Eine Verbindung wird von derjenigen CPU aufgebaut, auf der eine Kommu-nikations-SFC aufgerufen wird (Ausnahme: Der Aufruf der SFC 66”X_RCV” hat keinen Verbindungsaufbau zur Folge). Zwischen zwei Kom-munikationspartnern kann es in jeder Richtung maximal eine Verbindunggeben.

� Kommunikationspartner liegt außerhalb der eigenen S7-Station:

Die logische Verbindung wird festgelegt durch die MPI-Adresse desKommunikationspartners (Parameter DEST_ID). Diese haben Sie mitSTEP 7 projektiert.

� Kommunikationspartner liegt innerhalb der eigenen S7-Station:

Die logische Verbindung wird festgelgt durch die Adreßbereichskennung(Parameter IOID) und die logische Adresse (Parameter LADDR) desKommunikationspartners.

Zum Datenaustausch über Kommunikations-SFCs für nichtprojektierte Ver-bindungen werden bei STEP 7 zwei Programmierbeispiele mitgeliefert. DenQuellcode der Beispielprogramme finden Sie in den zugehörigen directoriesstep7\examples\com_sfc1 und step7\examples\com_sfc2.

Adressierung derKommunikations-partner

Programmier-beispiel

Datenaustausch zwischen programmierbaren Baugruppen

Page 100: Systemsoftware für S7-300/400, Programmentwurf · iii Systemsoftware für S7-300/400 Programmentwurf C79000-G7000-C506-01 Vorwort Dieses Handbuch informiert Sie über die verschiedenen

7-10Systemsoftware für S7-300/400 Programmentwurf

C79000-G7000-C506-01

Datenaustausch zwischen programmierbaren Baugruppen

Page 101: Systemsoftware für S7-300/400, Programmentwurf · iii Systemsoftware für S7-300/400 Programmentwurf C79000-G7000-C506-01 Vorwort Dieses Handbuch informiert Sie über die verschiedenen

8-1Systemsoftware für S7-300/400 ProgrammentwurfC79000-G7000-C506-01

Einstellen von Systemparametern

Dieses Kapitel erläutert, wie Sie die Eigenschaften von S7-300- undS7-400-Automatisierungssystemen, die nicht fest vorgegeben sind, durchEinstellen von Systemparametern oder Einsatz von Systemfunktionen SFCbeeinflussen können.

Detaillierte Informationen zu den Baugruppenparametern finden Sie in derSTEP 7-Online-Hilfe sowie in den Handbüchern /70/, /71/ und /101/. Allesüber SFCs finden Sie im Referenzhanduch /235/.

Im Kapitel finden Sie auf Seite

8.1 Ändern des Verhaltens und der Eigenschaften von Bau-gruppen

8-2

8.2 Nutzen der Uhrzeitfunktionen 8-4

8.3 Bestimmen des Anlaufverhaltens 8-5

8.4 Parametrieren des Zyklus 8-6

8.5 Festlegen der MPI-Parameter 8-9

8.6 Festlegen remanenter Speicherbereiche 8-10

8.7 Verwenden von Taktmerkern und Zeiten 8-11

8.8 Ändern der Prioritätsklassen und der Anzahl der Lokaldaten 8-12

Was beschreibtdieses Kapitel?

Wo finden SieweitereInformationen?

Kapitelübersicht

8

Page 102: Systemsoftware für S7-300/400, Programmentwurf · iii Systemsoftware für S7-300/400 Programmentwurf C79000-G7000-C506-01 Vorwort Dieses Handbuch informiert Sie über die verschiedenen

8-2Systemsoftware für S7-300/400 Programmentwurf

C79000-G7000-C506-01

8.1 Ändern des Verhaltens und der Eigenschaften von Baugruppen

Alle parametrierbaren Baugruppen des S7-Automatisierungssystems sind beiLieferung auf Defaultwerte eingestellt, die für Standardanwendungengeeignet sind. Mit diesen Defaultwerten können Sie die Baugruppen direkt,ohne weitere Einstellungen, einsetzen. Die Defaultwerte entnehmen Sie denBaugruppen-Beschreibungen /70/, /71/ und /101/.

Sie können jedoch auch das Verhalten und die Eigenschaften der Baugruppenparametrieren und damit auf Ihre Erfordernisse und die Gegebenheiten IhrerAnlage einstellen. Parametrierbare Baugruppen sind CPUs, FMs, CPs sowieeinige Analogein-/-ausgabebaugruppen und Digitaleingabebaugruppen.

Es gibt parametrierbare Baugruppen mit und ohne Pufferung.

Baugruppen ohne Pufferung müssen nach jedem Spannungsausfall erneut mitden entsprechenden Daten versorgt werden. Die Parameter dieser Baugrup-pen werden im remanenten Speicherbereich der CPU gespeichert (indirekteParametrierung durch die CPU).

Baugruppenparameter stellen Sie mit STEP 7 ein. Beim Speichern derParameter erzeugt STEP 7 das Objekt Systemdatenbausteine, das mit demAnwenderprogramm in die CPU geladen und von dort beim Anlauf in diezugehörigen Baugruppen übertragen wird.

Systemdatenbausteine (SDB) können nur vom Betriebssystem ausgewertetund nicht mit STEP 7 bearbeitet werden.

Nicht alle möglichen Systemdatenbausteine sind auf allen CPUs verfügbar(siehe CPU-Beschreibungen /70/ und /101/). Tabelle 8-1 zeigt einige SDBs,über die jede CPU verfügt und welche Parameter in ihnen abgelegt werden.

Tabelle 8-1 Parameter in SDBs

SDB Parametersatz

0 CPU-Betriebssystem-Parameter

1 Peripheriezuordnungsliste

2 CPU-Default-Parametersatz

3 Integrierte DP-Schnittstelle

22 Dezentrale Peripheriezuordnungsliste, interne Schnittstelle

26 bis 29 Dezentrale Peripheriezuordnungsliste, externe Schnittstelle

100 bis 103 Parameter für Baugruppen im zentralen Aufbau bei S7-300

100 bis 121 Parameter für Baugruppen im zentralen Aufbau bei S7-400

122 Parameter für Baugruppen im dezentralen Aufbau, interne Schnitt-stelle, bei S7-300 und S7-400

126 bis 129 Parameter für Baugruppen im dezentralen Aufbau, externe Schnitt-stelle, bei S7-300 und S7-400

1000 bis 32767 Parameter für K-Bus-Baugruppen

Default-einstellungen

Welche Baugrup-pen können para-metriert werden?

Einstellen undLaden derParameter

Systemdaten-bausteine

Einstellen von Systemparametern

Page 103: Systemsoftware für S7-300/400, Programmentwurf · iii Systemsoftware für S7-300/400 Programmentwurf C79000-G7000-C506-01 Vorwort Dieses Handbuch informiert Sie über die verschiedenen

8-3Systemsoftware für S7-300/400 ProgrammentwurfC79000-G7000-C506-01

Die Baugruppenparameter werden eingeteilt in Parameterblöcke. WelcheParameterblöcke auf welcher CPU verfügbar sind, entnehmen Sie bitte denCPU-Beschreibungen /70/ und /101/.

Zu den folgenden Themen existieren Parameterblöcke:

� Anlaufverhalten

� Zyklus

� MPI

� Diagnose

� Remanenz

� Taktmerker

� Alarmbehandlung

� On-Board-Peripherie (nur für S7-300)

� Schutzstufe

� Lokaldaten

� Echtzeituhr

� Asynchronfehler

Außer der Parametrierung mit STEP 7 gibt es noch die Möglichkeit, mitHilfe von Systemfunktionen Baugruppenparameter vom S7-Programm aus zuändern. Tabelle 8-2 zeigt, welche SFCs welche Baugruppenparameter über-tragen (siehe auch Abschnitt 6.2).

Tabelle 8-2 Systemfunktionen für den Zugriff auf Datensätze

SFC Anwendung

SFC 55 WR_PARM Übertragen der änderbaren Parameter (Datensatz 1) zur adres-sierten Signalbaugruppe.

SFC 56WR_DPARM

Übertragen der Parameter (Datensatz 0 oder 1) aus den SDBs100 bis 129 zur adressierten Signalbaugruppe.

SFC 57PARM_MOD

Übertragen aller Parameter (Datensätze 0 und 1) aus den SDBs100 bis 129 zur adressierten Signalbaugruppe.

SFC 58 WR_REC Übertragen eines beliebigen Datensatzes zur adressierten Si-gnalbaugruppe

Die Systemfunktionen sind ausführlich beschrieben im Referenzhandbuch/235/.

Welche Baugruppenparameter dynamisch änderbar sind, entnehmen Sie bitteden Handbüchern /70/, /71/ bzw. /101/.

Was kann para-metriert werden?

Parametrieren mitSFCs

Einstellen von Systemparametern

Page 104: Systemsoftware für S7-300/400, Programmentwurf · iii Systemsoftware für S7-300/400 Programmentwurf C79000-G7000-C506-01 Vorwort Dieses Handbuch informiert Sie über die verschiedenen

8-4Systemsoftware für S7-300/400 Programmentwurf

C79000-G7000-C506-01

8.2 Nutzen der Uhrzeitfunktionen

Alle S7-300-/S7-400-CPUs sind mit einer Uhr (Echtzeituhr oder Software-Uhr) ausgestattet. Die Uhr kann im Automatisierungssystem sowohl als Uhr-zeitmaster als auch als Slave mit externer Synchronisation fungieren. Sieermöglicht die Verwendung von Uhrzeitalarmen und Betriebsstundenzählern.

Die Uhr zeigt immer Uhrzeit (Mindestauflösung 1 s) und Datum mitWochentag an. Bei einigen CPUs ist auch die Anzeige von Millisekundenmöglich (siehe CPU-Beschreibungen /70/ und /101/).

Sie stellen die Uhrzeit und das Datum der CPU-Uhr mit dem Aufruf derSFC 0 SET_CLK aus dem Anwenderprogramm oder über Menübefehl vomPG aus und starten damit die Uhr. Mit der SFC 1 READ_CLK oder überMenübefehl vom PG aus lesen Sie das aktuelle Datum und die Uhrzeit derCPU aus.

Ist in einem Netz mehr als eine Baugruppe mit Uhr vorhanden, müssen Siedurch Parametrieren mit STEP 7 einstellen, welche CPU bei derSynchronisation der Uhrzeit als Master und welche als Slave fungieren soll.Durch Parametrierung stellen Sie außerdem ein, ob die Synchronisierungüber den K-Bus oder über die MPI-Schnittstelle erfolgen soll und in welchenIntervallen die automatische Synchronisierung erfolgen soll.

Um sicherzustellen, daß die Uhrzeit aller Baugruppen im Netz überein-stimmt, werden die Slave-Uhren vom Systemprogramm in regelmäßigen(parametrierbaren) Abständen synchronisiert. Mit der SystemfunktionSFC 48 SNC_RTCB können Sie Datum und Uhrzeit von der Master-Uhr andie Slave-Uhren übertragen.

Ein Betriebsstundenzähler zählt die Einschaltzeiten eines angeschlossenenBetriebsmittels oder die Betriebsdauer der CPU als Summe der Betriebs-stunden.

Im Betriebszustand STOP wird der Betriebsstundenzähler angehalten. SeinWert bleibt auch nach Urlöschen erhalten. Bei Neustart muß der Betriebs-stundenzähler vom Anwenderprogramm wieder gestartet werden, bei Wieder-anlauf läuft er automatisch weiter, wenn er vorher gestartet war.

Mit der SFC 2 SET_RTM können Sie den Betriebsstundenzähler auf einenAnfangswert setzen. Mit der SFC 3 CTRL_RTM können Sie den Betriebs-stundenzähler starten oder stoppen. Mit der SFC 4 READ_RTM können Siedie aktuelle Anzahl der Betriebsstunden und den Zustand des Zählers(”gestoppt” oder ”zählt”) auslesen.

Eine CPU kann bis zu 8 Betriebsstundenzähler haben (siehe CPU-Beschrei-bungen /70/ und /101/). Die Numerierung beginnt bei 0.

Übersicht

Uhrzeitformat

Stellen und Lesender Uhrzeit

Parametrieren derUhr

Synchronisierender Uhrzeit

Einsetzen einesBetriebsstunden-zählers

Einstellen von Systemparametern

Page 105: Systemsoftware für S7-300/400, Programmentwurf · iii Systemsoftware für S7-300/400 Programmentwurf C79000-G7000-C506-01 Vorwort Dieses Handbuch informiert Sie über die verschiedenen

8-5Systemsoftware für S7-300/400 ProgrammentwurfC79000-G7000-C506-01

8.3 Bestimmen des Anlaufverhaltens

Das Anlaufverhalten der S7-CPUs ist beschrieben in Kapitel 9. Beachten Siebei der Parametrierung des Anlaufverhaltens, daß nur S7-400-CPUs die An-laufart Wiederanlauf kennen.

Bei S7-300-CPUs ist nur manueller Neustart möglich

Bei S7-400-CPUs können Sie mit dem Betriebsartenschalter und demAnlaufartenschalter (CRST/WRST) einen manuellen Wiederanlauf durch-führen, wenn dies bei der Parametrierung mit STEP 7 so festgelegt wurde.Manueller Neustart ist ohne Parametrierung möglich.

Bei S7-300-CPUs ist nach NETZ-EIN nur NEUSTART möglich.

Bei S7-400-CPUs können Sie festlegen, ob ein automatischer Anlauf nachNETZ-EIN zu einem NEUSTART oder einem WIEDERANLAUF führt.

Beim Wiederanlauf einer S7-400-CPU wird nach der Bearbeitung des Rest-zyklus defaultmäßig das Prozeßabbild der Ausgänge gelöscht. Sie können dasLöschen des Prozeßabbildes abwählen, wenn das Anwenderprogramm nachWiederanlauf mit den Werten weiterarbeiten soll, die vor dem Wiederanlaufaktuell waren (siehe auch Bild 9-2).

Sie können bei S7-300-CPUs durch Parametrierung festlegen, ob die CPUbeim Neustart ihr internes RAM testen soll.

Sie können durch Parametrierung festlegen, daß vor dem Anlauf überprüftwird, ob alle Baugruppen, die in der Konfigurationstabelle aufgeführt sind,tatsächlich gesteckt sind und der Baugruppentyp stimmt.

Ist die Baugruppenüberprüfung aktiviert, wird der Anlauf nicht durchgeführt,wenn ein Soll-Ist-Unterschied festgestellt wird.

Um einen fehlerfreien Anlauf des Automatisierungssystems zu gewährleisten,können Sie die folgenden Überwachungszeiten parametrieren:

� die maximal zulässige Zeit für die Übertragung der Parameter zu denBaugruppen

� die maximal zulässige Zeit für die Fertigmeldung der Baugruppen nachNETZ-EIN

� bei S7-400-CPUs die maximale Unterbrechungszeit in der noch einWiederanlauf zulässig ist.

Nach Ablauf der Überwachungszeiten geht die CPU in STOP, bzw. ist nurNeustart möglich.

Einleitung

Anlaufart nachmanuellem Anlauf

Anlaufart nachautomatischemAnlauf

Löschen desProzeßabbilds

Selbsttest beiNeustart

Soll-Ist-Baugrup-penüberwachung

Überwachungs-zeiten

Einstellen von Systemparametern

Page 106: Systemsoftware für S7-300/400, Programmentwurf · iii Systemsoftware für S7-300/400 Programmentwurf C79000-G7000-C506-01 Vorwort Dieses Handbuch informiert Sie über die verschiedenen

8-6Systemsoftware für S7-300/400 Programmentwurf

C79000-G7000-C506-01

8.4 Parametrieren des Zyklus

Die Zykluszeit ist die Zeit, die die CPU bei der Bearbeitung des zyklischenProgramms sowie aller diesen Zyklus unterbrechenden Programmteile (z.B.Bearbeitung von Prozeßalarmen) und Systemtätigkeiten benötigt. Diese Zeitwird überwacht.

Sie können mit STEP 7 die voreingestellte Maximalzykluszeit ändern. Istdiese Zeit abgelaufen, geht entweder die CPU in STOP, oder es wird derOB 80 aufgerufen, in dem Sie festlegen können, wie die CPU auf den Zeit-fehler reagieren soll.

Sie können mit STEP 7 bei S7-400-CPUs eine Mindestzykluszeit einstellen.Dies ist sinnvoll, wenn

� die Zeitabstände zwischen den Starts der Programmbearbeitung des OB 1(Freier Zyklus) gleichlang sein sollen oder

� bei zu kurzer Zykluszeit die Aktualisierung der Prozeßabbilder unnötigoft erfolgen würde.

Bild 8-1 zeigt die Funktion der Zyklusüberwachungszeit im Programmablauf.

Tmax ist die einstellbare MaximalzykluszeitTmin ist die einstellbare MindestzykluszeitTz ist die tatsächliche ZykluszeitTwart ist die Differenz zwischen Tmin und tatsächlicher Zykluszeit,

in dieser Zeit können Alarm-OBs bearbeitet werdenPK bedeutet Prioritätsklasse

Aktueller Zyklus Nächster Zyklus

OB10 OB10

OB40

PK07

PK01

TZ

Tmin

Tmax

Twart

PK16

OB1 OB1Prozeßabbild-aktualisierungder Eingänge

Prozeßabbild-aktualisierungder Ausgänge

Prozeßabbild-aktualisierungder Eingänge

OB1

Reserve

Bild 8-1 Zyklusüberwachungszeit

Zykluszeit

Maximalzykluszeit

Mindestzykluszeit

Einstellen von Systemparametern

Page 107: Systemsoftware für S7-300/400, Programmentwurf · iii Systemsoftware für S7-300/400 Programmentwurf C79000-G7000-C506-01 Vorwort Dieses Handbuch informiert Sie über die verschiedenen

8-7Systemsoftware für S7-300/400 ProgrammentwurfC79000-G7000-C506-01

Bei der zyklischen Programmbearbeitung der CPU wird automatisch dasProzeßabbild aktualisiert. Sie können bei S7-400-CPUs die Aktualisierungdes Prozeßabbildes abwählen, wenn Sie

� stattdessen direkt auf die Peripherie zugreifen wollen oder

� ein oder mehrere Prozeßabbilder der Ein- und Ausgänge zu einemanderen Zeitpunkt mit Hilfe der Systemfunktionen SFC 26 UPDAT_PIund SFC 27 UPDAT_PO aktualisieren wollen.

Um zu verhindern, daß Kommunikationsvorgänge die zyklische Programm-bearbeitung zu sehr belasten, können Sie über Parametrierung die maximalzulässige Belastung des Zyklus durch die Kommunikation festlegen.

Bei der Bestimmung der Zyklusbelastung durch Kommunikation ist zu be-achten, daß die Betriebssystembearbeitungszeit eine zusätzliche Laufzeitver-längerung bedeutet. Eine eingestellte Kommunikationslast von 50% führtnicht zu einer Verlängerung der Gesamtlaufzeit auf das Doppelte der ur-sprünglichen Laufzeit, sondern auf einen höheren Wert, welcher CPU-abhän-gig ist. Dies soll an einem Beispiel verdeutlicht werden (Zur besseren Ver-deutlichung wurde ein ”Worst-Case-Beispiel” gewählt.).

Annahmen:

� Die Betriebssystembearbeitungszeit betrage 250 ms pro Sekunde Zyklus-laufzeit

� Das Anwenderprogramm habe eine Laufzeit von 750 ms

� Die Belastung des Zyklus durch Kommunikation betrage 0%

Ein Zyklus läßt sich vereinfacht wie folgt darstellen:

0 1 2 3

Gesamtzykluszeit = 1000 ms

Besy = Laufzeitbelastung durch BetriebssystemAwp. = Laufzeitbelastung durch Anwenderprogramm

Besy250 ms

Awp.750 ms

Besy250 ms

Awp.750 ms

Besy250 ms

Awp.750 ms

ts

Nun wird die Belastung des Zyklus durch Kommunikation auf 50% einge-stellt:

� Die Betriebssystembearbeitungszeit beträgt weiterhin 250 ms pro Se-kunde Zykluslaufzeit

� Das Anwenderprogramm läuft weiterhin 750 ms

� Die Laufzeitbelastung durch Kommunikation beträgt 1500 ms pro Zyklus

Aktualisierung desProzeßabbilds

Kommunikations-last

Einstellen von Systemparametern

Page 108: Systemsoftware für S7-300/400, Programmentwurf · iii Systemsoftware für S7-300/400 Programmentwurf C79000-G7000-C506-01 Vorwort Dieses Handbuch informiert Sie über die verschiedenen

8-8Systemsoftware für S7-300/400 Programmentwurf

C79000-G7000-C506-01

Hieraus ergibt sich folgender Zeitverlauf:

0 1 2 3

Gesamtzykluszeit = 3000 msKommunikation = 1500 ms

Besy = Laufzeitbelastung durch Betriebssystem

Awp. = Laufzeitbelastung durch Anwenderprogramm

Besy250 ms

Awp.250 ms

Besy250 ms

Awp.250 ms

Besy250 ms

Awp.250 ms

ts

Komm. = Laufzeitbelastung durch Kommunikation

Komm.500 ms

Komm.500 ms

Komm.500 ms

In diesem Beispiel würde sich bei einer eingestellten Kommunikationslastvon 50% eine Zykluszeitverlängerung von 1s auf 3s ergeben, d. h. die Ge-samtzykluszeit würde sich verdreifachen.

Einstellen von Systemparametern

Page 109: Systemsoftware für S7-300/400, Programmentwurf · iii Systemsoftware für S7-300/400 Programmentwurf C79000-G7000-C506-01 Vorwort Dieses Handbuch informiert Sie über die verschiedenen

8-9Systemsoftware für S7-300/400 ProgrammentwurfC79000-G7000-C506-01

8.5 Festlegen der MPI-Parameter

An die mehrpunktfähige Schnittstelle (MPI) einer CPU können bis zu 32Geräte angeschlossen werden, die miteinander kommunizieren:

� Automatisierungssysteme

� PGs

� Bedien- und Beobachtungssysteme.

Um die Kommunikationsfähigkeit einer urgelöschten CPU zu erhalten,werden die MPI-Parameter in einem remanenten Speicherbereich der CPUabgelegt und bleiben nach dem Urlöschen bzw. Ziehen/Stecken oder beiBatteriedefekt sowie im ungepufferten Betrieb erhalten.

Durch die Parametrierung mit STEP 7 legen Sie fest:

� die Teilnehmeradresse der CPU

� den Ausbau des MPI-Netzes (höchste Teilnehmeradresse im MPI-Netz,Defaulteinstellung 16).

MehrpunktfähigeSchnittstelle

Werte nachUrlöschen

Einstellen derParameter

Einstellen von Systemparametern

Page 110: Systemsoftware für S7-300/400, Programmentwurf · iii Systemsoftware für S7-300/400 Programmentwurf C79000-G7000-C506-01 Vorwort Dieses Handbuch informiert Sie über die verschiedenen

8-10Systemsoftware für S7-300/400 Programmentwurf

C79000-G7000-C506-01

8.6 Festlegen remanenter Speicherbereiche

Um Datenverlust bei Neustart (bei S7-300-CPUs auch bei Spannungsausfall)zu vermeiden, können Sie bestimmte Datenbereiche remanent erklären.

Eine ausführliche Beschreibung remanenter Speicherbereiche bei S7-300-und S7-400-CPUs entnehmen Sie bitte Kapitel 5.

Durch die Parametrierung mit STEP 7 legen Sie die Grenzen der einzelnenRemanenzbereiche fest

� für S7-300 Remanenzbereiche für Merker, Zeiten, Zähler und Bereiche inDatenbausteinen

� für S7-400-CPUs Remanenzbereiche für Merker, Zeiten und Zähler.

Nutzen

Einstellen derParameter

Einstellen von Systemparametern

Page 111: Systemsoftware für S7-300/400, Programmentwurf · iii Systemsoftware für S7-300/400 Programmentwurf C79000-G7000-C506-01 Vorwort Dieses Handbuch informiert Sie über die verschiedenen

8-11Systemsoftware für S7-300/400 ProgrammentwurfC79000-G7000-C506-01

8.7 Verwenden von Taktmerkern und Zeiten

Ein Taktmerker ist ein Merker, der seinen Binärzustand periodisch im Puls-Pausen-Verhältnis 1:1 ändert. Welches Merkerbyte der CPU zum Taktmerker-byte wird, bestimmen Sie bei der Parametrierung des Taktmerkers mitSTEP 7.

Taktmerker können Sie im Anwenderprogramm verwenden, um z. B. Leucht-melder mit Blinklicht anzusteuern oder periodisch wiederkehrende Vorgänge(etwa das Erfassen eines Istwertes) anzustoßen.

Jedem Bit des Taktmerkerbyte ist eine Frequenz zugeordnet. Tabelle 8-3zeigt die Zuordnung:

Tabelle 8-3 Mögliche Frequenzen eines Taktmerkers

Bit 7 6 5 4 3 2 1 0

Periodendauer (s) 2,0 1,6 1,0 0,8 0,5 0,4 0,2 0,1

Frequenz (Hz) 0,5 0,625 1 1,25 2 2,5 5 10

Hinweis

Taktmerker laufen asynchron zum CPU-Zyklus, d. h. in langen Zyklen kannsich der Zustand des Taktmerkers mehrfach ändern.

Zeiten sind ein Speicherbereich des Systemspeichers. Die Funktion einer Zeitwird durch das Anwenderprogramm festgelegt (z. B. Einschaltverzögerung).

Die Anzahl der verfügbaren Zeiten ist CPU-abhängig (siehe /70/ und /101/).Wenn Sie im Anwenderprogramm weniger Zeiten einsetzen als prinzipiellzur Verfügung stehen, können Sie bei der Parametrierung festlegen, daß nurdiese Anzahl von Zeiten in den Betriebszuständen ANLAUF und RUN aktu-alisiert werden sollen. Dadurch wird die Betriebssystemlaufzeit optimiert.

Hinweis

Wenn Sie in Ihrem Anwenderprogramm mehr Zeiten einsetzen, als die CPUzuläßt, wird ein synchroner Fehler gemeldet und OB 121 gestartet.

Wenn Sie in Ihrem Anwenderprogramm mehr Zeiten einsetzen, als Sieparametriert haben, wird kein Fehler gemeldet, aber die Zeiten laufen nicht.Ob eine Zeit läuft, können Sie mit STEP 7-Testfunktionen überprüfen.

Bei S7-300 können Zeiten nur im OB 1 und im OB 100 gleichzeitig gestartetund aktualisiert werden, in allen anderen OBs können Zeiten nur gestartetwerden.

Taktmerker

Nutzen

MöglicheFrequenzen

Zeiten

Einstellen von Systemparametern

Page 112: Systemsoftware für S7-300/400, Programmentwurf · iii Systemsoftware für S7-300/400 Programmentwurf C79000-G7000-C506-01 Vorwort Dieses Handbuch informiert Sie über die verschiedenen

8-12Systemsoftware für S7-300/400 Programmentwurf

C79000-G7000-C506-01

8.8 Ändern der Prioritätsklassen und der Anzahl der Lokaldaten

Bei S7-400-CPUs können Sie die Priorität einiger Alarm-OBs durchParametrierung ändern. So können Sie festlegen, welche Alarm-OBs durchhöherpriore Alarm-OBs unterbrochen werden dürfen.

Die Prioritätsklassen der folgenden OBs können Sie nicht ändern:

� Freier Zyklus OB 1

� Hintergrund OB 90

� Anlaufarten OB 100 und OB 101

� Multicomputing OB 60

� Asynchronfehler OB 80 bis 87.

� Fehler-OBs, die bei synchronen Fehlern gestartet werden, werden in der-selben Prioritätsklasse bearbeitet wie der Baustein, der beim Erkennendes Fehlers bearbeitet wurde.

Die voreingestellte Priorität der Alarm-OBs, bei denen eine Änderungzulässig ist, können Sie mit STEP 7 in den Parameterblöcken: Uhrzeitalarme,Verzögerungsalarme, Weckalarme und Prozeßalarme ändern (siehe auch Ab-schnitt 3.1).

Beim Erstellen von Codebausteinen (OBs, FCs, FBs) können Sie temporäreLokaldaten vereinbaren. Der in der CPU zur Verfügung stehende Lokaldaten-bereich wird unter den Prioritätsklassen aufgeteilt.

Bei S7-400-CPUs können Sie mit STEP 7 im Parameterblock ”Prioritäts-klassen” die Anzahl der Lokaldaten pro Prioritätsklasse abändern. Jeder OBmuß über mindestens 20 Lokaldatenbyte verfügen; dies ist der Speicher-bedarf, der für die Übergabe der OB-Startinformation benötigt wird.

Wählen Sie die Prioritätsklassen 0 oder ordnen Sie einer Prioritätsklasseweniger als 20 Byte Lokaldaten zu, wird der entsprechende Alarm-OBabgewählt. Abgewählte Alarm-OBs können:

� im Betriebszustand RUN nicht kopiert bzw. in Ihr Anwenderprogrammeingebunden werden.

� im Betriebszustand STOP zwar kopiert bzw. in Ihr Anwenderprogrammeingebunden werden, führen jedoch beim Neustart der CPU zum Abbruchdes Anlaufs und erzeugen einen Eintrag in den Diagnosepuffer.

Durch das Abwählen nicht benötigter Alarm-OBs wird der zur Verfügungstehende freie Lokaldatenbereich größer und kann für die Speicherungtemporärer Daten in anderen Prioritätsklassen genutzt werden.

Einleitung

Feste Prioritäts-klassen

Ändern derPriorität

Lokaldaten

Ändern der Anzahlder Lokaldaten

Abgewählte Alarm-OBs

Nutzen

Einstellen von Systemparametern

Page 113: Systemsoftware für S7-300/400, Programmentwurf · iii Systemsoftware für S7-300/400 Programmentwurf C79000-G7000-C506-01 Vorwort Dieses Handbuch informiert Sie über die verschiedenen

9-1Systemsoftware für S7-300/400 ProgrammentwurfC79000-G7000-C506-01

Betriebszustände und Übergänge

Dieses Kapitel gibt Ihnen eine Übersicht über die Betriebszustände derS7-CPUs und beschreibt die verschiedenen Anlaufarten bei S7-CPUs.

Außerdem erfahren Sie, wie Sie das Betriebsystem beim Testen desAnwenderprogramms unterstützt.

Im Kapitel finden Sie auf Seite

9.1 Betriebszustände und Übergänge 9-2

9.2 Betriebszustand STOP 9-5

9.3 Betriebszustand ANLAUF 9-6

9.4 Betriebszustand RUN 9-12

9.5 Betriebszustand HALT 9-13

9.6 Testen des Anwenderprogramms 9-14

Was beschreibtdieses Kapitel?

Kapitelübersicht

9

Page 114: Systemsoftware für S7-300/400, Programmentwurf · iii Systemsoftware für S7-300/400 Programmentwurf C79000-G7000-C506-01 Vorwort Dieses Handbuch informiert Sie über die verschiedenen

9-2Systemsoftware für S7-300/400 Programmentwurf

C79000-G7000-C506-01

9.1 Betriebszustände und Übergänge

Betriebszustände beschreiben das Verhalten der CPU zu jedem beliebigenZeitpunkt. Das Wissen über die Betriebszustände der CPUs ist nützlich fürdie Programmierung des Anlaufs, den Test der Steuerung sowie für dieFehlerdiagnose. Bild 9-1 zeigt die Betriebszustände der S7-300- undS7-400-CPUs: STOP, ANLAUF, RUN und HALT.

ANLAUFSTOP RUN1.

2.

3.

7.

8.

HALT

4.5.

6.

9.10.

Bild 9-1 Wechsel der Betriebszustände

Im Betriebszustand STOP prüft die CPU ob alle konfigurierten bzw. überDefault-Adressierung eingesetzten Baugruppen vorhanden sind und setzt diePeripherie in einen vordefinierten Grundzustand. Das Anwenderprogrammwird im Betriebszustand STOP nicht bearbeitet.

Im Betriebszustand ANLAUF unterscheidet man zwischen den AnlaufartenNeustart und Wiederanlauf:

� Bei Neustart wird die Programmbearbeitung am Programmanfang miteiner ”Grundstellung” der Systemdaten und der Anwenderoperanden-bereiche neu begonnen (die nicht remanenten Zeiten, Zähler und Merkerwerden zurückgesetzt).

� Bei Wiederanlauf wird die Programmbearbeitung an der unterbrochenenStelle fortgesetzt (Zeiten, Zähler und Merker werden nicht zurückgesetzt).Wiederanlauf ist nur bei S7-400-CPUs möglich.

Im Betriebszustand RUN bearbeitet die CPU das Anwenderprogramm,aktualisiert die Ein- und Ausgänge, bearbeitet Alarme und Fehlermeldungen.

Im Betriebszustand HALT wird die Bearbeitung des Anwenderprogrammsangehalten, und Sie können das Anwenderprogramm schrittweise testen. DerBetriebszustand HALT kann nur beim Testen mit dem PG erreicht werden.

In all diesen Betriebszuständen ist die CPU über die MPI-Schnittstellekommunikationsfähig.

Betriebszustände

Betriebszustände und Übergänge

Page 115: Systemsoftware für S7-300/400, Programmentwurf · iii Systemsoftware für S7-300/400 Programmentwurf C79000-G7000-C506-01 Vorwort Dieses Handbuch informiert Sie über die verschiedenen

9-3Systemsoftware für S7-300/400 ProgrammentwurfC79000-G7000-C506-01

Ist die CPU nicht betriebsbereit, befindet sie sich in einem der beidenBetriebszustände:

� Spannungslos, d.h. die Netzspannung ist ausgeschaltet.

� Defekt, d.h. es ist ein nicht behebbarer Fehler aufgetreten. Überprüfen Sie, ob die CPU tatsächlich defekt ist: Setzen Sie die CPU aufSTOP, und schalten Sie den Netzschalter aus und wieder ein. Wenn dieCPU anläuft, lesen Sie den Diagnosepuffer aus, um den Fehler zuanalysieren. Wenn die CPU nicht anläuft, muß sie ausgetauscht werden.

Tabelle 9-1 zeigt unter welchen Bedingungen Betriebszustände wechselnkönnen.

Tabelle 9-1 Wechsel der Betriebszustände der CPU (Erläuterung zu Bild 9-1)

Punkt Beschreibung

1. Nach dem Einschalten der Versorgungsspannung befindet sich dieCPU im Betriebszustand STOP.

2. Die CPU geht in den Betriebszustand ANLAUF� nachdem die CPU über Schlüsselschalter oder vom PG aus in

RUN oder RUN-P gebracht wurde oder� nach automatischer Auslösung einer Anlaufart durch NETZ-EIN.Der Schlüsselschalter muß in beiden Fällen auf RUN oder RUN-Pstehen.

3. Die CPU geht wieder in den STOP-Zustand, wenn� während des Anlaufs ein Fehler erkannt wird� die CPU über Schlüsselschalter oder vom PG aus auf STOP ge-

setzt wird� ein Stopp-Befehl im Anlauf-OB bearbeitet wird oder� die Kommunikationsfunktion STOP ausgeführt wird.

4. Die CPU geht in den Betriebszustand HALT, wenn imAnlaufprogramm ein Haltepunkt erreicht wird.

5. Die CPU geht in den Betriebszustand ANLAUF, wenn der Haltepunktin einem Anlaufprogramm gesetzt war und der Befehl ”HALTVERLASSEN” ausgeführt wird (Testfunktion).

6. Die CPU geht wieder in den STOP-Zustand, wenn� die CPU über Schlüsselschalter oder vom PG aus auf STOP ge-

setzt wird oder� der Kommunikationsbefehl STOP ausgeführt wird.

7. Ist der Anlauf erfolgreich, dann wechselt die CPU in RUN.

8. Die CPU geht wieder in den STOP-Zustand, wenn� im RUN-Zustand ein Fehler erkannt wird und der zugehörige OB

nicht geladen ist� die CPU über Schlüsselschalter oder vom PG aus auf STOP ge-

setzt wird� ein Stopp-Befehl im Anwenderprogramm bearbeitet wird oder� die Kommunikationsfunktion STOP ausgeführt wird.

9. Die CPU geht in den Betriebszustand HALT, wenn imAnwenderprogramm ein Haltepunkt erreicht wird.

10. Die CPU geht in den Betriebszustand RUN, wenn ein Haltepunktgesetzt war und der Befehl ”HALT VERLASSEN” ausgeführt wird.

Weitere Betriebs-zustände

Betriebszustands-übergänge

Betriebszustände und Übergänge

Page 116: Systemsoftware für S7-300/400, Programmentwurf · iii Systemsoftware für S7-300/400 Programmentwurf C79000-G7000-C506-01 Vorwort Dieses Handbuch informiert Sie über die verschiedenen

9-4Systemsoftware für S7-300/400 Programmentwurf

C79000-G7000-C506-01

Werden mehrere Betriebszustandswechsel gleichzeitig angefordert, wird inden Betriebszustand mit der höchsten Priorität gewechselt. Steht z.B. derBetriebsartenschalter auf RUN, und vom PG aus wird versucht, die CPU inSTOP zu schalten, geht die CPU in STOP, weil dieser Betriebszustand diehöchste Priorität hat.

Priorität Betriebszustand

Höchste STOP

HALT

ANLAUF

Niedrigste RUN

Priorität derBetriebszustände

Betriebszustände und Übergänge

Page 117: Systemsoftware für S7-300/400, Programmentwurf · iii Systemsoftware für S7-300/400 Programmentwurf C79000-G7000-C506-01 Vorwort Dieses Handbuch informiert Sie über die verschiedenen

9-5Systemsoftware für S7-300/400 ProgrammentwurfC79000-G7000-C506-01

9.2 Betriebszustand STOP

Im Betriebszustand STOP wird das Anwenderprogramm nicht bearbeitet.Alle Ausgänge werden auf Ersatzwerte gesetzt und damit der gesteuerteProzeß in einen sicheren Betriebszustand gebracht. Die CPU prüft, ob

� Hardwareprobleme vorliegen (z. B. Baugruppen nicht verfügbar sind)

� für die CPU die Defaulteinstellung gelten soll oder Parametersätzevorliegen

� die Randbedingungen für das programmierte Anlaufverhalten stimmen

� Systemsoftwareprobleme vorliegen.

Im STOP-Zustand können auch Globaldaten empfangen werden, und es kannpassiv einseitige Kommunikation über Kommunikations-SFBs für projek-tierte Verbindungen und über Kommunikations-SFCs für nichtprojektierteVerbindungen ausgeführt werden (siehe auch Tabelle 9-5).

Im STOP-Zustand kann die CPU urgelöscht werden. Urlöschen kann manuellüber den Schlüsselschalter (MRES) oder vom PG aus (z.B. vor dem Ladeneines Anwenderprogramms) erfolgen.

Durch Urlöschen wird die CPU in den ”Urzustand” versetzt, d.h.

� das gesamte Anwenderprogramm im Arbeitsspeicher und im RAM-Ladespeicher sowie alle Operandenbereiche werden gelöscht.

� die Systemparameter sowie die CPU- und Baugruppenparameter werdenauf die Defaulteinstellung zurückgesetzt. Die vor dem Urlöscheneingestellten MPI-Parameter bleiben erhalten.

� wenn eine Memory Card (Flash-EPROM) gesteckt ist, kopiert die CPUdas Anwenderprogramm aus der Memory Card in den Arbeitsspeicher(inkl. CPU- und Baugruppenparameter, falls die entsprechendenKonfigurationsdaten sich ebenfalls auf der Memory Card befinden).

Der Diagnosepuffer, die MPI-Parameter, die Uhrzeit und der Betriebs-stundenzähler werden nicht zurückgesetzt.

Merkmale

Urlöschen

Betriebszustände und Übergänge

Page 118: Systemsoftware für S7-300/400, Programmentwurf · iii Systemsoftware für S7-300/400 Programmentwurf C79000-G7000-C506-01 Vorwort Dieses Handbuch informiert Sie über die verschiedenen

9-6Systemsoftware für S7-300/400 Programmentwurf

C79000-G7000-C506-01

9.3 Betriebszustand ANLAUF

Bevor die CPU nach dem Einschalten mit der Bearbeitung des Anwender-programms beginnt, wird ein Anlaufprogramm bearbeitet. Im Anlauf-programm können Sie durch entsprechende Programmierung von Anlauf-OBs bestimmte Voreinstellungen für Ihr zyklisches Programm festlegen.

Es gibt zwei Anlaufarten: Neustart und Wiederanlauf (S7-300-CPUs kennennur Neustart). Ein Wiederanlauf ist grundsätzlich nur möglich, wenn dies imParametersatz der CPU mit STEP 7 festgelegt wurde. Im Betriebszustand ANLAUF:

� wird das Programm im Anlauf-OB (OB 100 für Neustart und OB 101 fürWiederanlauf) abgearbeitet

� ist keine zeit- und alarmgesteuerte Programmbearbeitung möglich

� werden die Zeiten aktualisiert

� läuft der Betriebsstundenzähler

� sind die Digitalausgänge auf Signalbaugruppen gesperrt, können aberüber Direktzugriff gesetzt werden.

Ein Neustart ist immer zulässig, es sei denn, vom System wurde Urlöschenangefordert. In folgenden Fällen ist nur Neustart möglich, nach:

� Urlöschen

� dem Laden des Anwenderprogramms im STOP-Zustand der CPU

� USTACK/BSTACK-Überlauf

� Neustart-Abbruch (durch NETZ-AUS oder über Betriebsartenschalter)

� Überschreiten der parametrierten Unterbrechungszeitgrenze für Wieder-anlauf.

Ein manueller Neustart kann ausgelöst werden:

� über den Betriebsartenschalter

Der Schalter CRST/WRST muß auf CRST stehen.

� über Menübefehl vom PG aus bzw. über Kommunikationsfunktionen(wenn der Betriebsartenschalter auf RUN oder RUN-P steht)

Ein automatischer Neustart kann ausgelöst werden bei NETZ-EIN, wenn:

� die CPU bei NETZ-AUS nicht im STOP war

� der Betriebsartenschalter auf RUN oder RUN-P steht

� kein automatischer Wiederanlauf nach NETZ-EIN parametriert ist

� die CPU im Neustart durch Netzausfall unterbrochen wurde (unabhängigvon der Parametrierung der Anlaufart).

Der Schalter CRST/WRST ist bei automatischem Neustart wirkungslos.

Merkmale

Neustart

Manueller Neustart

AutomatischerNeustart

Betriebszustände und Übergänge

Page 119: Systemsoftware für S7-300/400, Programmentwurf · iii Systemsoftware für S7-300/400 Programmentwurf C79000-G7000-C506-01 Vorwort Dieses Handbuch informiert Sie über die verschiedenen

9-7Systemsoftware für S7-300/400 ProgrammentwurfC79000-G7000-C506-01

Wird Ihre CPU ohne Pufferbatterie betrieben (falls wartungsfreier Betriebnotwendig ist), wird nach dem Einschalten oder bei Spannungswiederkehrnach NETZ-AUS die CPU automatisch urgelöscht und anschließend einNeustart durchgeführt. Das Anwenderprogramm muß auf Flash-EPROM(Memory Card) vorhanden sein.

Nach Spannungsausfall im RUN und anschließender Spannungswiederkehrdurchlaufen S7-400-CPUs eine Initialisierungsroutine und führen dannautomatisch einen Wiederanlauf durch. Bei einem Wiederanlauf wird dasAnwenderprogramm an der Stelle fortgesetzt, an der die Bearbeitung unter-brochen wurde. Der Teil des Anwenderprogramms, der vor Netzausfall nichtmehr bearbeitet wurde, wird als Restzyklus bezeichnet (siehe auch Bild 9-2).Der Restzyklus kann auch zeit- und alarmgesteuerte Programmteileenthalten.

Ein Wiederanlauf ist prinzipiell nur zulässig, wenn das Anwenderprogrammim STOP-Zustand nicht verändert wurde (z. B. durch Nachladen einesgeänderten Bausteins) bzw. wenn nicht aus anderen Gründen Neustarterforderlich ist (siehe dort). Man unterscheidet zwischen manuellem undautomatischem Wiederanlauf.

Ein manueller Wiederanlauf ist nur möglich bei entsprechenderParametrierung im Parametersatz der CPU und nach den folgenden STOP-Ursachen:

� der Betriebsartenschalter wurde von RUN auf STOP gesetzt

� STOP-Zustand vom PG aus herbeigeführt.

Ein manueller Wiederanlauf kann ausgelöst werden:

� über den Betriebsartenschalter

Der Schalter CRST/WRST muß auf WRST stehen.

� über Menübefehl vom PG aus bzw. über Kommunikationsfunktionen(wenn der Betriebsartenschalter auf RUN oder RUN-P steht).

� wenn im Parametersatz der CPU manueller Wiederanlauf nach NETZ-EIN parametriert wurde.

Ein automatischer Wiederanlauf kann ausgelöst werden bei NETZ-EIN,wenn

� die CPU bei NETZ-AUS nicht im STOP war

� der Betriebsartenschalter auf RUN oder RUN-P steht

� im Parametersatz der CPU automatischer Wiederanlauf nach NETZ-EINparametriert wurde.

Der Schalter CRST/WRST ist bei automatischem Wiederanlauf wirkungslos.

UngepufferterautomatischerNeustart

Wiederanlauf

Manueller Wieder-anlauf

AutomatischerWiederanlauf

Betriebszustände und Übergänge

Page 120: Systemsoftware für S7-300/400, Programmentwurf · iii Systemsoftware für S7-300/400 Programmentwurf C79000-G7000-C506-01 Vorwort Dieses Handbuch informiert Sie über die verschiedenen

9-8Systemsoftware für S7-300/400 Programmentwurf

C79000-G7000-C506-01

S7-300- und S7-400-CPUs reagieren unterschiedlich bei Spannungswieder-kehr nach Netzausfall.

S7-300-CPUs kennen nur die Anlaufart Neustart. Mit STEP 7 können Siejedoch die Remanenz von Merkern, Zeiten, Zählern und Bereichen in Daten-bausteinen festlegen, um Datenverlust bei Spannungsausfall zu vermeiden.Bei Spannungswiederkehr erfolgt ein ”automatischer Neustart mitGedächtnis”.

S7-400-CPUs reagieren auf Spannungswiederkehr entweder mit Neustartoder mit Wiederanlauf (abhängig von der Parametrierung).

Die Tabellen 9-2 und 9-3 zeigen das Remanenzverhalten der S7-300- undS7-400-CPUs bei Neustart und Wiederanlauf:

X bedeutet Daten bleiben erhalten

0 bedeutet Daten werden zurückgesetzt bzw. gelöscht (Inhalt von DBs)

V bedeutet Daten werden auf den Vorbesetzungswert aus dem EPROM-Speicher gesetzt

Tabelle 9-2 Remanenzverhalten bei EPROM-Ladespeicher

EPROM (Memory Card oder integriert)

CPU mit Pufferung CPU ohne Pufferung

Daten Code-bau-t i

DB Merker, Zeiten, Zähler Code-bau-t i

DB Merker, Zeiten, Zähler

steine(remanentpara-metriert)

(nichtremanentparametriert)

steine(remanentpara-metriert)

(nichtremanentpara-metriert)

(remanentpara-metriert)

(nichtremanentpara-metriert)

Neustartbei S7-300

X X X 0 X X V X 0

Neustartbei S7-400

X X X 0 V V 0

Wiederan-lauf beiS7-400

X X X Nur Neustart erlaubt

Remanente Daten-bereiche nachNetzausfall

Betriebszustände und Übergänge

Page 121: Systemsoftware für S7-300/400, Programmentwurf · iii Systemsoftware für S7-300/400 Programmentwurf C79000-G7000-C506-01 Vorwort Dieses Handbuch informiert Sie über die verschiedenen

9-9Systemsoftware für S7-300/400 ProgrammentwurfC79000-G7000-C506-01

Tabelle 9-3 Remanenzverhalten bei RAM-Ladespeicher

RAM (Memory Card oder integriert)

CPU mit Pufferung CPU ohne Pufferung

Daten Code-bausteine

DB Merker, Zeiten, Zähler Code-bausteine

DB Merker, Zeiten, Zähler

Neustart beiS7-300

X X X (remanentparametriert)

0 (nichtremanentparametriert)

0 0 0

Neustart beiS7-400

X X X 0 0 0 0

Wiederanlaufbei S7-400

X X X Nur Neustart erlaubt

Welche Tätigkeiten die CPU beim Anlauf durchführt, zeigt Tabelle 9-4:

X bedeutet wird durchgeführt

0 bedeutet wird nicht durchgeführt

Tabelle 9-4 Anlauftätigkeiten

Tätigkeiten in der Bearbeitungsreihenfolge bei Neustart bei Wieder-anlauf

U-Stack/B-Stack löschen X 0

Nicht remanente Merker, Zeiten, Zähler löschen X 0

Prozeßabbild der Ausgänge löschen X parametrierbar

Ausgänge der digitalen Signalbaugruppen löschenX parametrierbar

Prozeßalarme verwerfen X 0

Diagnosealarme verwerfen X X

Systemzustandsliste (SZL) aktualisieren X X

Baugruppenparameter auswerten und an Bau-gruppen übergeben oder Defaultwerte übergeben

X X

Bearbeitung des jeweiligen Anlauf-OB X X

Restzyklus (Teil des Anwenderprogramms, das auf-grund eines NETZ-AUS nicht weiterbearbeitetwerden konnte) bearbeiten

0 X

Prozeßabbild der Eingänge aktualisieren X X

Digitale Ausgänge freigeben (Signal OD aufheben)X X

Anlauftätigkeiten

Betriebszustände und Übergänge

Page 122: Systemsoftware für S7-300/400, Programmentwurf · iii Systemsoftware für S7-300/400 Programmentwurf C79000-G7000-C506-01 Vorwort Dieses Handbuch informiert Sie über die verschiedenen

9-10Systemsoftware für S7-300/400 Programmentwurf

C79000-G7000-C506-01

Treten während des Anlaufs Fehler auf, wird der Anlauf abgebrochen, unddie CPU geht oder bleibt in STOP.

Ein abgebrochener Neustart muß wiederholt werden. Nach einemabgebrochenen Wiederanlauf ist sowohl ein Neustart als auch ein Wieder-anlauf möglich.

Ein Anlauf (Neustart oder Wiederanlauf) wird nicht durchgeführt, oder erwird abgebrochen, wenn

� der Schlüsselschalter der CPU auf STOP steht

� Urlöschen angefordert wird

� eine Memory Card gesteckt ist, deren Anwendungskennung für STEP 7nicht zulässig ist (z.B. STEP5)

� im Einzelprozessorbetrieb mehr als eine CPU gesteckt ist

� wenn das Anwenderprogramm einen OB enthält, den die CPU nicht kenntoder der gesperrt wurde

� nach dem Einschalten der Netzspannung die CPU feststellt, daß nicht alleBaugruppen, die in der mit STEP 7 erstellten Konfigurationstabelleaufgeführt sind, tatsächlich gesteckt sind (Soll-Ist-Vergleich)

� bei der Auswertung der Baugruppenparameter Fehler auftreten.

Ein Wiederanlauf wird auch nicht durchgeführt, oder er wird abgebrochen,wenn

� die CPU zuvor urgelöscht wurde (nach dem Urlöschen ist nur Neustartzulässig)

� die Unterbrechungszeitgrenze überschritten ist (Die Unterbrechungszeitist die Zeit, die nach dem Verlassen des RUN vergeht bis der Anlauf-OBinkl. Restzyklus bearbeitet wurde.)

� die Baugruppenkonfiguration geändert wurde (z.B. Baugruppentausch)

� durch Parametrierung nur Neustart zugelassen ist

� wenn im STOP Bausteine geladen, gelöscht oder geändert wurden.

Abbrechen einesAnlaufs

Betriebszustände und Übergänge

Page 123: Systemsoftware für S7-300/400, Programmentwurf · iii Systemsoftware für S7-300/400 Programmentwurf C79000-G7000-C506-01 Vorwort Dieses Handbuch informiert Sie über die verschiedenen

9-11Systemsoftware für S7-300/400 ProgrammentwurfC79000-G7000-C506-01

Bild 9-2 zeigt die Tätigkeiten der CPU in den Betriebszuständen ANLAUFund RUN.

RUNANLAUFSTOP

Anforderungeines Neustarts

Anforderungeines Wieder-

anlaufs

STOP

Prozeßabbild derEin-/Ausgänge,

Peripherie-ein-/-ausgängeund nicht re-

manente Merker,Zeiten, Zähler

löschen

Neustart-OB

Freigabe der Ausgänge

Wiederanlauf-OB

Restzyklus

Prozeßabbild der Aus-gänge und Peripherie-

ausgänge löschen (parametrierbar)

Unterbrechungszeit-grenze überschritten?

Prozeßabbild derEingänge einlesen

Anwenderpro-gramm bearbeiten

Prozeßabbild derAusgänge ausgeben

nein

ja

Prozeßabbild derAusgänge ausgeben

Bild 9-2 CPU-Tätigkeiten in ANLAUF und RUN

Ablauf

Betriebszustände und Übergänge

Page 124: Systemsoftware für S7-300/400, Programmentwurf · iii Systemsoftware für S7-300/400 Programmentwurf C79000-G7000-C506-01 Vorwort Dieses Handbuch informiert Sie über die verschiedenen

9-12Systemsoftware für S7-300/400 Programmentwurf

C79000-G7000-C506-01

9.4 Betriebszustand RUN

Im Betriebszustand RUN erfolgt die zyklische, zeit- und alarmgesteuerteProgrammbearbeitung:

� das Prozeßabbild der Eingänge wird eingelesen

� das Anwenderprogramm wird abgearbeitet

� das Prozeßabbild der Ausgänge wird ausgegeben.

Der aktive Austausch von Daten zwischen CPUs über die Globaldaten-Kommunikation (Globaldatentabelle) und über Kommunikations-SFBs fürprojektierte Verbindungen und über Kommunikations-SFCs für nichtprojek-tierte Verbindungen ist nur im RUN-Zustand möglich.

Tabelle 9-5 zeigt beispielhaft, wann Datenaustausch in verschiedenenBetriebszuständen möglich ist:

↔ bedeutet Datenaustausch ist in beide Richtungen möglich

→ bedeutet Datenaustausch ist nur in eine Richtung möglich

X bedeutet Datenaustausch ist nicht möglich

Tabelle 9-5 Datenaustausch in verschiedenen Betriebszuständen

Art der Kommuni-kation

Betriebszustandder CPU 1

Richtung desDatenaustauschs

Betriebszustandder CPU 2

Globaldaten-K ik ti

RUN ↔ RUNKommunikation

RUN → STOP/HALT

STOP ← RUN

STOP X STOP

HALT X STOP/HALT

EinseitigeKommunikationüb K ik

RUN → RUN

über Kommunika-tions-SFBs

RUN → STOP/HALT

ZweiseitigeKommunikationüb K ik

RUN ↔ RUN

über Kommunika-tions-SFBs

EinseitigeKommunikationüb K ik

RUN → RUN

über Kommunika-tions-SFCs

RUN → STOP/HALT

ZweiseitigeKommunikationüb K ik

RUN ↔ RUN

über Kommunika-tions-SFCs

Merkmale

Betriebszustände und Übergänge

Page 125: Systemsoftware für S7-300/400, Programmentwurf · iii Systemsoftware für S7-300/400 Programmentwurf C79000-G7000-C506-01 Vorwort Dieses Handbuch informiert Sie über die verschiedenen

9-13Systemsoftware für S7-300/400 ProgrammentwurfC79000-G7000-C506-01

9.5 Betriebszustand HALT

Der Betriebszustand HALT nimmt eine Sonderstellung ein. Er wird nur zuTestzwecken im Anlauf oder RUN eingenommen. Im Betriebszustand HALT:

� werden alle Zeiten eingefroren: Zeiten und Betriebsstundenzähler werdennicht bearbeitet, Überwachungszeiten werden angehalten, die Grundtakteder zeitgesteuerten Ebenen werden angehalten.

� läuft die Echtzeituhr

� werden Ausgänge nicht freigeschaltet, können aber zu Testzweckenfreigegeben werden

� können Ein- und Ausgänge gesteuert werden

� gehen gepufferte CPUs bei Netzausfall und -wiederkehr in HALT inSTOP und führen keinen automatischen Wiederanlauf oder Neustart aus.Ungepufferte CPUs führen bei Netzwiederkehr einen ungepuffertenautomatischen Neustart aus.

� können auch Globaldaten empfangen und passiv einseitigeKommunikation über Kommunikations-SFBs für projektierte Verbindun-gen und über Kommunikations-SFCs für nichtprojektierte Verbindungenausgeführt werden (siehe auch Tabelle 9-5).

Merkmale

Betriebszustände und Übergänge

Page 126: Systemsoftware für S7-300/400, Programmentwurf · iii Systemsoftware für S7-300/400 Programmentwurf C79000-G7000-C506-01 Vorwort Dieses Handbuch informiert Sie über die verschiedenen

9-14Systemsoftware für S7-300/400 Programmentwurf

C79000-G7000-C506-01

9.6 Testen des Anwenderprogramms

Das Betriebsystem unterstützt Sie beim Testen des Anwenderprogramms,indem es:

� Informationen zum Programm bereitstellt

� Ihnen ermöglicht, Variablen Ihres Anwenderprogramms zu beobachtenund zu steuern.

Tabelle 9-6 zeigt, wie Sie Ihr Programm in STEP 7 im Einzelnen testenkönnen. Ausführliche Informationen zum Testen von Anwenderprogrammenfinden Sie in den Handbüchern zu den Programmiersprachen /232/, /233/ und/250/ bis /254/ sowie im STEP 7-Benutzerhandbuch /231/.

Tabelle 9-6 Testen des Anwenderprogramms

Testfunktion Beschreibung

Programmstatus anzeigenzeigt für jede Anweisung den Zustand des Programmstatus(z. B. Verknüpfungsergebnis VKE, Statusbit, Inhalt derRegister und Akkumulatoren)

Triggerpunkte setzen,Variablen steuern undbeobachten

ermöglicht das Anzeigen und Steuern von Variablen(Operanden) an bestimmten Stellen im Programm

Diagnosepuffer anzeigenermöglicht das Auswerten von Fehler- und STOP-Ursachen

Stack-Inhalte anzeigen ermöglicht das Auswerten der Inhalte von B-Stack,U-Stack und L-Stack

Zykluszeiten anzeigen ermöglicht die Kontrolle der parametrierten Mindest-zykluszeit sowie der maximalen und aktuellen Zykluszeit

Betriebszustand anzeigenermöglicht das Anzeigen des aktuellen Betriebszustandesder CPU

Einleitung

Testmöglichkeiten

Betriebszustände und Übergänge

Page 127: Systemsoftware für S7-300/400, Programmentwurf · iii Systemsoftware für S7-300/400 Programmentwurf C79000-G7000-C506-01 Vorwort Dieses Handbuch informiert Sie über die verschiedenen

10-1Systemsoftware für S7-300/400 ProgrammentwurfC79000-G7000-C506-01

Multicomputing

In diesem Kapitel erhalten Sie Informationen darüber:

� was Multicomputing bedeutet,

� wie die Alarmverarbeitung funktioniert,

� was Sie bei der Systemkonfiguration beachten müssen,

� wie Sie Baugruppen für den Multicomputing-Betrieb konfigurieren,

� was Sie bei der Programmierung beachten müssen,

� wie die gesteckten CPUs synchronisiert werden,

� welche Fehler im Multicomputing-Betrieb auftreten können.

Im Kapitel finden Sie auf Seite

10.1 Übersicht 10-2

10.2 Konfigurieren der Baugruppen 10-4

10.3 Programmieren der CPUs 10-6

10.4 Synchronisierung der CPUs 10-8

10.5 Fehlerbehandlung 10-10

Was beschreibtdieses Kapitel?

Kapitelübersicht

10

Page 128: Systemsoftware für S7-300/400, Programmentwurf · iii Systemsoftware für S7-300/400 Programmentwurf C79000-G7000-C506-01 Vorwort Dieses Handbuch informiert Sie über die verschiedenen

10-2Systemsoftware für S7-300/400 Programmentwurf

C79000-G7000-C506-01

10.1 Übersicht

Multicomputing-Betrieb ist bei S7-400 der gleichzeitige Betrieb mehrerer(max. 4) multicomputingfähiger Zentralbaugruppen in einem zentralen Bau-gruppenträger (Zentralgerät). Damit können Sie ein Anwenderprogramm ver-teilt auf mehreren CPUs synchron ablaufen lassen. Im Multicomputing-Be-trieb

� wechseln die CPUs automatisch synchron ihre Betriebszustände.

� können die einzelnen CPUs jeweils auf die Baugruppen zugreifen, dieihnen bei der Konfigurierung mit STEP 7 zugewiesen wurde.

� werden alle Ereignisse einer CPU programmiert an die anderen CPUsweitergereicht.

Hinweis

Ein gleichzeitiger unsynchronisierter Betrieb mehrerer CPUs in einemsegmentierten Baugruppenträger (physikalisch segmentiert, nicht durch Pa-rametrierung einstellbar) ist ebenfalls möglich. Hierbei handelt es sich je-doch nicht um Multicomputing. Die CPUs im segmentierten Baugruppenträ-ger bilden jeweils ein Teilsystem und verhalten sich jeweils wie Einzelpro-zessoren. Einen gemeinsamen logischen Adreßraum gibt es nicht.

”Multicomputing-Betrieb” und ”unsynchronisierter Betrieb im segmentiertenBaugruppenträger” sind nicht gleichzeitig möglich.

In den folgenden Fällen ist es vorteilhaft, Multicomputing einzusetzen:

� Wenn Ihr Anwenderprogramm zu umfangreich für eine CPU ist undSpeicherplatz knapp wird, verteilen Sie Ihr Programm auf mehrere CPUs.

� Wenn ein bestimmter Teil Ihrer Anlage schnell bearbeitet werden soll,trennen Sie den betreffenden Programmteil aus dem Gesamtprogrammheraus und lassen diesen von einer eigenen “schnellen“ CPU bearbeiten.

� Wenn Ihre Anlage aus mehreren Teilen besteht, die gut voneinanderabzugrenzen und damit relativ eigenständig zu steuern bzw. zu regelnsind, lassen Sie Anlagenteil 1 von CPU1, Anlagenteil 2 von CPU 2 usw.bearbeiten.

Einleitung

Wann verwendenSieMulticomputing?

Multicomputing

Page 129: Systemsoftware für S7-300/400, Programmentwurf · iii Systemsoftware für S7-300/400 Programmentwurf C79000-G7000-C506-01 Vorwort Dieses Handbuch informiert Sie über die verschiedenen

10-3Systemsoftware für S7-300/400 ProgrammentwurfC79000-G7000-C506-01

Folgende Merkmale sind spezifisch für Multicomputing:

� Sie können bis zu vier CPUs gleichzeitig in einem Zentralgerät (ZG)betreiben.

� Die CPUs können in beliebiger Reihenfolge gesteckt werden.

� Jede einzelne CPU hat einen eigenen Alarmzugang (Alarmleitung).

� Alle CPUs haben den gleichen Betriebszustand.

� Beim Verlassen des Betriebszustandes STOP wird ein Anlaufarten-vergleich (NEUSTART / WIEDERANLAUF) durchgeführt. Hiermit wirdverhindert, daß eine oder mehrere CPUs des Automatisierungssystemseinen NEUSTART durchführen, während die restlichen CPUs einenWIEDERANLAUF durchführen.

� Die CPUs sind über den K-Bus miteinander verbunden, dies entsprichteiner Verbindung über MPI.

Im Bild 10-1 ist ein Automatisierungssystem dargestellt, das im Multi-computing-Betrieb arbeiten soll. Jede CPU kann auf die ihr zugewiesenenBaugruppen (FM, CP, SM) zugreifen.

PS

CPU1

CPU3

CPU4

CPU2

IM1

IM2

IM3

I/O CP,FM I/O

IM

IM

I/O IM

I/O CP,FM I/O

IM

IM

I/O IM

I/O CP,FM I/O

IM

IM

I/O IM

I/O CP,FM I/O

IM

IM

I/O IM

CP,FM I/O

IM

FM, I/O IM

ZG

EG

Strang

CP,FM I/O

IM

CP,FM I/O

IM

Bild 10-1 Beispiel für Multicomputing

Besonderheiten

Beispiel

Multicomputing

Page 130: Systemsoftware für S7-300/400, Programmentwurf · iii Systemsoftware für S7-300/400 Programmentwurf C79000-G7000-C506-01 Vorwort Dieses Handbuch informiert Sie über die verschiedenen

10-4Systemsoftware für S7-300/400 Programmentwurf

C79000-G7000-C506-01

10.2 Konfigurieren der Baugruppen

Bevor Sie die Baugruppen in Ihrem Automatisierungssytem für den Multi-computing-Betrieb konfigurieren können, muß folgende Voraussetzungerfüllt sein:

� Sie haben Ihr Automatisierungssystem aufgebaut, wie im Handbuch /100/beschrieben.

Für das Betreiben von CPUs im Multicomputing-Betrieb müssen Sie bei derKonfigurierung des Automatisierungssystems folgendes berücksichtigen:

� Stecken Sie die CPUs, die im Multicomputing-Betrieb arbeiten sollen.

� Sie legen dann beim Parametrieren der Baugruppen mit STEP 7 die Zu-ordnung der einzelnen Baugruppen zu den jeweiligen CPUs fest. Dabeiwird automatisch die Alarmzuordnung festgelegt.

� Beim Laden der projektierten Konfiguration in das Automatisierungs-system müssen alle CPUs parametriert werden.

Die Vorgehensweise bei der Konfigurierung ist im Handbuch /231/beschrieben.

Im Multicomputing-Betrieb ist jeder CPU ein Alarmeingang zugeordnet.Alarme, die diesen Eingang erreichen, können nicht von den anderen CPUsempfangen werden. Die Zuordnung einer Baugruppe zu einer bestimmtenCPU muß mit STEP 7 parametriert werden. Die Zuordnung der Alarmleitungerfolgt automatisch bei der Parametrierung.

Im Bild 10-2 ist dargestellt wie diese Zuordnung vorgenommen wird.

CPU 3CPU 4

CPU 2CPU 1

Alarmleitung 4Alarmleitung 3

Alarmleitung 2Alarmleitung 1

BG 1 BG 2 BG 3 BG 4 BG 5

x

nicht möglich

Bild 10-2 Alarmzuordnung bei Multicomputing

Voraussetzung

Konfigurierung mitSTEP 7

Alarmzuordnung

Multicomputing

Page 131: Systemsoftware für S7-300/400, Programmentwurf · iii Systemsoftware für S7-300/400 Programmentwurf C79000-G7000-C506-01 Vorwort Dieses Handbuch informiert Sie über die verschiedenen

10-5Systemsoftware für S7-300/400 ProgrammentwurfC79000-G7000-C506-01

Für die Alarmverarbeitung gilt folgendes:

� Prozeßalarme und Diagnosealarme werden nur an eine CPU gesendet.

� Bei Baugruppenausfall, wird der Alarm von der CPU bearbeitet, die derBaugruppe bei der Parametrierung mit STEP 7 zugeordnet wurde.

� Bei Ausfall eines Baugruppenträgers wird der OB 86 auf jeder CPU auf-gerufen.

Die Weiterleitung der Alarme an die anderen CPUs kann mit Hilfe derSFC 35 ”MP_ALM” erfolgen (siehe Kapitel 10.3).

Alarmverarbeitung

Multicomputing

Page 132: Systemsoftware für S7-300/400, Programmentwurf · iii Systemsoftware für S7-300/400 Programmentwurf C79000-G7000-C506-01 Vorwort Dieses Handbuch informiert Sie über die verschiedenen

10-6Systemsoftware für S7-300/400 Programmentwurf

C79000-G7000-C506-01

10.3 Programmieren der CPUs

Die Multicomputing-Programmierung unterscheidet sich prinzipiell nicht vonder Programmierung für eine einzelne CPU.

Es sind aber zusätzliche Schritte erforderlich, falls Sie die gesteckten CPUssynchronisieren bzw. auf Ereignisse gemeinsam reagieren lassen wollen.

Damit im Multicomputing-Betrieb alle CPUs gezielt auf Ereignisse (z. B.Alarme) reagieren können, steht die SFC 35 ”MP_ALM” zur Verfügung. DerAufruf der SFC 35 löst einen Multicomputingalarm aus, der zur synchroni-sierten Anforderung des OB 60 auf allen gesteckten CPUs führt. In diesemOB sind lokale Variable vorhanden, die das auslösende Ereignis näher spezi-fizieren.

Beim Aufruf der SFC 35 wird die Spezifikation der Ereignisse in einer Auf-tragskennung an alle CPUs übertragen. Die Auftragskennung läßt eineUnterscheidung von 16 unterschiedlichen Ereignissen zu.

Bei der Bearbeitung des Multicomputingalarms prüfen sowohl das sendendeAnwenderprogramm als auch die auf den anderen CPUs laufendenAnwenderprogramme, ob sie den Auftrag kennen und reagieren danachentsprechend der Programmierung.

Sie können die SFC 35 an jeder beliebigen Stelle Ihres Programms aufrufen.Da der Aufruf aber nur im Betriebszustand RUN sinnvoll ist, wird beimAufruf im Betriebszustand ANLAUF der Multicomputingalarm unterdrückt.

Ein weiterer Aufruf eines Multicomputingalarms kann erst erfolgen, wennder aktuelle Multicomputingalarm abgearbeitet (quittiert) ist.

Im Handbuch /235/ finden Sie eine detaillierte Beschreibung der SFC 35 undden Aufbau des OB 60.

Programmierung

Aufrufen der SFC 35

Multicomputing

Page 133: Systemsoftware für S7-300/400, Programmentwurf · iii Systemsoftware für S7-300/400 Programmentwurf C79000-G7000-C506-01 Vorwort Dieses Handbuch informiert Sie über die verschiedenen

10-7Systemsoftware für S7-300/400 ProgrammentwurfC79000-G7000-C506-01

Das folgende Beispiel zeigt den Einsatz der SFC 35.

� Sie haben ein Automatisierungssystem (S7-400) mit vier CPUs.

� Auf einen Prozeßalarm in der CPU 1 wollen Sie auch in den anderen dreiCPUs reagieren.

Schritt Erklärung Aufruf/Parameter

1. Auf der CPU 1 im Prozeßalarm-OB40programmieren Sie den Aufruf der SFC 35.

CALL SFC35

2. Den Aufruf versorgen Sie mit einer Auftrags-kennung, die den anderen Anwender-programmen mitteilt, wie sie auf das Ereignisreagieren sollen.

JOB :=AUFTR

3. Ob bereits eine SFC35 läuft, prüfen sie mitdem RETVAL Parameter.

RET_VAL :=RETVAL#RETVAL

4. Die SFC 35 startet synchron auf allen CPUsden OB 60. Im OB 60 wird die durch dieCPU 1 abgegebene Auftragskennung ausge-wertet und entsprechend darauf reagiert.

Die Auftragskennung stehtim Lokaldatum OB60_JOB

Auf jeder beteiligten CPU können Sie einen OB 60 laden, der spezifisch fürdiese CPU programmiert wurde. Damit können sich unterschiedlich langeBearbeitungszeiten ergeben. Dies führt zu folgendem Verhalten:

� Die jeweils unterbrochene Prioritätsklasse wird zu unterschiedlichen Zeit-punkten weiterbearbeitet.

� Ein Multicomputingalarm wird nicht ausgeführt, wenn dieser während derBearbeitung eines OB 60 einer beliebigen CPU auftritt. Es erfolgt jedocheine Meldung, die Sie abfragen und darauf entsprechend reagieren können(siehe Beispiel Schritt 3 RETVAL).

Ist der OB 60 auf einer gesteckten CPU nicht geladen, kehrt dieentsprechende CPU sofort in die zuletzt bearbeitete Prioritätsklasse zurückund fährt dort mit der Programmbearbeitung fort.

Beispiel

Programmierendes OB 60

Multicomputing

Page 134: Systemsoftware für S7-300/400, Programmentwurf · iii Systemsoftware für S7-300/400 Programmentwurf C79000-G7000-C506-01 Vorwort Dieses Handbuch informiert Sie über die verschiedenen

10-8Systemsoftware für S7-300/400 Programmentwurf

C79000-G7000-C506-01

10.4 Synchronisierung der CPUs

Im Multicomputing-Betrieb werden die beteiligten CPUs automatischsynchronisiert, d. h. die Betriebszustände der einzelnen CPUs werdenzwangsweise gleichgeschaltet. Geht z. B. eine CPU auf STOP, werden auchalle anderen CPUs auf STOP gesetzt. Die Synchronisierung innerhalb desMulticomputing erfolgt mit zwei Arten von Synchronisierungspunkten:

� Meldepunkten (MP).

� Wartepunkten (WP).

Meldepunkte sorgen dafür, daß die CPUs so schnell wie möglich in denZustand STOP wechseln. An einem Meldepunkt meldet eine CPU denübrigen CPUs ein bestimmtes Ereignis. Die Meldung ist hochprior und führtunverzüglich auf allen CPUs zur Unterbrechung des Anwenderprogramms ander nächsten Befehlsgrenze.

Wartepunkte sorgen dafür, daß die Anwenderprogramme auf allen CPUsgleichzeitig gestartet werden und ein Betriebszustandswechsel erst dannerfolgt, wenn alle zu synchronisierenden CPUs hierzu bereit sind.

Wartepunkte gewährleisten die Gleichzeitigkeit. Kann z. B. eine CPU nichtsofort ihren Betriebszustand wechseln, wird der Betriebzustandswechsel allerCPUs solange verzögert, bis auch die letzte CPU bereit ist.

Es gibt an den Betriebszustandsübergängen mehrere Synchronisierungs-punkte. Im Bild 10-3 werden diese Synchronisierungspunkte dargestellt undin der Tabelle 10-1 ihre Funktion erklärt.

Übersicht

Meldepunkte (MP)

Wartepunkte (WP)

Synchronisie-rungspunkte einerCPU

Multicomputing

Page 135: Systemsoftware für S7-300/400, Programmentwurf · iii Systemsoftware für S7-300/400 Programmentwurf C79000-G7000-C506-01 Vorwort Dieses Handbuch informiert Sie über die verschiedenen

10-9Systemsoftware für S7-300/400 ProgrammentwurfC79000-G7000-C506-01

STOP

RUN

Anwen-derpro-gramm

Neustart-OB

Wiederanlauf-OB

System-programm

WP 1

WP 2

WP 4

MP 1

MP 2

HALTMP 5

WP 3

HALTMP 6

WP 5

MP 3

MP 4

ANLAUF

Restzykl.des WA

Netz ein

Bild 10-3 Synchronisierungspunkte einer S7-400-CPU

Tabelle 10-1 Erklärungen zu den Synchronisierungspunkten

Synchronisierungspunkt Erklärung

Wartepunkt 1 (WP1) Gemeinsames Verlassen des Betriebszustands STOP. An diesem Punkt wird überprüft,ob auf allen CPUs die gleiche Anlaufart angewählt wurde. Wurden unterschiedlicheAnlaufarten gewählt, wird ein Anlauf des AS verhindert.

Wartepunkt 2 (WP2) Gleichzeitiger Start des Anlaufs. Es soll u. a. verhindert werden, daß eine CPU imAnwenderprogramm auf Semaphore zugreift, die eine andere CPU aufgrund unter-schiedlicher Laufzeiten ihrer beiden Systemprogramme während des gemeinsamenNeustarts löscht.

Wartepunkt 3 (WP3) Gleichzeitiger Betriebszustandswechsel von ANLAUF nach RUN.

Wartepunkte 4 und 5(WP4/WP5)

Gleichzeitiger Betriebszustandswechsel von HALT nach ANLAUF bzw. RUN. DieAnwenderprogrammbearbeitung wird damit gleichzeitig wieder gestartet.

Meldepunkt 1 (MP1) Der angewählte Anlauf wurde wegen eines System- oder Anwenderprogrammfehlersabgebrochen. Eine Meldung erfolgt an alle CPUs.

Meldepunkt 2 und 3(MP2/MP3)

Die CPU wechselt in den Betriebszustand HALT. Alle CPUs werden angewiesen, ihrAnwenderprogramm an der nächsten Befehlsgrenze zu unterbrechen und ebenfalls inden Betriebszustand HALT zu wechseln.

Meldepunkt 4 (MP4) Die CPU wechselt in den Betriebszustand STOP. Alle CPUs werden angewiesen, ihrAnwenderprogramm an der nächsten Befehlsgrenze zu unterbrechen und ebenfalls inden Betriebszustand STOP zu wechseln.

Meldepunkt 5 und 6(MP5/MP6)

Die CPU wechselt in den Betriebszustand STOP, da der Betriebsartenschalter eineroder mehrerer CPUs in die Stellung STOP gebracht wurde. Alle CPUs werden ange-wiesen, ebenfalls in den Betriebszustand STOP zu wechseln.

Multicomputing

Page 136: Systemsoftware für S7-300/400, Programmentwurf · iii Systemsoftware für S7-300/400 Programmentwurf C79000-G7000-C506-01 Vorwort Dieses Handbuch informiert Sie über die verschiedenen

10-10Systemsoftware für S7-300/400 Programmentwurf

C79000-G7000-C506-01

10.5 Fehlerbehandlung

Im Multicomputing-Betrieb kann es zu ungewollten Zuständen kommen.Mögliche Fehlerquellen sind im Folgenden beschrieben:

� Hat eine CPU ein Anlaufhindernis, läuft keine CPU an, da bei STOP einerCPU alle CPUs in den STOP gehen.

� Steht bei einer CPU der Betriebsartenschalter auf STOP oder wurde dieCPU vom PG aus in den STOP-Zustand gebracht, sind alle anderen CPUsauch in STOP.

� Ist die Anlaufart (NEUSTART / WIEDERANLAUF) unterschiedlich,erfolgt kein Anlauf.

� Geht eine CPU durch Fehler in den STOP, dann muß zuerst der Fehlerbeseitigt werden. Erst dann werden durch den Zustandswechsel von STOPnach RUN alle anderen CPUs auch in den RUN-Zustand gesetzt.

Im Multicomputing-Betrieb wird für alle gesteckten CPUs eine Konsistenz-prüfung vorgenommen. Hierbei wird geprüft, ob die einzelnen CPUs erreich-bar und die Zeitstempel der CPUs identisch sind.

Sind die gesteckten CPUs untereinander nicht konsistent, wird ein Ereignismit der ID: 0x49A4 gemeldet. Abhängig von der Art des Eintrags imDiagnosepuffer bedeutet dies:

� Ein CPU-Steckplatz ist nicht verzeichnet.

� Eine CPU ist nicht gesteckt bzw. defekt.

� Die Zeitstempel der einzelnen CPUs sind nicht konsistent.

Die Erklärungen zu der Ereignis ID finden Sie im Handbuch /235/.

Übersicht

Konsistenzprüfungder gestecktenCPUs

Multicomputing

Page 137: Systemsoftware für S7-300/400, Programmentwurf · iii Systemsoftware für S7-300/400 Programmentwurf C79000-G7000-C506-01 Vorwort Dieses Handbuch informiert Sie über die verschiedenen

11-1Systemsoftware für S7-300/400 ProgrammentwurfC79000-G7000-C506-01

Fehlerdiagnose und Störungsbehandlung

Dieses Kapitel beschreibt:

� die Systemdiagnose bei S7-300- S7-400-CPUs und gibt Hinweise, was Sietun können, um diagnostizierte Fehler und Störungen zu beheben.

� asynchrone und synchrone Fehler-OBs.

Diagnosemöglichkeit über Anzeigeelemente auf der Frontplatte der Bau-gruppen werden in diesem Kapitel nicht beschrieben. Informationen dazuentnehmen Sie bitte den Handbüchern /70/, /71/ bzw. /101/.

Eine detaillierte Beschreibung der einzelnen Organisationsbausteine undSystemfunktionen enthält das Referenzhandbuch /235/.

Im Kapitel finden Sie auf Seite

11.1 Übermitteln von Diagnoseinformationen 11-2

11.2 Systemzustandsliste SZL 11-4

11.3 Diagnosepuffer 11-7

11.4 Eigene Diagnosemeldungen senden 11-8

11.5 Auswerten des Ausgangsparameter RET_VAL 11-9

11.6 Fehler-OBs als Reaktion auf die Erkennung eines Fehlers 11-10

11.7 Einfügen von “Ersatzwerten” bei Fehlererkennung 11-14

11.8 Zeitfehler-OB 80 11-17

11.9 Stromversorgungsfehler-OB 81 11-18

11.10 Diagnosealarm-OB 82 11-19

11.11 Ziehen-/Stecken-Alarm-OB 83 11-20

11.12 CPU-Hardwarefehler-OB 84 11-21

11.13 Prioritätsklassenfehler-OB 85 11-22

11.14 Baugruppenträgerausfall-OB 86 11-23

11.15 Kommunikationsfehler-OB 87 11-24

11.16 Programmierfehler-OB 121 11-25

11.17 Peripheriezugriffsfehler-OB 122 11-26

Was beschreibtdieses Kapitel?

Wo finden SieweitereInformationen?

Kapitelübersicht

11

Page 138: Systemsoftware für S7-300/400, Programmentwurf · iii Systemsoftware für S7-300/400 Programmentwurf C79000-G7000-C506-01 Vorwort Dieses Handbuch informiert Sie über die verschiedenen

11-2Systemsoftware für S7-300/400 Programmentwurf

C79000-G7000-C506-01

11.1 Übermitteln von Diagnoseinformationen

Die SIMATIC S7 Systemdiagnose hilft Ihnen durch Erkennen, Lokalisierenund Auswerten von Fehlern und Störungen, die Inbetriebsetzungs- und Still-standszeiten Ihrer Anlage zu reduzieren.

Die Erfassung von Diagnosedaten durch die Systemdiagnose muß nichtprogrammiert werden, sie ist standardmäßig vorhanden und läuft automatischab. SIMATIC S7 bietet verschiedene Diagnosefunktionen. Einige sind in dieCPU integriert, andere werden von den Baugruppen (SMs, CPs und FMs) zurVerfügung gestellt.

Baugruppeninterne und -externe Fehler werden über LED-Anzeigen auf derFrontplatten der jeweiligen Baugruppe angezeigt. Die LED-Anzeigen undihre Auswertung ist beschrieben in den Handbüchern /70/, /71/ und /101/.

Die CPU erkennt Systemfehler sowie Fehler im Anwenderprogramm undträgt Diagnoseereignisse in die Systemzustandsliste und den Diagnosepufferein. Diese Diagnosemeldungen können am PG ausgelesen werden.

Diagnosefähige Signal- und Funktionsbaugruppen erkennen interne undexterne Baugruppenfehler und erzeugen einen Diagnosealarm, auf den Siemit Hilfe eines Alarm-OBs reagieren können. Bild 11-1 zeigt die Übermitt-lung von Diagnoseinformationen bei SIMATIC S7.

CPU Baugruppen

Die Diagnosefunktion der CPUerkennt einen Systemfehler.

Die Diagnose-funktion einerBaugruppe er-kennt einenFehler und ge-neriert einenDiagnosealarm(OB 82).

Die Diagnosefunktion der CPU er-kennt einen Fehler im Anwender-programm.

DiagnosealarmSystemzu-standsliste

Diagnose-puffer

Anwenderprogramm

SFCs STEP 7

Bild 11-1 Übermittlung von Diagnoseinformationen

Ziel der Diagnose

Diagnose-funktionen

Fehlerdiagnose und Störungsbehandlung

Page 139: Systemsoftware für S7-300/400, Programmentwurf · iii Systemsoftware für S7-300/400 Programmentwurf C79000-G7000-C506-01 Vorwort Dieses Handbuch informiert Sie über die verschiedenen

11-3Systemsoftware für S7-300/400 ProgrammentwurfC79000-G7000-C506-01

Ein Diagnoseereignis führt zu einem Eintrag in den Diagnosepuffer.Diagnoseereignisse können sein:

� interne und externe Fehler auf einer Baugruppe

� Systemfehler

� Betriebszustandsübergänge

� Fehler im Anwenderprogramm.

� Ziehen/Stecken von Baugruppen

Sie können die Diagnoseeinträge im Anwenderprogramm mit der SFC 51RDSYSST auslesen oder sich die Diagnosemeldungen mit STEP 7 im Klar-text anzeigen lassen.

Sie geben Auskunft darüber:

� wo und wann der Fehler aufgetreten ist

� zu welcher Art von Diagnoseereignissen der Eintrag gehört (anwenderde-finiertes Diagnoseereignis, synchroner/asynchroner Fehler, Betriebszu-standswechsel).

Die CPU trägt die Ereignisse der Standarddiagnose und der erweiterten Dia-gnose (siehe Abschnitt 11.3) in den Diagnosepuffer ein. Darüber hinaus er-zeugt sie bei den Standard-Diagnoseereignissen eine Leittechniksammelmel-dung, falls die folgenden Voraussetzungen erfüllt sind:

� Sie haben mit STEP 7 vorgegeben, daß Leittechniksammelmeldungenerzeugt werden sollen.

� Mindestens ein Anzeigegerät hat sich bei der CPU für Leittechniksam-melmeldungen angemeldet.

� Eine Leittechniksammelmeldung wird erst dann gebildet, wenn nochkeine Leittechniksammelmeldung der zugehörigen Klasse (es gibt siebenKlassen) vorliegt.

� Pro Klasse kann eine Leittechniksammelmeldung gebildet werden.

Diagnoseereignis

Auslesen derDiagnose-informationen

Erzeugen von Leittechniksam-melmeldungen

Fehlerdiagnose und Störungsbehandlung

Page 140: Systemsoftware für S7-300/400, Programmentwurf · iii Systemsoftware für S7-300/400 Programmentwurf C79000-G7000-C506-01 Vorwort Dieses Handbuch informiert Sie über die verschiedenen

11-4Systemsoftware für S7-300/400 Programmentwurf

C79000-G7000-C506-01

11.2 Systemzustandsliste SZL

Die Systemzustandsliste SZL beschreibt den aktuellen Zustand desAutomatisierungssystems: sie gibt einen Überblick über den Ausbau, dieaktuelle Parametrierung, die aktuellen Zustände und Abläufe in der CPU undden zugeordneten Baugruppen.

Die Daten der SZL können nur gelesen, nicht geändert werden. Sie ist einevirtuelle Liste, die nur auf Anforderung zusammengestellt wird.

Die Informationen, die Sie über die SZL ausgeben können, lassen sich in vierBereiche aufteilen. Bild 11-2 zeigt, wie sich die Systemzustandslistezusammensetzt:

Systemzustandsliste

Systemdaten

Diagnosezu-standsdatenin der CPU

Diagnosedatenauf Baugruppen

Diagnose-Puffer

Bild 11-2 Systemzustandsliste

Es gibt zwei Möglichkeiten, die Informationen der Systemzustandsliste SZLzu lesen:

� implizit über STEP 7-Menübefehle vom Programmiergerät aus (z. B.Speicherausbau, statische CPU-Daten, Diagnosepuffer, Zustandsanzei-gen).

� explizit über die Systemfunktion SFC 51 RDSYSST vom Anwenderpro-gramm aus mittels Angabe der gewünschten Teillistennummer. SFCs sindausführlich im Referenzhandbuch /235/ beschrieben.

Definition

Inhalt

SZL auslesen

Fehlerdiagnose und Störungsbehandlung

Page 141: Systemsoftware für S7-300/400, Programmentwurf · iii Systemsoftware für S7-300/400 Programmentwurf C79000-G7000-C506-01 Vorwort Dieses Handbuch informiert Sie über die verschiedenen

11-5Systemsoftware für S7-300/400 ProgrammentwurfC79000-G7000-C506-01

Systemdaten sind feste oder parametrierte Kenndaten einer CPU.Tabelle 11-1 zeigt, zu welchen Themenbereichen Informationen (Teillistender SZL) ausgegeben werden können:

Tabelle 11-1 Systemdaten der SZL

Bereich Information

Liste aller SZL-IDs Verfügbare Teillisten der SZL in einer Baugruppe

Baugruppen-Identifikation Bestellnummer, Typkennung und Ausgabestand derBaugruppe

CPU-Merkmale Zeitsystem, Systemverhalten (z. B. Multicomputing)und Sprachbeschreibung der CPU

Speicherbereiche Speicherausbau der Baugruppe (z. B. Größe des Arbeits-speichers, Ladespeicher integriert/gesteckt, Größe desBackup-Speichers

Systembereiche Systemspeicher der Baugruppe (z. B. Anzahl derMerker, Zeiten, Zähler, Speichertyp)

Bausteintypen Welche Bausteintypen (OB, DB, SDB, FC, FB) in Bau-gruppe vorhanden, wieviele Bausteine eines Typs maxi-mal vorhanden und maximale Größe eines Bausteintyps

Vorhandene Prioritäts-klassen

Welche Prioritätsklassen in Baugruppe vorhanden

Liste der zulässigen SDBs Welche SDBs in Baugruppe vorhanden, kopierbar/nichtkopierbar, default erzeugt oder nicht

Peripherieausbau (nurS7-300-CPUs)

Maximaler Peripherieausbau, wieviele Baugruppen-träger, Anzahl der Steckplätze

Alarm-Fehlerzuordnung Zuordnung Alarme/Fehler zu OBs

Alarm-Status Aktuelle Alarmbearbeitung/-generierung

Status der PrioritätsklassenWelcher OB in Bearbeitung, welche Prioritätsklassedurch Parametrierung gesperrt

Betriebszustand undBetriebszustandsübergang

Welche Betriebszustände möglich, letzter Übergang,aktueller Betriebszustand

Leistungsparameter für dieKommunikation

Kommunikationsmöglichkeiten (z. B. BuB)

Systemdaten

Fehlerdiagnose und Störungsbehandlung

Page 142: Systemsoftware für S7-300/400, Programmentwurf · iii Systemsoftware für S7-300/400 Programmentwurf C79000-G7000-C506-01 Vorwort Dieses Handbuch informiert Sie über die verschiedenen

11-6Systemsoftware für S7-300/400 Programmentwurf

C79000-G7000-C506-01

Diagnosezustandsdaten beschreiben den aktuellen Zustand der Komponenten,die durch die Systemdiagnose überwacht werden. Tabelle 11-2, zeigt zuwelchen Themenbereichen Informationen (Teillisten der SZL) ausgegebenwerden können:

Tabelle 11-2 Diagnosezustandsdaten der SZL

Bereich Information

Kommunikationszustands-daten

Aktuell im System eingestellte Kommunikations-funktionen

Diagnoseteilnehmer An der CPU angemeldete diagnosefähige Baugruppen

Startinformationsliste desOB

Startinformationen zu den OBs der CPU

Startereignisliste Startereignisse und Prioritätsklassen der OBs

Baugruppenzustands-information

Zustandsinformationen aller gesteckten, gestörten,prozeßalarmerzeugenden, zugeordneten Baugruppen

Außer der CPU gibt es noch andere diagnosefähige Baugruppen (SMs, CPs,FMs), deren Diagnosedaten in die Systemzustandsliste eingetragen werden.Tabelle 11-3 zeigt, zu welchen Themenbereichen Informationen (Teillistender SZL) ausgegeben werden können:

Tabelle 11-3 Bauguppen-Diagnosedaten der SZL

Bereich Information

Baugruppendiagnoseinfo Baugruppenanfangsadresse, interne/externe Fehler,Kanalfehler, Parameterfehler (4 Byte)

BaugruppendiagnosedatenAlle Diagnosedaten einer bestimmten Baugruppe

Der Diagnosepuffer der CPU enthält Diagnoseereignisse in der Reihenfolgeihres Auftretens. Wie Sie den Diagnosepuffer auswerten können, entnehmenSie bitte Kapitel 11.3.

Tabelle 11-4 Diagnosepuffer der SZL

Bereich Information

Diagnoseereignisse thema-tisch gruppiert

z. B. neueste Ereignisse, Startinformation von Standard-OBs, Betriebszustandsübergänge, selbst-definierte Er-eignisse

Diagnose-zustandsdaten inder CPU

Diagnosedaten aufBaugruppen

Diagnosepuffer

Fehlerdiagnose und Störungsbehandlung

Page 143: Systemsoftware für S7-300/400, Programmentwurf · iii Systemsoftware für S7-300/400 Programmentwurf C79000-G7000-C506-01 Vorwort Dieses Handbuch informiert Sie über die verschiedenen

11-7Systemsoftware für S7-300/400 ProgrammentwurfC79000-G7000-C506-01

11.3 Diagnosepuffer

Ein Teil der Systemzustandsliste ist der Diagnosepuffer, in den zu System-Diagnoseereignissen und anwenderdefinierten Diagnoseereignissen in derReihenfolge ihres Auftretens nähere Informationen eingetragen werden. DieInformation, die beim Auftreten eines System-Diagnoseereignisses in denDiagnosepuffer eingetragen wird, ist identisch mit der Startinformation, diean den entsprechenden Organisationsbaustein übergeben wird.

Die Länge des Diagnosepuffers ist CPU-abhängig. Er ist als Ringpuffer auf-gebaut, d. h., ist der Puffer voll, überschreibt der nächste Eintrag den ältestenEintrag im Puffer.

Die Einträge im Diagnosepuffer können nicht gelöscht werden, der Inhalt desDiagnosepuffers bleibt auch nach dem Urlöschen erhalten.

Der Diagnosepuffer bietet die Möglichkeit:

� bei Anlagenstopp die letzten Ereignisse vor dem STOP auszuwerten unddie STOP-Ursache zu finden

� Fehlerursachen schneller zu erkennen und dadurch die Verfügbarkeit derAnlage zu erhöhen

� das dynamische Anlagenverhalten auszuwerten und zu optimieren.

Sie können den Diagnosepuffer mit STEP 7 oder über die SFC 51 RDSYSSTauslesen.

Sie können festlegen, daß der letzte Diagnosepuffereintrag vor dem Übergangvon RUN in STOP automatisch an ein angemeldetes Beobachtungsgerät(z. B. PG, OP, TD) gesendet wird, um sicherzustellen, daß die Ursache fürden Betriebszustandswechsel in STOP schneller gefunden und behoben wird.(siehe auch Abschnitt 11.3).

Definition

Nutzen

Diagnosepufferauslesen

Letzter Eintrag vorSTOP

Fehlerdiagnose und Störungsbehandlung

Page 144: Systemsoftware für S7-300/400, Programmentwurf · iii Systemsoftware für S7-300/400 Programmentwurf C79000-G7000-C506-01 Vorwort Dieses Handbuch informiert Sie über die verschiedenen

11-8Systemsoftware für S7-300/400 Programmentwurf

C79000-G7000-C506-01

11.4 Eigene Diagnosemeldungen senden

Sie können die standardmäßige Systemdiagnose von SIMATIC S7 außerdemerweitern, indem Sie über die Systemfunktion SFC 52 WR_USMSG

� anwenderdefinierte Diagnoseereignisse (z. B. Informationen zum Ablaufdes Anwenderprogramms) in den Diagnosepuffer eintragen

� anwenderdefinierte Diagnosemeldungen an angemeldete Teilnehmer(Beobachtungsgeräte wie PG, OP, TD) senden.

Wie Sie die SFC 52 parametrieren können, entnehmen Sie bitte demReferenzhandbuch /235/.

Die Diagnoseereignisse sind in Ereignisklassen von 1 bis F eingeteilt. Dieanwenderdefinierten Diagnoseereignisse gehören zu den Ereignisklassen8 bis B. Sie lassen sich in zwei Gruppen unterteilen:

� Die Ereignisklassen 8 und 9 umfassen Ereignisse mit festgelegterNummer und vorgefertigtem Text, den Sie anhand der Nummer abrufenkönnen.

� Die Ereignisklassen A und B umfassen Ereignisse mit frei wählbarerNummer (A00 bis BFF) und frei wählbarem Text.

Zusätzlich zum Eintrag eines anwenderdefinierten Diagnoseereignisses inden Diagnosepuffer können Sie mit der SFC 52 WR_USMSG Ihre anwender-definierten Diagnosemeldungen auch noch an angemeldete Anzeigegerätesenden. Bei Aufruf der SFC 52 mit SEND = 1 wird diese Diagnosemeldungin den Sendepuffer geschrieben und automatisch an den oder die an der CPUangemeldeten Teilnehmer geschickt.

Ist ein Senden nicht möglich (z. B. weil kein Teilnehmer angemeldet wurdeoder der Sendepuffer voll ist), erfolgt dennoch der Eintrag des anwenderdefi-nierten Diagnoseereignisses in den Diagnosepuffer.

Falls Sie ein anwenderdefiniertes Diagnoseereignis quittieren und diese Quit-tierung programmtechnisch erfassen wollen, gehen Sie wie folgt vor:

� Beim kommenden Ereignis beschreiben Sie eine Variable vom Typ BOOLmit 1, beim gehenden Ereignis beschreiben Sie sie mit 0.

� Diese Variable überwachen Sie mit Hilfe des SFB 33 ALARM.

Wie Sie den SFB 33 parametrieren können, entnehmen Sie bitte demReferenzhandbuch /235/.

Einleitung

Anwenderdefi-nierte Diagnose-ereignisse

Diagnosemeldun-gen an Teilnehmersenden

Meldung mitQuittieranzeigeerzeugen

Fehlerdiagnose und Störungsbehandlung

Page 145: Systemsoftware für S7-300/400, Programmentwurf · iii Systemsoftware für S7-300/400 Programmentwurf C79000-G7000-C506-01 Vorwort Dieses Handbuch informiert Sie über die verschiedenen

11-9Systemsoftware für S7-300/400 ProgrammentwurfC79000-G7000-C506-01

11.5 Auswerten des Ausgangsparameter RET_VAL

Eine Systemfunktion zeigt über den Ausgangsparameter RET_VAL (Rück-gabewert) an, ob die CPU die Funktion der SFC erfolgreich ausführen konnteoder nicht.

Der Rückgabewert ist vom Datentyp Ganzzahl (INT). Das Vorzeichen einerGanzzahl gibt an, ob es sich um eine positive oder negative Ganzzahlhandelt. Die Relation des Rückgabewerts zu dem Wert ”0” zeigt an, obwährend der Bearbeitung der Funktion ein Fehler aufgetreten ist (siehe auchTabelle 11-5):

� Tritt während der Bearbeitung der Funktion ein Fehler auf, ist der Rück-gabewert kleiner als Null. Das Vorzeichenbit der Ganzzahl ist ”1”.

� Wird die Funktion fehlerfrei bearbeitet, ist der Rückgabewert größergleich Null. Das Vorzeichenbit der Ganzzahl ist ”0”.

Tabelle 11-5 Fehlerinformation im Rückgabewert

Bearbeitung der SFC durchdie CPU

Rückgabewert Vorzeichen derGanzzahl

fehlerhaft kleiner als ”0” negativ(Vorzeichenbit ist ”1”)

fehlerfrei größer oder gleich ”0” positiv(Vorzeichenbit ist ”0”)

Tritt während der Bearbeitung einer SFC ein Fehler auf, dann stellt die SFCüber den Rückgabewert RET_VAL einen Fehlercode zur Verfügung.

Man unterscheidet dabei zwischen:

� einem allgemeinen Fehlercode, den alle SFCs ausgeben können und

� einem spezifischen Fehlercode, den eine SFC abhängig von seinenspezifischen Funktionen ausgeben kann.

Einige SFCs benutzen den Ausgangsparameter RET_VAL auch zur Übergabedes Funktionswertes, z. B. übergibt die SFC 64 TIME_TCK mit RET_VALdie gelesene Systemzeit.

Die ausführliche Beschreibung des Ausgangsparameters RET_VAL und dieBedeutung der Fehlercodes eines Rückgabewertes ist beschrieben imReferenzhandbuch /235/.

Einleitung

Fehlerinformatio-nen im Rückgabe-wert

Reagieren aufFehler-informationen

Funktionswert-übergabe

WeitereInformationen

Fehlerdiagnose und Störungsbehandlung

Page 146: Systemsoftware für S7-300/400, Programmentwurf · iii Systemsoftware für S7-300/400 Programmentwurf C79000-G7000-C506-01 Vorwort Dieses Handbuch informiert Sie über die verschiedenen

11-10Systemsoftware für S7-300/400 Programmentwurf

C79000-G7000-C506-01

11.6 Fehler-OBs als Reaktion auf die Erkennung eines Fehlers

Das Systemprogramm kann folgende Fehler feststellen:

� fehlerhaftes Arbeiten der CPU

� Fehler in der Systemprogrammbearbeitung

� Fehler im Anwenderprogramm

� Fehler in der Peripherie

Je nach Fehlerart wird die CPU in den STOP-Zustand gesetzt oder einFehler-OB aufgerufen.

Sie können Programme entwerfen, um auf die verschiedenen Arten vonFehlern zu reagieren und das weitere Verhalten der CPU zu bestimmen. DasProgramm für einen bestimmten Fehler kann dann in einem Fehler-OBgespeichert werden. Wenn der Fehler-OB aufgerufen wird, wird dasProgramm bearbeitet.

Ein Fehler tritt auf...

Ist ein Fehler-OB programmiert, dann bearbeitet die CPUdas Programm im OB.

Ist kein Fehler-OB programmiert, dann geht die CPU inden Betriebszustand STOP (Ausnahme OB 81).

Die CPU ruft den entsprechenden Fehler-OB auf.

Bild 11-3 Fehler-OBs als Reaktion auf die Erkennung eines Fehlers

Es wird unterschieden zwischen synchronen und asynchronen Fehlern:

� Synchrone Fehler können einem MC7-Befehl zugeordnet werden(z. B. Ladebefehl auf gezogene Signalbaugruppe).

� Asynchrone Fehler können einer Prioritätsklasse oder dem gesamtenAutomatisierungssystem zugeordnet werden (z. B. Zykluszeitüberlauf).

Tabelle 11-6 zeigt welche Fehlerarten prinzipiell auftreten können. Ob IhreCPU die angegebenen OBs anbietet, entnehmen Sie bitte den CPU-Beschreibungen in den Handbüchern /70/ bzw. /101/.

FeststellbareFehler

Programmierenvon Reaktionen

Fehler-OBs

Fehlerdiagnose und Störungsbehandlung

Page 147: Systemsoftware für S7-300/400, Programmentwurf · iii Systemsoftware für S7-300/400 Programmentwurf C79000-G7000-C506-01 Vorwort Dieses Handbuch informiert Sie über die verschiedenen

11-11Systemsoftware für S7-300/400 ProgrammentwurfC79000-G7000-C506-01

Tabelle 11-6 Fehler-OBs

Fehlertyp Fehlerart OB Priorität

Asynchron Zeitfehler OB 80 26

Stromversorgungsfehler OB 81 (bzw. 28, wenn derFehler-OB im Anlauf-

Diagnosealarm OB 82Fehler-OB im Anlauf-programm vorkommt)

Ziehen/Stecken-Alarm OB 83

p g )

CPU-Hardwarefehler OB 84

Prioritätsklassenfehler OB 85

Baugruppenträgerausfall OB 86

Kommunikationsfehler OB 87

Synchron Programmierfehler OB 121 Priorität des fehler-verursachenden OBs

Zugriffsfehler OB 122verursachenden OBs

Sie können mit den Lokaldaten (Startinformation) des Fehler-OB die Art desaufgetretenen Fehlers auswerten.

Wenn die CPU beispielsweise einen Batteriefehler erkennt, dann ruft dasBetriebssystem OB 81 auf (siehe Bild 11-4). Sie können ein Programmschreiben, das den Ereigniscode, der den Aufruf von OB 81 ausgelöst hat,auswertet. Sie können auch ein Programm schreiben, das eine Reaktionhervorruft, wie beispielsweise das Einschalten eines Ausgangs, der an eineLampe der Operator-Station angeschlosssen ist.

Die CPU erkennt einen Batterie-fehler.

Pro-gramm inBearbei-

tung

OB 81

Betriebs-system

OB 81 prüft die Art des Strom-versorgungsfehlers, der ent-deckt wurde, und zeigt an, obder Fehler durch eine ausgefal-lene Batterie verursacht wurde.

21 Batterie leer(Zentralgerät) 1

22 Keine Pufferspannung(Zentralgerät)

23 24-V-Stromversorgung ausgefallen(Zentralgerät) 1

31 Batterie leer(Erweiterungsgerät) 1

32 Keine Pufferspannung(Erweiterungsgerät) 1

33 24-V-Stromversorgung ausgefallen(Erweiterungsgerät) 1

Arten der Stromversorgungsfehler

1 Nicht bei der S7-300.

Bild 11-4 Verwenden der Lokaldaten eines Fehler-OB

Beispiel zurVerwendung desFehler-OB 81

Fehlerdiagnose und Störungsbehandlung

Page 148: Systemsoftware für S7-300/400, Programmentwurf · iii Systemsoftware für S7-300/400 Programmentwurf C79000-G7000-C506-01 Vorwort Dieses Handbuch informiert Sie über die verschiedenen

11-12Systemsoftware für S7-300/400 Programmentwurf

C79000-G7000-C506-01

Tabelle 11-7 beschreibt die temporären (TEMP) Variablen, die in derVariablendeklarationstabelle des OB 81 deklariert sind.

In der Symboltabelle muß auch das Symbol Batteriefehler (BOOL) alsAusgang gekennzeichnet werden (z. B. A 4.0), so daß andere Teile desProgramms auf diese Daten zugreifen können.

Tabelle 11-7 Variablendeklarationstabelle des OB 81

Dekl. Name Typ Beschreibung

TEMP OB81_EV_CLASS BYTE Fehlerklasse/Fehlerkennung 39xx

TEMP OB81_FLT_ID BYTE Fehlercode:b#16#21 = Mindestens eine Pufferbatterie des

Zentralgeräts leer 1

b#16#22 = Pufferspannung im Zentralgerät fehltb#16#23 = Ausfall der 24-V-Stromversorgung im

Zentralgerät 1

b#16#31 = Mindestens eine Pufferbatterie einesErweiterungsgeräts leer 1

b#16#32 = Pufferspannung in einem Erweiterungs-gerät fehlt 1

b#16#33 = Ausfall der 24-V-Stromversorgung einesErweiterungsgeräts 1

TEMP OB81_PRIORITY BYTE Prioritätsklasse = 26/28

TEMP OB81_OB_NUMBR BYTE 81 = OB 81

TEMP OB81_RESERVED_1 BYTE Reserviert

TEMP OB81_RESERVED_2 BYTE Reserviert

TEMP OB81_MDL_ADDR INT Reserviert

TEMP OB81_RESERVED_3 BYTE Nur relevant für die Fehlercodes B#16#31, B#16#32,B#16#33

TEMP OB81_RESERVED_4 BYTEB#16#33

TEMP OB81_RESERVED_5 BYTE

TEMP OB81_RESERVED_6 BYTE

TEMP OB81_DATE_TIME DATE_AND_TIME

Datum und Uhrzeit, zu denen der OB gestartet wurde

1 Nicht bei der S7-300.

Lokaldaten desFehler-OB 81

Fehlerdiagnose und Störungsbehandlung

Page 149: Systemsoftware für S7-300/400, Programmentwurf · iii Systemsoftware für S7-300/400 Programmentwurf C79000-G7000-C506-01 Vorwort Dieses Handbuch informiert Sie über die verschiedenen

11-13Systemsoftware für S7-300/400 ProgrammentwurfC79000-G7000-C506-01

Anhand eines AWL-Beispielprogramms wird gezeigt, wie Sie den Fehlercodein OB 81 lesen können.

Das Programm ist folgendermaßen aufgebaut:

� Der Fehlercode in OB 81 (OB81_FLT_ID) wird gelesen und verglichenmit dem Wert des Ereignisses “Batterie leer” (B#16#3921).

� Entspricht der Fehlercode dem Code für “Batterie leer”, dann springt dasProgramm zur Marke BFeh und schaltet den Ausgang Batteriefehler ein.

� Entspricht der Fehlercode nicht dem Code für “Batterie leer”, dannvergleicht das Programm den Code mit dem Code für “Batterieausfall”.

� Entspricht der Fehlercode dem Code für “Batterieausfall”, dann springtdas Programm zur Marke BFeh und schaltet den Ausgang Batteriefehlerein. Andernfalls wird der Baustein beendet.

AWL Beschreibung

L B#16#3921L #OB81_FLT_ID== ISPB BFehL b#16#3922<> I

BEB

BFeh: S #Batteriefehler

Vergleiche Ereigniscode “Batterie leer”(B#16#3921) mit dem Fehlercode für OB 81.Wenn gleich (Batterie ist leer), dannspringe zu BFeh.Vergleiche Ereigniscode “Batterieausfall”(b#16#3922) mit dem Fehlercode für OB 81.

Wenn ungleich (kein Batterieausfall imZentralgerät), dann beende den Baustein.BFeh setzt den Ausgang Batteriefehler,wenn ein Batterieausfall oder eine leereBatterie entdeckt wird.

Hinweis

Die Fehlercodes aller Organisationsbausteine sind in der STEP 7-Online-Hilfe und im Referenzhandbuch /235/ beschrieben.

Beispielprogrammfür denFehler-OB 81

Fehlerdiagnose und Störungsbehandlung

Page 150: Systemsoftware für S7-300/400, Programmentwurf · iii Systemsoftware für S7-300/400 Programmentwurf C79000-G7000-C506-01 Vorwort Dieses Handbuch informiert Sie über die verschiedenen

11-14Systemsoftware für S7-300/400 Programmentwurf

C79000-G7000-C506-01

11.7 Einfügen von “Ersatzwerten” bei Fehlererkennung

Für bestimmte Fehlerarten (z. B. Drahtbruch bei Eingangssignal) können SieErsatzwerte vorgeben für Werte, die aufgrund des Fehlers nicht verfügbarsind. Es gibt zwei Möglichkeiten Ersatzwerte vorzugeben:

� Sie können mit STEP 7 Ersatzwerte für parametrierbare Ausgabe-baugruppen parametrieren. Nicht parametrierbare Ausgabebaugruppenhaben den voreingestellten Ersatzwert 0.

� Sie können mit Hilfe der SFC 44 RPL_VAL in Fehler-OBs Ersatzwerteprogrammieren (nur für Eingabebaugruppen).

Bei allen Ladebefehlen, die zu synchronen Fehlern führen, können Sie imFehler-OB einen Ersatzwert für den AKKU-Inhalt angeben.

Im folgenden Beispielprogramm wird ein Ersatzwert in der SFC 44RPL_VAL bereitgestellt. Bild 11-5 zeigt, wie OB 122 aufgerufen werdenkann, wenn die CPU erkennt, daß eine Eingabebaugruppe nicht reagiert.In diesem Beispiel wird der Ersatzwert in Bild 11-6 in das Programmeingegeben, damit das Programm mit sinnvollen Werten weiterlaufen kann.

OB1

OB 122

L PEB0

T EB0SFC44

RPL_VAL

Bild 11-5 Verwenden eines Ersatzwertes

Fällt eine Eingabebaugruppe aus, erzeugt die Bearbeitung der AnweisungL PEB0 einen synchronen Fehler und startet den OB 122. Standardmäßigliest der Ladebefehl den Wert 0 ein. Sie können jedoch mit der SFC 44beliebige zum Prozeß passende Ersatzwerte definieren. Die SFC ersetzt denAKKU-Inhalt durch den vorgegebenen Ersatzwert.

Ersatzwert: 0 0 0 1 0 0 1 0

Stop_Sch E 0.1

Stand_Ausw E 0.3

Voll_Sch E 0.4

Start_Sch E 0.0

Bild 11-6 Beispiele für Ersatzwerte im Programm

Übersicht

Beispielprogrammzum Ersetzeneines Werts

Fehlerdiagnose und Störungsbehandlung

Page 151: Systemsoftware für S7-300/400, Programmentwurf · iii Systemsoftware für S7-300/400 Programmentwurf C79000-G7000-C506-01 Vorwort Dieses Handbuch informiert Sie über die verschiedenen

11-15Systemsoftware für S7-300/400 ProgrammentwurfC79000-G7000-C506-01

Das folgende Beispielprogramm könnte in OB 122 gespeichert sein.Tabelle 11-8 zeigt die temporären Variablen, die in diesem Fall in derVariablendeklarationstabelle des OB 122 deklariert werden müssen.

Tabelle 11-8 Lokale Variablen (TEMP) von OB 122

Dekl. Name Typ Beschreibung

TEMP OB122_EV_CLASS BYTE Fehlerklasse/Fehlerkennung 29xx

TEMP OB122_SW_FLT BYTE Fehlercode:16#42, 16#43, 16#44 1, 16#45 1

TEMP OB122_PRIORITY BYTE Prioritätsklasse = Priorität des OB, in dem der Fehleraufgetreten ist

TEMP OB122_OB_NUMBR BYTE 122 = OB 122

TEMP OB122_BLK_TYPE BYTE Bausteintyp, in dem der Fehler aufgetreten ist

TEMP OB122_MEM_AREA BYTE Speicherbereich und Zugriffsart

TEMP OB122_MEM_ADDR WORD Adresse im Speicher, an der der Fehler aufgetreten ist

TEMP OB122_BLK_NUM WORD Nummer des Bausteins, in dem der Fehler aufgetretenist

TEMP OB122_PRG_ADDR WORD Relativadresse des fehlerverursachenden Befehls

TEMP OB122_DATE_TIME DATE_AND_TIME

Datum und Uhrzeit, zu denen der OB gestartet wurde

TEMP Fehler INT Speichert den Fehlercode von SFC44

1 Nicht bei der S7-300.

Hinweis

Die Fehlercodes aller Organisationsbausteine sind in der STEP 7-Online-Hilfe und im Referenzhandbuch /235/ beschrieben.

Fehlerdiagnose und Störungsbehandlung

Page 152: Systemsoftware für S7-300/400, Programmentwurf · iii Systemsoftware für S7-300/400 Programmentwurf C79000-G7000-C506-01 Vorwort Dieses Handbuch informiert Sie über die verschiedenen

11-16Systemsoftware für S7-300/400 Programmentwurf

C79000-G7000-C506-01

AWL Beschreibung

L B#16#2942L #OB122_SW_FLT==ISPB QFeh

L B#16#2943<> ISPB Stop

QFeh: CALL ”REPL_VAL”VAL : = DW#16#2912RET_VAL : = #Fehler

L #FehlerL 0==IBEB

Stop: CALL ”STP”

Vergleiche den Ereigniscode von OB 122mit dem Ereigniscode (B#16#2942) fürdie Quittierung eines Zeitfehlers beimLesen von der Peripherie. Wenn gleich,springe zu “QFeh”.

Vergleiche den Ereigniscode von OB 122mit dem Ereigniscode (B#16#2943) füreinen Adressierungsfehler (Schreibenvon einer Baugruppe, die nicht vor-handen ist). Wenn ungleich, springe zu“Stop”.

Marke ”QFeh”: Übergibt DW#16#2912 (bi-när 10010) an die SFC44 (REPL_VAL).SFC44 lädt diesen Wert in AKKU 1 (undersetzt den Wert, der den Aufruf vonOB 122 ausgelöst hat). Speichert denSFC-Fehlercode in #Fehler.

Vergleicht #Fehler mit 0 (wenn gleich,dann ist bei der Bearbeitung von OB 122kein Fehler aufgetreten). Beende denBaustein, wenn kein Fehler aufgetretenist.

Marke ”Stop”: Ruft SFC46 ”STP” auf undversetzt die CPU in den BetriebszustandSTOP.

Fehlerdiagnose und Störungsbehandlung

Page 153: Systemsoftware für S7-300/400, Programmentwurf · iii Systemsoftware für S7-300/400 Programmentwurf C79000-G7000-C506-01 Vorwort Dieses Handbuch informiert Sie über die verschiedenen

11-17Systemsoftware für S7-300/400 ProgrammentwurfC79000-G7000-C506-01

11.8 Zeitfehler-OB 80

Das Betriebssystem der CPU ruft OB 80 auf, wenn ein Zeitfehler auftritt.Zeitfehler können z. B. sein:

� Überschreiten der Maximalzykluszeit (siehe auch Kapitel 8.4)

� Überspringen von Uhrzeitalarmen durch Vorstellen der Uhrzeit

� zu große Verzögerung beim Bearbeiten einer Prioritätsklasse

Den Zeitfehler-OB 80 müssen Sie mit STEP 7 als Objekt in Ihrem S7-Programm erzeugen. Schreiben Sie das Programm, das im OB 80 bearbeitetwerden soll, in den erzeugten Baustein und laden Sie ihn als Teil IhresAnwenderprogramms in die CPU.

Sie können den OB 80 beispielsweise dazu nutzen:

� die Startinformation des OB 80 auszuwerten und festzustellen, welcheUhrzeitalarme übersprungen wurden

� mit Hilfe der SFC 29 CAN_TINT den übersprungenen Uhrzeitalarm zudeaktivieren, damit er nicht ausgeführt wird und um mit der neueingestellten Uhrzeit einen sauberen Aufsetzpunkt für die Bearbeitung derUhrzeitalarme zu haben.

Wenn Sie übersprungene Uhrzeitalarme im OB 80 nicht deaktivieren, wirdder erste übersprungene Uhrzeitalarm bearbeitet, alle anderen werdenignoriert (siehe auch Kapitel 4.2).

Haben Sie OB 80 nicht programmiert, wechselt die CPU in den Betriebs-zustand STOP, wenn ein Zeitfehler erkannt wird.

Beschreibung

Programmierendes OB 80

Fehlerdiagnose und Störungsbehandlung

Page 154: Systemsoftware für S7-300/400, Programmentwurf · iii Systemsoftware für S7-300/400 Programmentwurf C79000-G7000-C506-01 Vorwort Dieses Handbuch informiert Sie über die verschiedenen

11-18Systemsoftware für S7-300/400 Programmentwurf

C79000-G7000-C506-01

11.9 Stromversorgungsfehler-OB 81

Das Betriebssystem der CPU ruft OB 81 auf, wenn im Zentralgerät odereinem Erweiterungsgerät

� die 24V-Spannungsversorgung

� eine Batterie

� die komplette Pufferung

ausgefallen ist bzw. wenn die Störung beseitigt ist (Aufruf bei kommendemund gehendem Ereignis).

Den Stromversorgungsfehler-OB 81 müssen Sie mit STEP 7 als Objekt inIhrem S7-Programm erzeugen. Schreiben Sie das Programm, das im OB 81bearbeitet werden soll, in den erzeugten Baustein und laden Sie ihn als TeilIhres Anwenderprogramms in die CPU.

Sie können den OB 81 beispielsweise dazu nutzen

� die Startinformation des OB 81 auszuwerten und festzustellen, welcherStromversorgungsfehler vorliegt

� die Nummer des Baugruppenträgers mit der defekten Stromversorgung zuermitteln

� eine Lampe an einer Operator Station anzusteuern, um dem Wartungs-personal anzuzeigen, daß eine Batterie auszutauschen ist.

Haben Sie OB 81 nicht programmiert, wechselt die CPU im Gegensatz zuallen anderen asynchronen Fehler-OBs nicht in den Betriebszustand STOP,wenn ein Stromversorgungsfehler erkannt wird. Der Fehler wird aber in denDiagnosepuffer eingetragen und die entsprechende LED auf der Frontplattezeigt den Fehler an.

Beschreibung

Programmierendes OB 81

Fehlerdiagnose und Störungsbehandlung

Page 155: Systemsoftware für S7-300/400, Programmentwurf · iii Systemsoftware für S7-300/400 Programmentwurf C79000-G7000-C506-01 Vorwort Dieses Handbuch informiert Sie über die verschiedenen

11-19Systemsoftware für S7-300/400 ProgrammentwurfC79000-G7000-C506-01

11.10 Diagnosealarm-OB 82

Das Betriebssystem der CPU ruft OB 82 auf, wenn eine diagnosefähigeBaugruppe, bei der Sie den Diagnosealarm freigegeben haben, einen Fehlererkennt und wenn der Fehler beseitigt ist (Aufruf bei kommendem undgehendem Ereignis).

Den Diagnosealarm-OB 82 müssen Sie mit STEP 7 als Objekt in Ihrem S7-Programm erzeugen. Schreiben Sie das Programm, das im OB 82 bearbeitetwerden soll, in den erzeugten Baustein und laden Sie ihn als Teil IhresAnwenderprogramms in die CPU.

Sie können den OB 82 beispielsweise dazu nutzen

� die Startinformation des OB 82 auszuwerten

� eine genaue Diagnose des aufgetretenen Fehlers vorzunehmen.

Wenn ein Diagnosealarm ausgelöst wird, trägt die gestörte Baugruppeautomatisch 4 Byte Diagnosedaten und ihre Anfangsadresse in die Start-information des Diagnosealarm-OBs und in den Diagnosepuffer ein. Damiterhalten Sie die Information, auf welcher Baugruppe, und wann ein Fehleraufgetreten ist.

Weitere Diagnosedaten der gestörten Baugruppe (auf welchem Kanal ist derFehler aufgetreten, um welchen Fehler handelt es sich) können Sie mit einementsprechenden Programm im OB 82 auswerten. Mit der SFC 51 RDSYSSTkönnen Sie Baugruppendiagnosedaten auslesen und mit der SFC 52WR_USRMSG diese Information in den Diagnosepuffer eintragen.Außerdem können Sie zusätzlich die selbstdefinierte Diagnosemeldung anein angemeldetes Beobachtungsgerät senden (siehe auch Kapitel 11.4).

Haben Sie OB 82 nicht programmiert, wechselt die CPU in den Betriebs-zustand STOP, wenn ein Diagnosealarm ausgelöst wird.

Beschreibung

Programmiereneines OB 82

Fehlerdiagnose und Störungsbehandlung

Page 156: Systemsoftware für S7-300/400, Programmentwurf · iii Systemsoftware für S7-300/400 Programmentwurf C79000-G7000-C506-01 Vorwort Dieses Handbuch informiert Sie über die verschiedenen

11-20Systemsoftware für S7-300/400 Programmentwurf

C79000-G7000-C506-01

11.11 Ziehen-/Stecken-Alarm-OB 83

S7-400-CPUs überwachen zyklisch im Abstand von ca. einer Sekunde dasZiehen und Stecken von Baugruppen im Zentralgerät und den Erweiterungs-geräten.

Nach dem Einschalten der Netzspannung prüft die CPU, ob alle Baugruppen,die in der mit STEP 7 erstellten Konfigurationstabelle aufgeführt sind,tatsächlich gesteckt sind. Ist dies der Fall, wird diese Ist-Konfigurationgespeichert und dient als Referenzwert für die zyklische Überwachung derBaugruppen. In jedem Abfragezyklus wird die neu ermittelte Ist-Konfiguration mit der bisherigen Ist-Konfiguration verglichen. BeiAbweichungen wird ein Ziehen-/Stecken-Alarm gemeldet und es erfolgt jeein Eintrag in den Diagnosepuffer und die Systemzustandsliste (siehe auchSoll-Ist-Baugruppenüberwachung in Kapitel 8.3). Im Betriebszustand RUNwird der Ziehen/Stecken-OB gestartet.

Hinweis

Im Betriebszustand RUN dürfen Stromversorgungsbaugruppen, CPUs undIMs nicht gezogen werden!

Zwischen Ziehen und Stecken einer Baugruppe müssen mindestens 2 svergehen, damit das Ziehen oder Stecken von der CPU richtig erkanntwerden kann.

Wird eine Baugruppe im Betriebszustand RUN gesteckt, prüft die CPU, obder Baugruppentyp der neu gesteckten Baugruppe mit dem der ursprünglichgesteckten Baugruppe übereinstimmt. Bei Übereinstimmung der Bau-gruppentypen erfolgt die Parametrierung. Übertragen werden entweder dieDefault-Parameter oder die Parameter, die Sie mit STEP 7 vergeben haben.

Den Ziehen-/Stecken-Alarm-OB 83 müssen Sie mit STEP 7 als Objekt inIhrem S7-Programm erzeugen. Schreiben Sie das Programm, das im OB 83bearbeitet werden soll, in den erzeugten Baustein und laden Sie ihn als TeilIhres Anwenderprogramms in die CPU.

Sie können den OB 83 beispielsweise dazu nutzen

� die Startinformation des OB 83 auszuwerten

� mit Hilfe der Systemfunktionen SFC 55 bis 59 die neu gesteckteBaugruppe nachzuparametrieren (siehe auch Kapitel 6.2).

Haben Sie OB 83 nicht programmiert, wechselt die CPU von RUN in denBetriebszustand STOP, wenn ein Ziehen-/Stecken-Alarm auftritt.

Beschreibung

Parametriereneiner neu gesteck-ten Baugruppe

Programmiereneines OB 83

Fehlerdiagnose und Störungsbehandlung

Page 157: Systemsoftware für S7-300/400, Programmentwurf · iii Systemsoftware für S7-300/400 Programmentwurf C79000-G7000-C506-01 Vorwort Dieses Handbuch informiert Sie über die verschiedenen

11-21Systemsoftware für S7-300/400 ProgrammentwurfC79000-G7000-C506-01

11.12 CPU-Hardwarefehler-OB 84

Das Betriebssystem der CPU ruft OB 84 auf, wenn ein Fehler bei der Schnitt-stelle zum MPI-Netz, zum K-Bus oder zur Anschaltung für die DezentralePeripherie

� z. B. fehlerhafter Signalpegel auf der Leitung.

erkannt wird bzw. wenn der Fehler beseitigt ist (Aufruf bei kommendem undgehendem Ereignis).

Den CPU-Hardwarefehler-OB 84 müssen Sie mit STEP 7 als Objekt in IhremS7-Programm erzeugen. Schreiben Sie das Programm, das im OB 84bearbeitet werden soll, in den erzeugten Baustein und laden Sie ihn als TeilIhres Anwenderprogramms in die CPU.

Sie können den OB 84 beispielsweise dazu nutzen

� die Startinformation des OB 84 auszuwerten

� mit Hilfe der Systemfunktion SFC 52 WR_USMSG eine Meldung zumDiagnosepuffer zu senden.

Haben Sie OB 84 nicht programmiert, wechselt die CPU in den Betriebs-zustand STOP, wenn ein CPU-Hardwarefehler erkannt wird.

Beschreibung

Programmiereneines OB 84

Fehlerdiagnose und Störungsbehandlung

Page 158: Systemsoftware für S7-300/400, Programmentwurf · iii Systemsoftware für S7-300/400 Programmentwurf C79000-G7000-C506-01 Vorwort Dieses Handbuch informiert Sie über die verschiedenen

11-22Systemsoftware für S7-300/400 Programmentwurf

C79000-G7000-C506-01

11.13 Prioritätsklassenfehler-OB 85

Das Betriebssystem der CPU ruft OB 85 auf, wenn ein

� Startereignis für einen Alarm-OB vorliegt, aber der OB nicht ausgeführtwerden kann, weil er nicht in die CPU geladen wurde

� Fehler beim Zugriff auf den Instanz-Datenbaustein eines System-funktionsbausteins aufgetreten ist

� Fehler bei der Prozeßabbild-Aktualisierung (Baugruppe nicht vorhandenoder defekt) aufgetreten ist.

Den Prioritätsklassenfehler-OB 85 müssen Sie mit STEP 7 als Objekt inIhrem S7-Programm erzeugen. Schreiben Sie das Programm, das im OB 85bearbeitet werden soll, in den erzeugten Baustein und laden Sie ihn als TeilIhres Anwenderprogramms in die CPU.

Sie können den OB 85 beispielsweise dazu nutzen

� die Startinformation des OB 85 auszuwerten und festzustellen, welcheBaugruppe defekt ist oder fehlt (Angabe der Baugruppen-Anfangsadresse)

� mit Hilfe der SFC 49 LGC_GADR den Steckplatz der betreffendenBaugruppe zu ermitteln.

Haben Sie OB 85 nicht programmiert, wechselt die CPU in den Betriebs-zustand STOP, wenn ein Prioritätsklassenfehler erkannt wird.

Beschreibung

Programmiereneines OB 85

Fehlerdiagnose und Störungsbehandlung

Page 159: Systemsoftware für S7-300/400, Programmentwurf · iii Systemsoftware für S7-300/400 Programmentwurf C79000-G7000-C506-01 Vorwort Dieses Handbuch informiert Sie über die verschiedenen

11-23Systemsoftware für S7-300/400 ProgrammentwurfC79000-G7000-C506-01

11.14 Baugruppenträgerausfall-OB 86

Das Betriebssystem der CPU ruft OB 86 auf, wenn ein Baugruppenträger-ausfall erkannt wird, z. B. bei

� Baugruppenträgerausfall (fehlende oder defekte IM bzw. unterbrocheneVerbindungsleitung

� dezentraler Spannungsausfall eines Baugruppenträgers

� Ausfall eines DP-Slaves in einem Mastersystem des BussystemsPROFIBUS-DP

bzw. wenn der Fehler beseitigt ist (Aufruf bei kommendem und gehendemEreignis).

Den Baugruppenträgerausfall-OB 86 müssen Sie mit STEP 7 als Objekt inIhrem S7-Programm erzeugen. Schreiben Sie das Programm, das im OB 86bearbeitet werden soll, in den erzeugten Baustein und laden Sie ihn als TeilIhres Anwenderprogramms in die CPU.

Sie können den OB 86 beispielsweise dazu nutzen

� die Startinformation des OB 86 auszuwerten und festzustellen, welcherBaugruppenträger defekt ist oder fehlt.

� mit Hilfe der Systemfunktion SFC 52 WR_USMSG eine Meldung zumDiagnosepuffer und zu einem Beobachtungsgerät zu senden.

Haben Sie OB 86 nicht programmiert, wechselt die CPU in den Betriebs-zustand STOP, wenn ein Baugruppenträgerausfall erkannt wird.

Beschreibung

Programmiereneines OB 86

Fehlerdiagnose und Störungsbehandlung

Page 160: Systemsoftware für S7-300/400, Programmentwurf · iii Systemsoftware für S7-300/400 Programmentwurf C79000-G7000-C506-01 Vorwort Dieses Handbuch informiert Sie über die verschiedenen

11-24Systemsoftware für S7-300/400 Programmentwurf

C79000-G7000-C506-01

11.15 Kommunikationsfehler-OB 87

Das Betriebssystem der CPU ruft OB 87 auf, wenn ein Kommunikations-fehler beim Datenaustausch über Kommunikations-Funktionsbausteine oderGlobaldatenkommunikation auftritt, z. B.

� beim Empfang von Globaldaten wurde eine falsche Telegrammkennungerkannt

� der Datenbaustein für die Statusinformation der Globaldaten ist nichtvorhanden oder zu kurz.

Den Kommunikationsfehler-OB 87 müssen Sie mit STEP 7 als Objekt inIhrem S7-Programm erzeugen. Schreiben Sie das Programm, das im OB 87bearbeitet werden soll, in den erzeugten Baustein und laden Sie ihn als TeilIhres Anwenderprogramms in die CPU.

Sie können den OB 87 beispielsweise dazu nutzen

� die Startinformation des OB 87 auszuwerten und

� wenn der Datenbaustein für die Statusinformation der Globaldaten-kommunikation fehlt, einen Datenbaustein anzulegen.

Haben Sie OB 87 nicht programmiert, wechselt die CPU in den Betriebs-zustand STOP, wenn ein Kommunikationsfehler erkannt wird.

Beschreibung

Programmiereneines OB 87

Fehlerdiagnose und Störungsbehandlung

Page 161: Systemsoftware für S7-300/400, Programmentwurf · iii Systemsoftware für S7-300/400 Programmentwurf C79000-G7000-C506-01 Vorwort Dieses Handbuch informiert Sie über die verschiedenen

11-25Systemsoftware für S7-300/400 ProgrammentwurfC79000-G7000-C506-01

11.16 Programmierfehler-OB 121

Das Betriebssystem der CPU ruft OB 121 auf, wenn ein Programmierfehlerauftritt, z. B.

� adressierte Zeiten nicht vorhanden

� aufgerufener Baustein nicht geladen.

Den Programmierfehler-OB 121 müssen Sie mit STEP 7 als Objekt in IhremS7-Programm erzeugen. Schreiben Sie das Programm, das im OB 121bearbeitet werden soll, in den erzeugten Baustein und laden Sie ihn als TeilIhres Anwenderprogramms in die CPU.

Sie können den OB 121 beispielsweise dazu nutzen

� die Startinformation des OB 121 auszuwerten

� die Fehlerursache in einen Melde-Datenbaustein einzutragen.

Haben Sie OB 121 nicht programmiert, wechselt die CPU in den Betriebs-zustand STOP, wenn ein Programmierfehler erkannt wird.

Beschreibung

Programmiereneines OB 121

Fehlerdiagnose und Störungsbehandlung

Page 162: Systemsoftware für S7-300/400, Programmentwurf · iii Systemsoftware für S7-300/400 Programmentwurf C79000-G7000-C506-01 Vorwort Dieses Handbuch informiert Sie über die verschiedenen

11-26Systemsoftware für S7-300/400 Programmentwurf

C79000-G7000-C506-01

11.17 Peripheriezugriffsfehler-OB 122

Das Betriebssystem der CPU ruft OB 122 auf, wenn mit einerSTEP 7-Operation auf einen Ein- oder Ausgang einer Signalbaugruppezugegriffen wird, dem zum Zeitpunkt des letzten Neustarts keine Baugruppezugeordnet war, z. B.

� Fehler bei Peripherie-Direktzugriff (Baugruppe defekt oder nichtvorhanden)

� Zugriff auf eine Peripherie-Adresse, die der CPU nicht bekannt ist.

Den Peripheriezugriffsfehler-OB 122 müssen Sie mit STEP 7 als Objekt inIhrem S7-Programm erzeugen. Schreiben Sie das Programm, das im OB 122bearbeitet werden soll, in den erzeugten Baustein und laden Sie ihn als TeilIhres Anwenderprogramms in die CPU.

Sie können den OB 122 beispielsweise dazu nutzen

� die Startinformation des OB 122 auszuwerten

� die Systemfunktion SFC 44 aufzurufen und einen Ersatzwert für eineAusgabebaugruppe vorzugeben, damit das Programm mit einem sinn-vollen, prozeßabhängigen Wert weiterbearbeitet werden kann.

Haben Sie OB 122 nicht programmiert, wechselt die CPU in den Betriebs-zustand STOP, wenn ein Peripheriezugriffsfehler erkannt wird.

Beschreibung

Programmiereneines OB 122

Fehlerdiagnose und Störungsbehandlung

Page 163: Systemsoftware für S7-300/400, Programmentwurf · iii Systemsoftware für S7-300/400 Programmentwurf C79000-G7000-C506-01 Vorwort Dieses Handbuch informiert Sie über die verschiedenen

A-1Systemsoftware für S7-300/400 ProgrammentwurfC79000-G7000-C506-01

Beispielprogramm für einen industriellenMischprozeß

In diesem Kapitel wird anhand eines Beispiels erläutert, wie Sie einProgramm für einen industriellen Mischprozeß entwerfen könnten. DerSchwerpunkt liegt dabei nicht auf der Vermittlung eines bestimmtenProgrammierstils oder technischen Fachwissens, das Sie zur Steuerung einesbestimmten Prozesses benötigen. Mit Hilfe dieses Beispiels können Sievielmehr die Schritte nachvollziehen, die beim Programmentwurf ausgeführtwerden müssen.

Im Kapitel finden Sie auf Seite

A.1 Beispiel eines industriellen Mischprozesses A-2

A.2 Definieren von Codebausteinen A-5

A.3 Zuordnen von symbolischen Namen A-6

A.4 Erstellen des FB für den Motor A-8

A.5 Erstellen der FC für die Ventile A-12

A.6 Erstellen des OB 1 A-14

Hinweis

Mit dem Beispielprogramm wird eine Variablentabelle ausgeliefert, mit deren Hilfe Sie einzelne Variablen beeinflussen und beobachten können.

Was beschreibtdieses Kapitel?

Kapitelübersicht

A

Page 164: Systemsoftware für S7-300/400, Programmentwurf · iii Systemsoftware für S7-300/400 Programmentwurf C79000-G7000-C506-01 Vorwort Dieses Handbuch informiert Sie über die verschiedenen

A-2Systemsoftware für S7-300/400 Programmentwurf

C79000-G7000-C506-01

A.1 Beispiel eines industriellen Mischprozesses

Das Beispielprogramm baut auf den Informationen auf, die bereits in denvorherigen Kapiteln über das Steuern eines industriellen Mischprozessesvermittelt wurden.

Zwei Stoffe (Stoff A und Stoff B) sollen in einem Mischbehälter durch einRührwerk vermengt werden. Die Masse soll durch ein Abflußventil aus demMischbehälter abgelassen werden. In Bild A-1 sehen Sie ein Diagramm desBeispielprozesses.

M

M

Abflußventil

Schalter zur Füll-standsmessung

RührwerkmotorEinlaß-ventil

Speise-ventil

Speise-pumpe

Einlaß-ventil

Speise-ventil

Speise-pumpe

Durch-flußgeber

Bereich: Stoff B

Bereich: Stoff A

Bereich: MischbehälterM

M M

M

Bereich: Abfluß

Bild A-1 Definieren von Bereichen innerhalb eines Prozesses

In Kapitel 1.2 wurde beschrieben, wie Sie den Beispielprozeß in Funktions-bereiche und einzelne Aufgaben zerlegen können. Im folgenden finden Sieeine Beschreibung der einzelnen Teilbereiche.

Bereiche Stoff A und Stoff B:

� Die Stoffzuleitungen sind jeweils mit einem Einlaß- und einemSpeiseventil sowie einer Speisepumpe zu versehen.

� In den Zuleitungen befinden sich Durchflußgeber.

� Das Einschalten der Speisepumpen muß verriegelt sein, wenn derFüllstandsmesser ”Behälter ist voll” anzeigt.

Einleitung

Aufgabenstellung

Beschreibung derTeilprozesse

Beispielprogramm für einen industriellen Mischprozeß

Page 165: Systemsoftware für S7-300/400, Programmentwurf · iii Systemsoftware für S7-300/400 Programmentwurf C79000-G7000-C506-01 Vorwort Dieses Handbuch informiert Sie über die verschiedenen

A-3Systemsoftware für S7-300/400 ProgrammentwurfC79000-G7000-C506-01

� Das Einschalten der Speisepumpen muß verriegelt sein, wenn das Abfluß-ventil geöffnet ist.

� Frühestens 1 Sekunde nach Ansteuerung der Speisepumpe dürfen Einlaß-und Speiseventil geöffnet werden.

� Sofort nach dem Stoppen der Speisepumpen (Signal des Durchflußgebers)müssen die Ventile geschlossen werden, um ein Ablaufen des Stoffes ausder Pumpe zu verhindern.

� Die Ansteuerung der Speisepumpen ist zeitüberwacht, d. h. innerhalb von7 Sekunden nach Ansteuerung muß vom Durchflußgeber ein Durchflußgemeldet werden.

� Die Speisepumpen müssen in kürzester Zeit abgeschaltet werden, wenndie Durchflußgeber während des Laufs der Speisepumpen keinenDurchfluß mehr melden.

� Die Anzahl der Starts der Speisepumpen müssen gezählt werden(Wartungsintervall).

Bereich Mischbehälter:

� Das Einschalten des Rührwerkmotors muß verriegelt sein, wenn derFüllstandsmesser ”Behälter unter Minimum” anzeigt oder das Abflußventil offen ist.

� Der Rührwerkmotor gibt ein Rückmeldesignal nach Erreichen der Nenn-drehzahl. Wird dieses Signal nicht innerhalb von 10 Sekunden nach An-steuerung des Motors gemeldet, muß der Motor abgeschaltet werden.

� Die Anzahl der Starts des Rührwerkmotors müssen gezählt werden(Wartungsintervall).

� Im Mischbehälter sind drei Geber zu installieren:

– Behälter voll: Öffner. Ist der maximale Füllstand errreicht, wird derKontakt geöffnet.

– Füllstand im Behälter über Minimum: Schließer. Ist der minimaleFüllstand erreicht, wird der Kontakt geschlossen.

– Behälter nicht leer: Schließer. Ist der Behälter nicht leer, ist derKontakt geschlossen.

Bereich Abfluß:

� Der Abfluß soll über ein Magnetventil gesteuert werden.

� Das Magnetventil wird durch den Bediener gesteuert, jedoch spätestensbeim Signal ”Behälter leer” wieder geschlossen.

� Das Öffnen des Abflußventils ist verriegelt, wenn

– der Rührwerkmotor läuft

– der “Behälter leer” ist

Beispielprogramm für einen industriellen Mischprozeß

Page 166: Systemsoftware für S7-300/400, Programmentwurf · iii Systemsoftware für S7-300/400 Programmentwurf C79000-G7000-C506-01 Vorwort Dieses Handbuch informiert Sie über die verschiedenen

A-4Systemsoftware für S7-300/400 Programmentwurf

C79000-G7000-C506-01

Um einem Bediener das Starten und Stoppen sowie das Beobachten desProzesses zu ermöglichen, soll außerdem ein Bedienpult angelegt werden(siehe auch Kapitel 1.5). Auf dem Bedienpult befinden sich

� Taster zum Steuern der wichtigsten Vorgänge. Mit dem Taster “Wartungsanzeige rücksetzen” schalten Sie die Wartungs-anzeigelampen derjenigen Motoren aus, bei denen eine Wartung fällig ist,und setzen die zugehörigen Zählerstände für das Wartungsintervall auf 0.

� Anzeigelampen zum Ablesen des Betriebszustands

� der NOT-AUS-Schalter.

Bedienpult

Beispielprogramm für einen industriellen Mischprozeß

Page 167: Systemsoftware für S7-300/400, Programmentwurf · iii Systemsoftware für S7-300/400 Programmentwurf C79000-G7000-C506-01 Vorwort Dieses Handbuch informiert Sie über die verschiedenen

A-5Systemsoftware für S7-300/400 ProgrammentwurfC79000-G7000-C506-01

A.2 Definieren von Codebausteinen

Mit dem Verteilen des Anwenderprogramm auf verschiedene Bausteine undder Hierarchie der Bausteinaufrufe legen Sie die Struktur des Programmsfest.

Bild A-2 zeigt die Hierarchie der Bausteine, die im strukturierten Programmaufgerufen werden sollen.

� Die Speisepumpe für Stoff A, die Speisepumpe für Stoff B und der Rühr-werkmotor können durch einen einzigen Codebaustein (FB 1) gesteuertwerden.

� Die Aktualparameter und die statischen Daten des FB 1 werden fürStoff A, Stoff B und für den Rührwerkmotor in drei Instanz-DBs abgelegt.

� Die Einlaß- und Speiseventile für die Stoffe A und B sowie das Abfluß-ventil verwenden ebenfalls einen gemeinsamen Codebaustein (FC 1).

Im OB 1 werden der Funktionsbaustein und die Funktion aufgerufen und diespezifischen Parameter übergeben, die für die Steuerung des Prozesseserforderlich sind.

Speise-pumpe Stoff A

Speise-pumpe Stoff B

OB 1

Motor

Ventile

FB1

FC1

Stoff A

DB 1

Stoff B

DB 2

Rührwerk-motor

DB 3

Einlaß-ventile

A und B

Speise-ventile

A und B

Rührwerk-motor

Abfluß-ventil

Bild A-2 Festlegen der Programmstruktur

Übersicht

Hierarchie derBausteinaufrufe

Beispielprogramm für einen industriellen Mischprozeß

Page 168: Systemsoftware für S7-300/400, Programmentwurf · iii Systemsoftware für S7-300/400 Programmentwurf C79000-G7000-C506-01 Vorwort Dieses Handbuch informiert Sie über die verschiedenen

A-6Systemsoftware für S7-300/400 Programmentwurf

C79000-G7000-C506-01

A.3 Zuordnen von symbolischen Namen

In dem Beispielprogramm werden Symbole verwendet, die Sie mit STEP 7 inder Symboltabelle definieren müssen. Tabelle A-1 zeigt die symbolischenNamen und die absoluten Adressen, die zum Steuern der Speisepumpen, desRührwerkmotors und der Einlaßventile verwendet werden.

Tabelle A-1 Symbolische Adressen der Speisepumpen, des Rührwerkmotors und der Einlaßventile

Symbolischer Name Adresse Datentyp Beschreibung

Feed_pump_A_start E 0.0 BOOL Starttaster Speisepumpe für Stoff A

Feed_pump_A_stop E 0.1 BOOL Stoptaster Speisepumpe für Stoff A

Flow_A E 0.2 BOOL Stoff A fließt

Inlet_valve_A A 4.0 BOOL Ansteuerung des Einlaßventils für Stoff A

Feed_valve_A A 4.1 BOOL Ansteuerung des Speiseventils für Stoff A

Feed_pump_A_on A 4.2 BOOL Anzeigelampe “Speisepumpe Stoff A läuft”

Feed_pump_A_off A 4.3 BOOL Anzeigelampe “Speisepumpe Stoff A läuft nicht”

Feed_pump_A A 4.4 BOOL Ansteuerung der Speisepumpe für Stoff A

Feed_pump_A_fault A 4.5 BOOL Anzeigelampe “Fehler der Speisepumpe A”

Feed_pump_A_maint A 4.6 BOOL Anzeigelampe “Wartung der Speisepumpe A erforderlich”

Feed_pump_B_start E 0.3 BOOL Stattaster Speisepumpe für Stoff B

Feed_pump_B_stop E 0.4 BOOL Stoptaster Speisepumpe für Stoff B

Flow_B E 0.5 BOOL Stoff B fließt

Inlet_valve_B A 5.0 BOOL Ansteuerung des Einlaßventils für Stoff B

Feed_valve_B A 5.1 BOOL Ansteuerung des Speiseventils für Stoff B

Feed_pump_B_on A 5.2 BOOL Anzeigelampe “Speisepumpe Stoff B läuft”

Feed_pump_B_off A 5.3 BOOL Anzeigelampe “Speisepumpe Stoff B läuft nicht”

Feed_pump_B A 5.4 BOOL Ansteuerung der Speisepumpe für Stoff B

Feed_pump_B_fault A 5.5 BOOL Anzeigelampe “Fehler der Speisepumpe B”

Feed_pump_B_maint A 5.6 BOOL Anzeigelampe “Wartung der Speisepumpe B erforderlich”

Agitator_running E 1.0 BOOL Rückmeldesignal des Rührwerkmotors

Agitator_start E 1.1 BOOL Starttaster Rührwerk

Agitator_stop E 1.2 BOOL Stoptaster Rührwerk

Agitator A 8.0 BOOL Ansteuerung des Rührwerks

Agitator_on A 8.1 BOOL Anzeigelampe “Rührwerk läuft”

Agitator_off A 8.2 BOOL Anzeigelampe “Rührwerk läuft nicht”

Agitator_fault A 8.3 BOOL Anzeigelampe “Fehler des Rührwerkmotors”

Agitator_maint A 8.4 BOOL Anzeigelampe “Wartung des Rührwerkmotors erforderlich”

Definieren symbo-lischer Namen

Beispielprogramm für einen industriellen Mischprozeß

Page 169: Systemsoftware für S7-300/400, Programmentwurf · iii Systemsoftware für S7-300/400 Programmentwurf C79000-G7000-C506-01 Vorwort Dieses Handbuch informiert Sie über die verschiedenen

A-7Systemsoftware für S7-300/400 ProgrammentwurfC79000-G7000-C506-01

Tabelle A-2 zeigt die symbolischen Namen und die absoluten Adressen, diezum Auswerten der Sensoren und Anzeigen des Füllstands im Behälterverwendet werden.

Tabelle A-2 Symbolische Adressen der Sensoren und Anzeigen des Füllstands im Behälter

Symbolischer Name Adresse Datentyp Beschreibung

Tank_below_max E 1.3 BOOL Sensor “Mischbehälter nicht voll”

Tank_above_min E 1.4 BOOL Sensor “Mischbehälter über Minimum”

Tank_not_empty E 1.5 BOOL Sensor “Mischbehälter nicht leer”

Tank_max_disp A 9.0 BOOL Anzeigelampe “Mischbehälter voll”

Tank_min_disp A 9.1 BOOL Anzeigelampe “Mischbehälter unter Minimum”

Tank_empty_disp A 9.2 BOOL Anzeigelampe “Mischbehälter leer”

Tabelle A-3 zeigt die symbolischen Namen und die absoluten Adressen, diezum Steuern des Abflußventils verwendet werden.

Tabelle A-3 Symbolische Adressen des Abflusses

Symbolischer Name Adresse Datentyp Beschreibung

Drain_open E 0.6 BOOL Taster zum Öffnen des Abflußventils

Drain_closed E 0.7 BOOL Taster zum Schließen des Abflußventils

Drain A 9.5 BOOL Ansteuerung des Abflußventils

Drain_open_disp A 9.6 BOOL Anzeigelampe “Abflußventil offen”

Drain_closed_disp A 9.7 BOOL Anzeigelampe “Abflußventil geschlossen”

Tabelle A-4 zeigt die symbolischen Namen und die absoluten Adressen, diezum Steuern der übrigen Elemente des Programms verwendet werden.

Tabelle A-4 Symbolische Adressen der übrigen Programmelemente

Symbolischer Name Adresse Datentyp Beschreibung

EMER_STOP_off E 1.6 BOOL NOT-AUS-Schalter

Reset_maint E 1.7 BOOL Resettaster für die Wartungsanzeigelampen aller Motoren

Motor_block FB 1 FB 1 FB zum Steuern der Pumpen und des Rührwerkmotors

Valve_block FC 1 FC 1 FC zum Steuern der Ventile

DB_feed_pump_A DB 1 FB 1 Instanz-DB für die Steuerung der Speisepumpe A

DB_feed_pump_B DB 2 FB 1 Instanz-DB für die Steuerung der Speisepumpe B

DB_agitator DB 3 FB 1 Instanz-DB für die Steuerung des Rührwerkmotors

Beispielprogramm für einen industriellen Mischprozeß

Page 170: Systemsoftware für S7-300/400, Programmentwurf · iii Systemsoftware für S7-300/400 Programmentwurf C79000-G7000-C506-01 Vorwort Dieses Handbuch informiert Sie über die verschiedenen

A-8Systemsoftware für S7-300/400 Programmentwurf

C79000-G7000-C506-01

A.4 Erstellen des FB für den Motor

Der FB für den Motor enthält die folgenden logischen Funktionen:

� Es gibt einen Start- und einen Stopeingang.

� Verriegelungen ermöglichen den Betrieb der Geräte (Pumpen und Rühr-werkmotor). Der Zustand der Verriegelungen wird in den temporären Lo-kaldaten (L-Stack) von OB 1 gespeichert (z.B. “Enable_Motor”) und mitden Start- und Stoppeingängen verknüpft, wenn der FB für den Motorbearbeitet wird.

� Eine Rückmeldung von den Geräten muß innerhalb einer bestimmten Zeiterscheinen. Andernfalls wird angenommen, daß ein Fehler aufgetreten ist.Der FB stoppt daraufhin den Motor.

� Der Timer und die Zeitdauer für den Rückmelde- bzw. Fehlerzyklus müs-sen festgelegt werden.

� Ist der Starttaster gedrückt und die Freigabe erteilt, dann schaltet sich dasGerät ein und läuft solange, bis der Stoptaster gedrückt wird.

� Wird das Gerät eingeschaltet, wird ein Timer gestartet. Erscheint dasRückmeldesignal des Geräts nicht vor Ablauf des Timers, dann stoppt dasGerät.

Bild A-3 zeigt die Ein- und Ausgänge des allgemeinen FB für den Motor.

Start

Stop

Reset_Maint

Response

Timer_No

Start_Dsp

Fault

Stop_Dsp

Response_Time

Motor

MaintMotor

Bild A-3 Eingangs-Ausgangs-Diagramm des FB für den Motor

Anforderungen anden FB

Festlegen der Ein-und Ausgänge

Beispielprogramm für einen industriellen Mischprozeß

Page 171: Systemsoftware für S7-300/400, Programmentwurf · iii Systemsoftware für S7-300/400 Programmentwurf C79000-G7000-C506-01 Vorwort Dieses Handbuch informiert Sie über die verschiedenen

A-9Systemsoftware für S7-300/400 ProgrammentwurfC79000-G7000-C506-01

Wenn Sie einen wiederverwendbaren FB für den Motor (zum Steuern derbeiden Pumpen und des Rührwerkmotors) erstellen möchten, müssen Sie all-gemeine Parameternamen für die Eingänge und die Ausgänge definieren.

Der FB für den Motor im Beispielprozeß hat die folgenden Anforderungen:

� Er benötigt Signale vom Bedienpult zum Stoppen bzw. Starten des Motorsund der Pumpen.

� Er benötigt ein Rückmeldesignal von Motor und Pumpen, daß der Motorläuft.

� Er muß die Zeit zwischen dem Senden des Signals, das den Motoreinschaltet, und dem Empfangen des Rückmeldesignals ermitteln.Erscheint nach einer bestimmten Zeit kein Rückmeldesignal, muß derMotor ausgeschaltet werden.

� Er muß die entsprechenden Anzeigen auf dem Bedienpult ein- bzw.ausschalten.

� Er liefert ein Signal zur Ansteuerung des Motors.

Diese Anforderungen können als Eingänge und Ausgänge des FB festgelegtwerden. Tabelle A-5 zeigt die Parameter des FB für den Motor in unseremBeispielprozeß.

Tabelle A-5 Eingangs-, Ausgangs- und Durchgangsparameter

Parametername Eingang Ausgang Durchgang

Start �

Stop �

Response �

Reset_Maint �

Timer_No �

Response_Time �

Fault �

Start_Dsp �

Stop_Dsp �

Maint �

Motor �

Definieren der Pa-rameter für den FB

Beispielprogramm für einen industriellen Mischprozeß

Page 172: Systemsoftware für S7-300/400, Programmentwurf · iii Systemsoftware für S7-300/400 Programmentwurf C79000-G7000-C506-01 Vorwort Dieses Handbuch informiert Sie über die verschiedenen

A-10Systemsoftware für S7-300/400 Programmentwurf

C79000-G7000-C506-01

Sie müssen die Eingangs-, Ausgangs– und Durchgangsparameter des FB fürden Motor deklarieren.

Bei FBs werden die Eingangs-, Ausgangs-, Durchgangsparameter und diestatischen Variablen in dem Instanz-DB gespeichert, der in der Aufrufanwei-sung angegeben wird. Die temporären Variablen werden im L-Stack gespei-chert.

Tabelle A-6 Variablendeklarationstabelle des FB für den Motor

Adresse Deklaration Name Typ Anfangswert

0.0 IN Start BOOL FALSE

0.1 IN Stop BOOL FALSE

0.2 IN Response BOOL FALSE

0.3 IN Reset_Maint BOOL FALSE

2.0 IN Time_No TIMER

4.0 IN Response_Time S5TIME S5T#0MS

6.0 OUT Fault BOOL FALSE

6.1 OUT Start_Dsp BOOL FALSE

6.2 OUT Stop_Dsp BOOL FALSE

6.3 OUT Maint BOOL FALSE

8.0 IN_OUT Motor BOOL FALSE

10.0 STAT Time_bin WORD W#16#0

12.0 STAT Time_BCD WORD W#16#0

14.0 STAT Starts INT 0

16.0 STAT Start_Edge BOOL FALSE

In STEP 7 muß jeder Baustein, der von einem anderen Baustein aufgerufenwird, vor dem Baustein erstellt werden, der den Aufruf enthält. Im Beispiel-programm müssen Sie also den FB für den Motor vor dem OB 1 erstellen.

Der Anweisungsteil des FB 1 sieht in der Programmiersprache AWLfolgendermaßen aus:

Netzwerk 1 Start/Stop und Selbsthaltung

U(O #StartO #Motor)UN #Stop= #Motor

Deklarieren derVariablen des FBfür den Motor

Programmierendes FB für denMotor

Beispielprogramm für einen industriellen Mischprozeß

Page 173: Systemsoftware für S7-300/400, Programmentwurf · iii Systemsoftware für S7-300/400 Programmentwurf C79000-G7000-C506-01 Vorwort Dieses Handbuch informiert Sie über die verschiedenen

A-11Systemsoftware für S7-300/400 ProgrammentwurfC79000-G7000-C506-01

Netzwerk 2 Anlaufüberwachung

U #MotorL #Response_TimeSE #Timer_NoUN #MotorR #Timer_NoL #Timer_NoT #Timer_binLC #Timer_NoT #Timer_BCDU #Timer_NoUN #ResponseS #FaultR #Motor

Netzwerk 3 Startlampe und Fehlerrücksetzung

U #Response= #Start_DspR #Fault

Netzwerk 4 Stoplampe

UN #Response= #Stop_Dsp

Netzwerk 5 Zählung der Starts

U #MotorFP #Start_EdgeSPBN lab1L #Starts+ 1T #Starts

lab1: NOP 0

Netzwerk 6 Wartungsanzeigelampe

L #StartsL 50>=I= #Maint

Netzwerk 7 Rücksetzen des Zählers für die Anzahl der Starts

U #Reset_MaintU #MaintSPBN ENDL 0T #Starts

END: NOP 0

Beispielprogramm für einen industriellen Mischprozeß

Page 174: Systemsoftware für S7-300/400, Programmentwurf · iii Systemsoftware für S7-300/400 Programmentwurf C79000-G7000-C506-01 Vorwort Dieses Handbuch informiert Sie über die verschiedenen

A-12Systemsoftware für S7-300/400 Programmentwurf

C79000-G7000-C506-01

A.5 Erstellen der FC für die Ventile

Die Funktion für die Einlaß- und Speiseventile sowie für das Abflußventilenthält die folgenden logischen Funktionen:

� Es gibt je einen Eingang zum Öffnen und zum Schließen der Ventile.

� Verriegelungen ermöglichen das Öffnen und Schließen der Ventile. DerZustand der Verriegelungen wird in den temporären Lokaldaten (L-Stack)von OB 1 gespeichert (z.B. “Enable_Valve”) und mit den Eingängen zumÖffnen und Schließen verknüpft, wenn die FC für die Ventile bearbeitetwird.

Tabelle A-7 zeigt die Parameter, die an die FC übergeben werden müssen.

Tabelle A-7 Eingangs-, Ausgangs- und Druchgangsparameter

Parameter für die Ventile Eingang Ausgang Durchgang

Open �

Close �

Dsp_Open �

Dsp_Closed �

Valve �

Bild A-4 zeigt die Ein- und Ausgänge der allgemeinen FC für die Ventile.Die Geräte, die den FB für den Motor aufrufen, übergeben Eingangs-parameter. Die FC für die Ventile gibt Ausgangsparameter zurück.

Ventil

Open

Close

Dsp_Open

Valve

Dsp_Closed

Bild A-4 Eingangs-Ausgangs-Diagramm der FC für die Ventile

Anforderungen andie FC

Festlegen der Ein-und Ausgänge

Beispielprogramm für einen industriellen Mischprozeß

Page 175: Systemsoftware für S7-300/400, Programmentwurf · iii Systemsoftware für S7-300/400 Programmentwurf C79000-G7000-C506-01 Vorwort Dieses Handbuch informiert Sie über die verschiedenen

A-13Systemsoftware für S7-300/400 ProgrammentwurfC79000-G7000-C506-01

Wie bei dem FB für den Motor müssen Sie auch bei der FC für die Ventiledie Eingangs-, Ausgangs- und Durchgangsparameter deklarieren.

Bei FCs werden die temporären Variablen im L-Stack gespeichert. DieEingangs-, Ausgangs- und Durchgangsvariablen werden als Pointer auf denCodebaustein gespeichert, der die FC aufgerufen hat. Zusätzlicher Speicherplatzim L-Stack (nach den temporären Variablen) wird für diese Variablen verwendet.

Tabelle A-8 Variablendeklarationstabelle der FC für die Ventile

Adresse Deklaration Name Typ Anfangswert

0.0 IN Open BOOL FALSE

0.1 IN Close BOOL FALSE

2.0 OUT Dsp_Open BOOL FALSE

2.1 OUT Dsp_Closed BOOL FALSE

4.0 IN_OUT Valve BOOL FALSE

Auch die Funktion FC 1 für die Ventile müssen Sie vor dem OB 1 erstellen,da aufgerufene Bausteine vor aufrufenden Bausteinen erstellt werden müssen.

Der Anweisungsteil des FC 1 sieht in der Programmiersprache AWLfolgendermaßen aus:

Netzwerk 1 Öffnen/Schließen und Selbsthaltung

U(O #OpenO #Valve)UN #Close= #Valve

Netzwerk 2 Anzeige, obVentil geöffnet

U #Valve= #Dsp_Open

Netzwerk 3 Anzeige, ob Ventil geschlossen

UN #Valve= #Dsp_Closed

Deklarieren derVariablen der FCfür die Ventile

Programmierender FC für dieVentile

Beispielprogramm für einen industriellen Mischprozeß

Page 176: Systemsoftware für S7-300/400, Programmentwurf · iii Systemsoftware für S7-300/400 Programmentwurf C79000-G7000-C506-01 Vorwort Dieses Handbuch informiert Sie über die verschiedenen

A-14Systemsoftware für S7-300/400 Programmentwurf

C79000-G7000-C506-01

A.6 Erstellen des OB 1

OB 1 bestimmt die Struktur des Beispielprogramms. Außerdem enthält OB 1die Parameter, die an die verschiedenen Bausteine übergeben werden, z. B.:

� Die AWL-Netzwerke für die Speisepumpen und den Rührwerkmotor lie-fern dem FB für den Motor die Eingangsparameter zum Starten (“Start”),Stoppen (“Stop”), für die Rückmeldung (“Response”) und für das Rück-setzen der Wartungsanzeige (”Reset_Maint”). Der FB für den Motor wirdin jedem Zyklus des AS bearbeitet.

� Wird der FB für den Motor bearbeitet, legen die Eingänge “Timer_No” und “Response_Time” fest, welcher Timer verwendet wirdund innerhalb welcher Zeitdauer eine Rückmeldung erfolgen muß.

� Die FC für die Ventile und der FB für die Motoren werden in jedem Zy-klus des AS bearbeitet, da sie im OB1 aufgerufen werden.

Das Programm verwendet den FB für den Motor mit verschiedenen Instanz-DBs, um die Aufgaben für die Steuerung der Speisepumpen und desRührwerkmotors zu erfüllen.

Übersicht

Beispielprogramm für einen industriellen Mischprozeß

Page 177: Systemsoftware für S7-300/400, Programmentwurf · iii Systemsoftware für S7-300/400 Programmentwurf C79000-G7000-C506-01 Vorwort Dieses Handbuch informiert Sie über die verschiedenen

A-15Systemsoftware für S7-300/400 ProgrammentwurfC79000-G7000-C506-01

Tabelle A-9 zeigt die Variablendeklarationstabelle für OB 1. Die ersten20 Bytes enthalten die Startinformationen des OB 1 und dürfen nichtgeändert werden.

Tabelle A-9 Variablendeklarationstabelle für OB 1

Adresse Deklaration Name Typ

0.0 TEMP OB1_EV_CLASS BYTE

1.0 TEMP OB1_SCAN1 BYTE

2.0 TEMP OB1_PRIORITY BYTE

3.0 TEMP OB1_OB_NUMBR BYTE

4.0 TEMP OB1_RESERVED_1 BYTE

5.0 TEMP OB1_RESERVED_2 BYTE

6.0 TEMP OB1_PREV_CYCLE INT

8.0 TEMP OB1_MIN_CYCLE INT

10.0 TEMP OB1_MAX_CYCLE INT

12.0 TEMP OB1_DATE_TIME DATE_AND_TIME

20.0 TEMP Enable_Motor BOOL

20.1 TEMP Enable_Valve BOOL

20.2 TEMP Start_Fulfilled BOOL

20.3 TEMP Stop_Fulfilled BOOL

20.4 TEMP Inlet_Valve_A_Open BOOL

20.5 TEMP Inlet_Valve_A_Closed BOOL

20.6 TEMP Feed_Valve_A_Open BOOL

20.7 TEMP Feed_Valve_A_Closed BOOL

21.0 TEMP Inlet_Valve_B_Open BOOL

21.1 TEMP Inlet_Valve_B_Closed BOOL

21.2 TEMP Feed_Valve_B_Open BOOL

21.3 TEMP Feed_Valve_B_Closed BOOL

21.4 TEMP Open_Drain BOOL

21.5 TEMP Close_Drain BOOL

21.6 TEMP Close_Valve_Fulfilled BOOL

Deklarieren vonVariablen für OB 1

Beispielprogramm für einen industriellen Mischprozeß

Page 178: Systemsoftware für S7-300/400, Programmentwurf · iii Systemsoftware für S7-300/400 Programmentwurf C79000-G7000-C506-01 Vorwort Dieses Handbuch informiert Sie über die verschiedenen

A-16Systemsoftware für S7-300/400 Programmentwurf

C79000-G7000-C506-01

In STEP 7 muß jeder Baustein, der von einem anderen Baustein aufgerufenwird, vor dem Baustein erstellt werden, der den Aufruf enthält. In demBeispielprogramm müssen Sie sowohl den FB für den Motor als auch die FCfür die Ventile vor dem Programm in OB 1 erstellen.

Der Anweisungsteil des OB 1 sieht in der Programmiersprache AWL folgen-dermaßen aus:

Netzwerk 1 Verriegelungen für Speisepumpe A

U ”EMER_STOP_off”U ”Tank_below_max”UN ”Drain”= #Enable_Motor

Netzwerk 2 Aufruf FB Motor für Stoff A

U ”Feed_pump_A_start”U #Enable_Motor= #Start_FulfilledU(O ”Feed_pump_A_stop”ON #Enable_Motor)= #Stop_FulfilledCALL ”Motor_block”, ”DB_feed_pump_A”

Start :=#Start_FulfilledStop :=#Stop_FullfilledResponse :=”Flow_A”Reset_Maint :=”Reset_maint”Timer_No :=T12Reponse_Time:=S5T#7SFault :=”Feed_pump_A_fault”Start_Dsp :=”Feed_pump_A_on”Stop_Dsp :=”Feed_pump_A_off”Maint :=”Feed_pump_A_maint”Motor :=”Feed_pump_A”

Netzwerk 3 Verzögerung der Ventilfreigabe Stoff A

U ”Feed_pump_A”L S5T#1SSE T 13UN ”Feed_pump_A”R T 13U T 13= #Enable_Valve

Netzwerk 4 Einlaßventilsteuerung für Stoff A

UN ”Flow_A”UN ”Feed_pump_A”= #Close_Valve_FulfilledCALL ”Valve_block”

Open :=#Enable_ValveClose :=#Close_Valve_FulfilledDsp_Open :=#Inlet_Valve_A_OpenDsp_Closed :=#Inlet_Valve_A_ClosedValve :=”Inlet_Valve_A”

Erstellen des Pro-gramms für OB 1

Beispielprogramm für einen industriellen Mischprozeß

Page 179: Systemsoftware für S7-300/400, Programmentwurf · iii Systemsoftware für S7-300/400 Programmentwurf C79000-G7000-C506-01 Vorwort Dieses Handbuch informiert Sie über die verschiedenen

A-17Systemsoftware für S7-300/400 ProgrammentwurfC79000-G7000-C506-01

Netzwerk 5 Speiseventilsteuerung für Stoff A

UN ”Flow_A”UN ”Feed_pump_A”= #Close_Valve_FulfilledCALL ”Valve_block”

Open :=#Enable_ValveClose :=#Close_Valve_FulfilledDsp_Open :=#Feed_Valve_A_OpenDsp_Closed :=#Feed_Valve_A_ClosedValve :=”Feed_Valve_A”

Netzwerk 6 Verriegelungen für Speisepumpe B

U ”EMER_STOP_off”U ”Tank_below_max”UN ”Drain”= ”Enable_Motor

Netzwerk 7 Aufruf FB Motor für Stoff B

U ”Feed_pump_B_start”U #Enable_Motor= #Start_FulfilledU(O ”Feed_pump_B_stop”ON #Enable_Motor)= #Stop_FulfilledCALL ”Motor_block”, ”DB_feed_pump_B”

Start :=#Start_FulfilledStop :=#Stop_FullfilledResponse :=”Flow_B”Reset_Maint :=”Reset_maint”Timer_No :=T14Reponse_Time:=S5T#7SFault :=”Feed_pump_B_fault”Start_Dsp :=”Feed_pump_B_on”Stop_Dsp :=”Feed_pump_B_off”Maint :=”Feed_pump_B_maint”Motor :=”Feed_pump_B”

Netzwerk 8 Verzögerung der Ventilfreigabe Stoff B

U ”Feed_pump_B”L S5T#1SSE T 15UN ”Feed_pump_B”R T 15U T 15= #Enable_Valve

Beispielprogramm für einen industriellen Mischprozeß

Page 180: Systemsoftware für S7-300/400, Programmentwurf · iii Systemsoftware für S7-300/400 Programmentwurf C79000-G7000-C506-01 Vorwort Dieses Handbuch informiert Sie über die verschiedenen

A-18Systemsoftware für S7-300/400 Programmentwurf

C79000-G7000-C506-01

Netzwerk 9 Einlaßventilsteuerung für Stoff B

UN ”Flow_B”UN ”Feed_pump_B”= #Close_Valve_FulfilledCALL ”Valve_block”

Open :=#Enable_ValveClose :=#Close_Valve_FulfilledDsp_Open :=#Inlet_Valve_B_OpenDsp_Closed :=#Inlet_Valve_B_ClosedValve :=”Inlet_Valve_B”

Netzwerk 10 Speiseventilsteuerung für Stoff B

UN ”Flow_B”UN ”Feed_pump_B”= #Close_Valve_FulfilledCALL ”Valve_block”

Open :=#Enable_ValveClose :=#Close_Valve_FulfilledDsp_Open :=#Feed_Valve_B_OpenDsp_Closed :=#Feed_Valve_B_ClosedValve :=”Feed_Valve_B”

Netzwerk 11 Verriegelungen für Rührwerk

U ”EMER_STOP_off”U ”Tank_above_min”UN ”Drain”= #Enable_Motor

Netzwerk 12 Aufruf FB Motor für Rührwerk

U ”Agitator_start”U #Enable_Motor= #Start_FulfilledU(O ”Agitator_stop”ON #Enable_Motor)= #Stop_FulfilledCALL ”Motor_block”, ”DB_Agitator”

Start :=#Start_FulfilledStop :=#Stop_FullfilledResponse :=”Agitator_running”Reset_Maint :=”Reset_maint”Timer_No :=T16Reponse_Time:=S5T#10SFault :=”Agitator_fault”Start_Dsp :=”Agitator_on”Stop_Dsp :=”Agitator_off”Maint :=”Agitator_maint”Motor :=”Agitator”

Netzwerk 13 Verriegelungen für Abflußventil

U ”EMER_STOP_off”U ”Tank_not_empty”UN ”Agitator”= ”Enable_Valve

Beispielprogramm für einen industriellen Mischprozeß

Page 181: Systemsoftware für S7-300/400, Programmentwurf · iii Systemsoftware für S7-300/400 Programmentwurf C79000-G7000-C506-01 Vorwort Dieses Handbuch informiert Sie über die verschiedenen

A-19Systemsoftware für S7-300/400 ProgrammentwurfC79000-G7000-C506-01

Netzwerk 14 Abflußventilsteuerung

U ”Drain_open”U #Enable_Valve= #Open_DrainU(O ”Drain_closed”ON #Enable_Valve)= #Close_DrainCALL ”Valve_block”

Open :=#Open_DrainClose :=#Close_DrainDsp_Open :=”Drain_open_disp”Dsp_Closed :=”Drain_closed_disp”Valve :=”Drain”

Netzwerk 15 Behälterfüllstandsanzeige

UN ”Tank_below_max”= ”Tank_max_disp”UN ”Tank_above_min”= ”Tank_min_disp”UN ”Tank_not_empty”= ”Tank_empty_disp”

Beispielprogramm für einen industriellen Mischprozeß

Page 182: Systemsoftware für S7-300/400, Programmentwurf · iii Systemsoftware für S7-300/400 Programmentwurf C79000-G7000-C506-01 Vorwort Dieses Handbuch informiert Sie über die verschiedenen

A-20Systemsoftware für S7-300/400 Programmentwurf

C79000-G7000-C506-01

Beispielprogramm für einen industriellen Mischprozeß

Page 183: Systemsoftware für S7-300/400, Programmentwurf · iii Systemsoftware für S7-300/400 Programmentwurf C79000-G7000-C506-01 Vorwort Dieses Handbuch informiert Sie über die verschiedenen

B-1Systemsoftware für S7-300/400 ProgrammentwurfC79000-G7000-C506-01

Beispielprogramm zu denKommunikations-SFBs für projektierteVerbindungen

In diesem Kapitel wird anhand eines einfachen Beispielprogramms derDatenaustausch zwischen zwei S7-400-CPUs und die Verwendung von Kom-munikations-SFBs für projektierte Verbindungen im Anwenderprogrammerläutert.

Im Kapitel finden Sie auf Seite

B.1 Übersicht B-2

B.2 Beispielprogramm auf der sendenden CPU B-3

B.3 Beispielprogramm auf der empfangenden CPU B-6

B.4 Anwendung des Beispielprogramms B-8

B.5 Aufrufhierarchie der Bausteine im Beispielprogramm B-9

Was beschreibtdieses Kapitel?

Kapitelübersicht

B

Page 184: Systemsoftware für S7-300/400, Programmentwurf · iii Systemsoftware für S7-300/400 Programmentwurf C79000-G7000-C506-01 Vorwort Dieses Handbuch informiert Sie über die verschiedenen

B-2Systemsoftware für S7-300/400 Programmentwurf

C79000-G7000-C506-01

B.1 Übersicht

Das Beispielprogramm zeigt, wie Daten zwischen zwei S7-400-CPUs überKommunikations-SFBs für projektierte Verbindungen ausgetauscht werden.

Im Beispielprogramm werden die folgenden Kommunikations-SFBs verwen-det.

Tabelle B-1 Kommunikations-SFBs im Beispielprogramm

SFB Funktion

SFB 8/SFB 9

USEND/URCV

Unkoordinierter Datenaustausch über einen Sende- undeinen Empfangs-SFB (zweiseitige Kommunikation)

SFB 12/SFB 13

BSEND/BRCV

Blockorientierter Datenaustausch über einen Sende- undeinen Empfangs-SFB (zweiseitige Kommunikation)

SFB 14 GET Daten aus dem remoten Gerät lesen (einseitge Kommunika-tion)

SFB 15 PUT Daten in das remote Gerät schreiben (einseitigeKommunikation)

SFB 19 START Im remoten Gerät einen Neustart durchführen

SFB 20 STOP Remotes Gerät in den Zustand STOP versetzen

SFB 21 RESUME Im remoten Gerät einen Wiederanlauf durchführen

SFB 22 STATUS Status des remoten Geräts gezielt abfragen

SFB 23 USTATUS Status des remoten Geräts, den dieses unaufgefordert gesen-det hat, empfangen

Im vorliegenden Beispiel wird eine zweiseitig projektierte S7-homogene Ver-bindung verwendet. Über diese Verbindung werden sowohl die zweiseitigenals auch die einseitigen Bausteine betrieben.

Auf beiden CPUs hat die Verbindungs-ID die Nr. W#16#0001.

Die Beschreibung des Beispiels stützt sich auf den im folgenden Bild gezeig-ten Hardwareaufbau.

CPU 4xy CPU 4xy

MPI

Bild B-1 Hardwareaufbau für das Beispielprogramm

Einleitung

Verwendete Kom-munikations-SFBs

Verbindungstyp

Hardware-Voraus-setzungen

Beispielprogramm zu den Kommunikations-SFBs für projektierte Verbindungen

Page 185: Systemsoftware für S7-300/400, Programmentwurf · iii Systemsoftware für S7-300/400 Programmentwurf C79000-G7000-C506-01 Vorwort Dieses Handbuch informiert Sie über die verschiedenen

B-3Systemsoftware für S7-300/400 ProgrammentwurfC79000-G7000-C506-01

B.2 Beispielprogramm auf der sendenden CPU

Im Beispielprogramm auf der sendenden CPU erfolgt der Anstoß der Daten-übertragung mit Merkern. Sie können die Merker über die Variablentabelle”VAT 1” verändern. Eine positive Flanke an einem Merker startet den zuge-hörigen Kommunikations-SFB.

Die folgende Tabelle zeigt die Belegung des verwendeten Merkerbereichs.

Tabelle B-2 Belegung des verwendeten Merkerbereichs

Merker Belegung

M 20.0 Anstoß USEND

M 20.2 Anstoß BSEND

M 20.4 Anstoß GET

M 20.5 Anstoß PUT

M 20.6 Anstoß START

M 20.7 Anstoß STOP

M 21.0 Anstoß RESUME

M 21.1 Anstoß STATUS

M 21.2 Anstoß USTATUS

Einleitung

Verwendete Merker

Beispielprogramm zu den Kommunikations-SFBs für projektierte Verbindungen

Page 186: Systemsoftware für S7-300/400, Programmentwurf · iii Systemsoftware für S7-300/400 Programmentwurf C79000-G7000-C506-01 Vorwort Dieses Handbuch informiert Sie über die verschiedenen

B-4Systemsoftware für S7-300/400 Programmentwurf

C79000-G7000-C506-01

Tabelle B-3 Anwenderdefinierte Bausteine auf der sendenden CPU

Baustein Inhalt Funktion

OB 100 Aufruf der FC EXAMPLE_PRESET_SFBs_1 Anlauf-OB: Bei späteren Aufrufen

FC EXAMPLE_PRESET_SFBs_1

Initialisierungsaufrufe der SFBs USEND, BSEND, GET, PUT, START, STOP,RESUME, STATUS, USTATUS

Anlauf OB: Bei späteren Aufrufender SFBs im Anwenderprogrammmüssen nur noch Steuer- und Dia-gnoseparameter angegeben werden.

OB 35 Aufrufe der FCs zur Steuerung der SFBs Weckalarm-OB: zyklische Aufrufeder FCs

FC CHECK Auswertung von DONE, NDR, ERROR, STATUS

Überprüfung des SFB-Bearbei-tungszustands

FC EXAMPLE_USEND Aufruf des SFB USEND und der FC CHECK

FC EXAMPLE_BSEND Aufruf des SFB BSEND und der FC CHECK

FC EXAMPLE_GET Aufruf des SFB GET und der FC CHECK

FC EXAMPLE_PUT Aufruf des SFB PUT und der FC CHECKDie Steuerung der SFB-Aufrufe

FC EXAMPLE_START Aufruf des SFB START und der FC CHECKDie Steuerung der SFB-Aufrufeüber FCs verhindert, daß die SFBsvor ihrer Beendigung erneut aufge

FC EXAMPLE_STOP Aufruf des SFB STOP und der FC CHECKvor ihrer Beendigung erneut aufge-rufen werden.

FC EXAMPLE_RESUME Aufruf des SFB RESUME und der FC CHECK

u e we de .

FC EXAMPLE_STATUS Aufruf des SFB STATUS und der FC CHECK

FC EXAMPLE_USTA-TUS

Aufruf des SFB USTATUS und der FC CHECK

DB IDB_USEND, DB IDB_BSEND, DB IDB_GET,DB IDB_PUT,DB IDB_START,DB IDB_STOP,DB IDB_RESUMEDB IDB_STATUS,DB IDB_USTATUS

Aktualparameter und statische Daten der ver-wendeten SFBs

Instanz-DBs der verwendeten SFBs

DB data_usend Sende-, Steuer- und Kontrolldaten für die FCEXAMPLE_USEND

DB data_bsend Sende-, Steuer- und Kontrolldaten für die FCEXAMPLE_BSEND

DB data_get Sende-, Steuer- und Kontrolldaten für die FCEXAMPLE_GET

DB data_put Quellbereich, Steuer- und Kontrolldaten für dieFC EXAMPLE_PUT

Global-DBs

DB data_program_cntr Steuer- und Kontrolldaten für die SFBs START,STOP, RESUME, STATUS und USTATUS

DB data_get_source DB auf der remoten CPU, aus dem mit Hilfe desSFB GET Daten gelesen werden

DB data_put_destination DB auf der remoten CPU, in den mit Hilfe desSFB PUT Daten geschrieben werden.

Bausteine auf dersendenden CPU

Beispielprogramm zu den Kommunikations-SFBs für projektierte Verbindungen

Page 187: Systemsoftware für S7-300/400, Programmentwurf · iii Systemsoftware für S7-300/400 Programmentwurf C79000-G7000-C506-01 Vorwort Dieses Handbuch informiert Sie über die verschiedenen

B-5Systemsoftware für S7-300/400 ProgrammentwurfC79000-G7000-C506-01

In dem Beispielprogramm auf der sendenden CPU werden Symbole verwen-det, die mit STEP 7 in der Symboltabelle definiert wurden. Tabelle B-4 zeigtdie symbolischen Namen und die absoluten Adressen des Beispielpro-gramms.

Tabelle B-4 Symbolische Namen und zugehörige Adressen des Beispielprogramms auf der sendenden CPU

Symybolischer Name Adresse Datentyp Kommentar

IDB_USEND DB 8 SFB 8IDB_BSEND DB 12 SFB 12

IDB_GET DB 14 SFB 14

IDB_PUT DB 15 SFB 15

IDB_START DB 19 SFB 19 Instanz-DBs

IDB_STOP DB 20 SFB 20

IDB_RESUME DB 21 SFB 21

IDB_STATUS DB 22 SFB 22

IDB_USTAUTS DB 23 SFB 23

data_usend DB 100 DB 100

data_bsend DB 102 DB 102

data_get DB 104 DB 104

data_put DB 105 DB 105 Global-DBs

data_program_cntr DB 106 DB 106

data_get_source DB 107 DB 107

data_put_destination DB 108 DB 108

CHECK FC 99 FC 99

EXAMPLE_USEND FC 100 FC 100

EXAMPLE_PUT FC 101 FC 101

EXAMPLE_STOP FC 102 FC 102

EXAMPLE_STATUS FC 103 FC 103

EXAMPLE_BSEND FC 105 FC 105 FCsEXAMPLE_GET FC 107 FC 107

FCs

EXAMPLE_START FC 108 FC 108

EXAMPLE_RESUME FC 109 FC 109

EXAMPLE_USTATUS FC 110 FC 110

EXAMPLE_PRESET_SFBs 1

FC 111 FC 111

CYCL_EXC OB 1 OB 1

CYC_INT5 OB 35 OB 35 OBs

COMPLETE RESTART OB 100 OB 100

BSEND SFB 12 SFB 12

GET SFB 14 SFB 14

PUT SFB 15 SFB 15

START SFB 19 SFB 19SFBs

STOP SFB 20 SFB 20SFBs

RESUME SFB 21 SFB 21

STATUS SFB 22 SFB 22

USTATUS SFB 23 SFB 23

Definieren symbo-lischer Namen

Beispielprogramm zu den Kommunikations-SFBs für projektierte Verbindungen

Page 188: Systemsoftware für S7-300/400, Programmentwurf · iii Systemsoftware für S7-300/400 Programmentwurf C79000-G7000-C506-01 Vorwort Dieses Handbuch informiert Sie über die verschiedenen

B-6Systemsoftware für S7-300/400 Programmentwurf

C79000-G7000-C506-01

B.3 Beispielprogramm auf der empfangenden CPU

Im Beispielprogramm auf der empfangenden CPU erfolgt der Anstoß derDatenübertragung mit Merkern. Sie können die Merker über die Variablenta-belle ”VAT 2” verändern. Der Zustand 1 an einem Merker gibt den zugehöri-gen Empfangs-SFB frei.

Die folgende Tabelle zeigt die Belegung des verwendeten Merkerbereichs.

Tabelle B-5 Belegung des verwendeten Merkerbereichs

Merker Belegung

M 20.1 Freigabe für URCV

M 20.3 Freigabe für BRCV

Tabelle B-6 Anwenderdefinierte Bausteine auf der empfangenden CPU

Baustein Inhalt Funktion

OB 100 Aufruf der FC EXAMPLE_PRESET_SFBs 2

Anlauf-OB: Bei späteren Aufrufendes SFB im Anwenderprogramm

FC EXAMPLE_PRESET_SFBs 2

Initialisierungsaufrufe der SFBs URCV, BRCV

p gmüssen nur noch Steuer- und Diag-noseparameter angegeben werden.

OB 35 Aufrufe der einzelnen FCs zur Steuerungder SFBs

Weckalarm-OB: zyklische Aufrufeder FCs

FC CHECK Auswertung von DONE, NDR, ERROR,STATUS

Überprüfung des SFB-Bearbeitungs-zustands

FC EXAMPLE_URCV Aufruf des SFB URCV und der FC CHECK

Die Steuerung der SFB-Aufrufe überFCs verhindert, daß die SFBs vor

FC EXAMPLE_BRCV Aufruf des SFB BRCV und der FC CHECK

,ihrer Beendigung erneut aufgerufenwerden.

DB IDB_URCV,

DB IDB_BRCV

Aktualparameter und statische Daten derverwendeten SFBs Instanz-DBs der verwendeten SFBs

DB data_urcv Empfangs-, Steuer- und Kontrolldaten fürdie FC EXAMPLE_URCV

DB data_brcv Empfangs-, Steuer- und Kontrolldaten fürdie FC EXAMPLE_BRCV

DB data_get_source DB, mit den Daten für den SFB GET desKommunikationspartners

Global-DBs

DB data_put_destination DB, in den mit Hilfe des SFB PUT desKommunikationspartners Daten geschrie-ben werden

Einleitung

Verwendete Merker

Bausteine auf derempfangendenCPU

Beispielprogramm zu den Kommunikations-SFBs für projektierte Verbindungen

Page 189: Systemsoftware für S7-300/400, Programmentwurf · iii Systemsoftware für S7-300/400 Programmentwurf C79000-G7000-C506-01 Vorwort Dieses Handbuch informiert Sie über die verschiedenen

B-7Systemsoftware für S7-300/400 ProgrammentwurfC79000-G7000-C506-01

In dem Beispielprogramm auf der empfangenden CPU werden Symbole ver-wendet, die mit STEP 7 in der Symboltabelle definiert wurden. Die TabelleB-7 zeigt die symbolischen Namen und die absoluten Adressen des Beispiel-programms.

Tabelle B-7 Symbolische Namen und zugehörige Adressen des Beispielprogramms auf der empfangenden CPU

Symybolischer Name Adresse Datentyp Kommentar

IDB_URCV DB 9 SFB 9Instanz-DBs

IDB_BRCV DB 13 SFB 13Instanz-DBs

data_urcv DB 101 DB 101

data_brcv DB 103 DB 103Global-DBs

data_get_source DB 107 DB 107Global-DBs

data_put_destination DB 108 DB 108

CHECK FC 99 FC 99

EXAMPLE_URCV FC 104 FC 104FCs

EXAMPLE_BRCV FC 106 FC 106FCs

EXAMPLE_ PRESET_SFBs 2 FC 112 FC 112

CYC_INT5 OB 35 OB 35OBs

COMPLETE RESTART OB 100 OB 100OBs

URCV SFB 9 SFB 9SFBs

BRCV SFB 13 SFB 13SFBs

Definieren symbo-lischer Namen

Beispielprogramm zu den Kommunikations-SFBs für projektierte Verbindungen

Page 190: Systemsoftware für S7-300/400, Programmentwurf · iii Systemsoftware für S7-300/400 Programmentwurf C79000-G7000-C506-01 Vorwort Dieses Handbuch informiert Sie über die verschiedenen

B-8Systemsoftware für S7-300/400 Programmentwurf

C79000-G7000-C506-01

B.4 Anwendung des Beispielprogramms

Gehen Sie bei der Anwendung des Beispielprogramms folgendermaßen vor:

1. Nach dem Urlöschen jeder CPU laden Sie das jeweilige Programm in diezugehörige CPU.

2. Führen Sie auf jeder CPU einen Neustart durch. Dabei werden die Verbindungsreferenzen und die Sende- und die Emp-fangsbereiche vorbelegt. Die Sendebereiche werden mit der Nummer deszugehörigen SFBs, die Empfangsbereiche mit 0 vorbelegt.

3. Rufen Sie die Variablentabellen ”VAT 1” (auf der sendenden CPU) und”VAT 2” (auf der empfangenden CPU) auf.

4. Geben Sie auf der empfangenden CPU die Empfangs-SFBs frei, indemSie in der Variablentabelle ”VAT 2” die Merker M20.1 und M20.3 auf 1setzen.

5. Starten Sie die Datenübertragung auf der sendenden CPU, indem Sie inder Variablentabelle ”VAT 1” die entsprechenden Merker auf 1 setzen(siehe Tabelle B-2).

6. Ändern Sie ggf. den Inhalt der Sendebereiche.

7. Tritt bei der Datenübertragung ein Fehler auf, werten Sie die Ausgangspa-rameter ERROR und STATUS des zugehörigen Kommunikations-SFBaus.

Hantierungs-schritte

Beispielprogramm zu den Kommunikations-SFBs für projektierte Verbindungen

Page 191: Systemsoftware für S7-300/400, Programmentwurf · iii Systemsoftware für S7-300/400 Programmentwurf C79000-G7000-C506-01 Vorwort Dieses Handbuch informiert Sie über die verschiedenen

B-9Systemsoftware für S7-300/400 ProgrammentwurfC79000-G7000-C506-01

B.5 Aufrufhierarchie der Bausteine im Beispielprogramm

OB 100 FC EXAMPLE_PRESET_SFBs_1

DB IDB_USENDSFBUSEND

DB IDB_USTATUSSFBUSTATUS

OB 35 FC EXAMPLE_USEND

DB IDB_USENDSFBUSEND

FC CHECK

FC EXAMPLE_BSEND

DB IDB_BSEND

SFB BSEND

FC EXAMPLE_GET

DB IDB_GET

SFB GET

FC EXAMPLE_PUT

DB IDB_PUT

SFB PUT

FC EXAMPLE_START

DB IDB_START

SFB START

FC EXAMPLE_STOP

DB IDB_STOP

SFB STOP

FC EXAMPLE_RESUME

DB IDB_RESUMESFBRESUME

FC EXAMPLE_STATUS

DB IDB_STATUSSFBSTATUS

FC EXAMPLE_USTATUS

DB IDB_USTATUSSFBUSTATUS

FC CHECK

FC CHECK

FC CHECK

FC CHECK

FC CHECK

FC CHECK

FC CHECK

FC CHECK

Bild B-2 Aufrufhierarchie auf der sendenden CPU

Aufrufhierarchieauf der senden-den CPU

Beispielprogramm zu den Kommunikations-SFBs für projektierte Verbindungen

Page 192: Systemsoftware für S7-300/400, Programmentwurf · iii Systemsoftware für S7-300/400 Programmentwurf C79000-G7000-C506-01 Vorwort Dieses Handbuch informiert Sie über die verschiedenen

B-10Systemsoftware für S7-300/400 Programmentwurf

C79000-G7000-C506-01

OB 100 FC EXAMPLE_PRESET_SFBs_2

DB IDB_URCV

SFB URCV

DB IDB_BRCV

SFB BRCV

OB 35 FC EXAMPLE_URCV

DB IDB_URCV

SFB URCV

FC CHECK

FC EXAMPLE_BRCV

DB IDB_BRCV

SFB BRCV

FC CHECK

Bild B-3 Aufrufhierarchie auf der empfangenden CPU

Den Code des Beispielprogramms finden Sie im directory step 7\examples\com_sfb.

Aufrufhierarchieauf der empfan-genden CPU

AWL-Programm

Beispielprogramm zu den Kommunikations-SFBs für projektierte Verbindungen

Page 193: Systemsoftware für S7-300/400, Programmentwurf · iii Systemsoftware für S7-300/400 Programmentwurf C79000-G7000-C506-01 Vorwort Dieses Handbuch informiert Sie über die verschiedenen

C-1Systemsoftware für S7-300/400 ProgrammentwurfC79000-G7000-C506-01

Daten- und Parametertypen

In diesem Kapitel wird beschrieben:

� welche Datentypen für statische bzw. temporäre Variablen und Parameterzur Verfügung stehen

� welche Datentypen Sie den Lokaldaten der einzelnen Bausteintypenzuordnen können

� welche Einschränkungen Sie beim Übergeben von Parametern beachtenmüssen.

Im Kapitel finden Sie auf Seite

C.1 Datentypen C-2

C.2 Verwenden von zusammengesetzten Datentypen C-6

C.3 Verwenden von Feldern für den Datenzugriff C-7

C.4 Verwenden von Strukturen für den Datenzugriff C-10

C.5 Verwenden von anwenderdefinierten Datentypen für denDatenzugriff

C-12

C.6 Verwenden des Parametertyps ANY C-15

C.7 Zuordnen von Datentypen zu Lokaldaten von Codebau-steinen

C-17

C.8 Einschränkungen beim Übergeben von Parametern C-19

Was beschreibtdieses Kapitel?

Kapitelübersicht

C

Page 194: Systemsoftware für S7-300/400, Programmentwurf · iii Systemsoftware für S7-300/400 Programmentwurf C79000-G7000-C506-01 Vorwort Dieses Handbuch informiert Sie über die verschiedenen

C-2Systemsoftware für S7-300/400 Programmentwurf

C79000-G7000-C506-01

C.1 Datentypen

Alle in einem Anwenderprogramm verwendeten Daten müssen durch einenDatentyp gekennzeichnet sein. Man unterscheidet zwischen:

� elementaren Datentypen, die Ihnen STEP 7 zur Verfügung stellt

� zusammengesetzten Datentypen, die Sie erzeugen können, indem Sieelementare Datentypen verknüpfen

� anwenderdefinierten Datentypen und

� Parametertypen, mit denen Sie Parameter definieren, die an FBs oder FCsübergeben werden sollen.

Jeder elementare Datentyp hat eine definierte Länge. Der Datentyp BOOLzum Beispiel hat nur ein Bit, ein Byte (BYTE) besteht aus 8 Bits, ein Wort(WORD) sind 2 Bytes (bzw. 16 Bits), ein Doppelwort (DWORD) hat 4 Bytes(bzw. 32 Bits). Tabelle C-1 listet die elementaren Datentypen auf.

Tabelle C-1 Beschreibung der elementaren Datentypen

Typ undBeschreibung

Grö-ße inBits

Formatoptionen Bereich und Zahlendarstellung(niedrigster bis höchster Wert)

Beispiel

BOOL(Bit)

1 Bool-Text TRUE/FALSE TRUE

BYTE(Byte)

8 Hexadezimalzahl B16#0 bis B16#FF L B#16#10L byte#16#10

WORD(Wort)

16 Dualzahl

Hexadezimalzahl

BCDDezimalzahlohne Vorzeichen

2#0 bis2#1111_1111_1111_1111W#16#0 bis W#16#FFFF

C#0 bis C#999B#(0,0) bis B#(255,255)

L 2#0001_0000_0000_0000

L W#16#1000L word16#1000L C#998L B#(10,20)L byte#(10,20)

DWORD(Doppelwort)

32 Dualzahl

Hexadezimalzahl

Dezimalzahlohne Vorzeichen

2#0 bis2#1111_1111_1111_1111_1111_1111_1111_1111DW#16#0000_0000 bisDW#16#FFFF_FFFFB#(0,0,0,0) bisB#(255,255,255,255)

2#1000_0001_0001_1000_1011_1011_0111_1111

L DW#16#00A2_1234L dword#16#00A2_1234L B#(1, 14, 100, 120)L byte#(1,14,100,120)

INT(Ganzzahl)

16 Dezimalzahl mitVorzeichen

-32768 bis 32767 L 1

DINT(Ganzzahl,32 Bit)

32 Dezimalzahl mitVorzeichen

L#–2147483648 bisL#2147483647

L L#1

REAL(Gleitpunktzahl)

32 IEEEGleitpunktzahl

Obere Grenze: ±3.402823e+38Untere Grenze: ±1.175 495e-38

L 1.234567e+13

Einleitung

Elementare Daten-typen

Daten- und Parametertypen

Page 195: Systemsoftware für S7-300/400, Programmentwurf · iii Systemsoftware für S7-300/400 Programmentwurf C79000-G7000-C506-01 Vorwort Dieses Handbuch informiert Sie über die verschiedenen

C-3Systemsoftware für S7-300/400 ProgrammentwurfC79000-G7000-C506-01

Tabelle C-1 Beschreibung der elementaren Datentypen, Fortsetzung

Typ undBeschreibung

BeispielBereich und Zahlendarstellung(niedrigster bis höchster Wert)

FormatoptionenGrö-ße inBits

S5TIME(SIMATIC- Zeit)

16 S7-Zeit in Schritten von 10 ms(Default-Wert)

S5T#0H_0M_0S_10MS bisS5T#2H_46M_30S_0MS undS5T#0H_0M_0S_0MS

L S5T#0H_1M_0S_0MSL S5TIME#0H_1H_1M_0S_0MS

TIME(IEC-Zeit)

32 IEC-Zeit inSchritten von 1 ms, Ganzzahlmit Vorzeichen

-T#24D_20H_31M_23S_648MSbisT#24D_20H_31M_23S_647MS

L T#0D_1H_1M_0S_0MSL TIME#0D_1H_1M_0S_0MS

DATE(IEC-Datum)

16 IEC-Datum inSchritten von 1 Tag

D#1990-1-1 bis D#2168-12-31

L D#1994-3-15L DATE#1994-3-15

TIME_OF_DAY(Uhrzeit)

32 Uhrzeit inSchritten von 1 ms

TOD#0:0:0.0 bisTOD #23:59:59.999

L TOD#1:10:3.3L TIME_OF_DAY#1:10:3.3

CHAR(Zeichen)

8 ASCII-Zeichen ’A’,’B’ usw. L ’E’

Daten- und Parametertypen

Page 196: Systemsoftware für S7-300/400, Programmentwurf · iii Systemsoftware für S7-300/400 Programmentwurf C79000-G7000-C506-01 Vorwort Dieses Handbuch informiert Sie über die verschiedenen

C-4Systemsoftware für S7-300/400 Programmentwurf

C79000-G7000-C506-01

Zusammengesetzte Datentypen definieren Datengruppen, die größer sind als32 Bits bzw. Datengruppen, die sich aus anderen Datentypen zusammen-setzen. STEP 7 läßt die folgenden zusammengesetzten Datentypen zu:

� DATE_AND_TIME

� STRING

� ARRAY (Feld)

� STRUCT (Struktur)

� FB und SFB

Tabelle C-2 beschreibt die zusammengesetzten Datentypen. Sie definierenStrukturen und Felder entweder in der Variablendeklaration des Codebausteinsoder in einem Datenbaustein.

Tabelle C-2 Beschreibung der zusammengesetzten Datentypen

Datentyp Beschreibung

DATE_AND_TIMEDT

Definiert einen Bereich mit 64 Bits (8 Bytes). Dieser Datentypspeichert (in binärcodiertem Dezimalformat) die folgendenInformationen: Jahr in Byte 0, Monat in Byte 1, Tag in Byte 2,Stunden in Byte 3, Minuten in Byte 4, Sekunden in Byte 5,Millisekunden in Byte 6 und in der Hälfte von Byte 7,Wochentag in der anderen Hälfte von Byte 7.

STRING Definiert eine Gruppe von maximal 254 Zeichen (DatentypCHAR). Der Standardbereich, der für einen Zeichenkette reserviertist, besteht aus 256 Bytes. Dies ist der Platz, der benötigt wird, um254 Zeichen und einen Kopf von 2 Bytes zu speichern. Siekönnen den Speicherplatz für eine Zeichenkette verringern, indemSie auch die Anzahl der Zeichen definieren, die in der Zeichenkettegespeichert werden sollen (z. B. : string[9] ‘Siemens’).

ARRAY Definiert eine multidimensionale Gruppierung eines Datentyps(entweder elementar oder zusammengesetzt). Zum Beispiel:“ARRAY [1..2,1..3] OF INT” definiert ein Feld im Format 2 x3 aus Ganzzahlen. Sie greifen auf die Daten, die in einem Feldgespeichert sind, über den Index (“[2,2]”) zu. Sie können maxi-mal 6 Dimensionen in einem Feld definieren. Der Index kannein beliebiger ganzzahliger Wert (-32768 bis 32767) sein.

STRUCT Definiert eine Gruppierung von beliebig kombiniertenDatentypen. Sie können z. B. ein Feld aus Strukturen oder eineStruktur aus Strukturen und Feldern definieren.

FB, SFB Bestimmen die Struktur des zugeordneten Instanz-Datenbau-steins und ermöglichen die Übergabe von Instanzdaten fürmehrere FB-Aufrufe in einem Instanz-DB (Multiinstanzen,siehe Kapitel 2.10).

In STEP 7 können Sie zusammengesetzte und elementare Datentypenverknüpfen und so Ihren eigenen “anwenderdefinierten” Datentyp erstellen(UDT). UDTs haben einen eigenen Namen und sind deshalb mehrfachverwendbar. In einem UDT können Sie große Datenmengen strukturieren unddas Eingeben der Datentypen vereinfachen, wenn Sie Datenbausteineerzeugen oder Variablen in der Variablendeklaration deklarieren möchten.

Zusammenge-setzte Datentypen

Anwender-definierte Daten-typen

Daten- und Parametertypen

Page 197: Systemsoftware für S7-300/400, Programmentwurf · iii Systemsoftware für S7-300/400 Programmentwurf C79000-G7000-C506-01 Vorwort Dieses Handbuch informiert Sie über die verschiedenen

C-5Systemsoftware für S7-300/400 ProgrammentwurfC79000-G7000-C506-01

Zusätzlich zu elementaren, zusammengesetzten und anwenderdefiniertenDatentypen können Sie Parametertypen für Formalparameter definieren, diezwischen Bausteinen übergeben werden (siehe Tabelle C-3). STEP 7 kenntfolgende Parametertypen:

� TIMER oder COUNTER: legen eine bestimmte Zeit oder einen bestimmtenZähler fest, der bei der Bearbeitung verwendet werden soll. Wenn Sie einenFormalparameter vom Parametertyp TIMER oder COUNTER versorgen,muß der zugehörige Aktualparameter eine Zeit oder ein Zähler sein, d. h. Siegeben ein “T” oder “Z” an, auf das eine positive Ganzzahl folgt.

� BLOCK: legt einen bestimmten Baustein fest, der als Eingang oder alsAusgang verwendet werden soll. Die Deklaration des Parameters bestimmtdie Bausteinart (FB, FC, DB usw.), die verwendet werden soll. Wenn Sieeinen Formalparameter vom Parametertyp BLOCK versorgen, geben Sieeine Bausteinadresse als Aktualparameter an. Beispiel: “FC101” (beiabsoluter Adressierung) oder “Ventil” (bei symbolischer Adressierung).

� POINTER: referenziert die Adresse einer Variablen. Ein Pointer enthälteine Adresse anstelle eines Werts. Wenn Sie einen Formalparameter vomParametertyp POINTER versorgen, geben Sie als Aktualparameter dieAdresse an. In STEP 7 können Sie einen Pointer im Pointerformat odereinfach als Adresse (z. B. M 50.0) angeben. Beispiel für ein Pointerformatzum Adressieren der Daten, die in M 50.0 beginnen: P#M50.0

� ANY: wird verwendet, wenn der Datentyp des Aktualparameters nichtbekannt ist oder wenn ein beliebiger Datentyp eingesetzt werden kann.Nähere Informationen zum Parameter ANY entnehmen Sie Abschnitt C.6.

Ein Parametertyp kann auch ein anwenderdefinierter Datentyp (UDT) sein.Nähere Informationen zu UDTs entnehmen Sie dem Abschnitt C.5.

Tabelle C-3 Parametertypen

Parameter Größe Beschreibung

TIMER 2 Bytes Kennzeichnet eine bestimmte Zeit, die vom Programm imaufgerufenen Codebaustein verwendet werden soll.Format: T1

COUNTER 2 Bytes Kennzeichnet einen bestimmten Zähler, der vom Programmim aufgerufenen Codebaustein verwendet werden soll.Format: Z10

BLOCK_FBBLOCK_FCBLOCK_DBBLOCK_SDB

2 Bytes Kennzeichnet einen bestimmten Baustein, der vom Pro-gramm im aufgerufenen Codebaustein verwendet werdensoll.Format: FC101

DB42

POINTER 6 Bytes Kennzeichnet die Adresse.Format: P#M50.0

ANY 10 Bytes Wird verwendet, wenn der Datentyp des Aktualparametersnicht bekannt ist (siehe Abschnitt C.6).Format: P#M50.0 BYTE 10

P#M100.0 WORD 5

Parametertypen

Daten- und Parametertypen

Page 198: Systemsoftware für S7-300/400, Programmentwurf · iii Systemsoftware für S7-300/400 Programmentwurf C79000-G7000-C506-01 Vorwort Dieses Handbuch informiert Sie über die verschiedenen

C-6Systemsoftware für S7-300/400 Programmentwurf

C79000-G7000-C506-01

C.2 Verwenden von zusammengesetzten Datentypen

Sie können neue Datentypen erstellen, indem Sie elementare und zusammen-gesetzte Datentypen zu den folgenden zusammengesetzten Datentypenverbinden: � Feld (Datentyp ARRAY): Ein Feld verknüpft eine Gruppe eines Daten-

typs zu einer Einheit.� Struktur (Datentyp STRUCT): Eine Struktur verknüpft verschiedene

Datentypen zu einer Einheit.� Zeichenkette (Datentyp STRING): Eine Zeichenkette definiert ein ein-

dimensionales Feld mit maximal 254 Zeichen (Datentyp CHAR). EineZeichenkette kann nur als Einheit übergeben werden. Die Länge derZeichenkette muß bei dem Formal- und dem Aktualparameter desBausteins übereinstimmen.

� Datum und Zeit (Datentyp DATE_AND_TIME): Das Datum und die Zeitspeichern Jahr, Monat, Tag, Stunden, Minuten, Sekunden, Millisekundenund Wochentag.

Bild C-1 zeigt, wie Felder und Strukturen Datentypen in einem Bereichstrukturieren, um so Informationen zu speichern. Sie definieren ein Feld odereine Struktur entweder in einem DB oder in der Variablendeklaration einesFB, OB oder einer FC.

1,1

1,2

1,3

2,1

2,2

2,3

ARRAY [1..2,1..3]INTEGER

Ganzzahl

Ganzzahl

Ganzzahl

Ganzzahl

Ganzzahl

Ganzzahl

STRUCTGanzzahl

Zeichen

Realzahl

BoolescherWert

Byte

INT

BYTE

CHAR

REAL

BOOL

Strukturen

Felder

Bild C-1 Aufbau von Feldern und Strukturen

Übersicht

Daten- und Parametertypen

Page 199: Systemsoftware für S7-300/400, Programmentwurf · iii Systemsoftware für S7-300/400 Programmentwurf C79000-G7000-C506-01 Vorwort Dieses Handbuch informiert Sie über die verschiedenen

C-7Systemsoftware für S7-300/400 ProgrammentwurfC79000-G7000-C506-01

C.3 Verwenden von Feldern für den Datenzugriff

Ein Feld verknüpft eine Gruppe eines Datentyps (elementar oder zusammen-gesetzt) zu einer Einheit. Sie können kein Feld aus Feldern erstellen. WennSie ein Feld definieren, müssen Sie folgendes angeben:

� Sie geben dem Feld einen Namen.

� Sie deklarieren ein Feld mit dem Schlüsselwort ARRAY.

� Sie geben die Größe des Felds mit Hilfe eines Index an. Sie geben dieerste und die letzte Zahl der einzelnen Dimensionen (maximal 6) in demFeld an. Den Index geben Sie in eckigen Klammern an, wobei jedeDimension durch Komma getrennt und die erste und die letzte Zahl derDimension durch zwei Punkte voneinander getrennt werden. Der folgendeIndex beispielsweise definiert ein dreidimensionales Feld:

[1..5,-2..3,30..32]

� Sie geben den Datentyp der Daten an, die in dem Feld gespeichert werdensollen.

Bild C-2 zeigt ein Feld aus drei Ganzzahlen. Sie greifen über den Index aufdie Daten zu, die in einem Feld gespeichert sind. Bei dem Index handelt essich um die Zahl in eckigen Klammern. Der Index der zweiten Ganzzahlbeispielsweise ist Betr_Temp[2].

Ein Index kann ein beliebiger ganzzahliger Wert (-32768 bis 32767) sein,einschließlich negativer Werte. Das Feld in Bild C-2 könnte auch als ARRAY[-1..1] definiert werden. Der Index der ersten Ganzzahl wäre dannBetr_Temp[-1], der zweiten Betr_Temp[0] und der dritten GanzzahlBetr_Temp[1].

1

2

3

Betr_Temp = ARRAY [1..3] INTEGER

Betr_Temp[1]

Betr_Temp[2]

Betr_Temp[3]

Adresse Name Typ Anfangswert Kommentar

Betr_Temp

STRUCT

ARRAY[1..3]

INT

0.0

+0.0

*2.0

=3.0 END_STRUCT

Bild C-2 Feld

Felder

Beispiele

Daten- und Parametertypen

Page 200: Systemsoftware für S7-300/400, Programmentwurf · iii Systemsoftware für S7-300/400 Programmentwurf C79000-G7000-C506-01 Vorwort Dieses Handbuch informiert Sie über die verschiedenen

C-8Systemsoftware für S7-300/400 Programmentwurf

C79000-G7000-C506-01

Ein Feld kann auch eine multidimensionale Gruppe von Datentypenbeschreiben. Bild C-3 zeigt ein zweidimensionales Feld aus Ganzzahlen. Siegreifen auf die Daten in einem multidimensionalen Feld über den Index zu.Bei dem Beispiel in Bild C-3 ist die erste Ganzzahl Betr_Temp[1,1], diedritte ist Betr_Temp[1,3], die vierte ist Betr_Temp[2,1] und die sechste istBetr_Temp[2,3].

1,1

1,2

1,3

2,1

2,2

2,3

Betr_Temp = ARRAY [1..2,1..3]INTEGER

Ganzzahl

Ganzzahl

Ganzzahl

Ganzzahl

Ganzzahl

Ganzzahl

Bild C-3 Multidimensionales Feld

Sie können maximal sechs Dimensionen (sechs Indizes) für ein Felddefinieren. Sie könnten beispielsweise die Variable Betr_Temp folgender-maßen als sechsdimensionales Feld definieren:

ARRAY [1..3,1..2,1..3,1..4,1..3,1..4]

Der Index des ersten Elements in diesem Feld ist Betr_Temp[1,1,1,1,1,1].Der Index des letzten Elements ist Betr_Temp[3,2,3,4,3,4].

Sie definieren Felder, wenn Sie Daten in einem DB oder in der Variablen-deklaration deklarieren. Wenn Sie das Feld deklarieren, dann geben Sie dasSchlüsselwort (ARRAY) an, danach die Größe in eckigen Klammern:

[unterer Grenzwert..oberer Grenzwert]

Bei einem multidimensionalen Feld geben Sie die zusätzlichen oberen undunteren Grenzwerte an und trennen die einzelnen Dimensionen durch einKomma. Bild C-4 zeigt die Deklaration zum Erstellen eines Felds im Format2 x 3 (wie das in Bild C-3 dargestellte Feld).

Adresse Name Typ Anfangswert Kommentar

Waerme_2x3

STRUCT

ARRAY[1..2,1..3]

INT

0.0

+0.0

*2.0

=6.0 END_STRUCT

Bild C-4 Erstellen eines Felds

Erstellen vonFeldern

Daten- und Parametertypen

Page 201: Systemsoftware für S7-300/400, Programmentwurf · iii Systemsoftware für S7-300/400 Programmentwurf C79000-G7000-C506-01 Vorwort Dieses Handbuch informiert Sie über die verschiedenen

C-9Systemsoftware für S7-300/400 ProgrammentwurfC79000-G7000-C506-01

Sie können beim Erstellen der Felder jedem Feldelement einen Anfangswertzuordnen. STEP 7 bietet Ihnen zwei Möglichkeiten zum Eingeben vonAnfangswerten:

� Eingeben von individuellen Werten: Für jedes Element des Felds gebenSie einen gültigen Wert an (für den Datentyp des Felds). Geben Sie dieWerte in der Reihenfolge der Elemente an: [1,1]. Beachten Sie, daß Siedie einzelnen Elemente durch Komma voneinander trennen müssen.

� Angeben eines Wiederholfaktors: Bei sequentiellen Elementen, die überden gleichen Anfangswert verfügen, können Sie die Anzahl der Elemente(den Wiederholfaktor) und den Anfangswert für diese Elemente angeben.Das Format zum Eingeben des Wiederholfaktors ist x(y), wobei x derWiederholfaktor und y der Wert ist, der wiederholt werden soll.

Wenn Sie das Feld verwenden, das in Bild C-4 deklariert wird, können Sieden Anfangswert für alle sechs Elemente folgendermaßen angeben: 17, 23,-45, 556, 3342, 0. Sie könnten den Anfangswert von allen sechs Elementenauch auf 10 setzen, indem Sie 6(10) angeben. Sie könnten für die erstenbeiden Elemente bestimmte Werte angeben und dann die übrigen vierElemente auf 0 setzen, indem Sie 17, 23, 4(0) angeben.

Sie greifen auf die Daten in einem Feld über den Index des bestimmtenElements in dem Feld zu. Der Index wird mit dem symbolischen Namenverwendet.

Beispiel: Wenn das in Bild C-4 deklarierte Feld an dem ersten Byte vonDB20 (Motor) beginnt, greifen Sie auf das zweite Element in dem Feld überfolgende Adresse zu:

Motor.Waerme_2x3[1,2].

Sie können Felder als Parameter übergeben. Wenn ein Parameter in derVariablendeklaration als ARRAY deklariert ist, müssen Sie das ganze Feldübergeben (und nicht nur einzelne Elemente). Ein Element eines Felds kannjedoch einem Parameter zugeordnet werden, wenn Sie einen Baustein auf-rufen, sofern das Element des Felds dem Datentyp des Parameters entspricht.

Wenn Sie Felder als Parameter verwenden, müssen die Felder nicht dengleichen Namen haben (sie brauchen gar keinen Namen zu haben). BeideFelder (der Formalparameter und der Aktualparameter) müssen aber diegleiche Struktur vorweisen. Ein Feld im Format 2 x 3 aus Ganzzahlen zumBeispiel kann als Parameter nur übergeben werden, wenn der Formal-parameter des Bausteins ein Feld im Format 2 x 3 aus Ganzzahlen definiertund auch der Aktualparameter, der über die Aufrufoperation bereitgestelltwird, ein Feld im Format 2 x 3 aus Ganzzahlen ist.

Eingeben vonAnfangswerten fürein Feld

Zugreifen aufDaten in einemFeld

Verwenden vonFeldern alsParameter

Daten- und Parametertypen

Page 202: Systemsoftware für S7-300/400, Programmentwurf · iii Systemsoftware für S7-300/400 Programmentwurf C79000-G7000-C506-01 Vorwort Dieses Handbuch informiert Sie über die verschiedenen

C-10Systemsoftware für S7-300/400 Programmentwurf

C79000-G7000-C506-01

C.4 Verwenden von Strukturen für den Datenzugriff

Eine Struktur verknüpft verschiedene Datentypen (elementare undzusammengesetzte Datentypen, einschließlich Felder und Strukturen) zueiner Einheit. So können Sie Daten entsprechend der Steuerung für IhrenProzeß gruppieren. Sie können so auch Parameter als eine Dateneinheitübergeben, und nicht als einzelne Elemente. Bild C-5 zeigt eine Struktur, dieaus einer Ganzzahl, einem Byte, einem Zeichen, einer Gleitpunktzahl undeinem booleschen Wert besteht.

Eine Struktur kann in maximal 8 Ebenen geschachtelt sein (z. B. eineStruktur aus Strukturen, die Felder enthält).

STRUCTGanzzahl

Zeichen

Realzahl

Boolescher Wert

Byte

INT

BYTE

CHAR

REAL

BOOL

Bild C-5 Struktur

Sie definieren Strukturen beim Deklarieren von Daten innerhalb eines DBoder in der Variablendeklaration eines Codebausteins.

Bild C-6 zeigt die Deklaration einer Struktur (Stapel_1), die aus folgendenElementen besteht: eine Ganzzahl (zum Speichern der Menge), ein Byte(zum Speichern der Ursprungsdaten), ein Zeichen (zum Speichern desSteuercodes), eine Gleitpunktzahl (zum Speichern der Temperatur) und einboolescher Merker (zum Beenden des Signals).

Adresse Name Typ Anfangswert Kommentar

Stapel_1

Menge

Ursprungsdaten

Temperatur

STRUCT

INT

BYTE

REAL

100

0.0

+0.0

+2.0

+4.0

+6.0

Steuercode CHAR

Ende BOOL+8.1END_STRUCT

FALSE=10.0

120

Bild C-6 Erstellen einer Struktur

Strukturen

Erstellen einerStruktur

Daten- und Parametertypen

Page 203: Systemsoftware für S7-300/400, Programmentwurf · iii Systemsoftware für S7-300/400 Programmentwurf C79000-G7000-C506-01 Vorwort Dieses Handbuch informiert Sie über die verschiedenen

C-11Systemsoftware für S7-300/400 ProgrammentwurfC79000-G7000-C506-01

Wenn Sie jedem Element einer Struktur einen Anfangswert zuordnenmöchten, geben Sie jeweils einen gültigen Wert für den Datentyp und denNamen des Elements ein. Sie können beispielsweise (der in Bild C-6deklarierten Struktur) die folgenden Anfangswerte zuordnen:

Menge = 100Ursprungsdaten = B#(0)Steuercode = ‘Z’Temperatur = 120Ende = False

Sie greifen auf die einzelnen Elemente einer Struktur zu. Sie könnensymbolische Adressen (z. B. Stapel_1.Temperatur) verwenden. Sie könnenaber auch die absolute Adresse angeben, unter der das Element gespeichertist (Beispiel: ist Stapel_1 in DB20 mit Beginn bei Byte 0 gespeichert, dannist die absolute Adresse für die Menge DB20.DBW0 und die Adresse für dieTemperatur ist DB20.DBD6).

Sie können Strukturen als Parameter übergeben. Wenn ein Parameter in derVariablendeklaration als STRUCT deklariert ist, müssen Sie eine Struktur mitdem gleichen Aufbau übergeben. Ein Element einer Struktur kann jedocheinem Parameter zugeordnet werden, wenn Sie einen Baustein aufrufen,sofern das Element der Struktur dem Datentyp des Parameters entspricht.

Wenn Sie Strukturen als Parameter verwenden, müssen beide Strukturen (fürden Formalparameter und den Aktualparameter) den gleichen Aufbau derDaten vorweisen, d. h. die gleichen Datentypen müssen in der gleichenReihenfolge angeordnet sein.

Zuordnen vonAnfangswerten füreine Struktur

Speichern von undZugreifen aufDaten inStrukturen

Verwenden vonStrukturen alsParameter

Daten- und Parametertypen

Page 204: Systemsoftware für S7-300/400, Programmentwurf · iii Systemsoftware für S7-300/400 Programmentwurf C79000-G7000-C506-01 Vorwort Dieses Handbuch informiert Sie über die verschiedenen

C-12Systemsoftware für S7-300/400 Programmentwurf

C79000-G7000-C506-01

C.5 Verwenden von anwenderdefinierten Datentypen für den Datenzu-griff

Anwenderdefinierte Datentypen (UDT) können elementare und zusammenge-setzte Datentypen verknüpfen. Sie können UDTs mit einem Namen versehenund mehrfach verwenden. Bild C-7 zeigt die Struktur eines UDT, der auseiner Ganzzahl, einem Byte, einem Zeichen, einer Gleitpunktzahl und einembooleschen Wert besteht.

Anstatt alle Datentypen einzeln oder als Struktur einzugeben, müssen Sie nur“UDT20” als Datentyp angeben und STEP 7 ordnet automatisch denentsprechenden Speicherplatz zu.

UDT20Ganzzahl

Zeichen

Realzahl

Boolescher Wert

Byte

INT

BYTE

CHAR

REAL

BOOL

Bild C-7 Anwenderdefinierter Datentyp

UDTs definieren Sie mit STEP 7. Bild C-8 zeigt einen UDT, der aus denfolgenden Elementen besteht: eine Ganzzahl (zum Speichern der Menge), einByte (zum Speichern der Ursprungsdaten), ein Zeichen (zum Speichern desSteuercodes), eine Gleitpunktzahl (zum Speichern der Temperatur) und einboolescher Merker (zum Beenden des Signals). Sie können dem UDT in derSymboltabelle einen symbolischen Namen zuordnen (z. B. Prozessdaten).

Adresse Name Typ Anfangswert Kommentar

Stapel_1

Menge

Ursprungsdaten

Temperatur

STRUCT

INT

BYTE

REAL

100

0.0

+0.0

+2.0

+4.0

+6.0

Steuercode CHAR

Ende BOOL+8.1END_STRUCT

FALSE=10.0

120

Bild C-8 Erstellen eines anwenderdefinierten Datentyps

Anwender-definierte Daten-typen

Erstellen eines an-wenderdefiniertenDatentyps

Daten- und Parametertypen

Page 205: Systemsoftware für S7-300/400, Programmentwurf · iii Systemsoftware für S7-300/400 Programmentwurf C79000-G7000-C506-01 Vorwort Dieses Handbuch informiert Sie über die verschiedenen

C-13Systemsoftware für S7-300/400 ProgrammentwurfC79000-G7000-C506-01

Nachdem Sie einen UDT erstellt haben, können Sie den UDT wie einenDatentyp verwenden, so z. B. wenn Sie für eine Variable den DatentypUDT200 in einem DB deklarieren (oder in der Variablendeklaration einesFB). Bild C-9 zeigt einen DB mit der Variablen Prozessdaten_1 mit demDatentyp UDT200. Sie geben nur UDT200 und Prozessdaten_1 an. Diekursiv dargestellten Felder werden erstellt, wenn Sie den DB übersetzen.

Adresse Name Typ Anfangswert Kommentar

Prozessdaten_1

STRUCT

UDT200

END_STRUCT

0.0

+6.0

=6.0

Bild C-9 Verwenden eines anwenderdefinierten Datentyps

Wenn Sie jedem Element eines UDT Anfangswerte zuordnen möchten, gebenSie für den Datentyp und den Namen eines jeden Elements einen gültigenWert an. Sie können beispielsweise (dem in Bild C-9 deklarierten UDT) diefolgenden Anfangswerte zuordnen:

Menge = 100Ursprungsdaten = B#(0)Steuercode = ‘Z’Temperatur = 120Ende = False

Wenn Sie eine Variable als UDT deklarieren, dann sind die Anfangswerte derVariablen die Werte, die Sie beim Erstellen des UDT angegeben haben.

Sie greifen auf die einzelnen Elemente eines UDT zu. Sie könnensymbolische Adressen (z. B. Stapel_1.Temperatur) verwenden. Sie könnenaber auch die absolute Adresse angeben, unter der das Element gespeichertist (Beispiel: ist Stapel_1 in DB20 mit Beginn bei Byte 0 gespeichert, dannist die absolute Adresse für die Menge DB20.DBW0 und die Adresse für dieTemperatur ist DB20.DBD6).

Sie können Variablen vom Datentyp UDT als Parameter übergeben. Wennder Parameter in der Variablendeklaration als UDT deklariert ist, müssen Sieeinen UDT übergeben, der die gleiche Struktur der Datenelemente hat. EinElement eines UDT kann aber auch beim Aufrufen eines Bausteins einemParameter zugeordnet werden, sofern das Element des UDT mit dem Daten-typ des Parameters übereinstimmt.

Zuordnen von An-fangswerten für ei-nen anwenderdefi-nierten Datentyp

Speichern von undZugreifen auf Da-ten in einem an-wenderdefiniertenDatentyp

Verwenden von an-wenderdefiniertenDatentypen als Pa-rameter

Daten- und Parametertypen

Page 206: Systemsoftware für S7-300/400, Programmentwurf · iii Systemsoftware für S7-300/400 Programmentwurf C79000-G7000-C506-01 Vorwort Dieses Handbuch informiert Sie über die verschiedenen

C-14Systemsoftware für S7-300/400 Programmentwurf

C79000-G7000-C506-01

Mit Hilfe von einmal erstellten UDTs können Sie eine Vielzahl von Daten-bausteinen erzeugen, die die gleiche Datenstruktur haben. Diese Datenbau-steine können von Ihnen durch Eingabe von unterschiedlichen Aktualwertengenau für die entsprechende Aufgabe angepaßt werden.

Strukturieren Sie z.B. einen UDT für ein Rezept (z.B. für das Mischen vonFarben), dann können Sie diesem UDT mehrere DBs zuordnen, die jeweilsdie anderen Mengenangaben beinhalten.

UDT1 “Rezept”

DB17 ”DKL_BLAU”

DB22 ”HELL_BLAU”

DB 23 ”TUERKIS”

AnwenderdefinierterDatentyp

Bild C-10 Beispiel für die Zuordnung mehrerer DBs zu einem UDT

Die Struktur des Datenbausteins wird durch den zugeordneten UDTfestgelegt.

Vorteile von DBsmit zugeordnetemUDT

Daten- und Parametertypen

Page 207: Systemsoftware für S7-300/400, Programmentwurf · iii Systemsoftware für S7-300/400 Programmentwurf C79000-G7000-C506-01 Vorwort Dieses Handbuch informiert Sie über die verschiedenen

C-15Systemsoftware für S7-300/400 ProgrammentwurfC79000-G7000-C506-01

C.6 Verwenden des Parametertyps ANY

Sie können für einen Baustein Formalparameter definieren, die für Aktual-parameter mit beliebigen Datentypen geeignet sind. Dies ist vor allem dannnützlich, wenn der Datentyp des Aktualparameters, der beim Aufrufen desBausteins bereitgestellt wird, unbekannt ist oder variieren kann (und wennein beliebiger Datentyp zulässig ist). In der Variablendeklaration des Bau-steins deklarieren Sie den Parameter als Datentyp ANY. In STEP 7 könnenSie dann einen Aktualparameter eines beliebigen Datentyps zuordnen.

STEP 7 ordnet einer Variablen vom Datentyp ANY 80 Bits Speicherplatz zu.Wenn Sie diesem Formalparameter einen Aktualparameter zuordnen, codiertSTEP 7 die Startadresse, den Datentyp und die Länge des Aktualparametersin den 80 Bits. Der aufgerufene Baustein analysiert die 80 Bits an Daten, diefür den Parameter ANY gespeichert wurden, und erhält so Informationen, diefür die zusätzliche Bearbeitung verwendet werden können.

Wenn Sie für einen Parameter den Datentyp ANY deklarieren, können Siediesem Formalparameter einen Aktualparameter mit beliebigem Datentypzuordnen. In STEP 7 können Sie die folgenden Datentypen als Aktual-parameter zuordnen:

� Elementare Datentypen: Sie geben die absolute Adresse oder densymbolischen Namen des Aktualparameters an.

� Zusammengesetzte Datentypen: Sie geben den symbolischen Namen derDaten mit zusammengesetztem Datentyp an (z. B. Felder und Strukturen).

� Zeiten, Zähler und Bausteine: Sie geben die Nummer an (z. B. T1, Z20oder FB6).

Bild C-11 zeigt, wie Daten an eine FC mit Parametern vom Datentyp ANYübergeben werden können. In diesem Beispiel hat FC100 drei Parameter(in_par1, in_par2 und in_par3), die als Datentyp ANY deklariert wurden.

� Wenn FB10 die FC100 aufruft, übergibt FB10 eine Ganzzahl (diestatische Variable Drehzahl), ein Wort (MW100) und ein Doppelwort inDB10 (DB10.DBD40).

� Wenn FB11 die FC10 aufruft, übergibt FB11 ein Feld aus Realzahlen (dietemporäre Variable Thermo), einen booleschen Wert (M 1.3) und eineZeit (T2).

Übersicht

Zuordnen einesAktualparameterszu einem Parame-ter ANY

Daten- und Parametertypen

Page 208: Systemsoftware für S7-300/400, Programmentwurf · iii Systemsoftware für S7-300/400 Programmentwurf C79000-G7000-C506-01 Vorwort Dieses Handbuch informiert Sie über die verschiedenen

C-16Systemsoftware für S7-300/400 Programmentwurf

C79000-G7000-C506-01

INTDrehzahl

FB10

CALL FC100in_par1 := #Drehzahlin_par2 := MW100in_par3 := DB10.DBD40

FC100

mit DB10

Variablendeklaration

Variablendeklaration

STAT

ANY

in_par2 ANY

in_par3 ANY

in_par1IN

IN

IN

ARRAY [1..3]Thermo

FB11 mit DB20

Variablendeklaration

TEMP

in_par2in_par3

in_par1M 1.3

T 2

#Thermo

FC100

REAL

Bild C-11 Zuordnen von Aktualparametern zu einem Parameter ANY

Sie können einem Parameter ANY aber nicht nur individuelle Operanden(z. B. MW100) zuordnen, sondern Sie können auch einen Datenbereichangeben. Wenn Sie einen Datenbereich als Aktualparameter zuordnenmöchten, verwenden Sie das folgende Format einer Konstanten, um dieDatenmenge anzugeben, die übergeben werden soll:

p# Bereichskennung Byte.Bit Datentyp Wiederholfaktor

Sie können für das Element Datentyp in dem Format für Konstanten alleelementaren Datentypen und den Datentyp DATE_AND_TIME angeben.Handelt es sich bei dem Datentyp nicht um BOOL, dann muß die Bitadressevon 0 (x.0) angegeben werden. Tabelle C-4 zeigt Beispiele für das Formatzum Angeben von Speicherbereichen, die an einen Parameter ANY über-geben werden sollen.

Tabelle C-4 Verwenden des Formats für Konstanten für einen Parameter ANY

Aktualparameter Beschreibung

p# M 50.0 BYTE 10 Gibt 10 Bytes im Speicherbereich Merker an:MB50 bis MB59.

p# DB10.DBX5.0 S5TIME 3 Gibt 3 Einheiten von Daten vom Datentyp S5TIMEan, die in DB10 gespeichert sind:DB Byte 5 bis DB Byte 10.

p# A 10.0 BOOL 4 Gibt 4 Bits im Speicherbereich Ausgänge an:A 10.0 bis A 10.3.

Angeben einesDatenbereichs füreinen ParameterANY

Daten- und Parametertypen

Page 209: Systemsoftware für S7-300/400, Programmentwurf · iii Systemsoftware für S7-300/400 Programmentwurf C79000-G7000-C506-01 Vorwort Dieses Handbuch informiert Sie über die verschiedenen

C-17Systemsoftware für S7-300/400 ProgrammentwurfC79000-G7000-C506-01

C.7 Zuordnen von Datentypen zu Lokaldaten von Codebausteinen

STEP 7 begrenzt die Datentypen (elementare und zusammengesetzteDatentypen sowie Parametertypen), die in der Variablendeklaration denLokaldaten eines Bausteins zugeordnet werden können.

Tabelle C-5 zeigt die Einschränkungen beim Deklarieren von Lokaldaten füreinen OB. Weil Sie einen OB nicht aufrufen können, kann ein OB auch nichtüber Parameter (Ein-, Aus- oder Durchgänge) verfügen. Weil ein OB keinenInstanz-DB hat, können Sie für einen OB keine statischen Variablendeklarieren. Bei den Datentypen der temporären Variablen eines OB kann essich um elementare oder zusammengesetzte Datentypen sowie um ANYhandeln.

Tabelle C-6 zeigt die Einschränkungen beim Deklarieren von Lokaldaten füreinen FB. Wegen des Instanz-DB gibt es weniger Einschränkungen beimDeklarieren von Lokaldaten für einen FB. Für die Deklaration von Eingangs-parametern gibt es keinerlei Einschränkungen, für einen Ausgangsparameterkönnen Sie keine Parametertypen deklarieren und für Durchgangsparametersind nur die Parametertypen POINTER und ANY zulässig. TemporäreVariablen können Sie als Datentyp ANY deklarieren. Alle anderenParametertypen sind unzulässig.

Tabelle C-7 zeigt die Einschränkungen beim Deklarieren von Lokaldaten füreine FC. Weil eine FC keinen Instanz-DB hat, verfügt sie auch nicht überstatische Variablen. Für Eingangs-, Ausgangs- und Durchgangsparametereiner FC sind die Parametertypen POINTER und ANY zulässig. Sie könnenauch temporäre Variablen vom Parametertyp ANY deklarieren.

Tabelle C-5 Gültige Datentypen für die Lokaldaten eines OB

DeklarationstypElementareDatentypen

Zusammen-gesetzte Da-

ParametertypenDeklarationstyp Datentypen gesetzte Da-

tentypen TIMER COUNTER BLOCK POINTER ANY

Eingang Nein Nein Nein Nein Nein Nein Nein

Ausgang Nein Nein Nein Nein Nein Nein Nein

Durchgang Nein Nein Nein Nein Nein Nein Nein

Statisch Nein Nein Nein Nein Nein Nein Nein

Temporär Ja1 Ja1 Nein Nein Nein Nein Ja1

1 Im L-Stack des OB gespeichert.

Gültige Daten-typen

Daten- und Parametertypen

Page 210: Systemsoftware für S7-300/400, Programmentwurf · iii Systemsoftware für S7-300/400 Programmentwurf C79000-G7000-C506-01 Vorwort Dieses Handbuch informiert Sie über die verschiedenen

C-18Systemsoftware für S7-300/400 Programmentwurf

C79000-G7000-C506-01

Tabelle C-6 Gültige Datentypen für die Lokaldaten eines FB

DeklarationstypElementareDatentypen

Zusammen-gesetzte Da-

ParametertypenDeklarationstyp Datentypen gesetzte Da-

tentypen TIMER COUNTER BLOCK POINTER Any

Eingang Ja Ja Ja Ja Ja Ja Ja

Ausgang Ja Ja Nein Nein Nein Nein Nein

Durchgang Ja Ja1 Nein Nein Nein Ja Ja

Statisch Ja Ja Nein Nein Nein Nein Nein

Temporär Ja2 Ja2 Nein Nein Nein Nein Ja2

1 Als Verweis (48-Bit-Pointer) im Instanz-DB gespeichert.2 Im L-Stack des FB gespeichert.

Tabelle C-7 Gültige Datentypen für die Lokaldaten einer FC

DeklarationstypElementareDatentypen

Zusammen-gesetzte Da-

ParametertypenDeklarationstyp Datentypen gesetzte Da-

tentypen TIMER COUNTER BLOCK POINTER Any

Eingang Ja Ja Ja Ja Ja Ja Ja

Ausgang Ja Ja Nein Nein Nein Ja Ja

Durchgang Ja Ja Nein Nein Nein Ja Ja

Statisch Nein Nein Nein Nein Nein Nein Nein

Temporär Ja1 Ja1 Nein Nein Nein Nein Ja1

1 Im L-Stack der FC gespeichert.

Daten- und Parametertypen

Page 211: Systemsoftware für S7-300/400, Programmentwurf · iii Systemsoftware für S7-300/400 Programmentwurf C79000-G7000-C506-01 Vorwort Dieses Handbuch informiert Sie über die verschiedenen

C-19Systemsoftware für S7-300/400 ProgrammentwurfC79000-G7000-C506-01

C.8 Einschränkungen beim Übergeben von Parametern

Wenn Sie Formalparametern Aktualparameter zuordnen, dann können Sieentweder eine absolute Adresse, einen symbolischen Namen oder eineKonstante angeben. STEP 7 begrenzt die jeweils gültigen Zuordnungen beiden verschiedenen Parametern. Ausgangs- und Durchgangsparameter könnenzum Beispiel keinem konstanten Wert zugeordnet werden (weil der Zweckeines Ausgangs bzw. eines Durchgangs das Ändern des Werts ist). DieseEinschränkungen gelten besonders bei Parametern mit zusammengesetztenDatentypen, denen weder eine absolute Adresse noch eine Konstante zu-geordnet werden kann. Tabelle C-8 zeigt die Einschränkungen bei den Daten-typen von Aktualparametern, die Formalparametern zugeordnet werden.

Tabelle C-8 Einschränkungen beim Übergeben von Parametern zwischen Bausteinen

Elementare Datentypen

Deklara-tionstyp

AbsoluteAdresse

Symbolischer Name(in der Symboltabelle)

BausteinlokalesSymbol

Konstante

Eingang Ja Ja Ja Ja

Ausgang Ja Ja Ja Nein

Durchgang Ja Ja Ja Nein

Zusammengesetzter Datentyp

Deklara-tionstyp

AbsoluteAdresse

Symbolischer Name desElements des DB

(in der Symboltabelle)

BausteinlokalesSymbol

Konstante

Eingang Nein Ja Ja Nein

Ausgang Nein Ja Ja Nein

Durchgang Nein Ja Ja Nein

Einschränkungenbeim Übergebenvon Parameternzwischen denBausteinen

Daten- und Parametertypen

Page 212: Systemsoftware für S7-300/400, Programmentwurf · iii Systemsoftware für S7-300/400 Programmentwurf C79000-G7000-C506-01 Vorwort Dieses Handbuch informiert Sie über die verschiedenen

C-20Systemsoftware für S7-300/400 Programmentwurf

C79000-G7000-C506-01

Sie können die Formalparameter einer aufrufenden FC den Formal-parametern einer aufgerufenen FC zuordnen. Bild C-12 zeigt die Formal-parameter von FC10, die als Aktualparameter den Formalparametern vonFC12 zugeordnet werden.

STEP 7 begrenzt die Zuordnung von Formalparametern einer FC als Aktual-parameter zu den Formalparametern einer anderen FC. Sie können beispiels-weise keine Parameter mit zusammengesetztem Datentyp oder Parametertypals Aktualparameter zuordnen. Tabelle C-9 zeigt die Einschränkungen beimZuordnen von Parametern, wenn eine FC eine andere FC aufruft.

Eingang

Param_2 Ausgang

Param_3 Durchgang

Param_1

FC10

Call FC12A_Param := Param_1B_Param := Param_2C_Param := Param_3

Eingang

B_Param Ausgang

C_Param Durchgang

A_Param

FC12

Funktion (FC) Aufruf Funktion (FC)

Variablendeklaration Variablendeklaration

Bild C-12 Übergeben von Parametern von einer FC zu einer anderen FC

Tabelle C-9 Einschränkungen beim Aufrufen einer FC durch eine andere FC

ElementareDatentypen

Zusam-mengesetzte

Parametertypen

Deklarationstyp Datentypen mengesetzteDatentypen TI-

MERCOUNTER BLOCK POINTER ANY

Eingang → Eingang Ja Nein Nein Nein Nein Nein Nein

Eingang → Ausgang Nein Nein Nein Nein Nein Nein Nein

Eingang → Durchgang Nein Nein Nein Nein Nein Nein Nein

Ausgang → Eingang Nein Nein Nein Nein Nein Nein Nein

Ausgang → Ausgang Ja Nein Nein Nein Nein Nein Nein

Ausgang → Durchgang Nein Nein Nein Nein Nein Nein Nein

Durchgang → Eingang Ja Nein Nein Nein Nein Nein Nein

Durchgang → Ausgang Ja Nein Nein Nein Nein Nein Nein

Durchgang → Durchgang Ja Nein Nein Nein Nein Nein Nein

Einschränkungenbeim Aufrufeneiner FC durcheine andere FC

Daten- und Parametertypen

Page 213: Systemsoftware für S7-300/400, Programmentwurf · iii Systemsoftware für S7-300/400 Programmentwurf C79000-G7000-C506-01 Vorwort Dieses Handbuch informiert Sie über die verschiedenen

C-21Systemsoftware für S7-300/400 ProgrammentwurfC79000-G7000-C506-01

Sie können die Formalparameter eines aufrufenden FB den Formal-parametern einer aufrufenden FC zuordnen. Bild C-13 zeigt die Formal-parameter von FB10, die als Aktualparameter den Formalparametern vonFC12 zugeordnet werden.

STEP 7 begrenzt die Zuordnung der Formalparameter einer FB zu denFormalparametern einer FC. Sie können beispielsweise keine Parameter mitParametertyp als Aktualparameter zuordnen. Tabelle C-10 zeigt die Ein-schränkungen beim Zuordnen von Parametern, wenn ein FB eine FC aufruft.

Eingang

Param_2 Ausgang

Param_3 Durchgang

Param_1

FB10

Call FC12A_Param := Param_1B_Param := Param_2C_Param := Param_3

Eingang

B_Param Ausgang

C_Param Durchgang

A_Param

FC12

Funktionsbaustein (FB) Aufruf Funktion (FB)

mit DB10

Variablendeklaration Variablendeklaration

Bild C-13 Übergeben von Parametern von einem FB an eine FC

Tabelle C-10 Einschränkungen beim Aufrufen einer FC durch einen FB

ElementareDatentypen

Zusam-mengesetzte

Parametertypen

Deklarationstyp Datentypen mengesetzteDatentypen TI-

MERCOUNTER BLOCK POINTER ANY

Eingang → Eingang Ja Ja Nein Nein Nein Nein Nein

Eingang → Ausgang Nein Nein Nein Nein Nein Nein Nein

Eingang → Durchgang Nein Nein Nein Nein Nein Nein Nein

Ausgang → Eingang Nein Nein Nein Nein Nein Nein Nein

Ausgang → Ausgang Ja Ja Nein Nein Nein Nein Nein

Ausgang → Durchgang Nein Nein Nein Nein Nein Nein Nein

Durchgang → Eingang Ja Nein Nein Nein Nein Nein Nein

Durchgang → Ausgang Ja Nein Nein Nein Nein Nein Nein

Durchgang → Durchgang Ja Nein Nein Nein Nein Nein Nein

Einschränkungenbeim Aufrufeneiner FC durcheinen FB

Daten- und Parametertypen

Page 214: Systemsoftware für S7-300/400, Programmentwurf · iii Systemsoftware für S7-300/400 Programmentwurf C79000-G7000-C506-01 Vorwort Dieses Handbuch informiert Sie über die verschiedenen

C-22Systemsoftware für S7-300/400 Programmentwurf

C79000-G7000-C506-01

Sie können die Formalparameter einer aufrufenden FC den Formal-parametern eines aufgerufenen FB zuordnen. Bild C-14 zeigt die Formal-parameter von FC10, die als Aktualparameter den Formalparametern vonFB12 zugeordnet werden.

STEP 7 begrenzt die Zuordnung von Formalparametern einer FC zu denFormalparametern eines FB. Sie können beispielsweise Parameter mitzusammengesetztem Datentyp nicht als Aktualparameter zuordnen. Siekönnen aber Eingangsparameter mit dem Parametertyp TIMER, COUNTERoder BLOCK den Eingansparametern des aufgerufenen FB zuordnen. TabelleC-11 zeigt die Einschränkungen beim Zuordnen von Parametern, wenn eineFC einen FB aufruft.

Eingang

Param_2 Ausgang

Param_3 Durchgang

Param_1

FC10

Call FB12,DB11A_Param := Param_1B_Param := Param_2C_Param := Param_3

Eingang

B_Param Ausgang

C_Param Durchgang

A_Param

FB12

Funktion (FC) Aufruf Funktionsbaustein (FB)

mit DB11

Variablendeklaration Variablendeklaration

Bild C-14 Übergeben von Parametern von einer FC an einen FB

Tabelle C-11 Einschränkungen beim Aufrufen eines FB durch eine FC

ElementareDatentypen

Zusam-mengesetzte

Parametertypen

Deklarationstyp Datentypen mengesetzteDatentypen TI-

MERCOUNTER BLOCK POINTER ANY

Eingang → Eingang Ja Nein Ja Ja Ja Nein Nein

Eingang → Ausgang Nein Nein Nein Nein Nein Nein Nein

Eingang → Durchgang Nein Nein Nein Nein Nein Nein Nein

Ausgang → Eingang Nein Nein Nein Nein Nein Nein Nein

Ausgang → Ausgang Ja Nein Nein Nein Nein Nein Nein

Ausgang → Durchgang Nein Nein Nein Nein Nein Nein Nein

Durchgang → Eingang Ja Nein Nein Nein Nein Nein Nein

Durchgang → Ausgang Ja Nein Nein Nein Nein Nein Nein

Durchgang → Durchgang Ja Nein Nein Nein Nein Nein Nein

Einschränkungenbeim Aufrufeneines FB durcheine FC

Daten- und Parametertypen

Page 215: Systemsoftware für S7-300/400, Programmentwurf · iii Systemsoftware für S7-300/400 Programmentwurf C79000-G7000-C506-01 Vorwort Dieses Handbuch informiert Sie über die verschiedenen

C-23Systemsoftware für S7-300/400 ProgrammentwurfC79000-G7000-C506-01

Sie können die Formalparameter eines aufrufenden FB den Formal-parametern des aufgerufenen FB zuordnen. Bild C-15 zeigt die Formal-parameter von FB10, die als Aktualparameter den Formalparametern vonFB12 zugeordnet werden.

STEP 7 begrenzt die Zuordnung von Formalparametern eines FB zu denFormalparametern eines anderen FB. Sie können beispielsweise keineEingangs- und Ausgangsparameter mit zusammengesetztem Datentyp alsAktualparameter den Eingangs- und Ausgangsparametern eines aufgerufenenFB zuordnen. Sie können aber Eingangsparameter mit dem ParametertypTIMER, COUNTER oder BLOCK den Eingangsparametern des aufgerufenenFB zuordnen. Tabelle C-12 zeigt die Einschränkungen beim Zuordnen vonParametern, wenn ein FB einen anderen FB aufruft.

Eingang

Param_2 Ausgang

Param_3 Durchgang

Param_1

FC10

Call FB12,DB11A_Param := Param_1B_Param := Param_2C_Param := Param_3

Eingang

B_Param Ausgang

C_Param Durchgang

A_Param

FB12

Funktionsbaustein (FB) Aufruf Funktionsbaustein (FB)

mit DB11

Variablendeklaration Variablendeklaration

mit DB10

Bild C-15 Übergeben von Parametern von einem FB an einen anderen FB

Tabelle C-12 Einschränkungen beim Aufrufen eines FB durch einen anderen FB

ElementareDatentypen

Zusam-mengesetzte

Parametertypen

Deklarationstyp Datentypen mengesetzteDatentypen TI-

MERCOUNTER BLOCK POINTER ANY

Eingang → Eingang Ja Ja Ja Ja Ja Nein Nein

Eingang → Ausgang Nein Nein Nein Nein Nein Nein Nein

Eingang → Durchgang Nein Nein Nein Nein Nein Nein Nein

Ausgang → Eingang Nein Nein Nein Nein Nein Nein Nein

Ausgang → Ausgang Ja Ja Nein Nein Nein Nein Nein

Ausgang → Durchgang Nein Nein Nein Nein Nein Nein Nein

Durchgang → Eingang Ja Nein Nein Nein Nein Nein Nein

Durchgang → Ausgang Ja Nein Nein Nein Nein Nein Nein

Durchgang → Durchgang Ja Nein Nein Nein Nein Nein Nein

Einschränkungenbeim Aufrufeneines FB durcheinen anderen FB

Daten- und Parametertypen

Page 216: Systemsoftware für S7-300/400, Programmentwurf · iii Systemsoftware für S7-300/400 Programmentwurf C79000-G7000-C506-01 Vorwort Dieses Handbuch informiert Sie über die verschiedenen

C-24Systemsoftware für S7-300/400 Programmentwurf

C79000-G7000-C506-01

Daten- und Parametertypen

Page 217: Systemsoftware für S7-300/400, Programmentwurf · iii Systemsoftware für S7-300/400 Programmentwurf C79000-G7000-C506-01 Vorwort Dieses Handbuch informiert Sie über die verschiedenen

D-1Systemsoftware für S7-300/400 ProgrammentwurfC79000-G7000-C506-01

Literaturverzeichnis

/30/ Fibel: Automatisierungssystem S7-300,Einfach aufbauen und programmieren

/70/ Handbuch: Automatisierungssystem S7-300, Aufbauen, CPU-Daten

/71/ Referenzhandbuch: Automatisierungssystem S7-300, M7-300 Baugruppendaten

/72/ Operationsliste: Automatisierungssystem S7-300, CPU 312/314

/100/ Installationshandbuch: Automatisierungssystem S7-400, M7-400, Aufbauen

/101/ Referenzhandbuch: Automatisierungssystem S7-400, M7-400 Baugruppendaten

/102/ Operationsliste: Automatisierungssystem S7-400, CPU 412/414

/230/ Benutzerhandbuch: Basissoftware für S7,S5-Programme konvertieren

/231/ Benutzerhandbuch: Basissoftware für S7und M7,STEP 7

/232/ Handbuch: AWL für S7-300/400, Bausteine programmieren

/233/ Handbuch: KOP für S7-300/400, Bausteine programmieren

/235/ Referenzhandbuch: Systemsoftware für S7-300/400System-und Standardfunktionen

/236/ Handbuch: FUP für S7-300/400, Bausteine programmieren

/250/ Handbuch: SCL für S7-300/400, Bausteine programmieren

/251/ Handbuch: GRAPH für S7-300/400, Ablaufsteuerungen programmie-ren

/252/ Handbuch: HiGraph für S7-300/400, Zustandsgraphen programmieren

/254/ Handbuch: CFC für S7 und M7, Technologische Funktionen graphischverschalten

/270/ Handbuch: S7-PDIAG für S7-300/400 Prozeßdiagnose für KOP, FUP und AWL projektieren

D

Page 218: Systemsoftware für S7-300/400, Programmentwurf · iii Systemsoftware für S7-300/400 Programmentwurf C79000-G7000-C506-01 Vorwort Dieses Handbuch informiert Sie über die verschiedenen

D-2Systemsoftware für S7-300/400 Programmentwurf

C79000-G7000-C506-01

/500/ Handbuch: SIMATIC NET,NCM S7 für Industrial Ethernet

/501/ Handbuch: SIMATIC NETNCM S7 für PROFIBUS

Literaturverzeichnis

Page 219: Systemsoftware für S7-300/400, Programmentwurf · iii Systemsoftware für S7-300/400 Programmentwurf C79000-G7000-C506-01 Vorwort Dieses Handbuch informiert Sie über die verschiedenen

Glossar-1Systemsoftware für S7-300/400 ProgrammentwurfC79000-G7000-C506-01

Glossar

A

Aktualparameter ersetzen beim Aufruf eines Funktionsbausteins (FB) odereiner Funktion (FC) die Formalparameter. Beispiel: Der Formalparameter”Start” wird ersetzt durch den Aktualparameter ”E 3.6”.

Der Betriebszustand ANLAUF wird beim Übergang vom BetriebszustandSTOP in den Betriebszustand RUN durchlaufen. Er kann ausgelöst werdendurch den Betriebsartenschalter oder nach NETZ-EIN oder durch Bedienungam Programmiergerät.

Man unterscheidet zwischen den Anlaufarten Neustart und Wiederanlauf. BeiS7-300 wird ein Neustart durchgeführt. Bei S7-400 wird abhängig von derStellung des Anlaufartenschalters entweder ein Neustart oder ein Wieder-anlauf durchgeführt.

Das Anwenderprogramm enthält alle Anweisungen und Deklarationen sowieDaten für die Signalverarbeitung, durch die eine Anlage oder ein Prozeßgesteuert werden kann. Es ist einer programmierbaren Baugruppe (z. B. CPU,FM) zugeordnet und kann in kleinere Einheiten (Bausteine) strukturiertwerden.

Ein Automatisierungssystem ist eine speicherprogrammierbare Steuerung(SPS), die aus einem Zentralgerät, einer CPU und diversen Ein-/Ausgabe-baugruppen besteht.

B

Der Backup-Speicher gewährleistet eine Pufferung von Speicherbereichender CPU ohne Pufferbatterie. Gepuffert wird eine parametrierbare Anzahlvon Zeiten, Zählern, Merkern und Bytes eines Datenbausteins.

Aktualparameter

Anlauf

Anwender-programm

Automatisierungs-system (AS)

Backup-Speicher

Page 220: Systemsoftware für S7-300/400, Programmentwurf · iii Systemsoftware für S7-300/400 Programmentwurf C79000-G7000-C506-01 Vorwort Dieses Handbuch informiert Sie über die verschiedenen

Glossar-2Systemsoftware für S7-300/400 Programmentwurf

C79000-G7000-C506-01

Bausteine sind durch ihre Funktion, ihre Struktur oder ihren Verwendungs-zweck abgegrenzte Teile eines Anwenderprogramms. Es gibt Codebausteine(FB, FC, OB, SFB, SFC), Datenbausteine (DB, SDB) und anwenderdefinierteDatentypen (UDT).

Der Baustein-Stack (B-Stack) im Systemspeicher der CPU beinhaltet dieRücksprungadressen und die Datenbausteinregister bei Bausteinaufrufen.

C

Ein Codebaustein ist bei SIMATIC S7 ein Baustein, der einen Teil desS7-Anwenderprogramms enthält. Im Gegensatz dazu enthält ein Daten-baustein nur Daten. Zu den Codebausteinen zählen Organisationsbausteine(OBs), Funktionsbausteine (FBs), Funktionen (FCs), Systemfunktions-bausteine (SFBs) und Systemfunktionen (SFCs).

D

Statische Daten sind Lokaldaten eines Funktionsbausteins, die im Instanz-Datenbaustein gespeichert werden und deshalb bis zur nächsten Bearbeitungdes Funktionsbausteins erhalten bleiben.

Temporäre Daten sind Lokaldaten eines Bausteins, die während derBearbeitung eines Bausteins im L-Stack abgelegt werden und nach derBearbeitung nicht mehr verfügbar sind.

Datenbausteine (DB) sind Datenbereiche im Anwenderprogramm, dieAnwenderdaten enthalten. Es gibt globale Datenbausteine, auf die von allenCodebausteinen zugegriffen werden kann und es gibt Instanz-Datenbausteine,die einem bestimmten FB-Aufruf zugeordnet sind. Sie enthalten im Gegen-satz zu allen anderen Bausteinen keine Anweisungen.

Mit Hilfe eines Datentyps wird festgelegt, wie der Wert einer Variablen oderKonstanten im Anwenderprogramm verwendet werden soll. Bei SIMATIC S7stehen zwei Arten von Datentypen nach IEC 1131-3 zur Verfügung:elementare Datentypen und zusammengesetzte Datentypen.

Anwenderdefinierte Datentypen werden vom Anwender mit der Datentyp-deklaration geschaffen. Sie haben einen eigenen Namen und sind deshalbmehrfach verwendbar. Z. B. kann ein anwenderdefinierter Datentyp zurErzeugung mehrerer Datenbausteine mit der gleichen Struktur (z. B. Regler)genutzt werden.

Baustein

Baustein-Stack

Codebaustein

Daten, statisch

Daten, temporär

Datenbaustein(DB)

Datentyp

Datentyp,anwenderdefiniert(UDT)

Glossar

Page 221: Systemsoftware für S7-300/400, Programmentwurf · iii Systemsoftware für S7-300/400 Programmentwurf C79000-G7000-C506-01 Vorwort Dieses Handbuch informiert Sie über die verschiedenen

Glossar-3Systemsoftware für S7-300/400 ProgrammentwurfC79000-G7000-C506-01

Elementare Datentypen sind vordefinierte Datentypen gemäß IEC 1131-3.Beispiele: Datentyp ”BOOL” definiert eine binäre Variable (Bit); Datentyp”INT” definiert eine 16-Bit-Festpunkt-Variable.

Zusammengesetzte Datentypen werden vom Anwender mit der Datentyp-deklaration geschaffen. Sie haben keinen eigenen Namen und sind deshalbnicht mehrfach verwendbar. Man unterscheidet zwischen Feldern undStrukturen. Auch die Datentypen STRING und DATE AND TIME zählenhierzu.

Dezentrale Peripherie sind vom Zentralgerät räumlich abgesetzte Baugruppen(z. B. Analog- und Digitalbaugruppen). Charakteristisch für die dezentralePeripherie ist die Aufbautechnik. Zielsetzung dieser Aufbautechnik ist dasEinsparen von Verdrahtungsaufwand (und damit Kosten) durch prozeßnahesEinsetzen der Signalbaugruppen.

Ein Diagnoseereignis führt zu einem Eintrag im Diagnosepuffer der CPU.Die Diagnoseereignisse unterscheiden sich nach: Fehler auf einer Baugruppe,Fehler in der Prozeßverdrahtung, Systemfehler in der CPU, Betriebszustands-übergänge der CPU, Fehler im Anwenderprogramm und anwenderdefinierteDiagnoseereignisse.

Der Diagnosepuffer ist ein gepufferter Speicherbereich in der Zentral-baugruppe, in dem Diagnoseereignisse in der Reihenfolge des Auftretensabgelegt sind.

Unter DP-Norm versteht man ein Verhalten nach EN 50170, vormals DIN E19245, Teil 3.

F

Ein Formalparameter ist ein Platzhalter für den ”tatsächlichen” Parameter(Aktualparameter) bei parametrierbaren Codebausteinen. Bei FB und FCwerden die Formalparameter vom Anwender deklariert, bei SFB und SFCsind sie bereits vorhanden. Beim Aufruf des Bausteins wird dem Formal-parameter ein Aktualparameter zugeordnet, so daß der aufgerufene Bausteinemit dessen aktuellen Werten arbeitet. Die Formalparameter zählen zu denLokaldaten des Bausteins und unterteilen sich nach Eingangs-, Ausgangs-und Durchgangsparametern.

Datentyp,elementar

Datentyp,zusammengesetzt

DezentralePeripherie (DP)

Diagnoseereignis

Diagnosepuffer

DP-Norm

Formalparameter

Glossar

Page 222: Systemsoftware für S7-300/400, Programmentwurf · iii Systemsoftware für S7-300/400 Programmentwurf C79000-G7000-C506-01 Vorwort Dieses Handbuch informiert Sie über die verschiedenen

Glossar-4Systemsoftware für S7-300/400 Programmentwurf

C79000-G7000-C506-01

Eine Funktion (FC) ist gemäß IEC 1131-3 ein Codebaustein ohne Gedächtnis.Eine Funktion bietet die Möglichkeit der Übergabe von Parametern imAnwenderprogramm. Dadurch eignen sich Funktionen zur Programmierungvon häufig wiederkehrenden komplexen Funktionen, z. B. Berechnungen.Wichtig: Da kein Gedächtnis vorhanden ist, müssen die berechneten Wertedirekt nach dem FC-Aufruf weiterverarbeitet werden.

Ein Funktionsbaustein (FB) ist gemäß IEC 1131-3 ein Codebaustein mitGedächtnis. Ein Funktionsbaustein bietet die Möglichkeit der Übergabe vonParametern im Anwenderprogramm. Dadurch eignen sich Funktionsbausteinezur Programmierung von häufig wiederkehrenden komplexen Funktionen,z. B. Regelungen, Betriebsartenanwahl. Da ein FB über ein Gedächtnis(Instanz-Datenbaustein) verfügt, kann auf dessen Parameter (z. B. Ausgänge)zu jeder Zeit an jeder beliebigen Stelle im Anwenderprogramm zugegriffenwerden.

G

Globaldaten sind Daten, die von jedem Codebaustein (FB, FC, OB) ausansprechbar sind. Im Einzelnen sind das Merker M, Eingänge E, AusgängeA, Zeiten, Zähler und Elemente von Datenbausteinen DB. Auf Globaldatenkann entweder absolut oder symbolisch zugegriffen werden.

Globaldaten-Kommunikaton ist ein Verfahren mit dem Globaldaten zwischenCPUs übertragen werden.

I

Mit Instanz wird der Aufruf eines Funktionsbausteins bezeichnet. Wird z. B.ein Funktionsbaustein im S7-Anwenderprogramm fünfmal aufgerufen, soexistieren fünf Instanzen. Jedem Aufruf ist ein Instanz-Datenbausteinzugeordnet.

Ein Instanz-Datenbaustein speichert die Formalparameter und die statischenLokaldaten von Funktionsbausteinen. Ein Instanz-DB kann einem FB-Aufrufoder einer Aufrufhierarchie von Funktionsbausteinen zugeordnet sein.

Funktion (FC)

Funktionsbaustein(FB)

Globaldaten

Globaldaten-Kommunikation

Instanz

Instanz-Daten-baustein (DB)

Glossar

Page 223: Systemsoftware für S7-300/400, Programmentwurf · iii Systemsoftware für S7-300/400 Programmentwurf C79000-G7000-C506-01 Vorwort Dieses Handbuch informiert Sie über die verschiedenen

Glossar-5Systemsoftware für S7-300/400 ProgrammentwurfC79000-G7000-C506-01

K

Der Kommunikationsbus (K-Bus) ist Bestandteil des Rückwandbusses derAutomatisierungssysteme SIMATIC S7-300, S7-400. Er ermöglicht dieschnelle Kommunikation zwischen programmierbaren Baugruppen, derZentralbaugruppe und dem Programmiergerät. Dadurch ist es z. B. möglich,alle in einem Automatisierungssystem befindlichen programmierbarenBaugruppen über ein an der Zentralbaugruppe angeschlossenes Programmier-gerät zu programmieren.

Kommunikations-SFBs sind Systemfunktionsbausteine (SFB) für denDatenaustausch und für Programmanagement.

Beispiele für Datenaustausch: USEND, URCV, GET; Beispiele für Program-management: remoten Kommunikationspartner in den STOP-Zustand verset-zen, STATUS des remoten Kommunikationspartners abfragen.

Kommunikations-SFCs sind Systemfunktionen (SFC) für den Datenaustauschund für den Abbruch bestehender Verbindungen, die von Kommunikations-SFCs aufgebaut wurden.

Eine Kommunikationsverbindung wird zwischen Teilnehmern eingerichtet,die miteinander Daten austauschen wollen. Eine Kommunikationsverbindungsetzt den Anschluß an ein gemeinsames Hardwaremedium (z. B. Bussystem)voraus. Darauf aufbauend wird eine logische Kommunikationsverbindung(Software) eingerichtet.

L

Lokaldaten sind die einem Codebaustein zugeordneten Daten, die in seinemDeklarationsteil bzw. seiner Variablendeklaration deklariert werden. Sieumfassen (bausteinabhängig): Formalparameter, statische Daten, temporäreDaten.

Der Lokaldaten-Stack (L-Stack) im Systemspeicher der CPU enthält einenTeil der Lokaldaten, nämlich die temporären Daten.

K-Bus

Kommunikations-SFBs für projek-tierte Verbindun-gen

Kommunikations-SFCs für nichtpro-jektierte Verbin-dungen

Kommunikations-verbindung

Lokaldaten

Lokaldaten-Stack

Glossar

Page 224: Systemsoftware für S7-300/400, Programmentwurf · iii Systemsoftware für S7-300/400 Programmentwurf C79000-G7000-C506-01 Vorwort Dieses Handbuch informiert Sie über die verschiedenen

Glossar-6Systemsoftware für S7-300/400 Programmentwurf

C79000-G7000-C506-01

M

Die mehrpunktfähige Schnittstelle (MPI) ist die Programmiergeräte-Schnitt-stelle von SIMATIC S7. Sie ermöglicht den gleichzeitigen Betrieb vonmehreren Programmiergeräten, Text Displays, Operator Panels an einer oderauch mehreren Zentralbaugruppen. Die Teilnehmer an der MPI werden überein Bussystem miteinander verbunden.

Multicomputing-Betrieb ist bei S7-400 der gleichzeitige Betrieb mehrerer(max. 4) Zentralbaugruppen in einem zentralen Baugrupenträger.

Der Multicomputingalarm gehört zu den Prioritätsklassen des Betriebs-systems einer S7-CPU. Er wird bei S7-400 nach Empfang eines Alarms voneiner anderen Zentralbaugruppe im Multicomputing-Betreib generiert. Dannwird ein entsprechender Organisationsbaustein bearbeitet.

N

Ein Netz ist die Verbindung von Netzteilnehmern über Verbindungskabelzum Zwecke der Kommunikation.

Beim Anlauf der Zentralbaugruppe (z. B. nach Betätigung des Betriebsarten-schalters von STOP auf RUN oder bei Netzspannung EIN) wird vor derzyklischen Programmbearbeitung (OB 1) zunächst entweder derOrganisationsbaustein OB 101 (Wiederanlauf; nur bei S7-400) oder derOrganisationsbaustein OB 100 (Neustart) bearbeitet. Bei Neustart wird dasProzeßabbild der Eingänge eingelesen und das S7-Anwenderprogrammbeginnend beim ersten Befehl im OB 1 bearbeitet.

O

Ein Operand ist Teil einer S7-Anweisung und sagt aus, womit der Prozessoretwas tun soll. Er kann sowohl absolut als auch symbolisch adressiertwerden.

Eine Operation ist Teil einer Anweisung und sagt aus, was der Prozessor tunsoll.

Organisationsbausteine bilden die Schnittstelle zwischen dem Betriebssystemder CPU und dem Anwenderprogramm. In den Organisationsbausteinen wirddie Reihenfolge der Bearbeitung des Anwenderprogramms festgelegt.

MPI

Multicomputing-Betrieb

Multicomputing-alarm

Netz

Neustart

Operand

Operation

Organisations-baustein (OB)

Glossar

Page 225: Systemsoftware für S7-300/400, Programmentwurf · iii Systemsoftware für S7-300/400 Programmentwurf C79000-G7000-C506-01 Vorwort Dieses Handbuch informiert Sie über die verschiedenen

Glossar-7Systemsoftware für S7-300/400 ProgrammentwurfC79000-G7000-C506-01

P

Ein Parameter ist 1. eine Variable eines S7-Codebausteins (Aktualparameter,Formalparameter) 2. eine Variable zur Einstellung des Verhaltens einerBaugruppe. Jede parametrierbare Baugruppe besitzt im Lieferzustand einesinnvolle Grundeinstellung. die durch STEP 7 verändert werden kann.

Der Peripheriebus (P-Bus) ist Bestandteil des Rückwandbusses im Auto-matisierungssystem. Er ist optimiert auf schnellen Austausch von Signalenzwischen der/den Zentralbaugruppe(n) und den Signalbaugruppen. Über denPeripheriebus werden Nutzdaten (z. B. digitale Eingangssignale einerSignalbaugruppe) und Systemdaten (z. B. Default-Parameterdatensätze einerSignalbaugruppe) übertragen.

Das Betriebssystem einer S7-CPU bietet maximal 28 Prioritätsklassen (bzw.“Programmbearbeitungsebenen”), denen veschiedene Organisationsbausteine(OB) zugeordnet sind. Die Prioritätsklassen bestimmen, welche OBs andereOBs unterbrechen. Umfaßt eine Prioritätsklasse mehrere OBs, so unter-brechen sie sich nicht gegenseitig, sondern werden sequentiell bearbeitet.

PROFIBUS steht für ”Process Field Bus” und ist ein herstellerunabhängigerStandard für die Vernetzung von Feldgeräten (z. B. SPS, Antriebe, Aktoren,Sensoren).

Programmiergeräte sind tragbare Personal Computer in spezieller industrie-tauglicher und kompakter Ausführung. Ein PG ist komplett ausgestattet fürdie Programmierung der SIMATIC-Automatisierungssysteme.

Ein Projekt ist ein Behälter für alle Objekte einer Automatisierungslösungunabhängig von der Anzahl der Stationen, Baugruppen und derenVernetzung.

Die Signalzustände der digitalen Ein- und Ausgabebaugruppen werden in derCPU in einem Prozeßabbild hinterlegt. Man unterscheidet das Prozeßabbildder Eingänge (PAE) und das der Ausgänge (PAA).

Parameter

P-Bus

Prioritätsklasse

PROFIBUS

Programmiergerät(PG)

Projekt

Prozeßabbild

Glossar

Page 226: Systemsoftware für S7-300/400, Programmentwurf · iii Systemsoftware für S7-300/400 Programmentwurf C79000-G7000-C506-01 Vorwort Dieses Handbuch informiert Sie über die verschiedenen

Glossar-8Systemsoftware für S7-300/400 Programmentwurf

C79000-G7000-C506-01

Bei SIMATIC S7 können Informationen, die sich in RAM-Bereichenbefinden:

1. mittels einer Pufferbatterie gesichert werden; in diesem Fall bleiben derInhalt des Arbeitsspeichers und des Schreib-/Lesespeichers desLadespeichers immer erhalten, ebenso Zähler, Zeiten und Merker(Bereich ist parametrierbar).

2. ohne Pufferbatterie (Wartungsfreiheit) gesichert werden; in diesem Fall isteine (CPU-spezifische) Maximalzahl von Daten aus dem Arbeitsspeicher,dem Schreib-/Lesespeicher des Ladespeichers sowie eine Maximalzahlvon Zeiten, Zählern und Merkern permanent im Backup-Puffer der CPUspeicherbar.

R

Der Rückwandbus eines SIMATIC S7-Automatisierungssystems versorgt diegesteckten Baugruppen mit der internen Betriebsspannung und ermöglichtden Datenaustausch zwischen den Baugruppen. Bei S7-400 ist derRückwandbus unterteilt in Peripheriebus (P-Bus) und Kommunikationsbus(K-Bus). Bei S7-300 ist der Rückwandbus modular aufgebaut, in Form vonU-Profilen, die jeweils zwei Baugruppen miteinander verbinden.

S

Das S7-Programm ist ein Behälter für Bausteine, Quellen und Pläne fürprogrammierbare S7- Baugruppen.

Startereignisse sind definierte Ereignisse wie Fehler oder Alarme undveranlassen das Betriebssystem, einen zugehörigen Organisationsbaustein zustarten.

Ein Symbol ist ein vom Anwender unter Berücksichtigung vorgegebenerSyntaxvorschriften definierter Name. Dieser Name kann nach der Festlegung,wofür er stehen soll (z. B. Variable, Datentyp, Sprungmarke, Baustein), beider Programmierung und beim Bedienen und Beobachten verwendet werden.Beispiel: Operand: E 5.0, Datentyp: BOOL, Symbol: Taster Notaus.

Tabelle zur Zuordnung von Symbolen (=Name) zu Adressen für Globaldatenund Bausteine. Beispiel: Notaus (Symbol), E 1.7 (Adresse), Regler (Symbol),SFB 24 (Baustein).

Pufferung

Rückwandbus

S7-Programm

Startereignis

Symbol

Symboltabelle

Glossar

Page 227: Systemsoftware für S7-300/400, Programmentwurf · iii Systemsoftware für S7-300/400 Programmentwurf C79000-G7000-C506-01 Vorwort Dieses Handbuch informiert Sie über die verschiedenen

Glossar-9Systemsoftware für S7-300/400 ProgrammentwurfC79000-G7000-C506-01

Systemfehler sind Fehler, die innerhalb eines Automatisierungssystems (alsonicht im Prozeß) auftreten können. Systemfehler sind z. B. Programmfehlerin der CPU und Defekte auf den Baugruppen.

Eine Systemfunktion (SFC) ist eine im Betriebssystem der CPU integrierteFunktion, die bei Bedarf im S7-Anwenderprogramm wie eine Funktion (FC)aufgerufen werden kann.

Ein Systemfunktionsbaustein (SFB) ist ein im Betriebssystem der CPUintegrierter Funktionsbaustein, der bei Bedarf im S7-Anwenderprogramm wieein Funktionsbaustein (FB) aufgerufen werden kann.

Der Systemspeicher ist auf der Zentralbaugruppe integriert und als RAM-Speicher ausgeführt. Im Systemspeicher sind die Operandenbereiche (z. B.Merker, Zeiten und Zähler) sowie vom Betriebssystem intern benötigteDatenbereiche (z. B. Puffer für Kommunikation) abgelegt.

Die Systemzustandsliste SZL beschreibt den aktuellen Zustand desAutomatisierungssystems: sie gibt einen Überblick über den Ausbau, dieaktuelle Parametrierung, die aktuellen Zustände und Abläufe in der CPU undden zugeordneten Baugruppen. Die Daten der SZL können nur gelesen, nichtgeändert werden. Sie ist eine virtuelle Liste, die nur auf Anforderungzusammengestellt wird.

T

Unter einer Teilnehmeradresse wird ein Gerät (z. B. PG) oder eineprogrammierbare Baugruppe (z. B. CPU) in einem Netz (z. B. MPI, PROFI-BUS) angesprochen.

U

Im Unterbrechungs-Stack (U-Stack) im Systemspeicher der CPU wird vonder CPU im Alarm- oder Fehlerfall die jeweilige Adresse der Unter-brechungsstelle mit den dort aktuellen Anzeigen und Akku-Inhaltenangegeben. Sind mehrere Unterbrechungen aufgetreten, so wird ein mehr-stufiger U-Stack aufgebaut. Mit einem PG läßt sich der U-Stack auslesen.

Beim Urlöschen werden folgende Speicher der CPU gelöscht: der Arbeits-speicher, der Schreib-/Lesebereich des Ladespeichers, der Systemspeichermit Ausnahme der MPI-Parameter und des Diagnosepuffers.

Systemfehler

Systemfunktion(SFC)

Systemfunktions-baustein (SFB)

Systemspeicher

Systemzustands-liste (SZL)

Teilnehmeradresse

Unterbrechungs-Stack

Urlöschen (MRES)

Glossar

Page 228: Systemsoftware für S7-300/400, Programmentwurf · iii Systemsoftware für S7-300/400 Programmentwurf C79000-G7000-C506-01 Vorwort Dieses Handbuch informiert Sie über die verschiedenen

Glossar-10Systemsoftware für S7-300/400 Programmentwurf

C79000-G7000-C506-01

V

Eine Variable definiert ein Datum mit variablem Inhalt, das imS7-Anwenderprogramm verwendet werden kann. Eine Variable besteht auseinem Operanden (z. B. M 3.1) und einem Datentyp (z. B. Bool) und wirdmit einem Symbol (z. B. BAND_EIN) gekennzeichnet.

Die Variablendeklaration umfaßt die Angabe eines symbolischen Namens,eines Datentyps und evtl. Vorbelegungswert, Adresse und Kommentar.

In der Variablendeklarationstabelle werden die Lokaldaten eines Code-bausteins deklariert, wenn die Programmerstellung in der inkrementellenEingabe erfolgt.

In der Variablentabelle werden die Variablen zusammengestellt, diebeobachtet und gesteuert werden sollen, inkl. der zugehörigen Format-angaben.

W

Beim Anlauf der Zentralbaugruppe (z. B. nach Betätigung des Betriebsarten-schalters von STOP auf RUN oder bei Netzspannung EIN) wird vor derzyklischen Programmbearbeitung (OB 1) zunächst entweder derOrganisationsbaustein OB 100 (Neustart) oder der OrganisationsbausteinOB 101 (Wiederanlauf; nur bei S7-400) bearbeitet. Bei Wiederanlauf wirddas Prozeßabbild der Eingänge eingelesen und die Bearbeitung desS7-Anwenderprogrammms an der Stelle fortgesetzt, an der es beim letztenAbbruch (STOP, NETZ-AUS) beendet wurde.

Z

Zähler sind Bestandteil des Systemspeichers der CPU. Der Inhalt dieserZähler kann durch S7-Anweisungen verändert werden (z. B. vorwärts-,rückwärtszählen).

Zeiten (T) sind Bestandteile des Systemspeichers der CPU. Der Inhalt dieserZeiten wird asynchron zum Anwenderprogramm vom Betriebssystemaktualisiert. Mit STEP 7-Anweisungen wird die genaue Funktion der Zeit(z. B. Einschaltverzögerung) festgelegt und ihre Bearbeitung (Start)angestoßen.

Die CPU (Central Processing Unit) ist eine Zentralbaugruppe desAutomatisierungssystems, in der das Anwenderprogramm gespeichert undbearbeitet wird. Sie beinhaltet Betriebssystem, Bearbeitungseinheit undKommunikations-Schnittstellen.

Variable

Variablen-deklaration

Variablen-deklarationstabelle

Variablentabelle(VAT)

Wiederanlauf

Zähler

Zeiten

Zentralbaugruppe(CPU)

Glossar

Page 229: Systemsoftware für S7-300/400, Programmentwurf · iii Systemsoftware für S7-300/400 Programmentwurf C79000-G7000-C506-01 Vorwort Dieses Handbuch informiert Sie über die verschiedenen

Index-1Systemsoftware für S7-300/400 ProgrammentwurfC79000-G7000-C506-01

Stichwortverzeichnis

AAbsolute Adressierung, 5-5ACT_TINT, 4-3, 4-4Adreßbereich, Multicomputing, 10-3Adressierung

absolut, 5-5Arten der, 5-5symbolisch, 5-5von S5-Baugruppen, 6-5

Adressierung der, Kommunikationspartner, 7-9Aktualparameter, 2-5, 2-11Alarm-OBs

abwählen, 8-12Einsatz, 4-2parametrieren, 4-2, 4-4

Alarmarten, 3-2Alarmgesteuerte Programmbearbeitung, 2-9Alarmzuordnung, Multicomputing, 10-4Anfangsadresse, 6-3ANLAUF, 9-6

abbrechen, 9-10Betriebszustand der CPU, 9-2–9-4CPU-Tätigkeiten, 9-9, 9-11

Anlauf-OBs, 3-4Anlaufartenvergleich, 10-3, 10-9Anlaufprogramm, 3-4Anlaufverhalten, 8-5Anweisungsliste (AWL), absolute Adressierung,

Situationen, in denen Daten überschriebenwerden, 2-21

Anwenderdefinierte Datentypen, Beschreibung,C-12

AnwenderprogrammAufgaben, 2-2Elemente, 2-3im CPU-Speicher, 5-6laden, 5-6testen, 9-14

ANY, C-5ANY, Parameter, Beschreibung und Verwen-

dung, C-15Arbeitspeicher, 5-2, 5-6ARRAY, C-4

AS, Glossar-1Asynchrone Fehler

OB81, 11-12Verwenden von OBs, um auf Fehler zu rea-

gieren, 3-10–3-12Aufrufhierarchie, 2-4Auftragskennung R_ID, 7-7Ausgangsparameter

Reihenfolge für das Deklarieren von Para-metern, 2-6

RET_VAL, 11-9AWL, 2-7

BBaugruppe

parametrieren, 8-2ziehen und stecken, 11-20

Baugruppen-Anfangsadresse, 6-3Baugruppenadressierung, 6-2Baugruppenparameter, 8-2

übertragen mit SFCs, 8-3übertragen mit STEP 7, 8-2

Baugruppenträgerausfall-OB, 11-23Bausteinaufrufe, 2-4Bausteine, 2-3Bausteinvariablen, 2-5Beispielprogramm, Datenaustausch zwischen 2

S7-CPUs, B-1Beispielprogramme, Industrieller Mischprozeß,

A-2Beschreiben der Sicherheitsanforderungen, für

das Beispiel eines industriellen Mischprozes-ses, 1-9

Beschreiben des Bedienpultes, am Beispiel ei-nes industriellen Mischprozesses, 1-10

Beschreibung der einzelnen Aufgaben und Be-reiche, für das Beispiel eines industriellenMischprozesses, 1-5–1-7

Betriebsstundenzähler, 8-4Betriebssystem, Aufgaben, 2-2

Page 230: Systemsoftware für S7-300/400, Programmentwurf · iii Systemsoftware für S7-300/400 Programmentwurf C79000-G7000-C506-01 Vorwort Dieses Handbuch informiert Sie über die verschiedenen

Index-2Systemsoftware für S7-300/400 Programmentwurf

C79000-G7000-C506-01

Betriebszuständeder CPU, 9-2Priorität, 9-4

Betriebszustandsübergänge, 9-3im Multicomputing-Betrieb, 10-9

BLKMOV, 5-7BLOCK, Parametertyp, C-5BLOCK_DB, C-5BLOCK_FB, C-5BLOCK_FC, C-5BLOCK_SDB, C-5BOOL, Bereich, C-2BRCV, 7-3BSEND, 7-3B-Stack

im B-Stack gespeicherte Daten, 2-18verschachtelte Aufrufe, 2-18–2-21

Byte, Bereich, C-2

CCALL, Situationen, in denen Daten überschrie-

ben werden, 2-21CAN_TINT, 4-3CFC, Programmiersprache, 2-8Codebausteine, definieren, Beispiel, A-4CONTROL, 7-3COUNTER, C-5

Parametertyp, C-5CPU (Central Processing Unit), Glossar-10

Betriebszustände, 9-2–9-4CPU-Hardwarefehler-OB, 11-21CREAT_DB, 5-7CRST/WRST, 9-6CTRL_RTM, 8-4

DDATE_AND_TIME, C-4Datenaustausch, 7-1

in verschiedenen Betriebszuständen, 9-12Datenbaustein (DB), 2-3

global, 2-17Instanz-Datenbausteine, 2-12, 2-15remanent, 5-8Situationen, in denen Daten überschrieben

werden, 2-21Struktur, 2-17

Datensatzlesen, 6-4schreiben, 6-4zugreifen auf, 6-5, 8-3

Datentypen, 2-6anwenderdefiniert, C-4ARRAY, C-4Beschreibung, C-2–C-4BOOL, C-2BYTE, C-2DATE_AND_TIME, C-4Datum, C-3Doppelwort (DWORD), C-2elementar, C-2FB, SFB, 2-13, C-4Ganzzahl (16 Bit) (INT), C-2Ganzzahl (32 Bit) (DINT), C-2Parametertypen, ANY, Parameter, C-15Realzahl (REAL), C-2S5 TIME, C-3Situationen, in denen Daten überschrieben

werden, 2-21STRING, C-4STRUCT, C-4Uhrzeit (TIME OF DAY), C-3Wort (WORD), C-2Zeichen (CHAR), C-3Zeit (TIME), C-3zusammengesetzt, C-4

DB, 2-17, Glossar-2, Glossar-4Defekt, Betriebszustand der CPU, 9-3Deklarationstypen, 2-5Deklarieren von lokalen Variablen

FB für das Beispiel eines industriellenMischprozesses, A-9

OB für das Beispiel eines industriellenMischprozesses, A-14

Deklarieren von Parametern, FC für das Bei-spiel eines industriellen Mischprozesses,A-12

Demaskieren, Startereignisse, 3-11Dezentrale Peripherie, 6-6Diagnose, 11-2Diagnosealarm-OB, 11-19, 11-21Diagnosedaten auf Baugruppen, 11-6Diagnoseereignis, 11-3Diagnosefunktionen, 11-2Diagnosemeldung

an Teilnehmer senden, 11-8eigene schreiben, 11-8

Diagnosepuffer, 11-6auslesen, 11-3Definition, 11-7

Diagnosezustandsdaten, 11-6DIS_AIRT, 3-11DIS_IRT, 3-11DMSK_FLT, 3-11

Stichwortverzeichnis

Page 231: Systemsoftware für S7-300/400, Programmentwurf · iii Systemsoftware für S7-300/400 Programmentwurf C79000-G7000-C506-01 Vorwort Dieses Handbuch informiert Sie über die verschiedenen

Index-3Systemsoftware für S7-300/400 ProgrammentwurfC79000-G7000-C506-01

Doppelwort (DWORD), Bereich, C-2DP, 6-6, Glossar-3DP-Normslaves, 6-7DPNRM_DG, 6-7DPRD_DAT, 6-7DPWR_DAT, 6-7Durchgangsparameter, Reihenfolge für das De-

klarieren von Parametern, 2-6

EEingangsparameter, Reihenfolge für das Dekla-

rieren von Parametern, 2-6Elementare Datentypen, Beschreibung, C-2EN_AIRT, 3-11EN_IRT, 3-11Entwurfsmethoden, Entwerfen eines strukturier-

ten Programms, A-4–A-14Ersatzwert, Verwenden von SFC44 (RPL_VAL),

11-14–11-16Erstellen, eines Konfigurationsplans, am Bei-

spiel industrieller Mischprozeß, 1-11

FFB, 2-12, C-4, Glossar-4FC, 2-11, Glossar-4Fehler-OB

OB-TypenOB121 und OB122, 3-11OB80 bis OB87, 3-11

Verwenden von Fehler-OBs zur Reaktion aufEreignisse, 3-10–3-12

Fehlerbehandlung, im Multicomputing-Betrieb,10-10

Fehlerbehebung, Programmbeispiele, 11-11Fehlererkennung

OB-Typen, OB81, 11-12Programmbeispiele, Ersatzwerte,

11-14–11-16Verwenden von Fehler-OBs, um auf Fehler

zu reagieren, 3-10–3-12Fehler-OB, 11-10Feld (Datentyp ARRAY)

Anzahl verschachtelter Ebenen, C-6Beschreibung, C-7

Feststellbare Fehler, 11-10Formalparameter, 2-5

Funktion (FC), 2-3, 2-11Anwendungsbereich, 2-11Erstellen einer Beispiel-FC für das Beispiel

eines industriellen Mischprozesses,A-11–A-13

Funktionsbausteine (FBs), 2-3, 2-12Aktualparameter, 2-13Anwendungsbereich, 2-12Erstellen eines Beispiel-FBs für das Beispiel

eines industriellen Mischprozesses,A-7–A-10

Zuordnen von Speicher, 2-6

GGanzzahl (16 Bit) (INT), Bereich, C-2Ganzzahl (32 Bit) (DINT), Bereich, C-2Gepufferter Betrieb, remanente Speicherberei-

che, 5-10GET, 7-3GRAPH, 2-8

HHALT, 9-13

Betriebszustand der CPU, 9-2HiGraph, 2-8

II_ABORT, 7-8I_GET, 7-8I_PUT, 7-8Indirekte Parametrierung, 8-2Informationslandschaft, ivInstanz, 2-15Instanz-Datenbaustein, 2-15, 7-7

Erstellen mehrerer Instanzen für einen FB,2-12

remanent, 5-8Situationen, in denen Daten überschrieben

werden, 2-21Zuordnen von Speicher für einen FB, 2-6

Stichwortverzeichnis

Page 232: Systemsoftware für S7-300/400, Programmentwurf · iii Systemsoftware für S7-300/400 Programmentwurf C79000-G7000-C506-01 Vorwort Dieses Handbuch informiert Sie über die verschiedenen

Index-4Systemsoftware für S7-300/400 Programmentwurf

C79000-G7000-C506-01

KKommunikation

einseitig, 7-4homogen, 7-2nicht homogen, 7-2zweiseitig, 7-4

Kommunikations-SFBs, für projektierte Verbin-dungen, 7-2

Kommunikations-SFCs, für nichtprojektierteVerbindungen, 7-8

Kommunikationsfehler-OB, 11-24Kommunikationslast, 8-7Kommunikationsmöglichkeiten, 7-1Kommunikationspartner, 7-5

Adressierung, 7-7, 7-9Verbindung, 7-8

Kommunikations-SFBs, Beispielprogramm, B-1Kommunikationstypen, 7-2Kommunikationsverbindungen, 7-6

einseitig/zweiseitig, 7-6Konfigurieren, Multicomputing, 10-4Konsistenzprüfung, Multicomputing, 10-10KOP, 2-7

LL-Stack

Bearbeitung von Daten in einem verschach-telten Aufruf, 2-18–2-21

Speichern von temporären Variablen, 2-12Überschreiben des L-Stack, 3-13Zuordnen von Speicher zu lokalen Varia-

blen, 3-13zusätzliche Verwendung neben dem Spei-

chern von Variablen, 2-19Lademöglichkeiten, 5-3Laden

des Anwenderprogramms, 5-6eines Zeitwerts, Bereich, C-3

Ladespeicher, 5-6nicht ablaufrelevante DBs speichern, 5-7

Laufzeitfehler, Verwenden von OBs, um aufFehler zu reagieren, 3-10–3-12

Linear programmieren, 2-9Lokaldaten, 2-19

Anzahl ändern, 8-12Lokaldaten-Stack, 5-13

Lokale Variablen (VAR), Reihenfolge für dasDeklarieren von Parametern, 2-6

MMaskieren, Startereignisse, 3-11Maximalzykluszeit, 8-6Meldepunkt (MP), 10-8Memory Card, 5-6Merker, Speicherbereich, remanent, 5-8Mindestzykluszeit, 8-6MPI, Glossar-6MPI-Parameter, 8-9MSK_FLT, 3-11Multicomputing, 10-6

Adreßbereich, 10-3Alarmzuordnung, 10-4Besonderheiten, 10-3Fehlerbehandlung, 10-10konfigurieren, 10-4Konsistenzprüfung, 10-10parametrieren, 10-4programmieren, 10-6Synchronisierung, 10-8Verwendungsbeispiele, 10-2

Multicomputingalarm, 10-6Multiinstanz, 2-13, 2-15

NNeustart, 9-6

abbrechen, 9-10automatisch, 9-6automatisch, ungepuffert, 9-7manuell, 9-6

Nichtflüchtiger RAM, 5-8Nutzdaten, 6-4, 6-6NVRAM, 5-8

OOB, 2-9, Glossar-6OB 60, 10-6Operanden, 2-3Operandenbereiche, Beschreibung, 5-4–5-6Operationen, 2-7

Stichwortverzeichnis

Page 233: Systemsoftware für S7-300/400, Programmentwurf · iii Systemsoftware für S7-300/400 Programmentwurf C79000-G7000-C506-01 Vorwort Dieses Handbuch informiert Sie über die verschiedenen

Index-5Systemsoftware für S7-300/400 ProgrammentwurfC79000-G7000-C506-01

Operationsumfang, 2-3, 2-7Organisationsbaustein (OB), Hintergrund-OB

(OB 90), 3-2, 3-7Organisationsbausteine, 2-3

Arten, 3-2Definition, 2-9Erstellen eines OBs für das Beispiel eines

industriellen Mischprozesses, A-15–A-18Fehlererkennung, OB122, Ersatzwerte,

11-14–11-16Prioritätsklassen, 3-2Reagieren auf Fehler, 3-10–3-12Startinformation, 3-3

PParametertypen

ANY, C-5, C-15BLOCK_DB, C-5BLOCK_FB, C-5BLOCK_FC, C-5BLOCK_SDB, C-5COUNTER, C-5POINTER, C-5TIMER, C-5

Parametrierbare Baugruppen, 8-2Parametrieren

indirekt, 8-2mit SFCs, 8-3mit STEP 7, 8-2

PARM_MOD, 6-5, 8-3Peripherie

Adreßbereiche, 6-2dezentral, 6-6

Peripheriedaten, 6-4Peripheriezugriffsfehler-OB, 11-26PG, Glossar-7Phasenverschiebung, 4-6POINTER, C-5

Parametertyp, C-5Pointerformat, C-5Priorität, ändern, 3-3, 8-12Prioritätsklassenfehler-OB, 11-22Programmbearbeitung

alarmgesteuert, 2-9, 3-8, 4-2zyklisch, 2-9

ProgrammbeispieleBeispiel eines industriellen Mischprozesses

Beschreiben der Sicherheitsanforderun-gen, 1-9

Beschreiben des Bedienpultes, 1-10Beschreibung der einzelnen Aufgaben

und Bereiche, 1-5–1-7Beschreiben der Funktionsweise, 1-5–1-7Erstellen eines E/A-Diagramms, 1-7–1-9Erstellen eines Konfigurationsplans, 1-11Funktionsbereiche und zugehörige Ge-

räte, 1-4Zerlegen eines Prozesses in Aufgabenbe-

reiche, 1-3–1-5Einfügen von Ersatzwerten, 11-14–11-16Ersatzwerte, 11-14–11-16FB für das Beispiel eines industriellen

Mischprozesses, A-7–A-10FC für das Beispiel eines industriellen

Mischprozesses, A-11–A-13OB für das Beispiel eines industriellen

Mischprozesses, A-15–A-18Reagieren auf Batteriefehler, 11-11

Programmiereneiner FC, Beispiel, A-12eines FB, Beispiel, A-9eines OB 1, Beispiel, A-15

Programmierfehler-OB, 11-25Programmiersprachen, 2-7Programmierung

Entwerfen eines strukturierten Programms,A-4–A-14

Übergeben von Parametern, 2-13Verwendung von Datenbausteinen, 2-12Zyklus, 3-5

Prozeß, untergliedern, 1-3, A-2Prozeßabbild, 3-6, 5-11

aktualisieren, 5-11, 8-7der Ausgänge, 3-5der Eingänge, 3-5löschen, 8-5

Prozeßalarme, 4-8PUT, 7-3

Stichwortverzeichnis

Page 234: Systemsoftware für S7-300/400, Programmentwurf · iii Systemsoftware für S7-300/400 Programmentwurf C79000-G7000-C506-01 Vorwort Dieses Handbuch informiert Sie über die verschiedenen

Index-6Systemsoftware für S7-300/400 Programmentwurf

C79000-G7000-C506-01

QQRY_TINT, 4-3

RR_ID, 7-7RDSYSST, 11-3, 11-4, 11-7READ_CLK, 8-4READ_RTM, 8-4Realzahl

Bereich, C-2Datentyp, C-2

Remanenter Speicherbei S7-300-CPUs, 5-8–5-10bei S7-400-CPUs, 5-10–5-12Parametrierung, 8-10

Remanenz, nach Netzausfall, 9-8Restzyklus, 9-7RESUME, 7-3RPL_VAL, 11-14RUN, 9-12

Betriebszustand der CPU, 9-2–9-4CPU-Tätigkeiten, 9-11

SS5 TIME, Bereich, C-3Schachtelungstiefe, 2-4SCL, 2-8Selbsttest bei Neustart, 8-5SET_CLK, 4-4, 8-4SET_RTM, 8-4SET_TINT, 4-3SFB, 2-10, C-4, Glossar-9SFB 8 USEND, 7-3SFB 9 URCV, 7-3SFB 12 BSEND, 7-3SFB 13 BRCV, 7-3SFB 14 GET, 7-3SFB 15 PUT, 7-3SFB 19 START, 7-3SFB 20 STOP, 3-6, 7-3SFB 21 RESUME, 7-3SFB 22 STATUS, 7-3SFB 23 USTATUS, 7-3SFBs, 7-2SFC, 2-10, Glossar-5, Glossar-9SFC 0 SET_CLK, 4-4, 8-4SFC 1 READ_CLK, 8-4SFC 2 SET_RTM, 8-4SFC 3 CTRL_RTM, 8-4

SFC 4 READ_RTM, 8-4SFC 13 DPNRM_DG, 6-7SFC 14 DPRD_DAT, 6-7SFC 15 DPWR_DAT, 6-7SFC 20 BLKMOV, 5-7SFC 22 CREAT_DB, 5-7SFC 26 UPDAT_PI, 5-12, 8-7SFC 27 UPDAT_PO, 5-12, 8-7SFC 28 SET_TINT, 4-3SFC 29 CAN_TINT, 4-3SFC 30 ACT_TINT, 4-3, 4-4SFC 31 QRY_TINT, 4-3SFC 32 SRT_DINT, 4-5SFC 35, 10-6SFC 36 MSK_FLT, 3-11SFC 37 DMSK_FLT, 3-11SFC 39 DIS_IRT, 3-11SFC 40 EN_IRT, 3-11SFC 41 DIS_AIRT, 3-11SFC 42 EN_AIRT, 3-11SFC 44 RPL_VAL, 11-14SFC 46 STP, 3-6SFC 48 SNC_RTCB, 8-4SFC 51 RDSYSST, 11-3, 11-4, 11-7SFC 52 WR_USMSG, 11-8SFC 55 WR_PARM, 6-5, 8-3SFC 56 WR_DPARM, 6-5, 8-3SFC 57 PARM_MOD, 6-5, 8-3SFC 62 CONTROL, 7-3SFC 65 X_SEND, 7-8SFC 66 X_RCV, 7-8SFC 67 X_GET, 7-8SFC 69 X_ABORT, 7-8SFC 72 I_GET, 7-8SFC 73 I_PUT, 7-8SFC 74 I_ABORT, 7-8Sicherheitsanforderungen, 1-9

Beschreibung für das Beispiel eines indu-striellen Mischprozesses, 1-9

Sicherheitshinweise, Überschreiten des L-Stack,3-13

Situationen, in denen Daten überschrieben wer-den, 2-21

SNC_RTCB, 8-4Soll-Ist-Vergleich, 9-10Spannungslos, Betriebszustand der CPU, 9-3

Stichwortverzeichnis

Page 235: Systemsoftware für S7-300/400, Programmentwurf · iii Systemsoftware für S7-300/400 Programmentwurf C79000-G7000-C506-01 Vorwort Dieses Handbuch informiert Sie über die verschiedenen

Index-7Systemsoftware für S7-300/400 ProgrammentwurfC79000-G7000-C506-01

Speicherbereiche, 5-2–5-7Adreßbereiche, 5-4Arbeitsspeicher, 5-2Besonderheiten bei S7-300, 5-3Besonderheiten bei S7-400, 5-3Ladespeicher, 5-2–5-6remanenter Speicher, 5-8–5-10Systemspeicher, 5-2

Speichern von Daten im L-Stack, 2-19SRT_DINT, 4-5START, 7-3Startereignisse

für Fehler-OBs, 3-10für Prozeßalarme, 4-8für Uhrzeitalarme, 4-3für Verzögerungsalarme, 4-5für Weckalarme, 4-6maskieren, 3-11verzögern, 3-11

STATUS, 7-3STEP 7

Fehler-OBs, Reagieren auf Fehler,3-10–3-12

Festlegung remanenter Speicherbereiche,5-10

Funktion, 2-7Programmiersprachen, 2-7Testmöglichkeiten, 9-14

Steuerungsentwurf, 1-1STOP, 7-3, 9-5

Betriebszustand der CPU, 9-2–9-4Strang, Multicomputing, 10-3STRING, C-4Stromversorgungsfehler-OB, 11-18STRUCT, C-4Struktur-Datentyp (STRUCT)

Anzahl verschachtelter Ebenen, C-6Beschreibung, C-10

Strukturiert programmieren, 2-9Strukturierte Datentypen, C-4, C-6

Feld, C-7Verschachtelungsstrukturen und Felder,

C-6Struktur, C-10

Verschachtelungsstrukturen und Felder,C-6

Strukturiertes ProgrammEntwerfen, A-4–A-14Vorteile, 2-3

Symbolische Adressierung, 5-5im Beispielprogramm, A-5

Synchrone Fehler, Verwenden von OBs, um aufFehler zu reagieren, 3-10–3-12

SynchronisierungMulticomputing, 10-8über Meldepunkt, 10-8über Wartepunkt, 10-8

Synchronisierungspunkte, der CPU, 10-8Systemarchitektur

Betriebszustände der CPU, 9-2–9-4Zyklus, 3-5

Systemdaten, 11-5Systemdatenbausteine, 8-2Systemdiagnose, erweitern, 11-8Systemfehler, 11-2, Glossar-9Systemfunktionen, 2-3, 2-10

Arten, 2-10Systemfunktionsbausteine, 2-3, 2-10

Arten, 2-10Systemparameter, 8-1Systemspeicher, 5-2–5-6Systemzustandsliste, 11-4

Inhalt, 11-4lesen, 11-4

SZL, 11-4, Glossar-9

TTaktmerker, 8-11Teil-Prozeßabbild, 5-12Temporäre Variablen (TEMP), Reihenfolge für

das Deklarieren von Parametern, 2-6Testen, Anwenderprogramm, 9-14TIMER, C-5

Parametertyp, C-5

UU-Stack

Beschreibung, 3-12Verwendung durch den Systemspeicher, 3-12

Übergänge, von Betriebszuständen, 9-2Übergeben von Parametern

Beispiel-FB für das Beispiel eines industriel-len Mischprozesses, A-7–A-10

Entwerfen von Parametern für ein struktu-riertes Programm, A-8

Parametertypen, C-5Situationen, in denen Daten überschrieben

werden, 2-21Speichern der übergebenen Werte, 2-12

Überschreiten des L-Stack, 3-13Überwachungszeiten, 8-5UDT, C-4, Glossar-2

Stichwortverzeichnis

Page 236: Systemsoftware für S7-300/400, Programmentwurf · iii Systemsoftware für S7-300/400 Programmentwurf C79000-G7000-C506-01 Vorwort Dieses Handbuch informiert Sie über die verschiedenen

Index-8Systemsoftware für S7-300/400 Programmentwurf

C79000-G7000-C506-01

Uhrparametrieren, 8-4synchronisieren, 8-4

Uhrzeitändern, 4-4lesen, 8-4stellen, 8-4

Uhrzeit (TIME OF DAY), Bereich, C-3Uhrzeitalarme, 4-3Uhrzeitformat, 8-4Uhrzeitfunktionen, 8-4Ungepufferter Betrieb, remanente Speicherbe-

reiche, 5-10Unsynchronisierter Betrieb, im segmentierten

Baugruppenträger, 10-2Unterbrechungs-Stack, 3-12Unterbrechungszeit, 9-10Untergliedern des Prozesses, am Beispiel eines

industriellen Mischprozesses, 1-3UPDAT_PI, 5-12, 8-7UPDAT_PO, 5-12, 8-7URCV, 7-3Urlöschen, 9-5USEND, 7-3USTATUS, 7-3

VVariablendeklarationstabelle

FB für das Beispiel eines industriellenMischprozesses, A-9

FC für das Beispiel eines industriellenMischprozesses, A-12

für OB81, 11-12OB für das Beispiel eines industriellen

Mischprozesses, A-14Reihenfolge für das Deklarieren von Para-

metern, 2-6VAT, Glossar-10Verbindung zum, Kommunikationspartner, 7-8Verbindungs-ID, 7-6, 7-7Verbindungsprojektierung, 7-6Verhältnis zwischen, Betriebszuständen der

CPU, 9-2–9-4Verschachtelte Aufrufe von Codebausteinen,

Auswirkungen auf den B-Stack und den L-Stack, 2-18–2-21

Verzögern, Startereignisse, 3-11

Verzögerungsalarme, 4-5Vorgefertigte Bausteine, 2-10Vorgehensweise, beim Planen der Automatisie-

rungslösung, 1-2–1-4

WWarnung, Überschreiten des L-Stack, 3-13Wartepunkt (WP), 10-8Wechsel der Betriebszustände, 9-3Weckalarme, 4-6Wiederanlauf, 9-7

abbrechen, 9-10automatisch, 9-7manuell, 9-7

Wort (WORD), Bereich, C-2WR_DPARM, 6-5, 8-3WR_PARM, 6-5, 8-3WR_USMSG, 11-8

XX_ABORT, 7-8X_GET, 7-8X_RCV, 7-8X_SEND, 7-8

ZZähler, Glossar-10

Speicherbereich, remanent, 5-8Zeichen (CHAR), Bereich, C-3Zeiten (T), 8-11, Glossar-10

Speicherbereich, remanent, 5-8Zeitfehler-OB, 11-17Zerlegen eines Prozesses in Aufgabenbereiche,

für das Beispiel eines industriellen Misch-prozesses, 1-3–1-5

Ziehen und Stecken einer Baugruppe, 11-20Ziehen-/Stecken-Alarm-OB, 11-20Zuordnen von Speicher

für einen FB, 2-6im L-Stack, 3-13

Zyklische Programmbearbeitung, 2-9Zyklus, 2-9, 3-5Zyklusüberwachungszeit, 8-6Zykluszeit, 3-6, 8-6

Stichwortverzeichnis

Page 237: Systemsoftware für S7-300/400, Programmentwurf · iii Systemsoftware für S7-300/400 Programmentwurf C79000-G7000-C506-01 Vorwort Dieses Handbuch informiert Sie über die verschiedenen

1Systemsoftware für S7-300/400 ProgrammentwurfC79000–G7000-C506-01

An

Siemens AG

AUT E 146

Östliche Rheinbrückenstr. 50

76181 Karlsruhe

Absender:

Ihr Name: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

Ihre Funktion: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

Ihre Firma: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

Straße: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

Ort: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

Telefon: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

Bitte kreuzen Sie Ihren zutreffenden Industriezweig an:

❒ Automobilindustrie

❒ Chemische Industrie

❒ Elektroindustrie

❒ Nahrungsmittel

❒ Leittechnik

❒ Maschinenbau

❒ Petrochemie

❒ Pharmazeutische Industrie

❒ Kunststoffverarbeitung

❒ Papierindustrie

❒ Textilindustrie

❒ Transportwesen

❒ Andere_ _ _ _ _ _ _ _ _ _

Page 238: Systemsoftware für S7-300/400, Programmentwurf · iii Systemsoftware für S7-300/400 Programmentwurf C79000-G7000-C506-01 Vorwort Dieses Handbuch informiert Sie über die verschiedenen

2Systemsoftware für S7-300/400 Programmentwurf

C79000–G7000-C506-01

1. Entspricht der Inhalt Ihren Anforderungen?

2. Sind die benötigten Informationen leicht zu finden?

3. Sind die Texte leicht verständlich?

4. Entspricht der Grad der technischen Einzelheiten Ihren Anforderungen?

5. Wie bewerten Sie die Qualität der Abbildungen und Tabellen?

Falls Sie auf konkrete Probleme gestoßen sind, erläutern Sie diese bitte in den fol-genden Zeilen:

_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

Geben Sie bitte bei den folgenden Fragen Ihre persönliche Bewertung mit Wertenvon 1 = gut bis 5 = schlecht an.

Vorschläge und Anmerkungen zur Anwenderdokumentation

Ihre Anmerkungen und Vorschläge helfen uns, die Qualität und Benutzbarkeitunserer Dokumentation zu verbessern. Bitte füllen Sie diesen Fragebogen beider nächsten Gelegenheit aus und senden Sie ihn an Siemens zurück.