Systemsoftware für S7-300/400, Programmentwurf · iii Systemsoftware für S7-300/400...
Transcript of Systemsoftware für S7-300/400, Programmentwurf · iii Systemsoftware für S7-300/400...
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
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
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
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
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
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
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
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
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. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
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
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
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
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
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
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
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
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
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
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
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
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
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
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
1-12Systemsoftware für S7-300/400 Programmentwurf
C79000-G7000-C506-01
Vorgehensweise beim Steuerungsentwurf
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
2-22Systemsoftware für S7-300/400 Programmentwurf
C79000-G7000-C506-01
Strukturieren des Anwenderprogramms
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
5-14Systemsoftware für S7-300/400 Programmentwurf
C79000-G7000-C506-01
Speicherbereiche der S7-CPUs
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
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
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
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
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
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
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
6-8Systemsoftware für S7-300/400 Programmentwurf
C79000-G7000-C506-01
Adressierung der Peripherie
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
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
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
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
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
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
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
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
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
7-10Systemsoftware für S7-300/400 Programmentwurf
C79000-G7000-C506-01
Datenaustausch zwischen programmierbaren Baugruppen
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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ß
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ß
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ß
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ß
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ß
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ß
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ß
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ß
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ß
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ß
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ß
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ß
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ß
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ß
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ß
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ß
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ß
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ß
A-20Systemsoftware für S7-300/400 Programmentwurf
C79000-G7000-C506-01
Beispielprogramm für einen industriellen Mischprozeß
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
C-24Systemsoftware für S7-300/400 Programmentwurf
C79000-G7000-C506-01
Daten- und Parametertypen
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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_ _ _ _ _ _ _ _ _ _
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.