Sie sind auf Seite 1von 106

Vorwort, Inhaltsverzeichnis

Bitverknüpfungsfunktionen 1

SIMATIC Tabellenfunktionen 2

Schiebefunktionen 3
Systemsoftware für S7-300/400 Übertragungsfunktion und
Standardfunktionen Teil 2 Übertragungsfunktionsbaustein 4
Zeitfunktion und
Zeitfunktionsbausteine 5
Referenzhandbuch
Umwandlungsfunktionen und
Umwandlungsfunktionsbaustein 6

Gleitpunktfunktion 7

Vergleichsfunktionsbausteine 8

Glossar, Stichwortverzeichnis

03/2000
Ausgabe 03
Sicherheitstech- Dieses Handbuch enthält Hinweise, die Sie zu Ihrer persönlichen Sicherheit sowie zur Ver-
nische Hinweise 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, wenn
die entsprechenden Vorsichtsmaßnahmen nicht getroffen werden.

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

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

Bestimmungs- Beachten Sie folgendes:


gemäßer Gebrauch

Warnung
! Das Gerät darf nur für die im Katalog und in der technischen Beschreibung vorgesehenen Ein-
satzfälle und nur in Verbindung mit von Siemens empfohlenen bzw. zugelassenen Fremdgerä-
ten und -Komponenten verwendet werden.
Der einwandfreie und sichere Betrieb des Produktes setzt sachgemäßen Transport. sachgemäße
Lagerung, Aufstellung und Montage sowie sorgfältige Bedienung und Instandhaltung voraus.

Marken SIMATIC und SIMATIC NET und SIMATIC HMI  sind ingetragene Marken der
SIEMENS AG.
Die übrigen Bezeichnungen in dieser Schrift können Marken sein, deren Benutzung durch Dritte
für deren Zwecke die Rechte der Inhaber verletzen können.

Copyright ) Siemens AG 2000 All rights reserved Haftungsausschluß


Wir haben den Inhalt der Druckschrift auf Übereinstimmung
Weitergabe sowie Vervielfältigung dieser Unterlage,
mit der beschriebenen Hard- und Software geprüft. Dennoch
Verwertung und Mitteilung ihres Inhalts ist nicht gestattet,
können Abweichungen nicht ausgeschlossen werden, so
soweit nicht ausdrücklich zugestanden. Zuwiderhandlungen
daß wir für die vollständige Übereinstimmung keine Gewähr
verpflichten zu Schadenersatz. Alle Rechte vorbehalten,
übernehmen. Die Angaben in dieser Druckschrift werden re-
insbesondere für den Fall der Patenterteilung oder
gelmäßig überprüft, und notwendige Korrekturen sind in den
GM-Eintragung.
nachfolgenden Auflagen enthalten. Für Verbesserungsvor-
Siemens AG schläge sind wir dankbar.
Bereich Automatisierungs- und Antriebstechnik  Siemens AG 2000
Geschäftsgebiet Industrie-Automatisierungssysteme Änderungen bleiben vorbehalten.
Postfach 4848, D- 90327 Nürnberg

Siemens Aktiengesellschaft A5E00066866


Vorwort

Zweck des Hand- Dieses Handbuch beschreibt die S7-Funktionen (FCs) und S7-Funktionsbau-
buchs steine (FBs) in der Programmiersprache Kontaktplan (KOP). Mit den FCs
und FBs können Sie Ihr Automatisierungssystem S7-300/S7-400 program-
mieren. Dieses Handbuch liefert Ihnen die erforderlichen Informationen zu
den einzelnen Funktionen und Funktionsbausteinen.

Wo befinden sich Die FCs und FBs, die in diesem Handbuch beschrieben werden, befinden sich
die in der Standardbibliothek von STEP 7. Mit dem STEP 7-Dateimanager kön-
S7-Funktionen? nen Sie die FCs und FBs, die Sie benötigen, in Ihr Ziel-Programmverzeichnis
kopieren. Vergewissern Sie sich zunächst, daß Ihr Programm nicht bereits
FCs oder FBs mit der gleichen Nummer enthält wie die FCs bzw. FBs, die
Sie aus der Bibliothek kopieren möchten. Ist dies der Fall, müssen Sie entwe-
der die FCs und FBs, die bereits in Ihrem Progamm vorhanden sind, oder die
FCs und FBs, die Sie kopieren möchten, umbenennen.

Leserkreis Dieses Handbuch wendet sich an Ingenieure, Programmierer und Wartungs-


personal mit allgemeinen Kenntnissen über Automatisierungssysteme.

Inhalt des Hand- Dieses Handbuch beschreibt die FCs und FBs kapitelweise nach Ihren Funk-
buchs tionalitäten:
• Bitverknüpfungsfunktionen (Kapitel 1)
• Tabellenfunktionen (Kapitel 2)
• Schiebefunktionen (Kapitel 3)
• Übertragungsfunktion und Übertragungsfunktionsbaustein (Kapitel 4)
• Zeitfunktionen und Zeitfunktionsbausteine (Kapitel 5)
• Umwandlungsfunktionen und Umwandlungsfunktionsbausteine
(Kapitel 6)
• Gleitpunktfunktion (Kapitel 7)
• Vergleichsfunktionsbausteine (Kapitel 8)
• Das Glossar enthält eine alphabetische Auflistung der Begriffe, die für die
Programmierung mit dem Kontaktplan wichtig sind.

Systemsoftware für S7-300/400 Standardfunktionen Teil 2


A5E00066866-03 iii
Vorwort

Jedes Kapitel beschreibt FCs und FBs, die Sie zusätzlich zu den Standard-
operationen verwenden können. Jede FC und jeder FB wird mit dem vollstän-
digen Namen, der Mnemonik und der FC- bzw. FB-Nummer angegeben. Die
Beschreibungen der FCs und FBs umfassen Informationen zu den folgenden
Themen:
• Beschreibung - grundlegende Beschreibung der Funktionalität.
• Parameter - in einer Tabelle werden die Deklaration, der Datentyp, die
gültigen Speicherbereiche und die Beschreibung der Parameter aufge-
führt.
• Fehlerinformation - Beschreibung der Fehler, die die erfolgreiche Bear-
beitung der FC bzw. des FB verhindern.
• Beispiel - in einem Bild wird die FC bzw. der FB graphisch dargestellt
und Beispiele für Parameter sowie das Ergebnis der Bearbeitung gezeigt.

Einordnung in die Dieses Handbuch ist Teil des STEP 7-Dokumentationspakets, das aus den
Informations- folgenden Handbüchern besteht:
landschaft

Titel Inhalt
Erste Schritte und Dieses Handbuch bietet einen sehr einfachen Einstieg in die Methodik des Aufbaus und
Übungen mit STEP 7 der Programmierung einer S7-300/400. Sie ist insbesondere für den Erstanwender eines
S7-Automatisierungssystems geeignet.
Handbuch Das Handbuch ”Programmieren mit STEP 7” vermittelt das grundlegende Wissen über
Programmieren mit den Aufbau des Betriebssystems und eines Anwenderprogramms einer S7-CPU. Es
STEP 7 sollte vom Erstanwender einer S7-300/400 dazu genutzt werden, sich einen Überblick
über die Programmiermethodik zu verschaffen und darauf das Design seines
Anwenderprogramms aufzubauen.
Referenzhandbuch Die S7-CPUs enthalten in das Betriebssystem integrierte Systemfunktionen und
Systemsoftware für Organisationsbausteine, die Sie bei der Programmierung nutzen können. Das Handbuch
S7-300/400 System- und gibt Ihnen einen Überblick über die bei S7 verfügbaren Systemfunktionen,
Standardfunktionen Organisationsbausteine und ladbare Standardfunktionen sowie - als
Nachschlageinformation - detaillierte Schnittstellenbeschreibungen für deren Nutzung
in Ihrem Anwenderprogramm.
Handbuch Das Handbuch ”STEP 7” erläutert Ihnen die prinzipielle Nutzung und die Funktionen
Hardware konfigurieren der Automatisierungssoftware STEP 7. Als Erstanwender von STEP 7, ebenso wie als
und Verbindungen Kenner von STEP 5, verschafft Ihnen das Handbuch einen Überblick über die
projektieren mit STEP 7 Vorgehensweise bei der Konfigurierung, Programmierung und Inbetriebnahme einer
S7-300/400.
Beim Arbeiten mit der SW können Sie gezielt auf die Online-Hilfe zugreifen, die
Ihnen Unterstützung zu den Detailfragen der SW-Nutzung bietet.
Umsteigerhandbuch Das Umsteigerhandbuch ”Von S5 nach S7” benötigen Sie, wenn Sie vorhandene
Von S5 nach S7 S5-Programme konvertieren wollen, um diese dann in S7-CPUs zum Ablauf zu
bringen.
Das Handbuch gibt Ihnen einen Überblick über die Vorgehensweise und die Nutzung
des Konverters; die detaillierte Bedienung der Konverterfunktionen entnehmen Sie
bitte der Online-Hilfe. Ebenso erhalten Sie über die Online-Hilfe die
Schnittstellenbeschreibung der verfügbaren konvertierten S7-Funktion.

Systemsoftware für S7-300/400 Standardfunktionen Teil 2


iv A5E00066866-03
Vorwort

Titel Inhalt
Referenzhandbücher Die Referenzhandbücher zu den Sprachpaketen AWL, KOP und SCL enthalten sowohl
AWL, KOP, SCL1 die Benutzeranleitungen als auch die Sprachbeschreibung. Sie benötigen für die
Programmierung einer S7-300/400 nur eine der Sprachen, können aber auch bei
Bedarf die Sprachen innerhalb eines Projektes mischen.
Für den erstmaligen Einsatz der Sprachen ist es empfehlenswert, sich anhand des
Handbuchs ”Programmieren mit STEP 7” mit der Methodik der Programmerstellung
vertraut zu machen.
Beim Arbeiten mit der jeweiligen Software können Sie die Online-Hilfe nutzen, die
Ihnen alle Detailfragen zur Nutzung der zugehörigen Editoren / Compiler beantwortet.
Handbücher Die Sprachen S7-GRAPH, S7-HiGraph, CFC bieten zusätzlich Möglichkeiten,
S7-GRAPH1 , Ablaufsteuerungen, Zustandssteuerungen oder graphische Verschaltungen von
S7-HiGraph1, CFC1 Bausteinen zu realisieren. Die Handbücher enthalten sowohl die Benutzeranleitung als
auch die Sprachbeschreibung.
Für einen erstmaligen Einsatz der Sprache ist es empfehlenswert, sich mit der
Methodik der Programmerstellung anhand des Handbuchs ”Programmieren mit
STEP 7” vertraut zu machen.
Beim Arbeiten mit der jeweiligen Software können Sie zudem die Online-Hilfe
nutzen (Ausnahme HiGraph), die Ihnen die Detailfragen zu der Nutzung der
Editoren/Compiler beantwortet.
1 Optionspakete zu Systemsoftware für S7-300/S7-400

Weitere Die verschiedenen CPUs, Baugruppen und Operationen/Anweisungen für die


Handbücher S7-300 und S7-400 werden in den folgenden Handbüchern beschrieben:
• Handbücher zum Automatisierungssystem S7-300:
Hardware und Installation (Technische Daten zu den CPUs und Baugrup-
pen), Anweisungslisten
• Handbücher zum Automatisierungssystem S7-400:
Hardware und Installation (Technische Daten zu den CPUs und Baugrup-
pen), Anweisungslisten
Zusätzliche Informationen entnehmen Sie bitte der Online-Hilfe.

Weitere Wenn Sie Fragen haben, die in diesem oder den anderen STEP 7-Hand-
Unterstützung büchern nicht beantwortet werden, weitere Informationen zum Bestellen zu-
sätzlicher Handbücher oder Geräte benötigen oder über Trainingsmöglichkei -
ten informiert werden möchten, dann wenden Sie sich bitte an Ihre
Siemens-Vertretung.

Systemsoftware für S7-300/400 Standardfunktionen Teil 2


A5E00066866-03 v
Vorwort

Liste der Die folgenden Funktionen und Funktionsbausteine werden in diesem Hand-
Funktionen und buch beschrieben:
Funktionsbau-
steine
Funktion bzw. Funktionsbaustein Nummer Seite
Zeit als speichernde Einschaltverzögerung starten (TONR) FC80 5-2
Datenbereich indirekt übertragen (IBLKMOV) FC81 4-2
Merker- oder Peripheriebereich im Prozeßabbild rücksetzen FC82 1-2
(RSET)
Merker- oder Peripheriebereich im Prozeßabbild setzen (SET) FC83 1-6
Wert in Tabelle eintragen (ATT) FC84 2-2
Ersten Wert der Tabelle ausgeben (FIFO) FC85 2-4
Wert in Tabelle suchen (TBL_FIND) FC86 2-6
Letzen Wert der Tabelle ausgeben (LIFO) FC87 2-9
Tabellenoperation ausführen (TBL) FC88 2-11
Wert aus der Tabelle kopieren (TBL_WRD) FC89 2-13
Datum im Schieberegister speichern (WSR) FC90 3-2
Wert logisch mit Tabellenelement verknüpfen und speichern FC91 2-15
(WRD_TBL)
Bit in Schieberegister schieben (SHRB) FC92 3-4
Bitmuster für 7-Segment-Anzeige erzeugen (SEG) FC93 6-2
ASCII-Zeichenkette in Hexadezimalzahl wandeln (ATH) FC94 6-4
Hexadezimalzahl in ASCII-Zeichenkette wandeln (HTA) FC95 6-6
Vorgegebenes Bit im Wort setzen (ENCO) FC96 6-8
Bitnummer des niederwertigsten gesetzten Bits lesen (DECO) FC97 6-9
Zehnerkomplement erzeugen (BCDCPL) FC98 6-10
Anzahl der gesetzten Bits zählen (BITSUM) FC99 6-11
Ausgangsbereich unmittelbar rücksetzen (RSETI) FC100 1-4
Ausgangsbereich unmittelbar setzen (SETI) FC101 1-8
Standardabweichung (DEV) FC102 7-2
Korrelierte Datentabellen (CDT) FC103 2-17
Tabellenverknüpfung (TBL_TBL) FC104 2-19
Werte skalieren (SCALE) FC105 6-12
Werte deskalieren (UNSCALE) FC106 6-14
Lead/Lag Algorithmus (LEAD_LAG) FB80 6-16
Diskreter Steuerungszeitalarm (DCAT) FB81 5-4
Motorsteuerungszeitalarm (MCAT) FB82 5-7
Index Matrix Vergleich (IMC) FB83 8-2
Matrixscanner (SMC) FB84 8-6
Ereignis maskierbare Drum (DRUM) FB85 5-10
Sammle/Verteile Tabellendaten (PACK) FB86 4-4

Systemsoftware für S7-300/400 Standardfunktionen Teil 2


vi A5E00066866-03
Inhaltsverzeichnis

1 Bitverknüpfungsfunktionen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1-1
1.1 Merker- oder Peripheriebereich im Prozeßabbild rücksetzen
(RSET): FC82 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1-2
1.2 Ausgangsbereich unmittelbar rücksetzen (RSETI): FC100 . . . . . . . . . . . . 1-4
1.3 Merker- oder Peripheriebereich im Prozeßabbild setzen (SET): FC83 . . 1-6
1.4 Ausgangsbereich unmittelbar setzen (SETI): FC101 . . . . . . . . . . . . . . . . . 1-8
2 Tabellenfunktionen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2-1
2.1 Wert in Tabelle eintragen (ATT): FC84 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2-2
2.2 Ersten Wert der Tabelle ausgeben (FIFO): FC85 . . . . . . . . . . . . . . . . . . . . 2-4
2.3 Wert in Tabelle suchen (TBL_FIND): FC86 . . . . . . . . . . . . . . . . . . . . . . . . . . 2-6
2.4 Letzten Wert der Tabelle ausgeben (LIFO): FC87 . . . . . . . . . . . . . . . . . . . . 2-9
2.5 Tabellenoperation ausführen (TBL): FC88 . . . . . . . . . . . . . . . . . . . . . . . . . . 2-11
2.6 Wert aus Tabelle kopieren (TBL_WRD): FC89 . . . . . . . . . . . . . . . . . . . . . . . 2-13
2.7 Wert logisch mit Tabellenelement verknüpfen und speichern
(WRD_TBL): FC91 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2-15
2.8 Korrelierte Datentabellen (CDT): FC103 . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2-17
2.9 Tabellenverknüpfung (TBL_TBL): FC104 . . . . . . . . . . . . . . . . . . . . . . . . . . . 2-19
3 Schiebefunktionen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-1
3.1 Datum im Schieberegister speichern (WSR): FC90 . . . . . . . . . . . . . . . . . . 3-2
3.2 Bit in Bitschieberegister schieben (SHRB): FC92 . . . . . . . . . . . . . . . . . . . . 3-4
4 Übertragungsfunktion und Übertragungsfunktionsbaustein . . . . . . . . . . . . . . . 4-1
4.1 Datenbereich indirekt übertragen (IBLKMOV): FC81 . . . . . . . . . . . . . . . . . 4-2
4.2 Sammle/Verteile Tabellendaten (PACK): FB86 . . . . . . . . . . . . . . . . . . . . . . . 4-4
5 Zeitfunktion und Zeitfunktionsbausteine . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5-1
5.1 Zeit als speichernde Einschaltverzögerung starten (TONR): FC80 . . . . . 5-2
5.2 Diskreter Steuerungszeitalarm (DCAT): FB81 . . . . . . . . . . . . . . . . . . . . . . . 5-4
5.3 Motorsteuerungszeitalarm (MCAT): FB82 . . . . . . . . . . . . . . . . . . . . . . . . . . . 5-7
5.4 Ereignis maskierbare Drum (DRUM): FB85 . . . . . . . . . . . . . . . . . . . . . . . . . 5-10
6 Umwandlungsfunktionen und Umwandlungsfunktionsbaustein . . . . . . . . . . . . 6-1
6.1 Bitmuster für 7-Segment-Anzeige erzeugen (SEG): FC93 . . . . . . . . . . . . . 6-2
6.2 ASCII-Zeichenkette in Hexadezimalzahl wandeln (ATH): FC94 . . . . . . . . 6-4
6.3 Hexadezimalzahl in ASCII-Zeichenkette wandeln (HTA): FC95 . . . . . . . . 6-6

Systemsoftware für S7-300/400 Standardfunktionen Teil 2


A5E00066866-03 vii
Inhaltsverzeichnis

6.4 Bitnummer des niederwertigsten gesetzten Bits lesen (ENCO): FC96 . . 6-8
6.5 Vorgegebenes Bit im Wort setzen (DECO): FC97 . . . . . . . . . . . . . . . . . . . . 6-9
6.6 Zehnerkomplement erzeugen (BCDCPL): FC98 . . . . . . . . . . . . . . . . . . . . . 6-10
6.7 Anzahl der gesetzten Bits zählen (BITSUM): FC99 . . . . . . . . . . . . . . . . . . . 6-11
6.8 Werte skalieren (SCALE): FC105 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6-12
6.9 Werte deskalieren (UNSCALE): FC106 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6-14
6.10 Lead/Lag Algorithmus (LEAD_LAG): FB80 . . . . . . . . . . . . . . . . . . . . . . . . . . 6-16
7 Gleitpunktfunktion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7-1
7.1 Standardabweichung (DEV): FC102 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7-2
8 Vergleichsfunktionsbausteine . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8-1
8.1 Index Matrix Vergleich (IMC): FB83 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8-2
8.2 Matrixscanner (SMC): FB84 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8-6
Glossar . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Glossar-1
Stichwortverzeichnis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Index-1

Systemsoftware für S7-300/400 Standardfunktionen Teil 2


viii A5E00066866-03
Bitverknüpfungsfunktionen 1
Dieses Kapitel beschreibt die Bitverknüpfungsfunktionen (FCs), die Ihnen
zusätzlich zu den Standardoperationen zur Verfügung stehen und eine größere
Flexibilität beim Programmieren bieten.

Abschnitt Beschreibung Seite


1.1 Merker- oder Peripheriebereich im Prozeßabbild 1-2
rücksetzen (RSET): FC82
1.2 Ausgangsbereich unmittelbar rücksetzen (RSETI): 1-4
FC100
1.3 Merker- oder Peripheriebereich im Prozeßabbild setzen 1-6
(SET): FC83
1.4 Ausgangsbereich unmittelbar setzen (SETI): FC101 1-8

Systemsoftware für S7-300/400 Standardfunktionen Teil 2


A5E00066866-03 1-1
Bitverknüpfungsfunktionen

1.1 Merker- oder Peripheriebereich im Prozeßabbild rücksetzen (RSET):


FC82

Beschreibung Die Funktion Merker- oder Peripheriebereich im Prozeßabbild rücksetzen


(RSET) setzt den Signalzustand der Bits in einem angegebenen Bereich auf
”0” zurück, wenn das MCR-Bit ”1” ist. Ist das MCR-Bit ”0”, dann wird der
Signalzustand der Bits in dem Bereich nicht verändert. Die Anzahl der Bits in
dem Bereich, der zurückgesetzt werden soll, wird von dem Parameter N ange-
geben. Auf den Anfangspunkt des Bereichs zeigt der Parameter S_BIT.

Parameter Tabelle 1-1 beschreibt die Parameter der Funktion RSET.

Tabelle 1-1 Parameter der Funktion Merker- oder Peripheriebereich im Prozeßabbild rücksetzen (FC82)

Parameter Deklaration Datentyp Speicher-


Beschreibung
bereich
EN Eingang BOOL E, A, M, D, L Ein Signalzustand von ”1” am Freigabeeingang
aktiviert die Box.
ENO Ausgang BOOL E, A, M, D, L Der Freigabeausgang hat den Signalzustand ”1”,
wenn die Funktion fehlerfrei ausgeführt wird.
S_BIT Eingang Pointer* E, A, M, D Zeigt auf das erste Bit in dem Bereich.
N Eingang INT E, A, M, D, L, Anzahl der Bits in dem Bereich, der zurückgesetzt
P oder werden soll.
Konstante

*Pointer im Doppelwortformat bei der bereichsübergreifenden, registerindirekten Adressierung

Systemsoftware für S7-300/400 Standardfunktionen Teil 2


1-2 A5E00066866-03
Bitverknüpfungsfunktionen

Fehlerinformation Wenn der Pointer S_BIT auf den Speicherbereich der externen Peripherie ver-
weist, dann wird der Signalzustand der Bits in dem Bereich nicht verändert,
Weitere und das ENO-Bit wird auf ”0” gesetzt.
Unterstützung Wenn Sie Fragen haben, die in diesem oder den anderen STEP 7-Hand-
büchern nicht beantwortet werden, weitere Informationen zum Bestellen zu-
sätzlicher Handbücher oder Geräte benötigen oder über Trainingsmöglichkei-
ten informiert werden möchten, dann wenden Sie sich bitte an Ihre Siemens-
Vertretung.

Beispiel Bild 1-1 zeigt die Funktionsweise der Operation RSET. Ist der Signalzustand
am Eingang E 0.0 = 1 (aktiviert) und ist das MCR-Bit = 1, dann wird die Funk-
tion RSET ausgeführt. In dem Beispiel zeigt der Parameter S_BIT auf das erste
Bit mit dem Operanden M 0.0. Der Parameter N gibt an, daß 10 Bits zurückge-
setzt werden sollen. Nach der Bearbeitung der Operation ist der Signalzustand
der 10 Bits in dem Bereich von M 0.0 bis M 1.1 auf ”0” zurückgesetzt.
Wird die Funktion fehlerfrei ausgeführt, dann werden die Signalzustände von
ENO und A 4.0 auf ”1” gesetzt.

RSET
E 0.0 FC82 A 4.0
EN ENO

P#M 0.0 S_BIT


10 N

Vor der Bearbeitung: Nach der Bearbeitung:

M 0.7 M 0.0 M 0.7 M 0.0


1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0

M 1.7 M 1.0 M 1.7 M 1.0


1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0

Bild 1-1 Merker- oder Peripheriebereich im Prozeßabbild rücksetzen (RSET)

Systemsoftware für S7-300/400 Standardfunktionen Teil 2


A5E00066866-03 1-3
Bitverknüpfungsfunktionen

1.2 Ausgangsbereich unmittelbar rücksetzen (RSETI): FC100

Beschreibung Die Funktion Ausgangsbereich unmittelbar rücksetzen (RSETI) setzt den


Signalzustand der Bits in einem angegebenen Bereich von Bytes auf ”0”
zurück, wenn das MCR-Bit ”1” ist. Ist das MCR-Bit ”0”, dann wird der Signal-
zustand der Bytes in dem Bereich nicht verändert. Der Parameter S_BYTE
zeigt auf das erste Byte in dem Bereich. Der Parameter N gibt die Größe des
Bereichs an. Die Größe wird über die Anzahl der Bits in dem Bereich angege-
ben. Wenn Sie beispielsweise einen Bereich von 2 Bytes definieren möchten,
geben Sie 16 (16 Bits) als den Wert des Parameters N an.

Hinweis
Bei dem Wert des Parameters N muß es sich um ein Vielfaches der Zahl 8
handeln (z. B. 8, 16, 24 usw.).

Der Pointer S_BYTE muß auf den Speicherbereich der externen Peripherie (P)
verweisen. Da auf den Speicherbereich P im Byte-, Wort- und Doppelwort-
format zugegriffen wird, muß der Parameter S_BYTE auf einen Operanden
zeigen, der einem Byte-Grenzwert entspricht, d. h. die Bitnummer des Pointers
muß ”0” sein.

Hinweis
Der Signalzustand der entsprechenden Bits im Prozeßabbild der Ausgänge (A)
wird auch auf ”0” zurückgesetzt.

Parameter Tabelle 1-2 beschreibt die Parameter der Funktion RSETI.

Tabelle 1-2 Parameter der Funktion Ausgangsbereich unmittelbar rücksetzen (FC100)

Parameter Deklaration Datentyp Speicherbe-


Beschreibung
reich
EN Eingang BOOL E, A, M, D, L Ein Signalzustand von ”1” am Freigabeeingang
aktiviert die Box.
ENO Ausgang BOOL E, A, M, D, L Der Freigabeausgang hat den Signalzustand ”1”,
wenn die Funktion fehlerfrei ausgeführt wird.
S_BYTE Eingang Pointer* P Zeigt auf das erste Byte in dem Bereich.
N Eingang INT E, A, M, D, L, Größe des Byte-Bereichs, der auf ”0” zurückgesetzt
P oder werden soll. Der Bereich wird über die Anzahl der
Konstante Bits als Vielfaches der Zahl 8 (z. B. 8, 16 usw.)
angegeben.

* Pointer im Doppelwortformat bei der bereichsübergreifenden, registerindirekten Adressierung

Systemsoftware für S7-300/400 Standardfunktionen Teil 2


1-4 A5E00066866-03
Bitverknüpfungsfunktionen

Fehlerinformation Tritt eine der folgenden Bedingungen auf, dann ändert sich der Signalzustand
der Bits in dem Bereich nicht, und der Signalzustand von ENO wird auf ”0”
gesetzt.
• Der Pointer S_BYTE zeigt auf einen anderen Speicherbereich als den der
externen Peripherie (P).
• Der Pointer S_BYTE zeigt auf einen Operanden, der keinem Byte-Grenz-
wert entspricht.
• Der Wert des Parameters N ist kein Vielfaches der Zahl 8.

Beispiel Bild 1-2 zeigt die Funktionsweise der Operation RSETI. Ist der Signalzustand
am Eingang E 0.0 = 1 (aktiviert) und ist das MCR-Bit = 1, dann wird die Funk-
tion RSETI ausgeführt. In dem Beispiel zeigt der Parameter S_BYTE auf das
erste Byte mit dem Operanden P 2.0. Der Parameter N gibt an, daß 16 Bits (2
Bytes) zurückgesetzt werden sollen. Nach der Bearbeitung der Operation ist
der Signalzustand der Bytes in dem Bereich von P 2.0 bis P 3.7 auf ”0” zurück-
gesetzt.
Wird die Funktion fehlerfrei ausgeführt, dann werden die Signalzustände von
ENO und A 4.0 auf ”1” gesetzt.

RSETI
E 0.0 FC100 A 4.0
EN ENO
P#P 2.0 S_BYTE
16 N

Vor der Bearbeitung: Nach der Bearbeitung:


P 1.7 P 1.0 P 1.7 P 1.0
1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1

P 2.7 P 2.0 P 2.7 P 2.0


1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0
P 3.7 P 3.0 P 3.7 P 3.0
1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0
P 4.7 P 4.0 P 4.7 P 4.0
1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1

Bild 1-2 Ausgangsbereich unmittelbar rücksetzen (RSETI)

Systemsoftware für S7-300/400 Standardfunktionen Teil 2


A5E00066866-03 1-5
Bitverknüpfungsfunktionen

1.3 Merker- oder Peripheriebereich im Prozeßabbild setzen (SET): FC83

Beschreibung Die Funktion Merker- oder Peripheriebereich im Prozeßabbild setzen (SET)


setzt den Signalzustand der Bits in einem angegebenen Bereich auf ”1”, wenn
das MCR-Bit ”1” ist. Ist das MCR-Bit ”0”, dann wird der Signalzustand der
Bits in dem Bereich nicht verändert. Die Anzahl der Bits in dem Bereich, der
zurückgesetzt werden soll, wird von dem Parameter N angegeben. Auf den
Anfangspunkt des Bereichs zeigt der Parameter S_BIT.

Parameter Tabelle 1-3 beschreibt die Parameter der Funktion SET.

Tabelle 1-3 Parameter der Funktion Merker- oder Peripheriebereich im Prozeßabbild setzen (FC83)

Parameter Deklaration Datentyp Speicher-


Beschreibung
bereich
EN Eingang BOOL E, A, M, D, L Ein Signalzustand von ”1” am Freigabeeingang
aktiviert die Box.
ENO Ausgang BOOL E, A, M, D, L Der Freigabeausgang hat den Signalzustand ”1”,
wenn die Funktion fehlerfrei ausgeführt wird.
S_BIT Eingang Pointer* E, A, M, D Zeigt auf das erste Bit in dem Bereich.
N Eingang INT E, A, M, D, L, Anzahl der Bits in dem Bereich, der gesetzt werden
P oder soll.
Konstante

* Pointer im Doppelwortformat bei der bereichsübergreifenden, registerindirekten Adressierung

Systemsoftware für S7-300/400 Standardfunktionen Teil 2


1-6 A5E00066866-03
Bitverknüpfungsfunktionen

Fehlerinformation Wenn der Pointer S_BIT auf den Speicherbereich der externen Peripherie (P)
verweist, dann wird der Signalzustand der Bits in dem Bereich nicht verändert,
und das ENO-Bit wird auf ”0” gesetzt.

Beispiel Bild 1-3 zeigt die Funktionsweise der Operation SET. Ist der Signalzustand am
Eingang E 0.0 = 1 (aktiviert) und ist das MCR-Bit = 1, dann wird die Funktion
SET ausgeführt. In dem Beispiel zeigt der Parameter S_BIT auf das erste Bit
mit dem Operanden M 0.0. Der Parameter N gibt an, daß 10 Bits gesetzt wer-
den sollen. Nach der Bearbeitung der Operation ist der Signalzustand der 10
Bits in dem Bereich von M 0.0 bis M 1.1 auf ”1” gesetzt.
Wird die Funktion fehlerfrei ausgeführt, dann werden die Signalzustände von
ENO und A 4.0 auf ”1” gesetzt.

SET
E 0.0 FC83 A 4.0
EN ENO

P#M 0.0 S_BIT


10 N

Vor der Bearbeitung: Nach der Bearbeitung:

M 0.7 M 0.0 M 0.7 M 0.0


0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1

M 1.7 M 1.0 M 1.7 M 1.0


0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1

Bild 1-3 Merker- oder Peripheriebereich im Prozeßabbild setzen (SET)

Systemsoftware für S7-300/400 Standardfunktionen Teil 2


A5E00066866-03 1-7
Bitverknüpfungsfunktionen

1.4 Ausgangsbereich unmittelbar setzen (SETI): FC101

Beschreibung Die Funktion Ausgangsbereich unmittelbar setzen (SETI) setzt den Signalzu-
stand der Bits in einem angegebenen Bereich von Bytes auf ”1”, wenn das
MCR-Bit ”1” ist. Ist das MCR-Bit ”0”, dann wird der Signalzustand der Bytes
in dem Bereich nicht verändert. Der Parameter S_BYTE zeigt auf das erste
Byte in dem Bereich. Der Parameter N gibt die Größe des Bereichs an. Die
Größe wird über die Anzahl der Bits in dem Bereich angegeben. Wenn Sie
beispielsweise einen Bereich von 2 Bytes definieren möchten, geben Sie 16 (16
Bits) als Wert des Parameters N an.

Hinweis
Bei dem Wert des Parameters N muß es sich um ein Vielfaches der Zahl 8
handeln (z. B. 8, 16, 24 usw.).

Der Pointer S_BYTE muß auf den Speicherbereich der externen Peripherie (P)
verweisen. Da auf den Speicherbereich P im Byte-, Wort- und Doppelwort-
format zugegriffen wird, muß der Parameter S_BYTE auf einen Operanden
zeigen, der einem Byte-Grenzwert entspricht, d. h. die Bitnummer des Pointers
muß ”0” sein.

Hinweis
Der Signalzustand der entsprechenden Bits im Prozeßabbild der Ausgänge (A)
wird auch auf ”0” zurückgesetzt.

Parameter Tabelle 1-4 beschreibt die Parameter der Funktion SETI.

Tabelle 1-4 Parameter der Funktion Ausgangsbereich unmittelbar setzen (FC101)

Parameter Deklaration Datentyp Speicherbe-


Beschreibung
reich
EN Eingang BOOL E, A, M, D, L Ein Signalzustand von ”1” am Freigabeeingang
aktiviert die Box.
ENO Ausgang BOOL E, A, M, D, L Der Freigabeausgang hat den Signalzustand ”1”,
wenn die Funktion fehlerfrei ausgeführt wird.
S_BYTE Eingang Pointer* P Zeigt auf das erste Byte in dem Bereich.
N Eingang INT E, A, M, D, L, Größe des Byte-Bereichs, der auf ”1” gesetzt
P oder werden soll. Der Bereich wird über die Anzahl der
Konstante Bits als Vielfaches der Zahl 8 (z. B. 8, 16 usw.)
angegeben.

* Pointer im Doppelwortformat bei der bereichsübergreifenden, registerindirekten Adressierung

Systemsoftware für S7-300/400 Standardfunktionen Teil 2


1-8 A5E00066866-03
Bitverknüpfungsfunktionen

Fehlerinformation Tritt eine der folgenden Bedingungen auf, dann ändert sich der Signalzustand
der Bits in dem Bereich nicht, und der Signalzustand von ENO wird auf ”0”
gesetzt.
• Der Pointer S_BYTE zeigt auf einen anderen Speicherbereich als den der
externen Peripherie (P).
• Der Pointer S_BYTE zeigt auf einen Operanden, der keinem Byte-Grenz-
wert entspricht.
• Der Wert des Parameters N ist kein Vielfaches der Zahl 8.

Beispiel Bild 1-4 zeigt die Funktionsweise der Operation SETI. Ist der Signalzustand
am Eingang E 0.0 = 1 (aktiviert) und ist das MCR-Bit = 1, dann wird die Funk-
tion SETI ausgeführt. In dem Beispiel zeigt der Parameter S_BYTE auf das
erste Byte mit dem Operanden P 2.0. Der Parameter N gibt an, daß 16 Bits (2
Bytes) gesetzt werden sollen. Nach der Bearbeitung der Operation ist der Si-
gnalzustand der Bytes in dem Bereich von P 2.0 bis P 3.7 auf ”1” gesetzt.
Wird die Funktion fehlerfrei ausgeführt, dann werden die Signalzustände von
ENO und A 4.0 auf ”1” gesetzt.

SETI
E 0.0 FC101 A 4.0
EN ENO

P#P 2.0 S_BYTE


16 N

Vor der Bearbeitung: Nach der Bearbeitung:


P 1.7 P 1.0 P 1.7 P 1.0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

P 2.7 P 2.0 P 2.7 P 2.0


0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1

P 3.7 P 3.0 P 3.7 P 3.0


0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1
P 4.7 P 4.0 P 4.7 P 4.0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

Bild 1-4 Ausgangsbereich unmittelbar setzen (SETI)

Systemsoftware für S7-300/400 Standardfunktionen Teil 2


A5E00066866-03 1-9
Bitverknüpfungsfunktionen

Systemsoftware für S7-300/400 Standardfunktionen Teil 2


1-10 A5E00066866-03
Tabellenfunktionen 2
Dieses Kapitel beschreibt die Tabellenfunktionen (FCs), die Ihnen zusätzlich
zu den Standardoperationen zur Verfügung stehen und eine größere Flexibilität
beim Programmieren bieten.

Abschnitt Beschreibung Seite


2.1 Wert in Tabelle eintragen (ATT): FC84 2-2
2.2 Ersten Wert der Tabelle ausgeben (FIFO): FC85 2-4
2.3 Wert in Tabelle suchen (TBL_FIND): FC86 2-6
2.4 Letzten Wert der Tabelle ausgeben (LIFO): FC87 2-9
2.5 Tabellenoperation ausführen (TBL): FC88 2-11
2.6 Wert aus Tabelle kopieren (TBL_WRD): FC89 2-13
2.7 Wert logisch mit Tabellenelement verknüpfen und 2-15
speichern (WRD_TBL): FC91
2.8 Korrelierte Datentabellen (CDT): F103 2-17
2.9 Tabellenverknüpfung (TBL_TBL): FC104 2-19

Systemsoftware für S7-300/400 Standardfunktionen Teil 2


A5E00066866-03 2-1
Tabellenfunktionen

2.1 Wert in Tabelle eintragen (ATT): FC84

Beschreibung Die Funktion Wert in Tabelle eintragen (ATT) ergänzt den Parameter DATA als
nächsten Eintrag in einer Tabelle und erhöht die Anzahl der Einträge um einen
Eintrag. Die Tabelle besteht aus Wörtern. Mit dieser Funktion können Sie
Tabelleneinträge erstellen, die von den Funktionen FIFO und LIFO verwendet
werden.
• Der erste Eintrag einer FIFO- oder LIFO-Tabelle gibt die maximale Anzahl
Einträge in der Tabelle (Tabellenlänge) an.
• Der zweite Eintrag einer Tabelle gibt die Anzahl der vorhandenen Einträge
an.
• Der dritte Eintrag der Tabelle enthält das erste Wort an Daten.

Hinweis
Sie müssen die ersten beiden Einträge initialisieren, wenn Sie eine Tabelle
erstellen.

Parameter Tabelle 2-1 beschreibt die Parameter der Funktion ATT.

Tabelle 2-1 Parameter der Funktion Wert in Tabelle eintragen (FC84)

Parameter Deklaration Datentyp Speicher-


Beschreibung
bereich
EN Eingang BOOL E, A, M, D, L Ein Signalzustand von ”1” am Freigabeeingang
aktiviert die Box.
ENO Ausgang BOOL E, A, M, D, L Der Freigabeausgang hat den Signalzustand ”1”,
wenn die Funktion fehlerfrei ausgeführt wird.
DATA Eingang WORD E, A, M, D, L, Daten, die in die Tabelle eingegeben werden sollen.
P oder
Konstante
TABLE Eingang Pointer* E, A, M, D Zeigt auf die Anfangsadresse der FIFO- bzw.
LIFO-Tabelle.

* Pointer im Doppelwortformat bei der bereichsübergreifenden, registerindirekten Adressierung

Systemsoftware für S7-300/400 Standardfunktionen Teil 2


2-2 A5E00066866-03
Tabellenfunktionen

Fehlerinformation Ist die Anzahl der Einträge gleich oder größer als die Tabellenlänge, dann wer-
den die Daten nicht in die Tabelle eingegeben, und das ENO-Bit wird auf ”0”
gesetzt.

Beispiel Bild 2-1 zeigt die Funktionsweise der Operation ATT. Ist der Signalzustand am
Eingang E 0.0 = 1 (aktiviert), dann wird die Funktion ATT ausgeführt. In dem
Beispiel wird der Parameter DATA als fünfter Eintrag in die Tabelle eingege-
ben, und die Anzahl der Einträge in der Tabelle erhöht sich von 4 auf 5.
Wird die Funktion fehlerfrei ausgeführt, dann werden die Signalzustände von
ENO und A 4.0 auf ”1” gesetzt.

ATT
E 0.0 FC84 A 4.0
EN ENO

W#16#0024 DATA
P#DB1.DBX10.0 TABLE

Vor der Bearbeitung:


TABLE (Tabellenlänge) DBW10 = W#16#0006
Anzahl der Einträge DBW12 = W#16#0004
DBW14 = W#16#0012
DBW16 = W#16#0029
DBW18 = W#16#0090
DBW20 = W#16#0002
DBW22 = W#16#0000
DBW24 = W#16#0000

Nach der Bearbeitung:


TABLE (Tabellenlänge) DBW10 = W#16#0006
Anzahl der Einträge DBW12 = W#16#0005
DBW14 = W#16#0012
DBW16 = W#16#0029
DBW18 = W#16#0090
DBW20 = W#16#0002
DBW22 = W#16#0024
DBW24 = W#16#0000

Bild 2-1 Wert in Tabelle eintragen (ATT)

Systemsoftware für S7-300/400 Standardfunktionen Teil 2


A5E00066866-03 2-3
Tabellenfunktionen

2.2 Ersten Wert der Tabelle ausgeben (FIFO): FC85

Beschreibung Die Funktion Ersten Wert der Tabelle ausgeben (FIFO) gibt den ältesten Ein-
trag der FIFO-Tabelle als Funktionswert aus. Die Anzahl der Einträge wird um
einen Eintrag verringert. Sind noch Einträge in der Tabelle vorhanden, dann
werden diese nach unten geschoben. Die FIFO-Tabelle besteht aus Wörten. Sie
können mit der Funktion ATT Werte in die FIFO-Tabelle eintragen.
• Der erste Eintrag einer Tabelle gibt die maximale Anzahl Einträge in der
Tabelle (Tabellenlänge) an.
• Der zweite Eintrag einer Tabelle gibt die Anzahl der vorhandenen Einträge
an.
• Der dritte Eintrag der Tabelle enthält das erste Wort an Daten.

Parameter Tabelle 2-2 beschreibt die Parameter der Funktion FIFO.

Tabelle 2-2 Parameter der Funktion Ersten Wert der Tabelle ausgeben (FC85)

Parameter Deklaration Datentyp Speicher-


Beschreibung
bereich
EN Eingang BOOL E, A, M, D, L Ein Signalzustand von ”1” am Freigabeeingang
aktiviert die Box.
ENO Ausgang BOOL E, A, M, D, L Der Freigabeausgang hat den Signalzustand ”1”,
wenn die Funktion fehlerfrei ausgeführt wird.
TABLE Eingang Pointer* E, A, M, D Zeigt auf die Anfangsadresse der FIFO-Tabelle.
RET_VAL Ausgang WORD E, A, M, D, L, Der älteste Eintrag aus der FIFO-Tabelle.
P

* Pointer im Doppelwortformat bei der bereichsübergreifenden, registerindirekten Adressierung

Systemsoftware für S7-300/400 Standardfunktionen Teil 2


2-4 A5E00066866-03
Tabellenfunktionen

Fehlerinformation Ist die FIFO-Tabelle leer (Anzahl der Einträge = 0), dann wird der Parameter
RET_VAL nicht verändert, und das ENO-Bit wird auf ”0” gesetzt.

Beispiel Bild 2-2 zeigt die Funktionsweise der Operation FIFO. Ist der Signalzustand
am Eingang E 0.0 = 1 (aktiviert), dann wird die Funktion FIFO ausgeführt. In
dem Beispiel wird der älteste Eintrag der Tabelle als Funktionswert (MW 2)
ausgegeben. Die Anzahl der Einträge reduziert sich von 5 auf 4, und die übri-
gen Einträge werden in der Tabelle nach unten geschoben.
Wird die Funktion fehlerfrei ausgeführt, dann werden die Signalzustände von
ENO und A 4.0 auf ”1” gesetzt.

FIFO
E 0.0 FC85 A 4.0
EN ENO

P#DB1.DBX10.0 TABLE
RET_VAL MW 2

Vor der Bearbeitung:


TABLE (Tabellenlänge) DBW10 = W#16#0006
Anzahl der Einträge DBW12 = W#16#0005
DBW14 = W#16#0012
DBW16 = W#16#0029
DBW18 = W#16#0090
DBW20 = W#16#0002
DBW22 = W#16#0024
DBW24 = W#16#0000
RET_VAL MW2 = W#16#0000

Nach der Bearbeitung:


TABLE (Tabellenlänge) DBW10 = W#16#0006
Anzahl der Einträge DBW12 = W#16#0004
DBW14 = W#16#0029
DBW16 = W#16#0090
DBW18 = W#16#0002
DBW20 = W#16#0024
DBW22 = W#16#0024
DBW24 = W#16#0000
RET_VAL MW2 = W#16#0012

Bild 2-2 Ersten Wert der Tabelle ausgeben (FIFO)

Systemsoftware für S7-300/400 Standardfunktionen Teil 2


A5E00066866-03 2-5
Tabellenfunktionen

2.3 Wert in Tabelle suchen (TBL_FIND): FC86

Beschreibung Mit der Funktion Wert in Tabelle suchen (TBL_FIND) können Sie nach
Mustern im Speicher suchen, die entweder übereinstimmen sollen oder nicht.
Die Funktion führt einen Vergleich (CMD) zwischen dem Quellmuster
(PATRN) und der Quelltabelle (SRC) aus. Gesucht wird das nächste Element
(ab dem Element, das von dem Parameter INDX angegeben wird) in der
Tabelle, das den Vergleichsbedingungen entspricht. Die Nummer des Elements
wird in dem Parameter INDX abgelegt. Wird keine Entsprechung gefunden,
dann zeigt der Parameter INDX über das Ende der Tabelle hinaus, und der
Ausgang der Funktion wird ausgeschaltet.
• Ist CMD = 1, dann sucht die Funktion nach dem ersten Wert, der dem Wert
PATRN entspricht.
• Ist CMD = 2, dann sucht die Funktion nach dem ersten Wert, der dem Wert
PATRN nicht entspricht.
• Der erste Eintrag in der Tabelle gibt die maximal zulässige Anzahl Einträge
in der Tabelle (Tabellenlänge) an.
• Der zweite Tabelleneintrag enthält den ersten Wert in der Tabelle.

Hinweis
Sie müssen den ersten Eintrag (Tabellenlänge) in der Tabelle initialisieren.

Systemsoftware für S7-300/400 Standardfunktionen Teil 2


2-6 A5E00066866-03
Tabellenfunktionen

Parameter Tabelle 2-3 beschreibt die Parameter der Funktion TBL_FIND.

Tabelle 2-3 Parameter der Funktion Wert in Tabelle suchen (FC86)

Parameter Deklaration Datentyp Speicherbereich Beschreibung


EN Eingang BOOL E, A, M, D, L Ein Signalzustand von ”1” am Freigabeeingang
aktiviert die Box.
ENO Ausgang BOOL E, A, M, D, L Der Freigabeausgang hat den Signalzustand ”1”,
wenn die Funktion fehlerfrei ausgeführt wird.
SRC Eingang Pointer* E, A, M, D Zeigt auf die Anfangsadresse der Tabelle.
PATRN Eingang Pointer* E, A, M, D Zeigt auf das Muster, das gesucht werden soll.
CMD Eingang BYTE E, A, M, D, L, P Gibt den Befehl an:
B#16#01 = gleich
B#16#02 = ungleich
E_TYPE Eingang BYTE E, A, M, D, L, P Gibt den Datentyp der Tabelleneinträge an. Für die
Funktion TBL_FIND sind die folgenden
Datentypen gültig:
B#16#02 = BYTE
B#16#04 = WORD
B#16#05 = INT
B#16#06 = DWORD
B#16#07 = DINT
B#16#08 = REAL
RET_VAL Ausgang WORD E, A, M, D, L, P Gibt den Wert W#16#0000 aus, wenn die
Operation fehlerfrei ausgeführt wird. Wird ein
anderer Wert ausgegeben, entnehmen Sie der
Fehlerinformation nähere Angaben hierzu.
INDX Eingang/ WORD E, A, M, D, L Index der Tabelle, gibt an:
Ausgang Eingang: Nummer des Eintrags, bei dem die
Suche begonnen werden soll
Ausgang: Nummer des Eintrags, der dem
gesuchten Wert entspricht

* Pointer im Doppelwortformat bei der bereichsübergreifenden, registerindirekten Adressierung

Fehlerinformation Tritt eine der in Tabelle 2-4 dargestellten Bedingungen auf, werden die Werte
in der Tabelle nicht geändert. Der Signalzustand von ENO wird auf ”0” und
der Rücksprungwert entsprechend gesetzt (siehe Tabelle 2-4).

Tabelle 2-4 Fehlerbedingungen für die FC86

RET_VAL Erläuterung
W#16#0008 Der gesuchte Wert wurde nicht gefunden.
W#16#0009 Der Parameter E_TYPE und/oder der Parameter CMD ist/sind
ungültig.

Systemsoftware für S7-300/400 Standardfunktionen Teil 2


A5E00066866-03 2-7
Tabellenfunktionen

Beispiel Bild 2-3 zeigt die Funktionsweise der Operation TBL_FIND. Ist der Signalzu-
stand von Eingang E 0.0 = 1 (aktiviert), dann wird die Funktion ausgeführt. In
diesem Beispiel werden die Daten in der Tabelle in Wörtern gespeichert, die an
dem Eintrag beginnen, auf die der Parameter SRC zeigt, weil der Parameter
E_TYPE = 4 ist. Diese Wörter werden mit dem Muster 5555 verglichen, das in
der Adresse gespeichert wird, die von dem Parameter PATRN angegeben wird.
Weil der Wert des Parameters CMD = 1 ist, wird der erste Wert in dem Para-
meter SRC gesucht, der mit dem Muster übereinstimmt. Der Parameter INDX
zeigt auf den Eintrag, an dem die Suche beginnen soll. Nach der Bearbeitung
der Operation gibt der Parameter INDX die Adresse in der Tabelle an, an der
eine Entsprechung für das Muster gefunden wurde.
Wird die Funktion fehlerfrei ausgeführt, dann werden die Signalzustände von
ENO und A 4.0 auf ”1” und RET_VAL gleich W#16#0000 gesetzt.

TBL_FIND
E 0.0 FC86 A 4.0
EN ENO

P#DB1.DBX0.0 SRC RET_VAL MW0 Der erste Eintrag in der Tabelle gibt die
Länge der Suchoperation an. Der Wert
P#DB2.DBX10.0 PATRN 0004 bedeutet, daß die nächsten 4
Einträge in der Tabelle durchsucht werden.
B#16#01 CMD
Der Parameter INDX wird von DW0 (vor
B#16#04 E_TYPE
der Bearbeitung) nach DW6 (nach der
MW2 INDX Bearbeitung) übertragen, weil das Muster
des Eintrags DW6 dem Muster 5555 in
dem Pointereintrag PATRN entspricht.

Vor der Bearbeitung:


SRC (Tabellenlänge) DBW0 = W#16#0004
DBW2 = W#16#1111
DBW4 = W#16#3333
DBW6 = W#16#5555
DBW8 = W#16#7777

INDX MW2 = W#16#0000

PATRN DBW10 = W#16#5555

Nach der Bearbeitung:


INDX MW2 = W#16#0003

Bild 2-3 Wert in Tabelle suchen (TBL_FIND)

Systemsoftware für S7-300/400 Standardfunktionen Teil 2


2-8 A5E00066866-03
Tabellenfunktionen

2.4 Letzten Wert der Tabelle ausgeben (LIFO): FC87

Beschreibung Die Funktion Letzten Wert der Tabelle ausgeben (LIFO) gibt den neuesten Ein-
trag der LIFO-Tabelle als Funktionswert aus. Die Anzahl der Einträge wird um
einen Eintrag verringert. Die LIFO-Tabelle besteht aus Wörten. Sie können mit
der Funktion ATT Werte in die LIFO-Tabelle eintragen.
• Der erste Eintrag einer Tabelle gibt die maximale Anzahl Einträge in der
Tabelle (Tabellenlänge) an.
• Der zweite Eintrag einer Tabelle gibt die Anzahl der vorhandenen Einträge
an.
• Der dritte Eintrag der Tabelle enthält das erste Wort an Daten.

Parameter Tabelle 2-5 beschreibt die Parameter der Funktion LIFO.

Tabelle 2-5 Parameter der Funktion Letzten Wert der Tabelle ausgeben (FC87)

Parameter Deklaration Datentyp Speicherbereich Beschreibung


EN Eingang BOOL E, A, M, D, L Ein Signalzustand von ”1” am Freigabeeingang
aktiviert die Box.
ENO Ausgang BOOL E, A, M, D, L Der Freigabeausgang hat den Signalzustand ”1”,
wenn die Funktion fehlerfrei ausgeführt wird.
TABLE Eingang Pointer* E, A, M, D Zeigt auf die Anfangsadresse der LIFO-Tabelle.
RET_VAL Ausgang WORD E, A, M, D, L, P Der neueste Eintrag aus der LIFO-Tabelle.

* Pointer im Doppelwortformat bei der bereichsübergreifenden, registerindirekten Adressierung

Systemsoftware für S7-300/400 Standardfunktionen Teil 2


A5E00066866-03 2-9
Tabellenfunktionen

Fehlerinformation Ist die LIFO-Tabelle leer (Anzahl der Einträge = 0), dann wird der Parameter
RET_VAL nicht verändert, und das ENO-Bit wird auf ”0” gesetzt.

Beispiel Bild 2-4 zeigt die Funktionsweise der Operation LIFO. Ist der Signalzustand
am Eingang E 0.0 = 1 (aktiviert), dann wird die Funktion LIFO ausgeführt. In
dem Beispiel wird der neueste Eintrag der LIFO-Tabelle als Funktionswert
(MW 2) ausgegeben. Die Anzahl der Einträge reduziert sich von 5 auf 4.
Wird die Funktion fehlerfrei ausgeführt, dann werden die Signalzustände von
ENO und A 4.0 auf ”1” gesetzt.

LIFO
E 0.0 FC87 A 4.0
EN ENO

P#DB1.DBX10.0 TABLE
RET_VAL MW 2

Vor der Bearbeitung:


TABLE (Tabellenlänge) DBW10 = W#16#0006
Anzahl der Einträge DBW12 = W#16#0005
DBW14 = W#16#0012
DBW16 = W#16#0029
DBW18 = W#16#0090
DBW20 = W#16#0002
DBW22 = W#16#0024
DBW24 = W#16#0000

RET_VAL MW2 = W#16#0000

Nach der Bearbeitung:


TABLE (Tabellenlänge) DBW10 = W#16#0006
Anzahl der Einträge DBW12 = W#16#0004
DBW14 = W#16#0012
DBW16 = W#16#0029
DBW18 = W#16#0090
DBW20 = W#16#0002
DBW22 = W#16#0024
DBW24 = W#16#0000

RET_VAL MW2 = W#16#0024

Bild 2-4 Letzten Wert der Tabelle ausgeben (LIFO)

Systemsoftware für S7-300/400 Standardfunktionen Teil 2


2-10 A5E00066866-03
Tabellenfunktionen

2.5 Tabellenoperation ausführen (TBL): FC88

Beschreibung Die Funktion Tabellenoperation ausführen (TBL) führt die angegebene Opera-
tion (von CMD gesetzt) mit der Quelltabelle aus und speichert das Ergebnis in
dem gleichen Eintrag in der Tabelle.
• Der erste Eintrag in der Tabelle gibt die maximal zulässige Anzahl Einträge
in der Tabelle (Tabellenlänge) an.
• Der zweite Tabelleneintrag enthält den ersten Wert in der Tabelle.
• Ist der Parameter E_TYPE auf REAL gesetzt, dann ist der Wert von CMD
für das Einerkomplement ungültig.

Hinweis
Beim Erstellen der Tabelle müssen Sie den ersten Eintrag initialisieren.

Parameter Tabelle 2-6 beschreibt die Parameter der Funktion TBL.

Tabelle 2-6 Parameter der Funktion Tabellenoperation ausführen (FC88)

Parameter Deklaration Datentyp Speicherbereich Beschreibung


EN Eingang BOOL E, A, M, D, L Ein Signalzustand von ”1” am Freigabeeingang
aktiviert die Box.
ENO Ausgang BOOL E, A, M, D, L Der Freigabeausgang hat den Signalzustand ”1”,
wenn die Funktion fehlerfrei ausgeführt wird.
SRC Eingang Pointer* E, A, M, D Zeigt auf die Anfangsadresse der Tabelle.
CMD Eingang BYTE E, A, M, D, L, P Gibt den Befehl an, der ausgeführt werden soll.
Folgende Befehle sind gültig:
B#16#03 = Einerkomplement
B#16#04 = Löschen
B#16#05 = Negieren
B#16#06 = Quadratwurzel
E_TYPE Eingang BYTE E, A, M, D, L, P Gibt den Datentyp der Tabelleneinträge an. Für die
Funktion TBL sind die folgenden Datentypen
gültig:
B#16#04 = WORD
B#16#05 = INT
B#16#06 = DWORD
B#16#07 = DINT
B#16#08 = REAL
RET_VAL Ausgang WORD E, A, M, D, L, P Gibt den Wert W#16#0000 aus, wenn die Opera-
tion fehlerfrei ausgeführt wird. Wird ein anderer
Wert ausgegeben, entnehmen Sie der Fehlerinfor-
mation nähere Angaben hierzu.

* Pointer im Doppelwortformat bei der bereichsübergreifenden, registerindirekten Adressierung

Systemsoftware für S7-300/400 Standardfunktionen Teil 2


A5E00066866-03 2-11
Tabellenfunktionen

Fehlerinformation Ist einer der Parameter CMD oder E_TYPE ungültig oder CMD und E_TYPE
stimmen nicht überein, dann werden die Werte in der Tabelle nicht geändert.
Der Signalzustand von ENO wird auf ”0” gesetzt und RET_VAL wird auf den
gleichen Wert gesetzt wie W#16#0008.

Beispiel Bild 2-5 zeigt die Funktionsweise der Operation TBL. Ist der Signalzustand
von Eingang E 0.0 = 1 (aktiviert), dann wird die Funktion TBL ausgeführt. In
diesem Beispiel zeigt der Parameter SRC auf die Adresse in dem Datenbau-
stein, die von der Operation bearbeitet werden soll. Da der Parameter E_TYPE
= 4 ist, werden die Daten in der Tabelle in den Wörtern gespeichert, die an der
Adresse beginnen, auf die der Parameter SRC zeigt. Weil der Wert von CMD =
4 ist (Löschen), werden alle Wörter in der Tabelle gelöscht (auf ”0” gesetzt),
wenn die Operation TBL ausgeführt wird. Da in dem ersten Eintrag in der Ta-
belle die Länge 5 angegeben wird, werden die nächsten fünf Adressen in der
Tabelle gelöscht.

TBL
E 0.0 FC88 A 4.0
EN ENO

P#DB1.DBX0.0 SRC RET_VAL MW0

B#16#04 CMD

B#16#04 E_TYPE

Vor der Bearbeitung:


SRC (Tabellenlänge) DBW0 = W#16#0005
DBW2 = W#16#2000
DBW4 = W#16#3000
DBW6 = W#16#4000
DBW8 = W#16#5000
DBW10 = W#16#6000

Nach der Bearbeitung:


SRC (Tabellenlänge) DBW0 = W#16#0005
DBW2 = W#16#0000
DBW4 = W#16#0000
DBW6 = W#16#0000
DBW8 = W#16#0000
DBW10 = W#16#0000

Bild 2-5 Tabellenoperation ausführen (TBL)

Systemsoftware für S7-300/400 Standardfunktionen Teil 2


2-12 A5E00066866-03
Tabellenfunktionen

2.6 Wert aus Tabelle kopieren (TBL_WRD): FC89

Beschreibung Die Funktion Wert aus Tabelle kopieren (TBL_WRD) kopiert den Eintrag, der
von dem Parameter INDX angegeben wird, aus der Tabelle SRC an die Stelle,
auf die der Parameter DEST zeigt, und erhöht dann den Wert von INDX, so-
fern der Wert kleiner ist als die maximale Länge, die in dem ersten Wort der
Tabelle angegeben wird, SRC[0]. Gibt der Parameter INDX den letzten Tabel-
leneintrag an, wenn diese Operation aufgerufen wird, dann wird das Bit des
Ausgangs A nach der Bearbeitung auf ”0” gesetzt.
• Der erste Eintrag in der Tabelle gibt die maximal zulässige Anzahl Einträge
in der Tabelle (Tabellenlänge) an.
• Der zweite Tabelleneintrag enthält den ersten Wert in der Tabelle.

Hinweis
Beim Erstellen der Tabelle müssen Sie den ersten Eintrag initialisieren.

Parameter Tabelle 2-7 beschreibt die Parameter der Funktion TBL_WRD.

Tabelle 2-7 Parameter der Funktion Wert aus Tabelle kopieren (FC89)

Parameter Deklaration Datentyp Speicherbereich Beschreibung


EN Eingang BOOL E, A, M, D, L Ein Signalzustand von ”1” am Freigabeeingang
aktiviert die Box.
ENO Ausgang BOOL E, A, M, D, L Der Freigabeausgang hat den Signalzustand ”1”,
wenn die Funktion fehlerfrei ausgeführt wird.
SRC Eingang Pointer* E, A, M, D Zeigt auf die Anfangsadresse der Tabelle.
DEST Eingang Pointer* E, A, M, D Zeigt auf das Ziel.
E_TYPE Eingang BYTE E, A, M, D, L, P Gibt den Datentyp der Tabelleneinträge an. Für die
Funktion TBL_WRD sind die folgenden Datentypen
gültig:
B#16#04 = WORD
B#16#05 = INT
B#16#06 = DWORD
B#16#07 = DINT
B#16#08 = REAL
RET_VAL Ausgang WORD E, A, M, D, L, P Gibt den Wert W#16#0000 aus, wenn die Operation
fehlerfrei ausgeführt wird. Wird ein anderer Wert
ausgegeben, entnehmen Sie der Fehlerinformation
nähere Angaben hierzu.
Q Ausgang BOOL A, M, D, L Gibt den Wert ”0” an, wenn die Variable INDX beim
Funktionsaufruf den letzten Wert der Tabelle enthält.
INDX Eingang/ WORD E, A, M, L Nummer des Elements, das kopiert werden soll.
Ausgang

* Pointer im Doppelwortformat bei der bereichsübergreifenden, registerindirekten Adressierung

Systemsoftware für S7-300/400 Standardfunktionen Teil 2


A5E00066866-03 2-13
Tabellenfunktionen

Fehlerinformation Tritt eine der in Tabelle 2-8 aufgeführten Bedingungen auf, dann wird die
Funktion nicht ausgeführt. Der Signalzustand von ENO wird auf ”0” und der
Rücksprungwert entsprechend gesetzt.

Tabelle 2-8 Fehlerbedingungen für FC89

RET_VAL Erläuterung
W#16#0007 Index ist 0.
W#16#0008 E_TYPE ist ungültig.
W#16#0009 Index liegt außerhalb der Tabelle.

Beispiel Bild 2-6 zeigt die Funktionsweise der Operation TBL_WRD. Ist der Signalzu-
stand an Eingang E 0.0 = 1 (aktiviert), dann wird die Funktion TBL_WRD
ausgeführt. Da der Parameter E_TYPE = 4 ist, wird das Datenwort, das in der
Tabelle an der Adresse gespeichert wird, auf die der Parameter SRC zeigt, an
die Adresse kopiert, die von dem Parameter DEST angegeben wird. Der Wert
von INDX zeigt auf die Adresse in der Tabelle, die kopiert werden soll. Nach
der erfolgreichen Ausführung der Funktion wird der Wert von INDX automa-
tisch um eine Adresse erhöht. In diesem Beispiel enthält der Wert von INDX
beim Aufruf der Funktion nicht den letzten Eintrag in dieser Tabelle, deshalb
ist der Ausgang A nach der Bearbeitung ”1”.
Wird die Funktion fehlerfrei ausgeführt, dann werden die Signalzustände von
ENO und A 4.0 auf ”1” gesetzt und RET_VAL wird auf W#16#0000 gesetzt.

TBL_WRD
E 0.0 FC89 A 4.0
EN ENO
RET_VAL MW0
P#DB1.DBX0.0 SRC
Q M 2.0
P#DB2.DBX20.0 DEST
B#16#04 E_TYPE
MW1 INDX

Vor der Bearbeitung:


SRC (Tabellenlänge) DBW0 = W#16#0004
DBW2 = W#16#2000
DBW4 = W#16#3000
DBW6 = W#16#4000
DBW8 = W#16#5000

INDX MW1 = W#16#0001

DEST DBW20 = W#16#0000

Nach der Bearbeitung:


INDX MW1 = W#16#0002

DEST DBW20 = W#16#2000

Bild 2-6 Wert aus Tabelle kopieren (TBL_WRD)

Systemsoftware für S7-300/400 Standardfunktionen Teil 2


2-14 A5E00066866-03
Tabellenfunktionen

2.7 Wert logisch mit Tabellenelement verknüpfen und speichern


(WRD_TBL): FC91

Beschreibung Die Funktion Wert logisch mit Tabellenelement verknüpfen und speichern
(WRD_TBL) führt die angegebene Operation (CMD) mit dem Quellelement
(von SRC angegeben) und dem Eintrag der Tabelle an dem Versatz aus, der
von dem Parameter INDX angegeben wird. Dann erhöht die Funktion den Wert
von INDX, sofern der Wert kleiner ist als die Länge der Tabelle.
• Der erste Eintrag in der Tabelle gibt die maximal zulässige Anzahl Einträge
in der Tabelle (Tabellenlänge) an.
• Der zweite Tabelleneintrag enthält den ersten Wert in der Tabelle.
• Handelt es sich bei dem Parameter E_TYPE um den Datentyp REAL, dann
kann der Parameter CMD nur ”Kopieren” sein.

Hinweis
Beim Erstellen der Tabelle müssen Sie den ersten Eintrag initialisieren.

Parameter Tabelle 2-9 beschreibt die Parameter der Funktion WRD_TBL.


Tabelle 2-9 Parameter der Funktion Wert logisch mit Tabellenelement verknüpfen und speichern (FC91)

Parameter Deklaration Datentyp Speicherbereich Beschreibung


EN Eingang BOOL E, A, M, D, L Ein Signalzustand von ”1” am Freigabeeingang
aktiviert die Box.
ENO Ausgang BOOL E, A, M, D, L Der Freigabeausgang hat den Signalzustand ”1”,
wenn die Funktion fehlerfrei ausgeführt wird.
SRC Eingang Pointer* E, A, M, D Zeigt auf das Quellelement.
TABLE Eingang Pointer* E, A, M, D Zeigt auf die Anfangsadresse der Tabelle.
CMD Eingang BYTE E, A, M, D, L, P Gibt den Befehl an, der ausgeführt werden soll.
Folgende Befehle sind gültig:
B#16#0E = Kopieren
B#16#07 = UND-Verknüpfung
B#16#08 = ODER-Verknüpfung
B#16#09 = EXCLUSIV-ODER-Verknüpfung
E_TYPE Eingang BYTE E, A, M, D, L, P Gibt den Datentyp der Tabelleneinträge an. Für
WRD_TBL sind die folgenden Datentypen gültig:
B#16#04 = WORD
B#16#05 = INT
B#16#06 = DWORD
B#16#07 = DINT
B#16#08 = REAL
RET_VAL Ausgang WORD E, A, M, D, L, P Gibt den Wert W#16#0000 aus, wenn die Operation
fehlerfrei ausgeführt wird. Wird ein anderer Wert
ausgegeben, entnehmen Sie der Fehlerinformation
nähere Angaben hierzu.
Q Ausgang BOOL A, M, D, L Gibt den Wert ”0” an, wenn die Variable INDX den
letzten Wert der Tabelle enthält.
INDX Eingang/ WORD E, A, M, D, L Nummer des Elements, mit dem die Operation
Ausgang ausgeführt werden soll.
* Pointer im Doppelwortformat bei der bereichsübergreifenden, registerindirekten Adressierung

Systemsoftware für S7-300/400 Standardfunktionen Teil 2


A5E00066866-03 2-15
Tabellenfunktionen

Fehlerinformation Tritt eine der in Tabelle 2-10 aufgeführten Bedingungen auf, dann wird die
Funktion nicht ausgeführt. Der Signalzustand von ENO wird auf ”0” und der
Rücksprungwert entsprechend gesetzt.

Tabelle 2-10 Fehlerbedingungen für FC91

RET_VAL Erläuterung
W#16#0007 Index ist 0.
W#16#0008 CMD oder E_TYPE ist ungültig bzw. CMD und E_TYPE
stimmen nicht überein.
W#16#0009 Index liegt außerhalb der Tabelle.

Beispiel Bild 2-7 zeigt die Funktionsweise der Operation WRD_TBL. Ist der Signal-
zustand an Eingang E 0.0 = 1 (aktiviert), dann wird die Funktion WRD_TBL aus-
geführt. Da der Parameter E_TYPE = 6 ist, wird das Doppelwort der Daten in der
Tabelle an der Adresse gespeichert, auf die der Parameter TABLE zeigt. Das erste
Wort der Tabelle zeigt an, daß die Tabelle drei Doppelwörter enthält. Der Wert
von INDX zeigt auf die Adresse in der Tabelle, die bearbeitet werden soll. Da der
Wert von CMD = 8 ist, wird eine ODER-Verknüpfung mit dem Wert ausgeführt,
auf den der Parameter INDX zeigt. Weil der Wert von INDX = 2 ist, wird das
zweite Doppelwort (66665544) mit dem Wert, auf den der Parameter SRC
(11111111) zeigt, durch ODER verknüpft. Nach der Bearbeitung der Operation
wird das Ergebnis der ODER-Verknüpfung (77775555) zurück in die Tabelle ge-
schrieben, und der Wert von INDX wird automatisch um eine Adresse erhöht.
Zeigt der Parameter INDX auf den letzten Eintrag einer Tabelle, dann wird das
Bit des Ausgangs A nach der Bearbeitung der Operation auf ”0” gesetzt. In die-
sem Beispiel enthält der Wert von INDX nicht den letzten Eintrag in dieser Ta-
belle, deshalb ist der Ausgang A nach der Bearbeitung ”1”.
Wird die Funktion fehlerfrei ausgeführt, dann werden die Signalzustände von
ENO und A 4.0 auf ”1” gesetzt und RET_VAL wird auf W#16#0000 gesetzt.

WRD_TBL
E 0.0 FC91 A 4.0
EN ENO
P#DB2.DBX20.0 SRC RET_VAL MW0
P#DB1.DBX0.0 TABLE Q M 2.0
B#16#08 CMD
B#16#06 E_TYPE
MW1 INDX
Vor der Bearbeitung:
SRC DBD20 = DW#16#11111111
TABLE (Tabellenlänge) DBW0 = W#16#0003
DBD2 = DW#16#99998877
DBD6 = DW#16#66665544
DBD10 = DW#16#33332222
INDX MW1 = W#16#0002
Nach der Bearbeitung:
TABLE (Tabellenlänge) DBW0 = W#16#0003
DBD2 = DW#16#99998877
DBD6 = DW#16#77775555
DBD10 = DW#16#33332222
INDX MW1 = W#16#0003

Bild 2-7 Wert logisch mit Tabellenelement verknüpfen und speichern (WRD_TBL)

Systemsoftware für S7-300/400 Standardfunktionen Teil 2


2-16 A5E00066866-03
Tabellenfunktionen

2.8 Korrelierte Datentabellen (CDT): FC103

Beschreibung Die Funktion Korrelierte Datentabellen (CDT) vergleicht einen Eingabewert


(IN) mit einer bereits vorhandenen Tabelle mit Eingabewerten (IN_TBL) und
sucht den ersten Wert, der größer oder gleich dem Eingabewert ist. Mit Hilfe
des Index des gefundenen Werts wird der Wert dann zu dem entsprechenden
Ausgabewert (OUT) in die Tabelle der Ausgabewerte (OUT_TBL) kopiert.
• Die Werte in der Eingabetabelle müssen in aufsteigender Reihenfolge sor-
tiert sein. D.h. der kleinste Wert befindet sich in dem ersten Tabellenein-
trag, der größte Wert befindet sich in dem letzten Tabelleneintrag.
• Die Größe des Eingabewerts, die Tabellenwerte und die Ausgabewerte wer-
den von E_TYPE festgelegt.
• Der erste Eintrag in der Tabelle gibt die Anzahl der Tabelleneinträge (Ta-
bellenlänge) an.
• Der zweite Tabelleneintrag enthält den ersten Wert der Tabelle.
• Die Anzahl der Einträge muß in beiden Tabellen identisch und größer als
Null sein.

Hinweis
Beim Erstellen der Tabellen müssen Sie jeweils den ersten Eintrag
initialisieren.

Parameter Tabelle 2-11 beschreibt die Parameter der Funktion CDT.

Tabelle 2-11 Parameter der Funktion Korrelierte Datentabellen (FC103)

Parameter Deklaration Datentyp Speicherbereich Beschreibung


EN Eingang BOOL E, A, M, D, L Ein Signalzustand von ”1” am Freigabeeingang
aktiviert die Box.
ENO Ausgang BOOL E, A, M, D, L Der Freigabeausgang hat den Signalzustand ”1”,
wenn die Funktion fehlerfrei ausgeführt wird.
IN_TBL Eingang Pointer* E, A, M, D Zeigt auf den Beginn der Eingangstabelle.
OUT_TBL Eingang Pointer* E, A, M, D Zeigt auf den Beginn der Ausgangstabelle.
IN Eingang Pointer* E, A, M, D Zeigt auf den Eingabewert.
OUT Eingang Pointer* E, A, M, D Zeigt auf den Ausgabewert.
E_TYPE Eingang BYTE E, A, M, D, L, P Gibt den Datentyp der Tabelleneinträge an. Für die
Funktion CDT sind die folgenden Datentypen gültig:
B#16#05 = INT
B#16#07 = DINT
B#16#08 = REAL
RET_VAL Ausgang WORD E, A, M, D, L, P Gibt den Wert W#16#0000 aus, wenn die Operation
fehlerfrei ausgeführt wird. Wird ein anderer Wert
ausgegeben, entnehmen Sie der Fehlerinformation
nähere Angaben hierzu.

* Pointer im Doppelwortformat bei der bereichsübergreifenden, registerindirekten Adressierung

Systemsoftware für S7-300/400 Standardfunktionen Teil 2


A5E00066866-03 2-17
Tabellenfunktionen

Fehlerinformation Tritt eine der in Tabelle 2-12 aufgeführten Fehlerbedingungen auf, wird die
Funktion nicht ausgeführt. Der Signalzustand von ENO wird auf ”0” und der
Rücksprungwert entsprechend gesetzt.

Tabelle 2-12 Fehlerbedingungen für FC103

RET_VAL Erläuterung
W#16#0001 Für einen Parameter der Funktion wurde ein ungültiger
Speicherbereich angegeben.
W#16#0002 E_TYPE ist ungültig.
W#16#0003 Die Längen der Eingangs- und Ausgangstabellen stimmen nicht
überein.
W#16#0004 Die Tabelle hat eine Länge von Null.
W#16#0007 In IN_TBL befindet sich kein Wert, der größer als oder gleich
dem Eingabewert ist.

Beispiel Bild 2-8 zeigt die Funktionsweise der Operation CDT. Ist der Signalzustand
von Eingang E 0.0 = 1 (aktiviert), dann wird die Funktion CDT ausgeführt. In
diesem Beispiel enthalten sowohl IN_TBL und OUT_TBL jeweils 5 Tabellen-
einträge. Dies wird von dem ersten Wort der jeweiligen Tabelle angegeben. Bei
dem Datentyp der Tabellenwerte handelt es sich um INTEGER. Dies gibt
E_TYPE an. Der Wert von IN ist 22. Der Wert von IN_TBL, der größer als
oder gleich 22 ist, ist 64, der den Index 5 hat. Der entsprechende Wert in
OUT_TBL ist 25. Deshalb wird der Wert 25 in OUT geschrieben.
Wird die Funktion fehlerfrei bearbeitet, dann ist der Signalzustand von
A 4.0 = 1 und RET_VAL wird auf W#16#0000 gesetzt.

CDT
E 0.0 A4.0
FC103
EN ENO
P#DB1.DBX0.0 IN_TBL RET_VAL MW0
P#DB1.DBX100.0 OUT_TBL
P#DB1.DBX200.0 IN
P#DB1.DBX210.0 OUT
B#16#05 E_TYPE

Vor der Bearbeitung:


IN_TBL (Tabellenlänge) DBW0 = W#16#0005
DBW2 = 2
DBW4 = 4
DBW6 = 8
DBW8 = 16
DBW10 = 64
OUT_TBL (Tabellenlänge) DBW100 = W#16#0005
DBW102 = 5
DBW104 = 10
DBW106 = 15
DBW108 = 20
DBW110 = 25
IN DBW200 = 22
OUT DBW210 = 0
Nach der Bearbeitung:
OUT DBW210 = 25

Bild 2-8 Korrelierte Datentabellen (CDT)

Systemsoftware für S7-300/400 Standardfunktionen Teil 2


2-18 A5E00066866-03
Tabellenfunktionen

2.9 Tabellenverknüpfung (TBL_TBL): FC104

Beschreibung Die Funktion Tabellenverknüpfung (TBL_TBL) führt den angegebenen Befehl


(CMD) mit den entsprechenden Einträgen der beiden Quelltabellen (TBL1 und
TBL2) aus und schreibt das Ergebnis in die entsprechenden Einträge in der
Zieltabelle (DEST_TBL).
• Die Datentypen INT, DINT und REAL sind nur für arithmetische Operatio-
nen gültig.
• Der erste Eintrag in der Tabelle gibt die Anzahl der Tabelleneinträge (Ta-
bellenlänge) an.
• In allen Tabellen muß die Anzahl der Einträge gleich sein und größer als
Null.

Hinweis
Beim Erstellen der Tabellen müssen Sie jeweils den ersten Eintrag initialisieren.

Parameter Tabelle 2-13 beschreibt die Parameter der Funktion TBL_TBL.

Tabelle 2-13 Parameter der Funktion Tabellenverknüpfung (FC104)

Parameter Deklaration Datentyp Speicherbereich Beschreibung


EN Eingang BOOL E, A, M, D, L Ein Signalzustand von ”1” am Freigabeeingang
aktiviert die Box.
ENO Ausgang BOOL E, A, M, D, L Der Freigabeausgang hat den Signalzustand ”1”,
wenn die Funktion fehlerfrei ausgeführt wird.
TBL1 Eingang Pointer* E, A, M, D Zeigt auf den Beginn der ersten Quelltabelle.
TBL2 Eingang Pointer* E, A, M, D Zeigt auf den Beginn der zweiten Quelltabelle.
DEST_TBL Eingang Pointer* E, A, M, D Zeigt auf die Zieltabelle.
CMD Eingang BYTE E, A, M, D, L, P Gibt den auszuführenden Befehl an. Die folgenden
Befehle sind gültig:
B#16#07 = UND-Verknüpfung
B#16#08 = ODER-Verknüpfung
B#16#09 = EXKLUSIV ODER-Verkn.
B#16#0a = Addieren
B#16#0b = Subtrahieren
B#16#0c = Multiplizieren
B#16#0d = Dividieren
E_TYPE Eingang BYTE E, A, M, D, L, P Gibt den Datentyp der Tabelleneinträge an. Gültig sind
für die Funktion TBL_TBL folgende Datentypen:
B#16#04 = WORD
B#16#05 = INT
B#16#06 = DWORD
B#16#07 = DINT
B#16#08 = REAL
RET_VAL Ausgang WORD E, A, M, D, L, P Gibt den Wert W#16#0000 aus, wenn die Operation
fehlerfrei ausgeführt wird. Wird ein anderer Wert
ausgegeben, entnehmen Sie der Fehlerinformation
nähere Angaben hierzu.

* Pointer im Doppelwortformat bei der bereichsübergreifenden, registerindirekten Adressierung

Systemsoftware für S7-300/400 Standardfunktionen Teil 2


A5E00066866-03 2-19
Tabellenfunktionen

Error Information Tritt eine der in Tabelle 2-14 aufgeführten Fehlerbedingungen auf, wird die
Funktion nicht ausgeführt. Der Signalzustand von ENO wird auf ”0” und der
Rücksprungwert entsprechend gesetzt.

Tabelle 2-14 Fehlerbedingungen für FC104

RET_VAL Erläuterung
W#16#0001 Für einen Parameter der Funktion wurde ein ungültiger
Speicherbereich angegeben.
W#16#0002 E_TYPE ist ungültig.
W#16#0003 Die Längen der Eingangs- und Ausgangstabellen stimmen nicht
überein.
W#16#0004 Die Tabelle hat eine Länge von Null.
W#16#0005 E_TYPE und CMD stimmen nicht überein.
W#16#0006 CMD ist ungültig.

Beispiel Bild 2-9 zeigt die Funktionsweise der Operation TBL_TBL. Ist der Signalzu-
stand von Eingang E 0.0 = 1 (aktiviert), dann wird die Funktion TBL_TBL
ausgeführt. In diesem Beispiel enthalten alle Tabellen jeweils 3 Tabellenein-
träge. Dies wird von dem ersten Wort der jeweiligen Tabelle angegeben. Bei
dem Datentyp der Tabellenwerte handelt es sich um WORD. Dies gibt
E_TYPE an. CMD gibt an, daß der für TBL1 und TBL2 auszuführende Befehl
eine UND-Verknüpfung ist.
Wird die Funktion fehlerfrei bearbeitet, ist der Signalzustand von A 4.0 = 1
und RET_VAL wird auf W#16#0000 gesetzt.

E 0.0 TBL_TBL A4.0


EN FC104 ENO

P#DB1.DBX0.0 TBL1 RET_VAL MW0


P#DB1.DBX20.0 TBL2
P#DB1.DBX40.0 DEST_TBL
B#16#07 CMD
B#16#04 E_TYPE

Vor der Bearbeitung:


TBL1 (Tabellenlänge) DBW0 = W#16#0003
DBW2 = W#16#00FF
DBW4 = W#16#FF00
DBW6 = W#16#FFFF
TBL2 (Tabellenlänge) DBW20 = W#16#0003
DBW22 = W#16#1111
DBW24 = W#16#2222
DBW26 = W#16#3333
DEST_TBL (Tabellenlänge) DBW40 = W#16#0003
DBW42 = W#16#0000
DBW44 = W#16#0000
DBW46 = W#16#0000
Nach der Bearbeitung:
DEST_TBL (Tabellenlänge) DBW40 = W#16#0003
DBW42 = W#16#0011
DBW44 = W#16#2200
DBW46 = W#16#3333

Bild 2-9 Tabellenverknüpfung (TBL_TBL)

Systemsoftware für S7-300/400 Standardfunktionen Teil 2


2-20 A5E00066866-03
Schiebefunktionen 3
Dieses Kapitel beschreibt die Schiebefunktionen (FCs), die Ihnen zusätzlich zu
den Standardoperationen zur Verfügung stehen und eine größere Flexibilität
beim Programmieren bieten.

Abschnitt Beschreibung Seite


3.1 Datum im Schieberegister speichern (WSR): FC90 3-2
3.2 Bit in Bitschieberegister schieben (SHRB): FC92 3-4

Systemsoftware für S7-300/400 Standardfunktionen Teil 2


A5E00066866-03 3-1
Schiebefunktionen

3.1 Datum im Schieberegister speichern (WSR): FC90

Beschreibung Die Funktion Datum im Schieberegister speichern (WSR) schiebt Daten aus
der angegebenen Quelle in ein Schieberegister. Die Werte werden jeweils in
die nächste Adresse geschoben. Der Parameter LENGTH gibt die Anzahl der
Adressen an, die geschoben werden sollen. Die Daten, die in der letzten
Adresse des Schieberegisters enthalten sind, gehen nach der Schiebeoperation
verloren. Neue Daten werden jedesmal dann aus der Quelle (S_DATA) gele-
sen, wenn die Operation ausgeführt wird. Diese Daten werden in die Anfangsa-
dresse (START) des Schieberegisters geschoben, wenn der Eingang RESET
auf ”0” gesetzt wird. Wird der Eingang RESET auf ”1” gesetzt, dann werden
die Adressen des Registers auf ”0” gesetzt. Ausgang A wird eingeschaltet,
wenn das Schieberegister leer ist oder gelöscht wird (d. h. nach dem Rückset-
zen oder wenn das Register mit Nullen belegt wird).

Parameter Tabelle 3-1 beschreibt die Parameter der Funktion WSR.

Tabelle 3-1 Parameter der Funktion Datum im Schieberegister speichern (FC90)

Parameter Deklaration Datentyp Speicherbereich Beschreibung


EN Eingang BOOL E, A, M, D, L Ein Signalzustand von ”1” am Freigabeeingang
aktiviert die Box.
ENO Ausgang BOOL E, A, M, D, L Der Freigabeausgang hat den Signalzustand ”1”,
wenn die Funktion fehlerfrei ausgeführt wird.
RESET Eingang BOOL E, A, M, D, L Wenn auf ”1” gesetzt, dann wird das
Schieberegister zurückgesetzt.
S_DATA Eingang Pointer* E, A, M, D Zeigt auf das Quellelement, das in die Tabelle
eingefügt werden soll.
START Eingang Pointer* E, A, M, D Zeigt auf die Anfangsadresse der Tabelle.
LENGTH Eingang WORD E, A, M, D, L, P Anzahl der Elemente, die geschoben werden
sollen.
E_TYPE Eingang BYTE E, A, M, D, L, P Gibt den Datentyp der Tabelleneinträge an. Gültig
sind für die Funktion WSR die folgenden
Datentypen:
B#16#04 = WORD
B#16#05 = INT
B#16#06 = DWORD
B#16#07 = DINT
B#16#08 = REAL
Q Ausgang BOOL A, M, D, L Gibt ”0” an, wenn der Parameter RESET aktiv
(”1”) ist oder alle Elemente, die geschoben
werden sollen, den Wert ”0” haben.

* Pointer im Doppelwortformat bei der bereichsübergreifenden, registerindirekten Adressierung

Systemsoftware für S7-300/400 Standardfunktionen Teil 2


3-2 A5E00066866-03
Schiebefunktionen

Fehlerinformation Wird ein ungültiger Parameter E_TYPE verwendet, dann wird die Funktion
nicht ausgeführt, und das ENO-Bit wird auf ”0 ” gesetzt.

Beispiel Bild 3-1 zeigt die Funktionsweise der Operation WSR. Ist der Signalzustand
am Eingang E 0.0 = 1 (aktiviert), dann wird die Funktion WSR ausgeführt.
Weil der Parameter E_TYPE = 4 ist, werden Wörter in der Tabelle gespeichert,
und zwar mit Beginn an der Adresse, auf die der Parameter SRC zeigt. Der
Parameter LENGTH gibt ”4” an, so daß 4 Wörter geschoben werden, wobei
das erste Wort von dem Pointer START angegeben wird. Nachdem der erste
Wert der Tabelle in die nächste Adresse geschoben wurde, wird die erste
Adresse mit den Daten belegt, auf die der Pointer S_DATA zeigt. Der letzte
Tabelleneintrag geht verloren. Wenn der Eingang RESET auf ”1” gesetzt wird,
dann werden die Adressen in der Tabelle auf ”0” gesetzt und nicht geschoben.
Wird die Funktion fehlerfrei ausgeführt, dann werden die Signalzustände von
ENO und A 4.0 auf ”1” gesetzt.

WSR
E 0.0 FC90 A 4.0
EN ENO

M 1.0 RESET Q M 2.0

P#DB2.DBX6.0 S_DATA
P#DB1.DBX0.0 START

B#16#04 LENGTH
B#16#04 E_TYPE

Vor der Bearbeitung:


START DW0 = W#16#1111
DW2 = W#16#2222
DW4 = W#16#3333
DW6 = W#16#4444
S_DATA DW6 = W#16#1234
RESET M 1.0 = FALSE

Nach der Bearbeitung:


START DW0 = W#16#1234
DW2 = W#16#1111
DW4 = W#16#2222
DW6 = W#16#3333

Bild 3-1 Datum im Schieberegister speichern (WSR)

Systemsoftware für S7-300/400 Standardfunktionen Teil 2


A5E00066866-03 3-3
Schiebefunktionen

3.2 Bit in Bitschieberegister schieben (SHRB): FC92

Beschreibung Die Funktion Bit in Bitschieberegister schieben (SHRB) schiebt ein Bit aus der
angegebenen Quelle (DATA) in ein Schieberegister. Neue Daten werden jedes-
mal dann aus der Quelle gelesen, wenn die Operation ausgeführt wird. Diese
Daten werden in die Anfangsadresse (S_BIT) des Schieberegisters geschoben,
wenn der Eingang RESET auf ”0” ist. Alle folgenden Bits werden um eins
verschoben. Das Bit in der letzten Adresse (S_BIT + N) geht nach dem Schie-
ben verloren. Wenn der Eingang RESET auf ”1” gesetzt wird, dann werden die
Adressen in der Tabelle auf ”0” gesetzt und nicht geschoben.

Parameter Tabelle 3-2 beschreibt die Parameter der Funktion SHRB.

Tabelle 3-2 Parameter der Funktion Bit in Bitschieberegister schieben (FC92)

Parameter Deklaration Datentyp Speicherbereich Beschreibung


EN Eingang BOOL E, A, M, D, L Ein Signalzustand von ”1” am Freigabeeingang
aktiviert die Box.
ENO Ausgang BOOL E, A, M, D, L Der Freigabeausgang hat den Signalzustand ”1”,
wenn die Funktion fehlerfrei ausgeführt wird.
DATA Eingang BOOL E, A, M, D, L Quellbit
RESET Eingang BOOL E, A, M, D, L Wenn auf ”1” gesetzt, dann wird das
Schieberegister zurückgesetzt.
S_BIT Eingang Pointer* E, A, M, D Zeigt auf das Anfangsbit in dem Schieberegister.
N Eingang WORD E, A, M, D, L, P Länge des Schieberegisters (Anzahl der Bits, die
geschoben werden sollen).

* Pointer im Doppelwortformat bei der bereichsübergreifenden, registerindirekten Adressierung

Systemsoftware für S7-300/400 Standardfunktionen Teil 2


3-4 A5E00066866-03
Schiebefunktionen

Fehlerinformation Diese Funktion erkennt keine Fehlerbedingungen.

Beispiel Bild 3-2 zeigt die Funktionsweise der Operation SHRB. Ist der Signalzustand
am Eingang E 0.0 = 1 (aktiviert), dann wird die Funktion SHRB ausgeführt.
Der Parameter N wird in diesem Beispiel auf ”14” gesetzt, so daß 14 Bits ge-
schoben werden, wobei das erste Bit von dem Pointer S_BIT angegeben wird.
Nachdem das erste Bit der Adresse S_BIT in die nächste Adresse geschoben
wurde, wird die erste Adresse mit den Daten belegt, auf die der Pointer S_BIT
zeigt. Der letzte Bitwert geht verloren.
Wird die Funktion fehlerfrei ausgeführt, dann werden die Signalzustände von
ENO und A 4.0 auf ”1” gesetzt.

SHRB
E 0.0 FC92 A 4.0
EN ENO

0 DATA

0 RESET
P#DB1.DBX1.4 S_BIT

B#16#0E N

Vor dem Schieben: Nach dem Schrieben:


S_BIT S_BIT
1.7 1.0 1.7 1.0
0 0 1 1 1 0 1 0 0 1 1 0 1 0 1 0
2.7 2.0 2.7 2.0
0 0 1 1 1 0 1 0 0 1 1 1 0 1 0 0
3.7 3.0 3.7 3.0
0 0 1 1 1 0 1 0 0 0 1 1 1 0 0 0

Bild 3-2 Bit in Bitschieberegister schieben (SHRB)

Systemsoftware für S7-300/400 Standardfunktionen Teil 2


A5E00066866-03 3-5
Schiebefunktionen

Systemsoftware für S7-300/400 Standardfunktionen Teil 2


3-6 A5E00066866-03
Übertragungsfunktion und
Übertragungsfunktionsbaustein 4
Dieses Kapitel beschreibt die Übertragungsfunktion (FC) und den Übertra-
gungsfunktionsbaustein (FB), die Ihnen zusätzlich zu den Standardoperationen
zur Verfügung stehen und eine größere Flexibilität beim Programmieren bie-
ten.

Abschnitt Beschreibung Seite


4.1 Datenbereich indirekt übertragen (IBLKMOV): FC81 4-2
4.2 Sammle/Verteile Tabellendaten (PACK): FB86 4-4

Systemsoftware für S7-300/400 Standardfunktionen Teil 2


A5E00066866-03 4-1
Übertragungsfunktion und Übertragungsfunktionsbaustein

4.1 Datenbereich indirekt übertragen (IBLKMOV): FC81

Beschreibung Mit der Funktion Datenbereich indirekt übertragen (IBLKMOV) können Sie
einen Datenbereich aus Bytes, Wörtern, Ganzzahlen (16 Bit), Doppelwörtern
oder Ganzzahlen (32 Bit) aus einer Quelle an ein Ziel übertragen. Die Anzahl
der Elemente, die übertragen werden soll, wird von dem Parameter LENGTH
angegeben. Die Größe der Elemente wird von dem Parameter E_TYPE ange-
geben. Die Pointer S_DATA und D_DATA geben die Adresse der Pointer an,
die die Anfangsadresse der Quelle und die des Ziels angeben. Weil die Daten,
die übertragen werden sollen, auf diese indirekte Weise angegeben werden,
wird die Funktion als indirekte Übertragungsfunktion bezeichnet.

Parameter Tabelle 4-1 beschreibt die Parameter der Funktion IBLKMOV.

Tabelle 4-1 Parameter der Funktion Datenbereich indirekt übertragen (FC81)

Parameter Deklaration Datentyp Speicherbereich Beschreibung


EN Eingang BOOL E, A, M, D, L Ein Signalzustand von ”1” am Freigabeeingang
aktiviert die Box.
ENO Ausgang BOOL E, A, M, D, L Der Freigabeausgang hat den Signalzustand ”1”,
wenn die Funktion fehlerfrei ausgeführt wird.
S_DATA Eingang Pointer* E, A, M, D Zeigt auf einen Pointer, der die Anfangsadresse
der Quelle angibt.
LENGTH Eingang Pointer* E, A, M, D Zeigt auf die Länge des Datenbereichs, der
übertragen werden soll.
D_DATA Eingang Pointer* E, A, M, D Zeigt auf einen Pointer, der die Anfangsadresse
des Ziels angibt.
E_TYPE Eingang BYTE E, A, M, D, L Gibt den Datentyp an. Für die Funktion
IBLKMOV sind die folgenden Datentypen gültig:
B#16#02 = BYTE
B#16#04 = WORD
B#16#05 = INT
B#16#06 = DWORD
B#16#07 = DINT
B#16#08 = REAL

* Pointer im Doppelwortformat bei der bereichsübergreifenden, registerindirekten Adressierung

Systemsoftware für S7-300/400 Standardfunktionen Teil 2


4-2 A5E00066866-03
Übertragungsfunktion und Übertragungsfunktionsbaustein

Fehlerinformation Wird ein ungültiger Parameter E_TYPE angegeben, dann wird die Funktion
nicht ausgeführt, und das ENO-Bit wird auf ”0” gesetzt.

Beispiel Bild 4-1 zeigt die Funktionsweise der Operation IBLKMOV. Ist der Signal-
zustand am Eingang E 0.0 = 1 (aktiviert), dann wird die Funktion ausgeführt.
Der Parameter S_DATA zeigt auf DB1.DBX0.0, diese Adresse enthält den
Pointer DB1.DBX50.0 (die Anfangsadresse der Quelle). Der Parameter
D_DATA zeigt auf DB1.DBX20.0, diese Adresse enthält den Pointer
DB2.DBX10.0 (die Anfangsadresse des Ziels). Nach der Ausführung der
Funktion wird ein Datenbereich aus zwei Wörtern übertragen.
Treten keine Fehler auf, dann wird der Signalzustand von ENO und von A 4.0
auf ”1” gesetzt.

IBLKMOV
E 0.0 FC81 A 4.0
EN ENO

P#DB1.DBX0.0 S_DATA
P#DB1.DBX10.0 LENGTH
P#DB1.DBX20.0 D_DATA
B#16#04 E_TYPE

Vor der Bearbeitung:


S_DATA DBX0.0 = P#DB1.DBX50.0
DBW50 = W#16#2424
DBW52 = W#16#2525

LENGTH DBW10 = W#16#0002

D_DATA DBX20.0= P#DB2.DBX10.0


DBW10 = W#16#0000
DBW12 = W#16#0000

Nach der Bearbeitung::


D_DATA DBW10 = W#16#2424
DBW12 = W#16#2525

Bild 4-1 Datenbereich indirekt übertragen (IBLKMOV)

Systemsoftware für S7-300/400 Standardfunktionen Teil 2


A5E00066866-03 4-3
Übertragungsfunktion und Übertragungsfunktionsbaustein

4.2 Sammle/Verteile Tabellendaten (PACK): FB86

Beschreibung Der Funktionsbaustein Sammle/Verteile Tabellendaten (PACK) überträgt Da-


ten, die sich zwischen beliebigen Adressen und einer Tabelle befinden. Die
Übertragungsrichtung wird von dem Parameter DIR angegeben. Jede Opera-
tion PACK bearbeitet maximal fünf Bausteine mit Daten (P_DATA1 bis
P_DATA5). Gibt der Parameter DIR ”an” an, dann überträgt die Operation
PACK Daten aus den Adresssen an die angegebene Tabelle. Gibt der Parameter
DIR ”aus” an, dann werden die Daten aus der Tabelle an die angegebenen
Adressen verteilt.
Folgende Richtlinien gelten beim Übertragen von Daten ”an” eine Tabelle:
• Einzelne Bits (BOOL) werden in das nächste verfügbare Bit in der Tabelle
übertragen.
• Datentypen mit 8 Bit werden in das nächste verfügbare Byte in der Tabelle
übertragen. Wird ein Byte in die Tabelle geschrieben, dann werden die
nicht verwendeten Bits von dem vorherigen Byte mit Nullen belegt.
• Datentypen mit 16 und 32 Bit werden in das nächste verfügbare Wort in der
Tabelle übertragen. Wird ein Wort in die Tabelle geschrieben, dann werden
die nicht verwendeten Bits in dem vorherigen Wort mit Nullen belegt.
Folgende Richtlinien gelten beim Übertragen von Daten ”aus” einer Tabelle:
• Es dürfen kein Abschnitte in einer Tabelle ausgelassen werden.
• Alle angegebenen Daten vom Datentyp BOOL werden aus der Tabelle
übertragen.
• Datentypen mit 8 Bit werden aus dem ersten verfügbaren Byte in der
Tabelle übertragen. Deshalb sind nicht verwendete Bits aus dem vorherigen
Byte in der Tabelle nicht in dem Byte enthalten, das aus der Tabelle
übertragen wird.
• Datentypen mit 16 und 32 Bit werden aus dem ersten verfügbaren Wort in
der Tabelle übertragen. Deshalb sind nicht verwendete Bits aus dem
vorherigen Wort in der Tabelle nicht in dem Wort enthalten, das aus der
Tabelle übertragen wird.
Folgende Datentypen sind für den Pointer ANY gültig und werden von dem
Funktionsbaustein PACK unterstützt:
• BOOL
• WORD
• INT
• BYTE
• DINT
• REAL
• CHAR
• DWORD

Systemsoftware für S7-300/400 Standardfunktionen Teil 2


4-4 A5E00066866-03
Übertragungsfunktion und Übertragungsfunktionsbaustein

Parameter Tabelle 4-2 beschreibt die Parameter des Funktionsbausteins PACK.

Tabelle 4-2 Parameter des Funktionsbausteins Sammle/Verteile Tabellendaten (FB86)

Parameter Deklaration Datentyp Speicherbereich Beschreibung


EN Eingang BOOL E, A, M, D, L Ein Signalzustand von ”1” am Freigabeeingang
aktiviert die Box.
ENO Ausgang BOOL E, A, M, D, L Der Freigabeausgang hat den Signalzustand ”1”,
wenn der Funktionsbaustein fehlerfrei ausgeführt
wird.
TABLE Eingang Pointer* E, A, M, D Zeigt auf den Beginn der Tabelle.
P_DATA1 Eingang Any E, A, M, D Zeigt auf den Beginn des Bausteins, dessen Daten
übertragen werden sollen.
P_DATA2 Eingang Any E, A, M, D Zeigt auf den Beginn des Bausteins, dessen Daten
übertragen werden sollen.
P_DATA3 Eingang Any E, A, M, D Zeigt auf den Beginn des Bausteins, dessen Daten
übertragen werden sollen.
P_DATA4 Eingang Any E, A, M,D Zeigt auf den Beginn des Bausteins, dessen Daten
übertragen werden sollen.
P_DATA5 Eingang Any E, A, M, D Zeigt auf den Beginn des Bausteins, dessen Daten
übertragen werden sollen.
ERR_CODE Ausgang WORD E, A, M, D, L, P Gibt den Wert W#16#0000 aus, wenn die Opera-
tion fehlerfrei ausgeführt wird. Wird ein anderer
Wert ausgegeben, entnehmen Sie der Fehlerinfor-
mation nähere Angaben hierzu.
DIR Statisch BOOL E, A, M, D, L Richtung der Übertragung. Folgende Signalzu-
stände sind möglich:
0 = an
1 = aus

* Pointer im Doppelwortformat bei der bereichsübergreifenden, registerindirekten Adressierung

Fehlerinformation Tritt eine der in Tabelle 4-3 aufgeführten Fehlerbedingungen auf, dann wird
der Funktionsbaustein nicht ausgeführt. Der Signalzustand von ENO wird auf
”0” und ERR_CODE entsprechend gesetzt.

Tabelle 4-3 Fehlerbedingungen für FB86

ERR_CODE Erläuterung
W#16#0001 Für einen Parameter des Funktionsbausteins wurde ein ungültiger
Speicherbereich angegeben.
W#16#0002 E_TYPE ist ungültig.

Systemsoftware für S7-300/400 Standardfunktionen Teil 2


A5E00066866-03 4-5
Übertragungsfunktion und Übertragungsfunktionsbaustein

Beispiel Bild 4-2 zeigt die Funktionsweise der Operation PACK. Ist der Signalzustand
von Eingang E 0.0 = 1 (aktiviert), dann wird der Funktionsbaustein PACK aus-
geführt. In diesem Beispiel werden vier Bausteine mit Daten ”an” die Tabelle
übertragen.
Wird der Funktionsbaustein fehlerfrei ausgeführt, dann werden die Signalzu-
stände von ENO und A 4.0 auf ”1” und ERR_CODE auf W#16#0000 gesetzt.

Hinweis
Statische Parameter können Sie mit Hilfe des Datenbaustein-Editors initiali-
sieren.

DB86
PACK
E 0.0 A 4.0
FB86
EN ENO
P#DB1.DBX0.0 TABLE ERR_CODE MW0
P#M200.0 BOOL 2 P_DATA1
P#M210.0 BYTE 1 P_DATA2
P#M300.0 BOOL 2 P_DATA3
P#M330.0 WORD 1 P_DATA4
P_DATA5

Vor der Bearbeitung:


TABLE DBB0 = B#16#00
DBB1 = B#16#00
DBB2 = B#16#00
DBB3 = B#16#00
DBB4 = B#16#00
DBB5 = B#16#00

P_DATA1 M 200.0 = TRUE


M 200.1 = TRUE

P_DATA2 MB210 = B#16#FF

P_DATA3 M 300.0 = TRUE


M 300.1 = TRUE

P_DATA4 MW330 = W#16#FFFF

Instanz-DB86
DIR DBX58.0 = FALSE

Nach der Bearbeitung:


TABLE DBB0 = B#16#03
DBB1 = B#16#FF
DBB2 = B#16#03
DBB3 = B#16#00
DBB4 = B#16#FF
DBB5 = B#16#FF

Bild 4-2 Sammle/Verteile Tabellendaten (PACK)

Systemsoftware für S7-300/400 Standardfunktionen Teil 2


4-6 A5E00066866-03
Zeitfunktion und Zeitfunktionsbausteine 5
Dieses Kapitel beschreibt die Zeitfunktion (FC) und die Zeitfunktionsbausteine
(FBs), die Ihnen zusätzlich zu den Standardoperationen zur Verfügung stehen
und eine größere Flexibilität beim Programmieren bieten.

Abschnitt Beschreibung Seite


5.1 Zeit als speichernde Einschaltverzögerung starten 5-2
(TONR): FC80
5.2 Diskreter Steuerungszeitalarm (DCAT): FB81 5-4
5.3 Motorsteuerungszeitalarm (MCAT): FB82 5-7
5.4 Ereignis maskierbare Drum (DRUM): FB85 5-10

Systemsoftware für S7-300/400 Standardfunktionen Teil 2


A5E00066866-03 5-1
Zeitfunktion und Zeitfunktionsbausteine

5.1 Zeit als speichernde Einschaltverzögerung starten (TONR): FC80

Beschreibung Die Funktion Zeit als speichernde Einschaltverzögerung starten (TONR) akku-
muliert den Zeitwert solange, bis der aktuelle Zeitwert der abgelaufenen Zeit
(ET) gleich dem voreingestellten Zeitwert (PV) ist oder diesen überschreitet.
Weil die Funktion TONR die Ausführungszeit des letzten Zyklus des OB (Or-
ganisationsbaustein) verwendet, um den Zeitwert zu akkumulieren, dürfen Sie
diese Funktion nur für die OBs verwenden, die ständig wiederholt werden, wie
beispielsweise OB1 und die zyklischen OBs.

Hinweis
Sie müssen die Zykluszeit des OB aus der lokalen Variablen für den Anlauf in
der Variablendeklarationstabelle des OB in die globale Variable DELTA_T
verschieben.

Solange der Signalzustand des Parameters RESET = 0, der Signalzustand des


Parameters TMR_EN = 1 und der Signalzustand von ET kleiner als PV ist,
addiert die Funktion TONR den Wert von DELTA_T zu dem Wert von ET. Ist
der Signalzustand des Parameters nicht gleich ”1”, dann wird kein Zeitwert zu
dem Wert ET addiert. Wenn der Wert ET den Wert PV erreicht oder ihn über-
schreitet, dann wird der Signalzustand des Ausgangs A auf ”1” gesetzt. Wird
der Ausgang A eingeschaltet, dann wird der Wert von ET bis zum Zurück-
setzen nicht mehr verändert. Die Funktion setzt den Wert ET auf ”0” zurück
und schaltet den Ausgang A aus, wenn der Signalzustand des Parameters
RESET ”1” ist.

Parameter Tabelle 5-1 beschreibt die Parameter der Funktion TONR.

Tabelle 5-1 Parameter der Funktion Zeit als speichernde Einschaltverzögerung starten (FC80)

Parameter Deklaration Datentyp Speicherbereich Beschreibung


EN Eingang BOOL E, A, M, D, L Ein Signalzustand von ”1” am Freigabeeingang
aktiviert die Box.
ENO Ausgang BOOL E, A, M, D, L Der Freigabeausgang hat den Signalzustand ”1”,
wenn die Funktion fehlerfrei ausgeführt wird.
TMR_EN Eingang BOOL E, A, M, D, L Aktiviert die Zeit zum Akkumulieren des Zeitwerts.
RESET Eingang BOOL E, A, M, D, L Ist RESET = 1, dann wird die Zeit auf ”0”
zurückgesetzt.
PV Eingang DINT E, A, M, D, L, P Voreingestellter Wert
oder Konstante
DELTA_T Eingang INT E, A, M, D, L Zykluszeit des OB von dem vorherigen Zyklus.
oder Konstante
Q Ausgang BOOL A, M, D, L Wird auf ”1” gesetzt, wenn der Wert ET gleich dem
Wert PV ist oder diesen überschreitet.
ET Eingang/ DINT E, A, M, D, L Aktueller Zeitwert der abgelaufenen Zeit.
Ausgang

Systemsoftware für S7-300/400 Standardfunktionen Teil 2


5-2 A5E00066866-03
Zeitfunktion und Zeitfunktionsbausteine

Fehlerinformation Diese Funktion erkennt keine Fehlerbedingungen.

Beispiel Bild 5-1 zeigt die Funktionsweise der Operation TONR. Ist der Signalzustand
am Eingang E 0.0 = 1 (aktiviert), dann wird die Funktion TONR ausgeführt. Ist
der Signalzustand am Eingang E 0.1 = 1, der Signalzustand von E 0.2 ist ”0”
und ET ist kleiner als PV, dann wird der Wert DELTA_T zu dem Wert ET ad-
diert. Ist der Wert ET kleiner als der Wert PV, bleibt der Signalzustand von A
1.1 = 0.
Sind keine Fehler aufgetreten, dann wird der Signalzustand von ENO und von
A 4.0 auf ”1” gesetzt.

TONR
E 0.0 FC80 A 4.0
EN ENO

E 0.1 A 1.1
TMR_EN Q

E 0.2
RESET
L#1000 PV
#OB1_PREV_CYCLE DELTA_T
MD100 ET

Bild 5-1 Zeit als speichernde Einschaltverzögerung starten (TONR)

Systemsoftware für S7-300/400 Standardfunktionen Teil 2


A5E00066866-03 5-3
Zeitfunktion und Zeitfunktionsbausteine

5.2 Diskreter Steuerungszeitalarm (DCAT): FB81

Beschreibung Der Funktionsbaustein Diskreter Steuerungszeitalarm (DCAT) akkumuliert die


Zeit ab dem Zeitpunkt, wenn der Eingang (CMD) den Befehl zum Öffnen
(bzw. Schließen) erteilt, bis die voreingestellte Zeit (PT) überschritten ist oder
der Feedback-Eingang (O_FB bzw. C_FB) anzeigt, daß das Gerät innerhalb
der vorgeschriebenen Zeit geöffnet (bzw. geschlossen) wurde. Wird die vorein-
gestellte Zeit überschritten, bevor Feedback empfangen wird, dann wird der
entsprechende Alarm eingeschaltet. Wechselt der Signalzustand des Befehl-
seingangs vor der voreingestellten Zeit, dann wird die Zeit neu gestartet.
• Wechselt der Signalzustand des Eingangs CMD von ”0” nach ”1”, dann
wird der Signalzustand von A auf ”1”, ET auf ”0”, die Signalzustände von
beiden Alarmausgängen (OA, CA) auf ”0” und der Signalzustand von
CMD_HIS auf ”1” gesetzt.
• Wechselt der Signalzustand des Eingangs CMD von ”1” nach ”0”, dann
wird der Signalzustand von A auf ”0”, ET auf ”0”, die Signalzustände von
beiden Alarmausgängen (OA, CA) auf ”0” und der Signalzustand von
CMD_HIS auf ”0” gesetzt.
• Sind die Signalzustände von CMD und CMD_HIS beide ”1” und der Si-
gnalzustand von O_FB ist ”0”, dann wird der Unterschied der Zeit (ms) seit
der letzten Bearbeitung des Funktionsbausteins zu dem Parameter ET ad-
diert. Überschreitet der Wert von ET den Wert von PT, dann wird der Si-
gnalzustand von OA auf ”1” gesetzt, andernfalls wird er auf ”0” gesetzt.
Der Parameter CMD_HIS wird auf den gleichen Signalzustand wie der
Parameter CMD gesetzt.
• Sind die Signalzustände von CMD und CMD_HIS beide ”1”, der Signalzu-
stand von O_FB ist ”1” und der Signalzustand von C_FB ist ”0”, dann wird
der Signalzustand von OA auf ”0” gesetzt. Der Parameter ET wird auf den
gleichen Wert wie PT gesetzt, so daß später, wenn der Signalzustand von
O_FB auf ”0” gesetzt wird, der Alarm bei der nächsten Bearbeitung des
Funktionsbausteins gesetzt wird. Der Parameter CMD_HIS wird auf den
gleichen Signalzustand wie der Parameter CMD gesetzt.
• Sind die Signalzustände von CMD und CMD_HIS beide ”0” und der Si-
gnalzustand von C_FB ist ”0”, dann wird der Unterschied der Zeit (ms) seit
der letzten Bearbeitung des Funktionsbausteins zu dem Parameter ET ad-
diert. Überschreitet der Wert von ET den Wert von PT, dann wird der Si-
gnalzustand von CA auf ”1” gesetzt, andernfalls wird er auf ”0” gesetzt.
Der Parameter CMD_HIS wird auf den gleichen Signalzustand wie der
Parameter CMD gesetzt.
• Sind die Signalzustände von CMD und CMD_HIS beide ”0”, der Signalzu-
stand von O_FB ist ”0” und der Signalzustand von C_FB ist ”1”, dann wird
der Signalzustand von CA auf ”0” gesetzt. Der Parameter ET wird auf den
gleichen Wert wie PT gesetzt, so daß später, wenn der Signalzustand von
C_FB auf ”0” gesetzt wird, der Alarm bei der nächsten Bearbeitung des
Funktionsbausteins gesetzt wird. Der Parameter CMD_HIS wird auf den
gleichen Signalzustand wie der Parameter CMD gesetzt.
• Sind die Signalzustände von O_FB und C_FB gleichzeitig ”1”, dann gilt
dies als Fehlerbedingung und die Signalzustände beider Alarmausgänge
werden auf ”1” gesetzt.

Systemsoftware für S7-300/400 Standardfunktionen Teil 2


5-4 A5E00066866-03
Zeitfunktion und Zeitfunktionsbausteine

Parameter Tabelle 5-2 beschreibt die Parameter des Funktionsbausteins DCAT.

Tabelle 5-2 Parameter des Funktionsbausteins Diskreter Steuerungszeitalarm (FB81)

Parameter Deklaration Datentyp Speicherbereich Beschreibung


EN Eingang BOOL E, A, M, D, L Ein Signalzustand von ”1” am Freigabeeingang
aktiviert die Box.
ENO Ausgang BOOL E, A, M, D, L Der Freigabeausgang hat den Signalzustand ”1”,
wenn der Funktionsbaustein fehlerfrei ausgeführt
wird.
CMD Eingang BOOL E, A, M, D, L Der Signalzustand ”0” gibt den Befehl ”Schließen”
und der Signalzustand ”1” den Befehl ”Öffnen” an.
O_FB Eingang BOOL E, A, M, D, L Feedback-Eingang beim Öffnen
C_FB Eingang BOOL E, A, M, D, L Feedback-Eingang beim Schließen
Q Ausgang BOOL E, A, M, D, L Folgt auf den Eingang CMD
OA Ausgang BOOL E, A, M, D, L Alarmausgang beim Öffnen
CA Ausgang BOOL E, A, M, D, L Alarmausgang beim Schließen
ET Statisch DINT E, A, M, D, L Aktuelle, abgelaufene Zeit; ein Takt = 1 ms
PT Statisch DINT E, A, M, D, L Voreingestellter Zeitwert; ein Takt = 1 ms
PREV_TIME Statisch DWORD E, A, M, D, L Vorherige Systemzeit
CMD_HIS Statisch BOOL E, A, M, D, L Verlaufsbit zu CDM

Systemsoftware für S7-300/400 Standardfunktionen Teil 2


A5E00066866-03 5-5
Zeitfunktion und Zeitfunktionsbausteine

Fehlerinformation Dieser Funktionsbaustein erkennt keine Fehlerbedingungen.

Beispiel Bild 5-2 zeigt die Funktionsweise der Operation DCAT. Ist der Signalzustand
von Eingang E 0.0 = 1 (aktiviert), dann wird der Funktionsbaustein DCAT aus-
geführt. In diesem Beispiel wechselt der Eingang CMD von ”0” auf ”1”, wie
von CMD_HIS und CMD angegeben. Aufgrund dieser Bedingungen erhalten
der Ausgang A und CMD_HIS jeweils den Signalzustand ”1”, ET wird auf ”0”
gesetzt und beide Alarmausgänge OA und CA erhalten den Signalzustand ”0”.
Wird der Funktionsbaustein fehlerfrei ausgeführt, dann werden die Signalzu-
stände von ENO und A 4.0 auf ”1” gesetzt.

Hinweis
Statische Parameter können Sie mit Hilfe des Datenbaustein-Editors
initialisieren.

DB81
DCAT
E 0.0 FB81 A 4.0
EN ENO
M 0.0
CMD Q A 2.0
M 1.0
O_FB OA A 3.0
M 1.1
C_FB CA A 3.1

Vor der Bearbeitung:


CMD M 0.0 = TRUE
O_FB M 1.0 = FALSE
C_FB M 1.1 = FALSE
Q M 2.0 = FALSE
OA M 3.0 = FALSE
CA M 3.1 = FALSE

Instanz-DB81
ET DBD4 = L#12
PT DBD8 = L#22
CMD_HIS DBX16.0 = FALSE

Nach der Bearbeitung:


Q M 2.0 = TRUE
OA M 3.0 = FALSE
CA M 3.1 = FALSE

Instanz-DB81
ET DBD4 = L#0
CMD_HIS DBX16.0 = TRUE

Bild 5-2 Diskreter Steuerungszeitalarm (DCAT)

Systemsoftware für S7-300/400 Standardfunktionen Teil 2


5-6 A5E00066866-03
Zeitfunktion und Zeitfunktionsbausteine

5.3 Motorsteuerungszeitalarm (MCAT): FB82

Beschreibung Der Funktionsbaustein Motorsteuerungszeitalarm (MCAT) akkumuliert die


Zeit ab dem Zeitpunkt, wenn einer der Befehlseingänge (Öffnen oder Schlie-
ßen) eingeschaltet wird, bis die voreingestellte Zeit überschritten ist oder der
entsprechende Feedback-Eingang anzeigt, daß das Gerät die angeforderte Ope-
ration innerhalb der vorgeschriebenen Zeit ausgeführt hat. Wird die voreinge-
stellte Zeit überschritten, bevor Feedback empfangen wird, dann wird der ent-
sprechende Alarm eingeschaltet. Die Reaktionen des Funktionsbausteins
MCAT auf die verschiedenen Eingangsbedingungen werden in der MCAT-
Tabelle dargestellt (siehe Tabelle 5-3).

Tabelle 5-3 MCAT Tabelle

Eingänge Ausgänge
ET O_HIS C_HIS O_CMD C_CMD S_CMD O_FB C_FB OO CO OA CA ET O_HIS C_HIS Q Zustand

X 1 1 X X X X X 0 0 1 1 PT 0 0 0 Alarm

X X X X X X 1 1 0 0 1 1 PT 0 0 0 Alarm

X X X X X 1 X X 0 0 0 0 X 0 0 1 Stoppen

X X X 1 1 X X X 0 0 0 0 X 0 0 1 Stoppen

X 0 X 1 0 0 X X 1 0 0 0 0 1 0 1 Öffnen beginnen

<PT 1 0 X 0 0 0 X 1 0 0 0 INC 1 0 1 Wird geöffnet

X 1 0 X 0 0 1 0 0 0 0 0 PT 1 0 1 Ist geöffnet

>=PT 1 0 X 0 0 0 X 0 0 1 0 PT 1 0 0 Alarm beim Öffnen

X X 0 0 1 0 X X 0 1 0 0 0 0 1 1 Schließen beginnen

<PT 0 1 0 X 0 X 0 0 1 0 0 INC 0 1 1 Wird geschlossen

X 0 1 0 X 0 0 1 0 0 0 0 PT 0 1 1 Ist geschlossen

>=PT 0 1 0 X 0 X 0 0 0 0 1 PT 0 1 0 Alarm beim Schließen

X 0 0 0 0 0 X X 0 0 0 0 X 0 0 1 Gestoppt

Legende:
INC = Unterschied der Zeit (ms) seit der letzten Bearbeitung des FB zu ET addieren
PT = PT wird auf den gleichen Wert wie ET gesetzt
X = Nicht anwendbar
<PT = ET < PT
>= PT = ET >= PT

Systemsoftware für S7-300/400 Standardfunktionen Teil 2


A5E00066866-03 5-7
Zeitfunktion und Zeitfunktionsbausteine

Parameter Tabelle 5-4 beschreibt die Parameter des Funktionsbausteins MCAT.

Tabelle 5-4 Parameter des Funktionsbausteins Motorsteuerungszeitalarm (FB82)

Parameter Deklaration Datentyp Speicherbereich Beschreibung


EN Eingang BOOL E, A, M, D, L Ein Signalzustand von ”1” am Freigabeeingang
aktiviert die Box.
ENO Ausgang BOOL E, A, M, D, L Der Freigabeausgang hat den Signalzustand ”1”,
wenn der Funktionsbaustein fehlerfrei ausgeführt
wird.
O_CMD Eingang BOOL E, A, M, D, L Befehlseingabe ”Öffnen”
C_CMD Eingang BOOL E, A, M, D, L Befehlseingabe ”Schließen”
S_CMD Eingang BOOL E, A, M, D, L Befehlseingabe ”Stoppen”
O_FB Eingang BOOL E, A, M, D, L Feedback-Eingang beim Öffnen
C_FB Eingang BOOL E, A, M, D, L Feedback-Eingang beim Schließen
OO Ausgang BOOL E, A, M, D, L Ausgang ”Öffnen”
CO Ausgang BOOL E, A, M, D, L Ausgang ”Schließen”
OA Ausgang BOOL E, A, M, D, L Alarmausgang beim Öffnen
CA Ausgang BOOL E, A, M, D, L Alarmausgang beim Schließen
Q Ausgang BOOL E, A, M, D, L Der Signalzustand ”1” zeigt eine Fehlerbedingung
an
ET Statisch DINT E, A, M, D, L Aktuelle, abgelaufene Zeit; ein Takt = 1 ms
PT Statisch DINT E, A, M, D, L Voreingestellter Zeitwert; ein Takt = 1 ms
PREV_TIME Statisch DWORD E, A, M, D, L Vorherige Systemzeit
O_HIS Statisch BOOL E, A, M, D, L Verlaufsbit ”Öffnen”
C_HIS Statisch BOOL E, A, M, D, L Verlaufsbit ”Schließen”

Fehlerinformation Dieser Funktionsbaustein erkennt keine Fehlerbedingungen.

Beispiel Bild 5-3 zeigt die Funktionsweise der Operation MCAT. Ist der Signalzustand
von Eingang E 0.0 = 1 (aktiviert), dann wird der Funktionsbaustein MCAT
ausgeführt. In diesem Beispiel ist der Funktionsbaustein MCAT aufgrund der
Signalzustände der Eingänge im geöffneten Zustand und die Ausgänge werden
entsprechend gesetzt.
Wird der Funktionsbaustein fehlerfrei ausgeführt, dann werden die Signalzu-
stände von ENO und A 4.0 auf ”1” gesetzt.

Hinweis
Statische Parameter können Sie mit Hilfe des Datenbaustein-Editors
initialisieren.

Systemsoftware für S7-300/400 Standardfunktionen Teil 2


5-8 A5E00066866-03
Zeitfunktion und Zeitfunktionsbausteine

DB82
MCAT
E 0.0 FB82 A 4.0
EN ENO
M 0.0
O_CMD OO M 2.0
M 0.1
C_CMD CO M 2.1
M 0.2
S_CMD OA M 3.0
M 1.0
O_FB CA M 3.1
M 1.1
C_FB Q M 4.0

Vor der Bearbeitung:


O_CMD M 0.0 = TRUE
C_CMD M 0.1 = FALSE
S_CMD M 0.2 = FALSE
O_FB M 1.0 = FALSE
C_FB M 1.1 = FALSE
OO M 2.0 = FALSE
CO M 2.1 = FALSE
OA M 3.0 = FALSE
CA M 3.1 = FALSE
Q M 4.0 = FALSE

Instanz-DB82
ET DBD4 = L#2
PT DBD8 = L#22
O_HIS DBX16.0 = TRUE
C_HIS DBX16.1 = FALSE

Nach der Bearbeitung:


OO M 2.0 = TRUE
CO M 2.1 = FALSE
OA M 3.0 = FALSE
CA M 3.1 = FALSE
Q M 4.0 = TRUE

Instanz-DB82
ET DBD4 = L#4
O_HIS DBX16.0 = TRUE
CMD_HIS DBX16.1 = FALSE

Bild 5-3 Motorsteuerungszeitalarm (MCAT)

Systemsoftware für S7-300/400 Standardfunktionen Teil 2


A5E00066866-03 5-9
Zeitfunktion und Zeitfunktionsbausteine

5.4 Ereignis maskierbare Drum (DRUM): FB85

Beschreibung Der Funktionsbaustein Ereignis maskierbare Drum (DRUM) belegt die pro-
grammierten Ausgabebits (OUT1 bis OUT16) und das Ausgabewort
(OUT_WORD) mit den programmierten Werten (OUT_VAL) des entsprechen-
den Schritts, der die Bedingungen der Freigabemaske (S_MASK) des Schritts
erfüllt, während der FB DRUM auf diesem Schritt bleibt. Der FB DRUM geht
zum nächsten Schritt über, wenn entweder das Ereignis für den Schritt wahr
wird und die programmierte Zeit für den aktuellen Schritt abläuft oder der Ein-
gang JOG von ”0” auf ”1” wechselt. Ist der Signalzustand von RESET ”1”,
dann wird der FB DRUM zurückgesetzt, wodurch der aktuelle Schritt gleich
dem voreingestellten Schritt (DSP) gesetzt wird.
Die Verweilzeit auf einem Schritt wird festgelegt durch das Produkt aus der
voreingestellten Zeitbasis (DTBP) des FB DRUM und dem voreingestellten
Zählwert/Schrittwerten (S_PRESET) für jeden Schritt. Zu Beginn eines neuen
Schritts wird dieser berechnete Wert in DCC geladen, der die verbleibende Zeit
für den aktuellen Schritt enthält. Ist DTBP beispielsweise 2 und der voreinge-
stellte Wert für Schritt 1 ist 100 (100 ms), dann ist DCC = 200 (200 ms).
Ein Schritt kann mit einem Zeitwert oder einem Ereignis oder beidem pro-
grammiert werden. Schritte, die über ein Ereignisbit und den Zeitwert ”0” ver-
fügen, gehen zum nächsten Schritt über, sobald der Signalzustand des Ereignis-
bits ”1” ist. Schritte, die nur über einen Zeitwert verfügen, starten die Zeit
sofort. Schritte, die über ein Ereignisbit und einen Zeitwert größer als ”0” ver-
fügen, starten die Zeit, wenn der Signalzustand des Ereignisbits ”1” ist. Die
Ereignisbits werden mit dem Signalzustand ”1” initialisiert.
Befindet sich der Pointer des Schritts auf dem letzten programmierten Schritt
(LST_STEP ) und ist die Zeit für diesen Schritt abgelaufen, dann wird der Si-
gnalzustand des Ausgangs A auf ”1” gesetzt, andernfalls wird er auf ”0” ge-
setzt. Ist der Ausgang A gesetzt, dann verweilt der FB Ereignis maskierbare
Drum bis zum Zurücksetzen auf dem Schritt.
In der konfigurierbaren Maske (S_MASK) können Sie die einzelnen Bits in
dem Ausgabewort (OUT_WORD) auswählen und die Ausgabebits (OUT1 bis
OUT16) über die Ausgabewerte (OUT_VAL) setzen/rücksetzen. Ist ein Bit der
konfigurierbaren Maske im Signalzustand ”1”, dann setzt der Wert OUT_VAL
das entsprechende Bit bzw. er setzt es zurück. Befindet sich ein Bit der konfi-
gurierbaren Maske im Signalzustand ”0”, dann wird das entsprechende Bit
nicht verändert. Alle Bits der konfigurierbaren Maske für alle 16 Schritte wer-
den mit dem Signalzustand ”1” initialisiert.
Das Ausgabebit OUT1 entspricht dem niederwertigsten Bit des Ausgabeworts
OUT_WORD. Das Ausgabebit OUT16 entspricht dem höchstwertigen Bit des
Ausgabeworts OUT_WORD.

Systemsoftware für S7-300/400 Standardfunktionen Teil 2


5-10 A5E00066866-03
Zeitfunktion und Zeitfunktionsbausteine

Parameter Tabelle 5-5 beschreibt die Parameter des Funktionsbausteins DRUM.

Tabelle 5-5 Parameter des Funktionsbausteins Ereignis maskierbare Drum (FB85)

Parameter Deklaration Datentyp Speicherbereich Beschreibung


EN Eingang BOOL E, A, M, D, L Ein Signalzustand von ”1” am Freigabeeingang
aktiviert die Box.
ENO Ausgang BOOL E, A, M, D, L Der Freigabeausgang hat den Signalzustand ”1”,
wenn der Funktionsbaustein fehlerfrei ausgeführt
wird.
RESET Eingang BOOL E, A, M, D, L Der Signalzustand ”1” kennzeichnet eine
Rücksetzbedingung.
JOG Eingang BOOL E, A, M, D, L Wechselt der Signalzustand von ”0” auf ”1”, geht
der FB DRUM zum nächsten Schritt über.
DRUM_EN Eingang BOOL E, A, M, D, L Der Signalzustand ”1” läßt das Zählwerk
entsprechend dem Ereignis und den Zählkriterien
weiterzählen.
LST_STEP Eingang BYTE E, A, M, D, L, Nummer des zuletzt programmierten Schritts.
oder Konstante
EVENT1 Eingang BOOL E, A, M, D, L Ereignisbit 1; anfänglicher Signalzustand ist ”1”.
EVENT2 Eingang BOOL E, A, M, D, L Ereignisbit 2; anfänglicher Signalzustand ist ”1”.
EVENT3 Eingang BOOL E, A, M, D, L Ereignisbit 3; anfänglicher Signalzustand ist ”1”.
EVENT4 Eingang BOOL E, A, M, D, L Ereignisbit 4; anfänglicher Signalzustand ist ”1”.
EVENT5 Eingang BOOL E, A, M, D, L Ereignisbit 5; anfänglicher Signalzustand ist ”1”.
EVENT6 Eingang BOOL E, A, M, D, L Ereignisbit 6; anfänglicher Signalzustand ist ”1”.
EVENT7 Eingang BOOL E, A, M, D, L Ereignisbit 7; anfänglicher Signalzustand ist ”1”.
EVENT8 Eingang BOOL E, A, M, D, L Ereignisbit 8; anfänglicher Signalzustand ist ”1”.
EVENT9 Eingang BOOL E, A, M, D, L Ereignisbit 9; anfänglicher Signalzustand ist ”1”.
EVENT10 Eingang BOOL E, A, M, D, L Ereignisbit 10; anfänglicher Signalzustand ist ”1”.
EVENT11 Eingang BOOL E, A, M, D, L Ereignisbit 11; anfänglicher Signalzustand ist ”1”.
EVENT12 Eingang BOOL E, A, M, D, L Ereignisbit 12; anfänglicher Signalzustand ist ”1”.
EVENT13 Eingang BOOL E, A, M, D, L Ereignisbit 13; anfänglicher Signalzustand ist ”1”.
EVENT14 Eingang BOOL E, A, M, D, L Ereignisbit 14; anfänglicher Signalzustand ist ”1”.
EVENT15 Eingang BOOL E, A, M, D, L Ereignisbit 15; anfänglicher Signalzustand ist ”1”.
EVENT16 Eingang BOOL E, A, M, D, L Ereignisbit 16; anfänglicher Signalzustand ist ”1”.
OUT1 Ausgang BOOL E, A, M, D, L Ausgabebit 1
OUT2 Ausgang BOOL E, A, M, D, L Ausgabebit 2
OUT3 Ausgang BOOL E, A, M, D, L Ausgabebit 3
OUT4 Ausgang BOOL E, A, M, D, L Ausgabebit 4
OUT5 Ausgang BOOL E, A, M, D, L Ausgabebit 5
OUT6 Ausgang BOOL E, A, M, D, L Ausgabebit 6
OUT7 Ausgang BOOL E, A, M, D, L Ausgabebit 7
OUT8 Ausgang BOOL E, A, M, D, L Ausgabebit 8

Systemsoftware für S7-300/400 Standardfunktionen Teil 2


A5E00066866-03 5-11
Zeitfunktion und Zeitfunktionsbausteine

Tabelle 5-5 Parameter des Funktionsbausteins Ereignis maskierbare Drum (FB85)

Parameter Deklaration Datentyp Speicherbereich Beschreibung


OUT9 Ausgang BOOL E, A, M, D, L Ausgabebit 9
OUT10 Ausgang BOOL E, A, M, D, L Ausgabebit 10
OUT11 Ausgang BOOL E, A, M, D, L Ausgabebit 11
OUT12 Ausgang BOOL E, A, M, D, L Ausgabebit 12
OUT13 Ausgang BOOL E, A, M, D, L Ausgabebit 13
OUT14 Ausgang BOOL E, A, M, D, L Ausgabebit 14
OUT15 Ausgang BOOL E, A, M, D, L Ausgabebit 15
OUT16 Ausgang BOOL E, A, M, D, L Ausgabebit 16
Q Ausgang BOOL E, A, M, D, L Der Signalzustand ”1” zeigt an, daß die Zeit für
den letzten Schritt abgelaufen ist.
OUT_WORD Ausgang WORD E, A, M, D, L, P Wortadresse, in die das Zählwerk die
Ausgabewerte schreibt.
ERR_CODE Ausgang WORD E, A, M, D, L, P Gibt den Wert W#16#0000 aus, wenn die Opera-
tion fehlerfrei ausgeführt wird. Wird ein anderer
Wert ausgegeben, entnehmen Sie der Fehlerinfor-
mation nähere Angaben hierzu.
JOG_HIS Statisch BOOL E, A, M, D, L Verlaufsbit zu JOG
EOD Statisch BOOL E, A, M, D, L Der Signalzustand ”1” zeigt an, daß die Zeit für
den letzten Schritt abgelaufen ist.
DSP Statisch BYTE E, A, M, D, L, P Voreingestellter Schritt des Zählwerks
DSC Statisch BYTE E, A, M, D, L, P Aktueller Schritt des Zählwerks
DCC Statisch DWORD E, A, M, D, L, P Aktueller Zählwert des Zählwerks
DTBP Statisch WORD E, A, M, D, L, P Voreingestellte Zeitbasis des Zählwerks
PREV_TIME Statisch DWORD E, A, M, D, L Vorherige Systemzeit
S_PRESET Statisch ARRAY E, A, M, D, L Voreingestellter Zählwert für jeden Schritt
mit WORD (1 bis 16); 1 Takt = 1 ms
OUT_VAL Statisch ARRAY E, A, M, D, L Ausgabewerte für jeden Schritt (1 bis 16, 0 bis 15)
mit BOOL
S_MASK Statisch ARRAY E, A, M, D, L Konfigurierbare Maske für jeden Schritt (1 bis 16,
mit BOOL 0 bis 15); anfängliche Signalzustände sind ”1”.

Fehlerinformation Tritt eine der in Tabelle 5-6 aufgeführten Fehlerbedingungen auf, verweilt der
FB DRUM auf dem aktuellen Schritt. Der Signalzustand von ENO wird auf
”0” und ERR_CODE entsprechend gesetzt.

Tabelle 5-6 Fehlerbedingungen für FB85

ERR_CODE Erläuterung
W#16#000B Der Wert von LST_STEP ist kleiner als 1 oder größer als 16.
W#16#000C Der Wert von DSC ist kleiner als 1 oder größer als LST_STEP.
W#16#000D Der Wert von DSP ist kleiner als 1 oder größer als LST_STEP.

Systemsoftware für S7-300/400 Standardfunktionen Teil 2


5-12 A5E00066866-03
Zeitfunktion und Zeitfunktionsbausteine

Beispiel Bild 5-4 zeigt die Funktionsweise der Operation DRUM. Ist der Signalzustand
von Eingang E 0.0 = 1 (aktiviert), dann wird der Funktionsbaustein DRUM
ausgeführt. In diesem Beispiel geht der FB DRUM von Schritt 1 nach Schritt 2
über. Die Ausgabebits (OUT1 usw.) und OUT_WORD werden aufgrund der
konfigurierten Maske für Schritt 2 und der Bits von OUT_VAL für Schritt 2
gesetzt.
Wird der Funktionsbaustein fehlerfrei ausgeführt, dann werden die Signalzu-
stände von ENO und A 4.0 auf ”1” und ERR_CODE auf W#16#0000 gesetzt.

Hinweis
Statische Parameter können Sie mit Hilfe des Datenbaustein-Editors
initialisieren.

DB85
E 0.0 DRUM A 4.0
EN FB85 ENO
M 0.0
RESET
M 0.1
JOG OUT1 M 4.0
M 0.2 OUT2 M 4.1
DRUM_EN OUT3 M 4.2
OUT4 M 4.3
MB1 LST_STEP OUT5 M 4.4
M 20.0 EVENT1 OUT6 M 4.5
EVENT2 OUT7 M 4.6
M 20.1 EVENT3 OUT8 M 4.7
EVENT4 OUT9 M 5.0
EVENT5 OUT10 M 5.1
M 20.2
EVENT6 OUT11 M 5.2
M 20.3 EVENT7 OUT12 M 5.3
EVENT8 OUT13 M 5.4
M 20.4 EVENT9 OUT14 M 5.5
EVENT10 OUT15 M 5.6
M 20.5 EVENT11 OUT16 M 5.7
EVENT12 Q M 6.0
M 20.6 EVENT13 OUT_WORD MW8
EVENT14 ERR_CODE MW10
M 20.7 EVENT15
EVENT16

Bild 5-4 Ereignis maskierbare Drum (DRUM)

Systemsoftware für S7-300/400 Standardfunktionen Teil 2


A5E00066866-03 5-13
Zeitfunktion und Zeitfunktionsbausteine

Vor der Ausführung: Vor der Ausführung (Fortsetzung):


Eingänge S_MASK [2,0] DBX92.0 = FALSE
RESET M0.0 = FALSE S_MASK [2,1] DBX92.1 = TRUE
JOG M0.1 = FALSE S_MASK [2,2] DBX92.2 = TRUE
DRUM_EN M0.2 = TRUE S_MASK [2,3] DBX92.3 = TRUE
LST_STEP MB1 = B#16#08 S_MASK [2,4] DBX92.4 = TRUE
EVENT2 M20.0 = FALSE S_MASK [2,5] DBX92.5 = FALSE
EVENT4 M20.1 = FALSE S_MASK [2,6] DBX92.6 = TRUE
EVENT6 M20.2 = FALSE S_MASK [2,7] DBX92.7 = TRUE
EVENT8 M20.3 = FALSE S_MASK [2,8] DBX93.0 = FALSE
EVENT10 M20.4 = FALSE S_MASK [2,9] DBX93.1 = FALSE
EVENT12 M20.5 = FALSE S_MASK [2,10] DBX93.2 = TRUE
EVENT14 M20.6 = FALSE S_MASK [2,11] DBX93.3 = TRUE
EVENT16 M20.7 = FALSE S_MASK [2,12] DBX93.4 = TRUE
Instanz–DB85 S_MASK [2,13] DBX93.5 = TRUE
JOG_HIS DBX12.0 = FALSE S_MASK [2,14] DBX93.6 = FALSE
EOD DBX12.1 = FALSE S_MASK [2,15] DBX93.7 = TRUE
DSP DBB13 = W#16#0001 Ausgänge
DSC DBB14 = W#16#0001 Q M6.0 = FALSE
DCC DBD16 = DW#16#0000000A OUTWORD MW8 = W#16#FFFF
DTBP DBW20 = W#16#0001 OUT1 M4.0 = TRUE
S_PRESET [1] DBW26 = W#16#0064 OUT2 M4.1 = TRUE
S_PRESET [2] DBW28 = W#16#00C8 OUT3 M4.2 = TRUE
OUT_VAL [1,0] DBX58.0 = TRUE OUT4 M4.3 = TRUE
OUT_VAL [1,1] DBX58.1 = TRUE OUT5 M4.4 = TRUE
OUT_VAL [1,2] DBX58.2 = TRUE OUT6 M4.5 = TRUE
OUT_VAL [1,3] DBX58.3 = TRUE OUT7 M4.6 = TRUE
OUT_VAL [1,4] DBX58.4 = TRUE OUT8 M4.7 = TRUE
OUT_VAL [1,5] DBX58.5 = TRUE OUT9 M5.0 = TRUE
OUT_VAL [1,6] DBX58.6 = TRUE OUT10 M5.1 = TRUE
OUT_VAL [1,7] DBX58.7 = TRUE OUT11 M5.2 = TRUE
OUT_VAL [1,8] DBX59.0 = TRUE OUT12 M5.3 = TRUE
OUT_VAL [1,9] DBX59.1 = TRUE OUT13 M5.4 = TRUE
OUT_VAL [1,10] DBX59.2 = TRUE OUT14 M5.5 = TRUE
OUT_VAL [1,11] DBX59.3 = TRUE OUT15 M5.6 = TRUE
OUT_VAL [1,12] DBX59.4 = TRUE OUT16 M5.7 = TRUE
OUT_VAL [1,13] DBX59.5 = TRUE Nach der Ausführung:
OUT_VAL [1,14] DBX59.6 = TRUE
OUT_VAL [1,15] DBX59.7 = TRUE OUT1 M4.0 = TRUE
OUT_VAL [2,0] DBX60.0 = FALSE OUT2 M4.1 = FALSE
OUT_VAL [2,1] DBX60.1 = FALSE OUT3 M4.2 = FALSE
OUT_VAL [2,2] DBX60.2 = FALSE OUT4 M4.3 = FALSE
OUT_VAL [2,3] DBX60.3 = FALSE OUT5 M4.4 = FALSE
OUT_VAL [2,4] DBX60.4 = FALSE OUT6 M4.5 = TRUE
OUT_VAL [2,5] DBX60.5 = FALSE OUT7 M4.6 = FALSE
OUT_VAL [2,6] DBX60.6 = FALSE OUT8 M4.7 = FALSE
OUT_VAL [2,7] DBX60.7 = FALSE OUT9 M5.0 = TRUE
OUT_VAL [2,8] DBX61.0 = FALSE OUT10 M5.1 = TRUE
OUT_VAL [2,9] DBX61.1 = FALSE OUT11 M5.2 = FALSE
OUT_VAL [2,10] DBX61.2 = FALSE OUT12 M5.3 = FALSE
OUT_VAL [2,11] DBX61.3 = FALSE OUT13 M5.4 = FALSE
OUT_VAL [2,12] DBX61.4 = FALSE OUT14 M5.5 = FALSE
OUT_VAL [2,13] DBX61.5 = FALSE OUT15 M5.6 = TRUE
OUT_VAL [2,14] DBX61.6 = FALSE OUT16 M5.7 = FALSE
OUT_VAL [2,15] DBX61.7 = FALSE Q M6.0 = FALSE
OUTWORD MW8 = W#16#4321
ERR_CODE MW10 = W#16#0000
Instanz–DB85
JOG_HIS DBX12.0 = FALSE
EOD DBX12.1 = FALSE
DSC DBB14 = W#16#0002
DCC DBD16 = DW#16#000000C8

Bild 5-4 Ereignis maskierbare Drum (DRUM), Fortsetzung

Systemsoftware für S7-300/400 Standardfunktionen Teil 2


5-14 A5E00066866-03
Umwandlungsfunktionen und
Umwandlungsfunktionsbaustein 6
Dieses Kapitel beschreibt die Umwandlungsfunktionen (FCs) und den Um-
wandlungsfunktionsbaustein (FB), die Ihnen zusätzlich zu den Standardopera-
tionen zur Verfügung stehen und eine größere Flexibilität beim Programmieren
bieten.

Abschnitt Beschreibung Seite


6.1 Bitmuster für 7-Segment-Anzeige erzeugen (SEG): 6-2
FC93
6.2 ASCII-Zeichenkette in Hexadezimalzahl wandeln 6-4
(ATH): FC94
6.3 Hexadezimalzahl in ASCII-Zeichenkette wandeln 6-6
(HTA): FC95
6.4 Vorgegebenes Bit im Wort setzen (ENCO): FC96 6-8
6.5 Bitnummer des niederwertigsten gesetzten Bits lesen 6-9
(DECO): FC97
6.6 Zehnerkomplement erzeugen (BCDCPL): FC98 6-10
6.7 Anzahl der gesetzten Bits zählen (BITSUM): FC99 6-11
6.8 Werte skalieren (SCALE): FC105 6-12
6.9 Werte deskalieren (UNSCALE): FC106 6-14
6.10 Lead/Lag Algorithmus (LEAD_LAG): FB80 6-16

Systemsoftware für S7-300/400 Standardfunktionen Teil 2


A5E00066866-03 6-1
Umwandlungsfunktionen und Umwandlungsfunktionsbaustein

6.1 Bitmuster für 7-Segment-Anzeige erzeugen (SEG): FC93

Beschreibung Die Funktion Bitmuster für 7-Segment-Anzeige erzeugen (SEG) wandelt jede
der vier Hexadezimalziffern des angegebenen Quellworts (IN) in vier equiva-
lente Codes für eine 7-Segment-Anzeige um und schreibt diese in das Doppel-
wort des Ausgangs (OUT).
Bild 6-1 zeigt die Beziehung zwischen den Hexadezimalziffern des Eingangs
und den Bitmustern des Ausgangs.

Ziffer – g f e d c b a Anzeige
0000 00111111 0
0001 00000110 1
0010 01011011 2 7-Segment-
Anzeige
0011 01001111 3
a
0100 01100110 4
0101 01101101 5
0110 01111101 6 f b
g
0111 00000111 7
1000 01111111 8
1001 01100111 9 e c
d
1010 01110111 A
1011 01111100 b
1100 00111001 C
1101 01011110 d
1110 01111001 E
1111 01110001 F

Bild 6-1 Bitmuster für die 7-Segment-Anzeige

Parameter Tabelle 6-1 beschreibt die Parameter der Funktion SEG.

Tabelle 6-1 Parameter der Funktion Bitmuster für 7-Segment-Anzeige erzeugen (FC93)

Parameter Deklaration Datentyp Speicherbereich Beschreibung


EN Eingang BOOL E, A, M, D, L Ein Signalzustand von ”1” am Freigabeeingang
aktiviert die Box.
ENO Ausgang BOOL E, A, M, D, L Der Freigabeausgang hat den Signalzustand ”1”,
wenn die Funktion fehlerfrei ausgeführt wird.
IN Eingang WORD E, M, D, P, oder Quellwort mit vier Hexadezimalziffern.
Konstante
OUT Ausgang DWORD A, M, D, L, P Bitmuster des Ziels mit vier Bytes.

Systemsoftware für S7-300/400 Standardfunktionen Teil 2


6-2 A5E00066866-03
Umwandlungsfunktionen und Umwandlungsfunktionsbaustein

Fehlerinformation Diese Funktion erkennt keine Fehlerbedingungen.

Beispiel Bild 6-2 zeigt die Funktionsweise der Operation SEG. Ist der Signalzustand am
Eingang E 0.0 = 1 (aktiviert), dann wird die Funktion SEG ausgeführt.
Wird die Funktion fehlerfrei ausgeführt, dann werden die Signalzustände von
ENO und A 4.0 auf ”1” gesetzt.

SEG
E 0.0 FC93 A 4.0
EN ENO

W#16#1234 IN OUT MD0

OUT MD 0 = DW#16#065B4F66

Bild 6-2 Bitmuster für 7-Segment-Anzeige erzeugen (SEG)

Systemsoftware für S7-300/400 Standardfunktionen Teil 2


A5E00066866-03 6-3
Umwandlungsfunktionen und Umwandlungsfunktionsbaustein

6.2 ASCII-Zeichenkette in Hexadezimalzahl wandeln (ATH): FC94

Beschreibung Die Funktion ASCII-Zeichenkette in Hexadezimalzahl wandeln (ATH) wandelt


die ASCII-Zeichenkette, auf die der Parameter IN zeigt, in Hexadezimalziffern
um und speichert diese in der Zieltabelle, auf die der Parameter OUT zeigt. Da
ein ASCII-Zeichen 8 Bits benötigt und eine Hexadezimalziffer nur 4 Bits, ist
das Ausgabewort nur halb so lang wie das Eingabewort. Die ASCII-Zeichen
werden nach dem Umwandeln in dem Ausgang in der gleichen Reihenfolge
angeordnet, in der sie eingelesen wurden. Handelt es sich um eine ungerade
Anzahl an ASCII-Zeichen, wird die Hexadezimalziffer in dem Halbbyte ganz
rechts der zuletzt umgewandelten Hexadezimalziffer mit Nullen aufgefüllt.

Parameter Tabelle 6-2 beschreibt die Parameter der Funktion ATH.

Tabelle 6-2 Parameter der Funktion ASCII-Zeichenkette in Hexadezimalzahl wandeln (FC94)

Parameter Deklaration Datentyp Speicherbereich Beschreibung


EN Eingang BOOL E, A, M, D, L Ein Signalzustand von ”1” am Freigabeeingang
aktiviert die Box.
ENO Ausgang BOOL E, A, M, D, L Der Freigabeausgang hat den Signalzustand ”1”,
wenn die Funktion fehlerfrei ausgeführt wird.
IN Eingang Pointer* E, A, M, D, L Zeigt auf die Anfangsadresse einer
ASCII-Zeichenkette.
N Eingang INT E, A, M, L, P Anzahl der ASCII-Zeichen, die umgewandelt werden
sollen.
RET_VAL Ausgang WORD E, A, M, D, L, P Gibt den Wert W#16#0000 aus, wenn die Operation
fehlerfrei ausgeführt wird. Wird ein anderer Wert
ausgegeben, entnehmen Sie der Fehlerinformation
nähere Angaben hierzu.
OUT Ausgang Pointer* A, M, D, L Zeigt auf die Anfangsadresse der Tabelle.

* Pointer im Doppelwortformat bei der bereichsübergreifenden, registerindirekten Adressierung

Fehlerinformation Wird ein ungültiges ASCII-Zeichen erkannt, dann wird es als ”0” umgewan-
delt. Der Signalzustand von ENO wird auf ”0” gesetzt und RET_VAL ist
gleich W#16#0007.

Systemsoftware für S7-300/400 Standardfunktionen Teil 2


6-4 A5E00066866-03
Umwandlungsfunktionen und Umwandlungsfunktionsbaustein

Beispiel Bild 6-3 zeigt die Funktionsweise der Operation ATH. Ist der Signalzustand
am Eingang E 0.0 = 1 (aktiviert), dann wird die Funktion ATH ausgeführt. Der
Eingangsparameter N = 5 gibt an, daß fünf ASCII-Zeichen umgewandelt wer-
den sollen. Die ASCII-Zeichen werden in dem Datenbaustein 1 gespeichert,
der an der Adresse beginnt, die von dem Pointer IN angegeben wird:
DB1.DBX10.0. Die Zeichenkette wird an der Adresse ausgegeben, die von
dem Pointer OUT angegeben wird: Beginn bei DB2.DBX0.0 (Datenbau-
stein 2). Weil es sich hier um eine ungerade Anzahl an ASCII-Zeichen handelt,
enthält die letzte Hexadezimalziffer nur Nullen in dem rechten Halbbyte, wo-
durch der Hexadezimalwert 0xC0 entsteht (den equivalenten Hexadezimalwert
für jedes ASCII-Zeichen entnehmen Sie dem Bild 6-4).
Wird die Funktion fehlerfrei ausgeführt, dann werden die Signalzustände von
ENO und A 4.0 auf ”1” gesetzt und RET_VAL wird auf W160000 gesetzt.

ATH
E 0.0 FC94 A 4.0
EN ENO
P#DB1.DBX10.0 IN RET_VAL MW0
W#16#05 N OUT P#DB2.DBX0.0
Vor der Bearbeitung:
Darstellung ASCII–Zeichenkette: ‘‘B90AC’’
IN DBB10 = B#16#42
DBB11 = B#16#39
DBB12 = B#16#30
DBB13 = B#16#41
DBB14 = B#16#43
Nach der Bearbeitung:
Darstellung Hexadezimalbyte: B90AC0
OUT DBB0 = B#16#B9
DBB1 = B#16#0A
DBB2 = B#16#C0

Bild 6-3 ASCII-Zeichenkette in Hexadezimalzahl wandeln (ATH)

ASCII-Zeichen Hexadezimalwert Umgewandelte


in ASCII Hexadezimalziffer
0 30 0
1 31 1
2 32 2
3 33 3
4 34 4
5 35 5
6 36 6
7 37 7
8 38 8
9 39 9
A 41 A
B 42 B
C 43 C
D 44 D
E 45 E
F 46 F

Bild 6-4 ASCII-Zeichen und equivalente Hexadezimalwerte

Systemsoftware für S7-300/400 Standardfunktionen Teil 2


A5E00066866-03 6-5
Umwandlungsfunktionen und Umwandlungsfunktionsbaustein

6.3 Hexadezimalzahl in ASCII-Zeichenkette wandeln (HTA): FC95

Beschreibung Die Funktion Hexadezimalzahl in ASCII-Zeichenkette wandeln (HTA)


wandelt Hexadezimalziffern, auf die der Parameter IN zeigt, um und speichert
sie in der Zeichenkette, auf die der Parameter OUT zeigt. Da ein ASCII-
Zeichen 8 Bits benötigt und eine Hexadezimalziffer nur 4 Bits, ist das Ausga-
bewort doppelt so lang wie das Eingabewort. Jedes Halbbyte der Hexadezimal-
ziffer wird in ein Zeichen umgewandelt, und zwar in der gleichen Reihenfolge,
in der sie eingelesen werden (das Halbbyte ganz links der Hexadezimalziffer
wird zuerst umgewandelt, dananch das Halbbyte ganz rechts der gleichen
Ziffer).

Parameter Tabelle 6-3 beschreibt die Parameter der Funktion HTA.

Tabelle 6-3 Parameter der Funktion Hexadezimalzahl in ASCII-Zeichenkette wandeln (FC95)

Parameter Deklaration Datentyp Speicherbereich Beschreibung


EN Eingang BOOL E, A, M, D, L Ein Signalzustand von ”1” am Freigabeeingang
aktiviert die Box.
ENO Ausgang BOOL E, A,,M, D, L Der Freigabeausgang hat den Signalzustand ”1”,
wenn die Funktion fehlerfrei ausgeführt wird.
IN Eingang Pointer* E, A, M, D Zeigt auf die Anfangsadresse der
Hexadezimalziffern.
N Eingang WORD E, A, M, L, P Anzahl der Hexadezimalbytes, die umgewandelt
werden sollen.
OUT Ausgang Pointer* A, M, D, L Zeigt auf die Anfangsadresse der Zieltabelle.

* Pointer im Doppelwortformat bei der bereichsübergreifenden, registerindirekten Adressierung

Fehlerinformation Diese Funktion erkennt keine Fehlerbedingungen.

Systemsoftware für S7-300/400 Standardfunktionen Teil 2


6-6 A5E00066866-03
Umwandlungsfunktionen und Umwandlungsfunktionsbaustein

Beispiel Bild 6-5 zeigt die Funktionsweise der Operation HTA. Ist der Signalzustand
am Eingang E 0.0 = 1 (aktiviert), dann wird die Funktion HTA ausgeführt. Der
Eingangsparameter N = 3 gibt an, daß drei Hexadezimalzeichen umgewandelt
werden sollen. Die Hexadezimalbytes werden in dem Datenbaustein 1 gespei-
chert, der an der Adresse beginnt, die von dem Pointer IN angegeben wird:
DB1.DBX10.0. Die Zeichenkette wird an der Adresse ausgegeben, die von
dem Pointer OUT angegeben wird: Beginn bei DB2.DBX0.0 (Datenbau-
stein 2). Das equivalente ASCII-Zeichen für jeden Hexadezimalwert entneh-
men Sie dem Bild 6-6.
Nach Ausführung der Funktion werden die Signalzustände von ENO und A 4.0
auf ”1” gesetzt.

HTA
E 0.0 FC95 A 4.0
EN ENO
P#DB1.DBX10.0 IN OUT P#DB2.DBX0.0
W#16#03 N

Vor der Bearbeitung:


Darstellung Hexadezimalbyte: F97AC1
IN DBB10 = B#16#F9
DBB11 = B#16#7A
DBB12 = B#16#C1
Nach der Bearbeitung:
Darstellung ASCII-Zeichenkette: ‘‘F97AC1’’
OUT DBB0 = B#16#46
DBB1 = B#16#39
DBB2 = B#16#37
DBB3 = B#16#41
DBB4 = B#16#43
DBB5 = B#16#31

Bild 6-5 Hexadezimalzahl in ASCII-Zeichenkette wandeln (HTA)

Hexadezimalziffer Hexadezimalwert in Umgewandeltes


ASCII ASCII-Zeichen
0 30 0
1 31 1
2 32 2
3 33 3
4 34 4
5 35 5
6 36 6
7 37 7
8 38 8
9 39 9
A 41 A
B 42 B
C 43 C
D 44 D
E 45 E
F 46 F

Bild 6-6 Hexadezimalziffern und equivalente ASCII-Zeichen

Systemsoftware für S7-300/400 Standardfunktionen Teil 2


A5E00066866-03 6-7
Umwandlungsfunktionen und Umwandlungsfunktionsbaustein

6.4 Bitnummer des niederwertigsten gesetzten Bits lesen (ENCO): FC96

Beschreibung Die Funktion Bitnummer des niederwertigsten gesetzten Bits lesen (ENCO)
wandelt den Inhalt des Parameters IN in eine Binärziffer mit 5 Bits um, die der
Bitposition des Bits ganz rechts in dem Parameter IN entspricht, und gibt das
Ergebnis als Funktionswert aus. Hat der Parameter IN den Wert 0000 0001
oder 0000 0000, dann wird der Wert ”0” ausgegeben.

Parameter Tabelle 6-4 beschreibt die Parameter der Funktion ENCO.

Tabelle 6-4 Parameter der Funktion Bitnummer des niederwertigsten gesetzten Bits lesen (FC96)

Parameter Deklaration Datentyp Speicherbereich Beschreibung


EN Eingang BOOL E, A, M, D, L Ein Signalzustand von ”1” am Freigabeeingang
aktiviert die Box.
ENO Ausgang BOOL E, A, M, D, L Der Freigabeausgang hat den Signalzustand ”1”,
wenn die Funktion fehlerfrei ausgeführt wird.
IN Eingang DWORD E, M, D, L, P, Wert, der codiert werden soll.
oder Konstante
RET_VAL Ausgang INT A, M, D, L, P Wert, der ausgegeben wird (enthält eine Binärziffer
mit 5 Bits).

Fehlerinformation Die Funktion erkennt keine Fehlerbedingungen.

Beispiel Bild 6-7 zeigt die Funktionsweise der Operation ENCO. Ist der Signalzustand
am Eingang E 0.0 = 1 (aktiviert), dann wird die Funktion ENCO ausgeführt.
Wird die Funktion fehlerfrei ausgeführt, dann werden die Signalzustände von
ENO und A 4.0 auf ”1” gesetzt.

ENCO
E 0.0 A 4.0
FC96
EN ENO
RET_VAL MW 0
DW#16#12345678 IN

RET_VAL MW 0 = 3

Bild 6-7 Bitnummer des niederwertigsten gesetzten Bits lesen (ENCO)

Systemsoftware für S7-300/400 Standardfunktionen Teil 2


6-8 A5E00066866-03
Umwandlungsfunktionen und Umwandlungsfunktionsbaustein

6.5 Vorgegebenes Bit im Wort setzen (DECO): FC97

Beschreibung Die Funktion Vorgegebenes Bit im Wort setzen (DECO) wandelt eine Binärzif-
fer mit 5 Bits (0 bis 31), die von Eingang IN angegeben wird, um, indem sie
die entsprechende Bitposition in dem Rückgabewert der Funktion setzt. Ist der
Parameter IN größer als 31, wird eine Modulo-32- Operation ausgeführt, damit
eine Binärziffer mit 5 Bits ausgegeben werden kann.

Parameter Tabelle 6-5 beschreibt die Parameter der Funktion DECO.

Tabelle 6-5 Parameter der Funktion Vorgegebenes Bit im Wort setzen (FC97)

Parameter Deklaration Datentyp Speicherbereich Beschreibung


EN Eingang BOOL E, A, M, D, L Ein Signalzustand von ”1” am Freigabeeingang
aktiviert die Box.
ENO Ausgang BOOL E, A, M, D, L Der Freigabeausgang hat den Signalzustand ”1”,
wenn die Funktion fehlerfrei ausgeführt wird.
IN Eingang WORD E, M, D, L, P, Variable, die decodiert werden soll.
oder Konstante
RET_VAL Ausgang DWORD A, M, D, L, P Ausgegebener Wert

Fehlerinformation Die Funktion erkennt keine Fehlerbedingungen.

Beispiel Bild 6-8 zeigt die Funktionsweise der Operation DECO. Ist der Signalzustand
am Eingang E 0.0 = 1 (aktiviert), dann wird die Funktion DECO ausgeführt.
Wird die Funktion fehlerfrei ausgeführt, dann werden die Signalzustände von
ENO und A 4.0 auf ”1” gesetzt.

DECO
E 0.0 A 4.0
FC97
EN ENO
RET_VAL MD 0
W#16#0003 IN

RET_VAL MD 0 = DW#16#00000008

Bild 6-8 Vorgegebenes Bit im Wort setzen (DECO)

Systemsoftware für S7-300/400 Standardfunktionen Teil 2


A5E00066866-03 6-9
Umwandlungsfunktionen und Umwandlungsfunktionsbaustein

6.6 Zehnerkomplement erzeugen (BCDCPL): FC98

Beschreibung Die Funktion Zehnerkomplement erzeugen (BCDCPL) gibt das Zehnerkom-


plement einer siebenstelligen BCD-Zahl aus, die von dem Parameter IN ange-
geben wird. Diese Operation rechnet mit folgender mathematischer Formel:
10000000 (als BCD)
– 7stelliger BCD-Wert
= Zehnerkomplement (als BCD)

Parameter Tabelle 6-6 beschreibt die Parameter der Funktion BCDCPL.

Tabelle 6-6 Parameter der Funktion Zehnerkomplement erzeugen (FC98)

Parameter Deklaration Datentyp Speicherbereich Beschreibung


EN Eingang BOOL E, A, M, D, L Ein Signalzustand von ”1” am Freigabeeingang
aktiviert die Box.
ENO Ausgang BOOL E, A, M, D, L Der Freigabeausgang hat den Signalzustand ”1”,
wenn die Funktion fehlerfrei ausgeführt wird.
IN Eingang DWORD E, M, D, L, P, 7stellige BCD-Zahl
oder Konstante
RET_VAL Ausgang DWORD A, M, D, L, P Ausgegebener Wert

Fehlerinformation Die Funktion erkennt keine Fehlerbedingungen.

Beispiel Bild 6-9 zeigt die Funktionsweise der Operation BCDCPL. Ist der Signalzu-
stand am Eingang E 0.0 = 1 (aktiviert), dann wird die Funktion BCDCPL aus-
geführt.
Wird die Funktion fehlerfrei ausgeführt, dann werden die Signalzustände von
ENO und A 4.0 auf ”1” gesetzt.

BCDCPL
E 0.0 A 4.0
FC98
EN ENO
RET_VAL MD 0
DW#16#01234567 IN

RET_VAL MD 0 = DW#16#08765433

Bild 6-9 Zehnerkomplement erzeugen (BCDCPL)

Systemsoftware für S7-300/400 Standardfunktionen Teil 2


6-10 A5E00066866-03
Umwandlungsfunktionen und Umwandlungsfunktionsbaustein

6.7 Anzahl der gesetzten Bits zählen (BITSUM): FC99

Beschreibung Die Funktion Anzahl der gesetzten Bits zählen (BITSUM) zählt die Anzahl der
Bits, die am Eingang IN auf ”1” gesetzt werden, und gibt diesen Wert als
Funktionswert aus.

Parameter Tabelle 6-7 beschreibt die Parameter der Funktion BITSUM.

Tabelle 6-7 Parameter der Funktion Anzahl der gesetzten Bits zählen (FC99)

Parameter Deklaration Datentyp Speicherbereich Beschreibung


EN Eingang BOOL E, A, M, D, L Ein Signalzustand von ”1” am Freigabeeingang
aktiviert die Box.
ENO Ausgang BOOL E, A, M, D, L Der Freigabeausgang hat den Signalzustand ”1”,
wenn die Funktion fehlerfrei ausgeführt wird
IN Eingang DWORD E, M, D, L, P, Variable, in der die Bits gezählt werden sollen.
oder Konstante
RET_VAL Ausgang INT A, M, D, L, P Ausgegebener Wert

Fehlerinformation Die Funktion erkennt keine Fehlerbedingungen.

Beispiel Bild 6-10 zeigt die Funktionsweise der Operation BITSUM. Ist der Signalzu-
stand am Eingang E 0.0 = 1 (aktiviert), dann wird die Funktion BITSUM aus-
geführt. In diesem Beispiel ist der in MW0 ausgegebene Wert = 13 (Hexa-
dezimal: D), wobei es sich um die Summe der Bits handelt, die in dem
Doppelwort DW#16#12345678 (Hexadezimalwert) auf ”1” gesetzt wurden.
Wird die Funktion fehlerfrei ausgeführt, dann werden die Signalzustände von
ENO und A 4.0 auf ”1” gesetzt.

BITSUM
E 0.0 A 4.0
FC99
EN ENO
RET_VAL MW 0
DW#16#12345678 IN

RET_VAL MW 0 = W#16#000D

Bild 6-10 Anzahl der gesetzten Bits zählen (BITSUM)

Systemsoftware für S7-300/400 Standardfunktionen Teil 2


A5E00066866-03 6-11
Umwandlungsfunktionen und Umwandlungsfunktionsbaustein

6.8 Werte skalieren (SCALE): FC105

Beschreibung Die Funktion Werte skalieren (SCALE) wandelt einen ganzzahligen Wert (IN)
in einen Realzahlenwert um, der in physikalischen Einheiten zwischen einem
unteren und einem oberen Grenzwert (LO_LIM und HI_LIM) skaliert wird.
Das Ergebnis wird in den Parameter OUT geschrieben. Die Funktion SCALE
arbeitet mit der folgenden Gleichung:
OUT = [ ((FLOAT (IN) –K1)/(K2–K1)) * (HI_LIM – LO_LIM) ] + LO_LIM
Die Konstanten K1 und K2 werden unterschiedlich gesetzt, je nachdem, ob der
Eingabewert BIPOLAR oder UNIPOLAR ist.
• BIPOLAR: Es wird angenommen, daß der ganzzahlige Eingabewert
zwischen -27648 und 27648 liegt, deshalb sind
K1 = -27648,0 und K2 = +27648,0.
• UNIPOLAR: Es wird angenommen, daß der ganzzahlige Eingabewert
zwischen 0 und 27648 liegt, deshalb sind
K1 = 0,0 und K2 = +27648,0.
Ist der ganzzahlige Eingabewert größer als K2, dann wird der Ausgang (OUT)
an HI_LIM gebunden und ein Fehler ausgegeben. Ist der ganzzahlige Eingabe-
wert kleiner als K1, dann wird der Ausgang an LO_LIM gebunden und ein
Fehler ausgegeben.
Zum umgekehrten Skalieren wird LO_LIM > HI_LIM programmiert. Beim
umgekehrten Skalieren verringert sich der Ausgabewert, während der Eingabe-
wert zunimmt.

Parameter Tabelle 6-8 beschreibt die Parameter der Funktion SCALE.

Tabelle 6-8 Parameter der Funktion Werte Skalieren (FC105)

Parameter Deklaration Datentyp Speicherbereich Beschreibung


EN Eingang BOOL E, A, M, D, L Ein Signalzustand von ”1” am Freigabeeingang
aktiviert die Box.
ENO Ausgang BOOL E, A, M, D, L Der Freigabeausgang hat den Signalzustand ”1”, wenn
der Funktionsbaustein fehlerfrei ausgeführt wird.
IN Eingang INT E, A, M, D, L, P Eingabewert, der in einen Wert vom Datentyp REAL
oder Konstante in physikalischen Einheiten skaliert werden soll.
HI_LIM Eingang REAL E, A, M, D, L, P Oberer Grenzwert in physikalischen Einheiten
oder Konstante
LO_LIM Eingang REAL E, A, M, D, L, P Unterer Grenzwert in physikalischen Einheiten
oder Konstante
BIPOLAR Eingang BOOL E, A, M, D, L Bei dem Signalzustand ”1” handelt es sich um einen
bipolaren Eingabewert, bei dem Signalzustand ”0”
handelt es sich um einen unipolaren Eingabewert.
OUT Ausgang REAL E, A, M, D, L, P Ergebnis der Skalierung
RET_VAL Ausgang WORD E, A, M, D, L, P Gibt den Wert W#16#0000 aus, wenn die Operation
fehlerfrei ausgeführt wird. Wird ein anderer Wert
ausgegeben, entnehmen Sie der Fehlerinformation
nähere Angaben hierzu.

Systemsoftware für S7-300/400 Standardfunktionen Teil 2


6-12 A5E00066866-03
Umwandlungsfunktionen und Umwandlungsfunktionsbaustein

Fehlerinformation Ist der ganzzahlige Eingabewert größer als K2, dann wird der Ausgang (OUT)
an HI_LIM gebunden und ein Fehler ausgegeben. Ist der ganzzahlige Eingabe-
wert kleiner als K1, dann wird der Ausgang an LO_LIM gebunden und ein
Fehler ausgegeben. Der Signalzustand von ENO wird auf ”0” und RET_VAL
wird auf W#16#0008 gesetzt.

Beispiel Bild 6-11 zeigt die Funktionsweise der Operation SCALE. Ist der Signalzu-
stand von Eingang E 0.0 = 1 (aktiviert), dann wird die Funktion SCALE ausge-
führt. In diesem Beispiel wird der ganzzahlige Wert 22 in eine Realzahl umge-
wandelt, die zwischen 0,0 und 100,0 skaliert und in den Ausgang OUT
geschrieben wird. Der Eingabewert ist BIPOLAR. Dies wird von dem Signal-
zustand des Eingangs E 2.0 angegeben.
Wird die Funktion fehlerfrei ausgeführt, dann werden die Signalzustände von
ENO und A 4.0 auf ”1” gesetzt und RET_VAL wird auf W#16#0008 gesetzt.

SCALE
E 0.0 FC105 A 4.0
EN ENO

MW10 IN RET_VAL MW0


MD20 HI_LIM OUT MD40
MD30 LO_LIM
E 2.0
BIPOLAR

Vor der Bearbeitung:


IN MW10 = 22

HI_LIM MD20 = 100.0

LO_LIM MD30 = 0.0

OUT MD40 = 0.0

BIPOLAR E 2.0 = TRUE

Nach der Bearbeitung:


OUT MD40 = 50.03978588

Bild 6-11 Werte skalieren (SCALE)

Systemsoftware für S7-300/400 Standardfunktionen Teil 2


A5E00066866-03 6-13
Umwandlungsfunktionen und Umwandlungsfunktionsbaustein

6.9 Werte deskalieren (UNSCALE): FC106

Beschreibung Die Funktion Werte deskalieren (UNSCALE) wandelt einen Realzahlenwert


(IN), der in physikalischen Einheiten zwischen einem unteren und einem obe-
ren Grenzwert (LO_LIM und HI_LIM) skaliert ist, in einen ganzzahligen Wert
um. Das Ergebnis wird in den Parameter OUT geschrieben. Die Funktion
UNSCALE arbeitet mit der folgenden Gleichung:
OUT = [ ((IN–LO_LIM)/(HI_LIM–LO_LIM)) * (K2–K1) ] + K1
Die Konstanten K1 und K2 werden unterschiedlich gesetzt, je nachdem, ob der
Eingabewert BIPOLAR oder UNIPOLAR ist.
• BIPOLAR: Es wird angenommen, daß der ganzzahlige Ausgabewert
zwischen -27648 und 27648 liegt, deshalb sind
K1 = -27648,0 und K2 = +27648,0.
• UNIPOLAR: Es wird angenommen, daß der ganzzahlige Ausgabewert
zwischen 0 und 27648 liegt, deshalb sind
K1 = 0,0 und K2 = +27648,0.
Liegt der Eingabewert nicht in dem Bereich zwischen LO_LIM und HI_LIM,
dann wird der Ausgang (OUT) an den nächsten Grenzwert (den oberen oder
den unteren) für den angegebenen Bereich des jeweiligen Typs (BIPOLAR
oder UNIPOLAR) gebunden und ein Fehler ausgegeben.

Parameter Tabelle 6-9 beschreibt die Parameter der Funktion UNSCALE.

Tabelle 6-9 Parameter der Funktion Werte deskalieren (FC106)

Parameter Deklaration Datentyp Speicherbereich Beschreibung


EN Eingang BOOL E, A, M, D, L Ein Signalzustand von ”1” am Freigabeeingang
aktiviert die Box.
ENO Ausgang BOOL E, A, M, D, L Der Freigabeausgang hat den Signalzustand ”1”,
wenn der Funktionsbaustein fehlerfrei ausgeführt
wird.
IN Eingang REAL E, A, M, D, L, P Eingabewert, der in einen ganzzahligen Wert
oder Konstante deskaliert werden soll.
HI_LIM Eingang REAL E, A, M, D, L, P Oberer Grenzwert in physikalischen Einheiten
oder Konstante
LO_LIM Eingang REAL E, A, M, D, L, P Unterer Grenzwert in physikalischen Einheiten
oder Konstante
BIPOLAR Eingang BOOL E, A, M, D, L Bei dem Signalzustand ”1” handelt es sich um einen
bipolaren Eingabewert, bei dem Signalzustand ”0”
handelt es sich um einen unipolaren Eingabewert.
OUT Ausgang INT E, A, M, D, L, P Ergebnis der Deskalierung
RET_VAL Ausgang WORD E, A, M, D, L, P Gibt den Wert W#16#0000 aus, wenn die Operation
fehlerfrei ausgeführt wird. Wird ein anderer Wert
ausgegeben, entnehmen Sie der Fehlerinformation
nähere Angaben hierzu.

Systemsoftware für S7-300/400 Standardfunktionen Teil 2


6-14 A5E00066866-03
Umwandlungsfunktionen und Umwandlungsfunktionsbaustein

Fehlerinformation Liegt der Eingabewert nicht in dem Bereich zwischen LO_LIM und HI_LIM,
dann wird der Ausgang (OUT) an den nächsten Grenzwert (den oberen oder
den unteren) für den angegebenen Bereich des jeweiligen Typs (BIPOLAR
oder UNIPOLAR) gebunden und ein Fehler ausgegeben. Der Signalzustand
von ENO wird auf ”0” und RET_VAL wird auf W#16#0008 gesetzt.

Beispiel Bild 6-12 zeigt die Funktionsweise der Operation UNSCALE. Ist der Signalzu-
stand von Eingang E 0.0 = 1 (aktiviert), dann wird die Funktion UNSCALE
ausgeführt. In diesem Beispiel wird die Realzahl 50.03978588, die zwischen
0,0 und 100,0 skaliert ist, in einen ganzzahligen Wert umgewandelt und in den
Ausgang OUT geschrieben. Der Eingabewert ist BIPOLAR. Dies wird von
dem Signalzustand des Eingangs E 2.0 angegeben.
Wird die Funktion fehlerfrei ausgeführt, dann werden die Signalzustände von
ENO und A 4.0 auf ”1” gesetzt und RET_VAL wird auf W#16#0008 gesetzt.

UNSCALE
E 0.0 FC106 A 4.0
EN ENO

MD10 IN RET_VAL MW0


MD20 HI_LIM OUT MW40
MD30 LO_LIM
E 2.0
BIPOLAR

Vor der Bearbeitung:


IN MD10 = 50.03978588

HI_LIM MD20 = 100.0

LO_LIM MD30 = 0.0

OUT MW40 = 0

BIPOLAR E 2.0 = TRUE

Nach der Bearbeitung:


OUT MW40 = 22

Bild 6-12 Werte deskalieren (UNSCALE)

Systemsoftware für S7-300/400 Standardfunktionen Teil 2


A5E00066866-03 6-15
Umwandlungsfunktionen und Umwandlungsfunktionsbaustein

6.10 Lead/Lag Algorithmus (LEAD_LAG): FB80

Beschreibung Mit dem Funktionsbaustein Lead/Lag Algorithmus (LEAD_LAG) können mit


einer analogen Variable Signale bearbeitet werden. Ein Ausgang (OUT) wird
aufgrund eines Eingangs (IN) und der angegebenen Werte für Verstärken
(GAIN), Voreilen (LD_TIME) und Nacheilen (LG_TIME) berechnet. Der Wert
für die Verstärkung muß größer sein als Null. Der LEAD_LAG Algorithmus
arbeitet mit der folgenden Gleichung:

und OUT =

LG_TIME LD_TIME + SAMPLE_T LD_TIME


PREV_OUT + GAIN IN – GAIN PREV_I
LG_TIME + SAMPLE_T LG_TIME + SAMPLE_T LG_TIME + SAMPLE_T
N

Typischerweise wird der FB LEAD_LAG zusammen mit Schleifen zur Kom-


pensation bei der dynamischen Vorwärtsregelung eingesetzt. LEAD_LAG be-
steht aus zwei Teilen. Die Phase LEAD verschiebt die Phase des Ausgangs des
Funktionsbausteins, so daß der Ausgang dem Eingang voreilt. Die Phase LAG
hingegen verschiebt den Ausgang, so daß der Ausgang dem Eingang nacheilt.
Da die Operation LAG mit einer Integration gleichzusetzen ist, kann sie als
Entstörelement oder als Tiefpaßfilter eingesetzt werden. Die Operation LEAD
entspricht einer Differentiation und entspricht deshalb einem Hochpaßfilter.
Beide Operationen zusammen (LEAD_LAG) führen dazu, daß die Ausgangs-
phase dem Eingang bei niederen Frequenzen nacheilt und ihm bei hohen Fre-
quenzen voreilt. Deshalb kann LEAD_LAG als Bandpaßfilter eingesetzt wer-
den.

Systemsoftware für S7-300/400 Standardfunktionen Teil 2


6-16 A5E00066866-03
Umwandlungsfunktionen und Umwandlungsfunktionsbaustein

Parameter Tabelle 6-10 beschreibt die Parameter des Funktionsbausteins LEAD_LAG.

Tabelle 6-10 Parameter des Funktionsbausteins Lead/Lag Algorithmus (FB80)

Parameter Deklaration Datentyp Speicherbereich Beschreibung


EN Eingang BOOL E, A, M, D, L Ein Signalzustand von ”1” am Freigabeeingang
aktiviert die Box.
ENO Ausgang BOOL E, A, M, D, L Der Freigabeausgang hat den Signalzustand ”1”,
wenn der Funktionsbaustein fehlerfrei ausgeführt
wird.
IN Eingang REAL E, A, M, D, L, P Eingabewert des aktuellen Beispielzeitraums, der
oder Konstante bearbeitet werden soll
SAMPLE_T Eingang INT E, A, M, D, L, P Beispielzeit
oder Konstante
OUT Ausgang REAL E, A, M, D, L, P Ergebnis der Operation LEAD_LAG
oder Konstante
ERR_CODE Ausgang WORD E, A, M, D, L, P Gibt den Wert W#16#0000 aus, wenn die Opera-
tion fehlerfrei ausgeführt wird. Wird ein anderer
Wert ausgegeben, entnehmen Sie der Fehlerinfor-
mation nähere Angaben hierzu.
LD_TIME Statisch REAL E, A, M, D, L, P Voreilzeit in Minuten
oder Konstante
LG_TIME Statisch REAL E, A, M, D, L, P Nacheilzeit in Minuten
oder Konstante
GAIN Statisch REAL E, A, M, D, L, P Verstärkung in % / % (Verhältnis von
oder Konstante Ausgabeveränderung zu Eingabeveränderung als
stetiger Zustand)
PREV_IN Statisch REAL E, A, M, D, L, P Vorheriger Eingang
oder Konstante
PREV_OUT Statisch REAL E, A, M, D, L, P Vorheriger Ausgang
oder Konstante

Fehlerinformation Ist GAIN kleiner als oder gleich ”0”, dann wird der Funktionsbaustein nicht
ausgeführt. Der Signalzustand von ENO wird auf ”0” und ERR_CODE wird
auf W#16#0009 gesetzt.

Systemsoftware für S7-300/400 Standardfunktionen Teil 2


A5E00066866-03 6-17
Umwandlungsfunktionen und Umwandlungsfunktionsbaustein

Beispiel Bild 6-13 zeigt die Funktionsweise der Operation LEAD_LAG. Ist der Signal-
zustand von Eingang E 0.0 = 1 (aktiviert), dann wird die Funktion
LEAD_LAG ausgeführt. In diesem Beispiel wird der Eingabewert (IN) 2.0 mit
dem LEAD_LAG Algorithmus bearbeitet. Ergebnis ist Ausgang OUT.
Wird die Funktion fehlerfrei ausgeführt, dann werden die Signalzustände von
ENO und A 4.0 auf ”1” gesetzt und ERR_CODE wird auf W#16#0000 gesetzt.

Hinweis
Statische Parameter können Sie mit Hilfe des Datenbaustein-Editors initiali-
sieren.

DB80
LEAD_LAG
E 0.0 FB80 A 4.0
EN ENO
MD10 IN OUT MD20

10 SAMPLE_T ERR_CODE MW0

Vor der Bearbeitung:


IN MD10 = 2.0

OUT MD20 = 0.0


Instanz-DB80

LD_TIME DBD12 = 2.0

LG_TIME DBD16 = 2.0

GAIN DBD20 = 1.0

PREV_IN DBD24 = 6.0

PREV_OUT DBD28 = 6.0

Nach der Bearbeitung:


Instanz-DB80

PREV_IN DBD24 = 2.0

PREV_OUT DBD28 = 2.0

OUT MD20 = 2.0

Bild 6-13 LEAD/LAG Algorithmus (LEAD_LAG)

Systemsoftware für S7-300/400 Standardfunktionen Teil 2


6-18 A5E00066866-03
Gleitpunktfunktion 7
Dieses Kapitel beschreibt die Gleitpunktfunktion (FC), die Ihnen zusätzlich
zu den Standardoperationen zur Verfügung steht und eine größere Flexibilität
beim Programmieren bietet.

Abschnitt Beschreibung Seite


7.1 Standardabweichung (DEV): FC102 7-2

Systemsoftware für S7-300/400 Standardfunktionen Teil 2


A5E00066866-03 7-1
Gleitpunktfunktion

7.1 Standardabweichung (DEV): FC102

Beschreibung Die Funktion Standardabweichung (DEV) errechnet die Standardabweichung


von einer Gruppe von Werten, die in einer Tabelle (TBL) gespeichert sind.
Das Ergebnis wird in OUT abgelegt. Die Standardabweichung wird nach fol-
gender Formel berechnet:

Standardabweichung = (N * QuSumme) - Summe2


N * (N - 1)

und: Summe = Summe der Werte in TBL


N = Anzahl der Werte in TBL
QuSumme = Summe aller Werte in TBL zum Quadrat
Alle Berechnungen verwenden IEEE-Gleitpunktwerte, wobei die Datentypen,
sofern erforderlich, automatisch von der Funktion umgewandelt werden.
• Der erste Eintrag in der Tabelle gibt die Anzahl der Einträge in der Ta-
belle (Tabellenlänge) an.
• Der zweite Eintrag in der Tabelle enthält den ersten Tabellenwert.
• Die Größe der Tabelleneinträge und der errechnete Wert (OUT) werden
von E_TYPE festgelegt.

Parameter Tabelle 7-1 beschreibt die Parameter der Funktion DEV.

Tabelle 7-1 Parameter der Funktion Standardabweichung (FC102)

Parameter Deklaration Datentyp Speicherbereich Beschreibung


EN Eingang BOOL E, A, M, D, L Ein Signalzustand von ”1” am Freigabeeingang
aktiviert die Box.
ENO Ausgang BOOL E, A, M, D, L Der Freigabeausgang hat den Signalzustand ”1”,
wenn die Funktion fehlerfrei ausgeführt wird.
TBL Eingang Pointer* E, A, M, D Zeigt auf die Anfangsadresse der Tabelle mit den
Werten
OUT Eingang Pointer* E, A, M, D Zeigt auf die Adresse, die den errechneten Wert für
die Standardabweichung enthält.
E_TYPE Eingang BYTE E, A, M, D, L,P Gibt den Datentyp der Tabelleneinträge an. Die
folgenden Datentypen sind für die Funktion DEV
gültig:
B#16#05 = INT
B#16#07 = DINT
B#16#08 = REAL
RET_VAL Ausgang WORD E, A, M, D, L, P Gibt den Wert W#16#0000 aus, wenn die Operation
fehlerfrei ausgeführt wird. Wird ein anderer Wert
ausgegeben, entnehmen Sie der Fehlerinformation
nähere Angaben hierzu.

* Pointer im Doppelwortformat bei der bereichsübergreifenden, registerindirekten Adressierung

Systemsoftware für S7-300/400 Standardfunktionen Teil 2


7-2 A5E00066866-03
Gleitpunktfunktion

Fehlerinformation Tritt eine der in Tabelle 7-2 aufgeführten Bedingungen auf, wird die Funktion
nicht ausgeführt. Der Signalzustand von ENO wird auf ”0” und der Rück-
sprungwert entsprechend gesetzt.

Tabelle 7-2 Fehlerbedingungen für FC102

RET_VAL Erläuterung
W#16#0001 Für einen Parameter der Funktion wurde ein ungültiger Speicher-
bereich angegeben.
W#16#0002 E_TYPE ist ungültig.
W#16#0004 Die Tabellenlänge beträgt Null.

Beispiel Bild 7-1 zeigt die Funktionsweise der Operation DEV. Ist der Signalzustand
von Eingang E 0.0 = 1 (aktiviert), dann wird die Funktion DEV ausgeführt.
In diesem Beispiel gibt es fünf Tabellenwerte. Dies gibt das erste Wort in der
Tabelle an. Die Tabellenwerte sind vom Datentyp REAL. Dies gibt der Para-
meter E_TYPE an.
Wird die Funktion fehlerfrei ausgeführt, dann werden die Signalzustände von
ENO und A 4.0 auf ”1” gesetzt und RET_VAL wird auf W#16#0000 gesetzt.

DEV
E 0.0 FC102 A 4.0
EN ENO

P#DB1.DBX100.0 TBL RET_VAL MW0

P#DB1.DBX130.0 OUT

B#16#08 E_TYPE

Vor der Bearbeitung:


TBL (Tabellenlänge) DBW100 =W#16#0005
DBD102 = 2.0
DBD106 = 4.0
DBD110 = 8.0
DBD114 = 16.0
DBD118 = 32.0

OUT DBD130 = 0.0

Nach der Bearbeitung:


OUT DBD130 = 12.19836055

Bild 7-1 Standardabweichung (DEV)

Systemsoftware für S7-300/400 Standardfunktionen Teil 2


A5E00066866-03 7-3
Gleitpunktfunktion

Systemsoftware für S7-300/400 Standardfunktionen Teil 2


7-4 A5E00066866-03
Vergleichsfunktionsbausteine 8
Dieses Kapitel beschreibt die Vergleichsfunktionsbausteine (FBs), die Ihnen
zusätzlich zu den Standardoperationen zur Verfügung stehen und eine größere
Flexibilität beim Programmieren bieten.

Abschnitt Beschreibung Seite


8.1 Index Matrix Vergleich (IMC): FB83 8-2
8.2 Matrixscanner (SMC): FB84 8-6

Systemsoftware für S7-300/400 Standardfunktionen Teil 2


A5E00066866-03 8-1
Vergleichsfunktionsbausteine

8.1 Index Matrix Vergleich (IMC): FB83

Beschreibung Der Funktionsbaustein Index Matrix Vergleich (IMC) vergleicht den Signal-
zustand von bis zu 16 programmierten Eingabebits (IN_BIT0 bis IN_BIT15)
mit dem entsprechenden Bit einer Vergleichsmaske. Sie können maximal 16
Schritte mit Masken programmieren. IN_BIT0 wird mit CMP_VAL[x,1]
verglichen usw. Die Schrittnummer der Maske, die für den Vergleich verwen-
det werden soll, wird von dem Wert des Parameters CMP_STEP angegeben.
Nicht programmierte Eingabebits oder nicht programmierte Bits der Maske
haben den voreingestellten Signalzustand FALSE. Wird im Vergleich eine
Entsprechung gefunden, dann wird der Signalzustand des Ausgangs (OUT)
auf ”1” gesetzt, andernfalls wird der Ausgang auf ”0” gesetzt.

Systemsoftware für S7-300/400 Standardfunktionen Teil 2


8-2 A5E00066866-03
Vergleichsfunktionsbausteine

Parameter Tabelle 8-1 beschreibt die Parameter des Funktionsbausteins IMC.

Tabelle 8-1 Parameter des Funktionsbausteins Index Matrix Vergleich (FB83)

Parameter Deklaration Datentyp Speicherbereich Beschreibung


EN Eingang BOOL E, A, M, D, L Ein Signalzustand von ”1” am Freigabeeingang
aktiviert die Box.
ENO Ausgang BOOL E, A, M, D, L Der Freigabeausgang hat den Signalzustand ”1”,
wenn der Funktionsbaustein fehlerfrei ausgeführt
wird.
IN_BIT0 Eingang BOOL E, A, M, D, L Eingabebit 0 wird mit Bit 0 der Maske verglichen.
IN_BIT1 Eingang BOOL E, A, M, D, L Eingabebit 1 wird mit Bit 1 der Maske verglichen.
IN_BIT2 Eingang BOOL E, A, M, D, L Eingabebit 2 wird mit Bit 2 der Maske verglichen.
IN_BIT3 Eingang BOOL E, A, M, D, L Eingabebit 3 wird mit Bit 3 der Maske verglichen.
IN_BIT4 Eingang BOOL E, A, M, D, L Eingabebit 4 wird mit Bit 4 der Maske verglichen.
IN_BIT5 Eingang BOOL E, A, M, D, L Eingabebit 5 wird mit Bit 5 der Maske verglichen.
IN_BIT6 Eingang BOOL E, A, M, D, L Eingabebit 6 wird mit Bit 6 der Maske verglichen.
IN_BIT7 Eingang BOOL E, A, M, D, L Eingabebit 7 wird mit Bit 7 der Maske verglichen.
IN_BIT8 Eingang BOOL E, A, M, D, L Eingabebit 8 wird mit Bit 8 der Maske verglichen.
IN_BIT9 Eingang BOOL E, A, M, D, L Eingabebit 9 wird mit Bit 9 der Maske verglichen.
IN_BIT10 Eingang BOOL E, A, M, D, L Eingabebit 10 wird mit Bit 10 der Maske verglichen.
IN_BIT11 Eingang BOOL E, A, M, D, L Eingabebit 11 wird mit Bit 11 der Maske verglichen.
IN_BIT12 Eingang BOOL E, A, M, D, L Eingabebit 12 wird mit Bit 12 der Maske verglichen.
IN_BIT13 Eingang BOOL E, A, M, D, L Eingabebit 13 wird mit Bit 13 der Maske verglichen.
IN_BIT14 Eingang BOOL E, A, M, D, L Eingabebit 14 wird mit Bit 14 der Maske verglichen.
IN_BIT15 Eingang BOOL E, A, M, D, L Eingabebit 15 wird mit Bit 15 der Maske verglichen.
CMP_STEP Eingang BYTE E, A, M, D, L, P Schrittnummer der Maske, mit der verglichen werden
soll
OUT Ausgang BOOL E, A, M, D, L Der Signalzustand ”1” zeigt an, daß eine Entspre-
chung gefunden wurde. Der Signalzustand ”0” zeigt
an, daß keine Entsprechung gefunden wurde.
ERR_CODE Ausgang WORD E, A, M, D, L, P Gibt den Wert W#16#0000 aus, wenn die Operation
fehlerfrei ausgeführt wird. Wird ein anderer Wert
ausgegeben, entnehmen Sie der Fehlerinformation
nähere Angaben hierzu.
CMP_VAL Statisch ARRAY E, A, M, D, L Vergleichsmasken [0 bis 15, 0 bis 15]: bei der ersten
mit Nummer des Index handelt es sich um die
BOOL Schrittnummer und bei der zweiten Nummer um die
Bitnummer der Maske.

Systemsoftware für S7-300/400 Standardfunktionen Teil 2


A5E00066866-03 8-3
Vergleichsfunktionsbausteine

Fehlerinformation Ist CMP_STEP größer als 15, wird der Funktionsbaustein nicht ausgeführt.
Der Signalzustand von ENO wird auf ”0” und ERR_CODE auf W#16#000A
gesetzt.

Beispiel Bild 8-1 zeigt die Funktionsweise der Operation IMC. Ist der Signalzustand
von Eingang E 0.0 = 1 (aktiviert), dann wird die Funktion IMC ausgeführt. In
diesem Beispiel werden all 16 Eingabebits mit der Maske für Schritt 2 vergli-
chen (wie von CMP_STEP angegeben). Der Signalzustand von OUT wird auf
TRUE gesetzt, da die Eingabebits mit der Maske für Schritt 2 übereinstim-
men.
Wird die Funktion fehlerfrei ausgeführt, dann werden die Signalzustände von
ENO und A 4.0 auf ”1” gesetzt und ERR_CODE wird auf W#16#0000 ge-
setzt.

Hinweis
Statische Parameter können Sie mit Hilfe des Datenbaustein-Editors initiali-
sieren.

Systemsoftware für S7-300/400 Standardfunktionen Teil 2


8-4 A5E00066866-03
Vergleichsfunktionsbausteine

DB83
E 0.0 IMC A 4.0
EN FB83 ENO
M 0.0
IN_BIT0 OUT A 2.0
M 0.1
IN_BIT1 ERR_CODE MW0
M 0.2
IN_BIT2
M 0.3
IN_BIT3
M 0.4
IN_BIT4
M 0.5
IN_BIT5
M 0.6 M 0.1
IN_BIT6
M 0.7
IN_BIT7
M 1.0
IN_BIT8
M 1.1
IN_BIT9
M 1.2
IN_BIT10
M 1.3
IN_BIT11
M 1.4
IN_BIT12
M 1.5
IN_BIT13
M 1.6
IN_BIT14
M 1.7
IN_BIT15
B#16#02 CMP_STEP

Vor der Bearbeitung: Instanz-DB83


IN_BIT0 M 0.0 = TRUE <vergleichen mit> CMP_VAL [2, 0] DBX12.0 = TRUE
IN_BIT1 M 0.1 = TRUE <vergleichen mit> CMP_VAL [2, 1] DBX12.1 = TRUE
IN_BIT2 M 0.2 = FALSE <vergleichen mit> CMP_VAL [2, 2] DBX12.2 = FALSE
IN_BIT3 M 0.3 = TRUE <vergleichen mit> CMP_VAL [2, 3] DBX12.3 = TRUE
IN_BIT4 M 0.4 = TRUE <vergleichen mit> CMP_VAL [2, 4] DBX12.4 = TRUE
IN_BIT5 M 0.5 = FALSE <vergleichen mit> CMP_VAL [2, 5] DBX12.5 = FALSE
IN_BIT6 M 0.6 = TRUE <vergleichen mit> CMP_VAL [2, 6] DBX12.6 = TRUE
IN_BIT7 M 0.7 = TRUE <vergleichen mit> CMP_VAL [2, 7] DBX12.7 = TRUE
IN_BIT8 M 1.0 = FALSE <vergleichen mit> CMP_VAL [2, 8] DBX13.0 = FALSE
IN_BIT9 M 1.1 = TRUE <vergleichen mit> CMP_VAL [2, 9] DBX13.1 = TRUE
IN_BIT10 M 1.2 = TRUE <vergleichen mit> CMP_VAL [2, 10] DBX13.2 = TRUE
IN_BIT11 M 1.3 = FALSE <vergleichen mit> CMP_VAL [2, 11] DBX13.3 = FALSE
IN_BIT12 M 1.4 = TRUE <vergleichen mit> CMP_VAL [2, 12] DBX13.4 = TRUE
IN_BIT13 M 1.5 = TRUE <vergleichen mit> CMP_VAL [2, 13] DBX13.5 = TRUE
IN_BIT14 M 1.6 = FALSE <vergleichen mit> CMP_VAL [2, 14] DBX13.6 = FALSE
IN_BIT15 M 1.7 = TRUE <vergleichen mit> CMP_VAL [2, 15] DBX13.7 = TRUE

OUT A 2.0 = FALSE


Hinweis: Es werden nur die Werte der Maske für Schritt 2 gezeigt. Andere Schritte werden ähnlich
programmiert.
Nach der Bearbeitung:
OUT A 2.0 = TRUE

Bild 8-1 Index Matrix Vergleich (IMC)

Systemsoftware für S7-300/400 Standardfunktionen Teil 2


A5E00066866-03 8-5
Vergleichsfunktionsbausteine

8.2 Matrixscanner (SMC): FB84

Beschreibung Der Funktionsbaustein Matrixscanner (SMC) vergleicht den Signalzustand


von bis zu 16 programmierten Eingabebits (IN_BIT0 bis IN_BIT15) mit den
entsprechenden Bits der Vergleichsmasken zu jedem Schritt. Die Bearbeitung
beginnt mit Schritt 1 und wird bis zum letzten programmierten Schritt
(LAST) fortgesetzt bzw. bis eine Entsprechung gefunden wird. IN_BIT0 wird
mit CMP_VAL[x,0] verglichen, wobei es sich bei x um die Schrittnummer
handelt; INBIT_1 wird mt CMP_VAL [x,1] verglichen, usw. Wird eine Ent-
sprechung gefunden, dann wird der Signalzustand des Ausgangs (OUT) auf
”1” gesetzt und die Schrittnummer mit der entsprechenden Maske wird in
OUT_STEP geschrieben. Nicht programmierte Eingabebits oder nicht pro-
grammierte Bits der Maske haben den voreingestellten Signalzustand
FALSE. Haben mehrere Schritte eine entsprechende Maske, dann wird nur
die erste gefundene Entsprechung in OUT_STEP angegeben. Wird keine Ent-
sprechung gefunden, dann wird der Signalzustand des Ausgangs (OUT) auf
”0” gesetzt und OUT_STEP ist um ”1” größer als LAST.

Parameter Tabelle 8-2 beschreibt die Parameter des Funktionsbausteins SMC.

Tabelle 8-2 Parameter des Funktionsbausteins Matrixscanner (FB84)

Parameter Deklaration Datentyp Speicherbereich Beschreibung


EN Eingang BOOL E, A, M, D, L Ein Signalzustand von ”1” am Freigabeeingang
aktiviert die Box.
ENO Ausgang BOOL E, A, M, D, L Der Freigabeausgang hat den Signalzustand ”1”,
wenn der Funktionsbaustein fehlerfrei ausgeführt
wird.
IN_BIT0 Eingang BOOL E, A, M, D, L Eingabebit 0 wird mit Bit 0 der Maske verglichen.
IN_BIT1 Eingang BOOL E, A, M, D, L Eingabebit 1 wird mit Bit 1 der Maske verglichen.
IN_BIT2 Eingang BOOL E, A, M, D, L Eingabebit 2 wird mit Bit 2 der Maske verglichen.
IN_BIT3 Eingang BOOL E, A, M, D, L Eingabebit 3 wird mit Bit 3 der Maske verglichen.
IN_BIT4 Eingang BOOL E, A, M, D, L Eingabebit 4 wird mit Bit 4 der Maske verglichen.
IN_BIT5 Eingang BOOL E, A, M, D, L Eingabebit 5 wird mit Bit 5 der Maske verglichen.
IN_BIT6 Eingang BOOL E, A, M, D, L Eingabebit 6 wird mit Bit 6 der Maske verglichen.
IN_BIT7 Eingang BOOL E, A, M, D, L Eingabebit 7 wird mit Bit 7 der Maske verglichen.
IN_BIT8 Eingang BOOL E, A, M, D, L Eingabebit 8 wird mit Bit 8 der Maske verglichen.
IN_BIT9 Eingang BOOL E, A, M, D, L Eingabebit 9 wird mit Bit 9 der Maske verglichen.
IN_BIT10 Eingang BOOL E, A, M, D, L Eingabebit 10 wird mit Bit 10 der Maske verglichen.
IN_BIT11 Eingang BOOL E, A, M, D, L Eingabebit 11 wird mit Bit 11 der Maske verglichen.
IN_BIT12 Eingang BOOL E, A, M, D, L Eingabebit 12 wird mit Bit 12 der Maske verglichen.
IN_BIT13 Eingang BOOL E, A, M, D, L Eingabebit 13 wird mit Bit 13 der Maske verglichen.
IN_BIT14 Eingang BOOL E, A, M, D, L Eingabebit 14 wird mit Bit 14 der Maske verglichen.
IN_BIT15 Eingang BOOL E, A, M, D, L Eingabebit 15 wird mit Bit 15 der Maske verglichen.

Systemsoftware für S7-300/400 Standardfunktionen Teil 2


8-6 A5E00066866-03
Vergleichsfunktionsbausteine

Tabelle 8-2 Parameter des Funktionsbausteins Matrixscanner (FB84)

Parameter Deklaration Datentyp Speicherbereich Beschreibung


OUT Ausgang BOOL E, A, M, D, L Der Signalzustand ”1” zeigt an, daß eine Entspre-
chung gefunden wurde. Der Signalzustand ”0” zeigt
an, daß keine Entsprechung gefunden wurde.
ERR_CODE Ausgang WORD E, A, M, D, L, P Gibt den Wert W#16#0000 aus, wenn die Operation
fehlerfrei ausgeführt wird. Wird ein anderer Wert
ausgegeben, entnehmen Sie der Fehlerinformation
nähere Angaben hierzu.
OUT_STEP Ausgang BOOL E, A, M, D, L, P Enthält die Schrittnummer mit der entsprechenden
Maske oder die Schrittnummer, die um ”1” größer ist
als LAST, sofern keine Entsprechung gefunden
wurde.
LAST Statisch BYTE E, A, M, D, L, P Gibt die Schrittnummer des letzten Schritts an, der
nach der entsprechenden Maske abgefragt werden
soll.
CMP_VAL Statisch ARRAY E, A, M, D, L Vergleichsmasken [0 bis 15, 0 bis 15]: bei der ersten
mit Nummer des Index handelt es sich um die Schritt-
BOOL nummer und bei der zweiten Nummer um die Bit-
nummer der Maske.

Fehlerinformation Ist der Wert von LAST größer als 15, wird der Funktionsbaustein nicht aus-
geführt. Der Signalzustand von ENO wird auf ”0” und ERR_CODE auf
W#16#000E gesetzt.

Beispiel Bild 8-2 zeigt die Funktionsweise der Operation SMC. Ist der Signalzustand
von Eingang E 0.0 = 1 (aktiviert), dann wird die Funktion SMC ausgeführt.
In diesem Beispiel werden alle 16 Eingabebits mit der Maske für die Schritte
0 bis 5 verglichen (wie von LAST angegeben) bzw. bis eine Entsprechung
gefunden wird. Nur die Masken für die Schritte 0 bis 2 werden abgefragt,
weil die Maske für Schritt 2 dem Eingabebit entspricht.
Wird die Funktion fehlerfrei ausgeführt, dann werden die Signalzustände von
ENO und A 4.0 auf ”1” gesetzt.

Hinweis
Die statischen Parameter können Sie mit Hilfe des Datenbaustein-Editors
initialisieren.

Systemsoftware für S7-300/400 Standardfunktionen Teil 2


A5E00066866-03 8-7
Vergleichsfunktionsbausteine

DB84
E 0.0 SMC A 4.0
EN FB84 ENO
M 0.0
IN_BIT0 OUT A 2.0
M 0.1
IN_BIT1 OUT_STEP MB10
M 0.2
IN_BIT2
M 0.3
IN_BIT3
M 0.4
IN_BIT4
M 0.5
IN_BIT5
M 0.6
IN_BIT6
M 0.7
IN_BIT7
M 1.0
IN_BIT8
M 1.1
IN_BIT9
M 1.2
IN_BIT10
M 1.3
IN_BIT11
M 1.4
IN_BIT12
M 1.5
IN_BIT13
M 1.6
IN_BIT14
M 1.7
IN_BIT15

Vor der Bearbeitung: Instanz-DB84


IN_BIT0 M 0.0 = TRUE <vergleichen mit> CMP_VAL [2, 0] DBX12.0 = TRUE
IN_BIT1 M 0.1 = TRUE <vergleichen mit> CMP_VAL [2, 1] DBX12.1 = TRUE
IN_BIT2 M 0.2 = FALSE <vergleichen mit> CMP_VAL [2, 2] DBX12.2 = FALSE
IN_BIT3 M 0.3 = TRUE <vergleichen mit> CMP_VAL [2, 3] DBX12.3 = TRUE
IN_BIT4 M 0.4 = TRUE <vergleichen mit> CMP_VAL [2, 4] DBX12.4 = TRUE
IN_BIT5 M 0.5 = FALSE <vergleichen mit> CMP_VAL [2, 5] DBX12.5 = FALSE
IN_BIT6 M 0.6 = TRUE <vergleichen mit> CMP_VAL [2, 6] DBX12.6 = TRUE
IN_BIT7 M 0.7 = TRUE <vergleichen mit> CMP_VAL [2, 7] DBX12.7 = TRUE
IN_BIT8 M 1.0 = FALSE <vergleichen mit> CMP_VAL [2, 8] DBX13.0 = FALSE
IN_BIT9 M 1.1 = TRUE <vergleichen mit> CMP_VAL [2, 9] DBX13.1 = TRUE
IN_BIT10 M 1.2 = TRUE <vergleichen mit> CMP_VAL [2, 10] DBX13.2 = TRUE
IN_BIT11 M 1.3 = FALSE <vergleichen mit> CMP_VAL [2, 11] DBX13.3 = FALSE
IN_BIT12 M 1.4 = TRUE <vergleichen mit> CMP_VAL [2, 12] DBX13.4 = TRUE
IN_BIT13 M 1.5 = TRUE <vergleichen mit> CMP_VAL [2, 13] DBX13.5 = TRUE
IN_BIT14 M 1.6 = FALSE <vergleichen mit> CMP_VAL [2, 14] DBX13.6 = FALSE
IN_BIT15 M 1.7 = TRUE <vergleichen mit> CMP_VAL [2, 15] DBX13.7 = TRUE
OUT A 2.0 = FALSE
OUT_STEP MB10 = B#16#00
Instanz-DB84
LAST DB84 = B#16#05
Hinweis: Es werden nur die Werte der Maske für Schritt 2 gezeigt. Andere Schritte werden ähnlich
programmiert.
Nach der Bearbeitung:
OUT A 2.0 = TRUE
OUT_STEP MB10 = B#16#02

Bild 8-2 Matrixscanner (SMC)

Systemsoftware für S7-300/400 Standardfunktionen Teil 2


8-8 A5E00066866-03
Glossar

Absolute Die absolute Adressierung gibt die tatsächliche Adresse einer bestimmten Da-
Adressierung teneinheit im Speicher einer CPU an. Mit der absoluten Adressierung können
Sie auf die Peripherie verweisen, indem Sie zum Beispiel eine Adresse ver-
wenden, die die Art des Signals (E für Eingang, A für Ausgang), die Nummer
der Peripheriebaugruppe und das jeweilige Signal angibt.
Beispiel: A 4.0. Das Automatisierungssysten wertet absolute Adressen ohne
eine Symboltabelle aus. Siehe ”Symbolische Adressierung”.

Aktualparameter Ein Aktualparameter ist ein Operand oder ein Wert, der in der Aufrufanwei-
sung als Eingang oder Ausgang für einen Funktionsbaustein (FB) oder eine
Funktion (FC) bereitgestellt wird. Aktualparameter entsprechen den Formal-
parametern, die in der Variablendeklarationstabelle des FB bzw. der FC dekla-
riert sind.

Anweisungsliste Die Anweisungsliste (AWL) ist eine der beiden Programmiersprachen in der
Programmier-Software STEP 7, über die Sie mit Ihrem Automatisierungs-
system S7-300 kommunizieren können. Jede Anweisung in Ihrem Programm
umfaßt eine Operation, deren Mnemonik eine Funktion des Automatisierungs-
systems darstellt.

Anzeigenbits 0 Die Anzeigenbits des Statusworts (A0 und A1) liefern Informationen zu den
und 1 folgenden Ergebnissen oder Bits:
• Ergebnis einer arithmetischen Operation
• Ergebnis eines Vergleichs
• Ergebnis einer digitalen Operation
• Bits, die von einer Schiebe- oder Rotieroperation aus dem Akkumulator
geschoben wurden

Systemsoftware für S7-300/400 Standardfunktionen Teil 2


A5E00066866-03 Glossar-1
Glossar

Binärergebnisbit Bit 8 des Statusworts wird das Binärergebnisbit (BIE-Bit) genannt. Das Binä-
rergebnisbit (BIE-Bit) stellt eine Verbindung zwischen der Bearbeitung von
Bits und Wörtern her. Mit diesem Bit kann Ihr Programm das Ergebnis einer
Wortoperation als Binärergebnis auswerten und das Ergebnis in eine binäre
Verknüpfungskette integrieren.
Das BIE-Bit ermöglicht es Ihnen beispielsweise, in der Anweisungsliste
(AWL, siehe Referenzhandbuch STEP 7 Anweisungliste AWL) einen Funkti-
onsbaustein (FB) oder eine Funktion (FC) zu schreiben und dann den FB oder
die FC in einem Kontaktplan (KOP) aufzurufen.
Wenn Sie einen Funktionsbaustein oder eine Funktion schreiben, die Sie in
KOP aufrufen möchten, müssen Sie das BIE-Bit verwalten, ganz gleich, ob Sie
den FB bzw. die FC in AWL oder in KOP schreiben. Das BIE-Bit entspricht
dem Freigabeausgang (ENO) einer KOP-Box. Mit der Operation SAVE (in
AWL) oder der Spule — (SAVE) (in KOP) speichern Sie das VKE im BIE-Bit
entsprechend den folgenden Bedingungen:
• Ein VKE von ”1” wird im BIE-Bit gespeichert, wenn der FB bzw. die FC
fehlerfrei ausgeführt wird.
• Ein VKE von ”0” wird im BIE-Bit gespeichert, wenn bei der Ausführung
des FB bzw. der FC Fehler auftreten.
Sie müssen diese Operationen am Ende des FB bzw. FC programmieren, so
daß diese Operationen in dem Baustein als letztes ausgeführt werden.

Warnung
! Das BIE-Bit kann unbeabsichtigt auf ”0” gesetzt werden.
Wenn Sie in KOP FBs und FCs schreiben und das BIE-Bit nicht wie oben be-
schrieben verwalten, dann kann ein FB bzw. eine FC das BIE-Bit eines anderen
FB bzw. einer anderen FC überschreiben.
Um diesen Fehler zu vermeiden, speichern Sie das VKE am Ende eines FB bzw.
einer FC wie oben beschrieben.

Codebaustein Codebausteine sind Bausteine in STEP 7, die das Programm für die Steuerung
enthalten. Es handelt sich um Organisationsbausteine (OBs), Funktionen und
Funktionsbausteine (FCs und FBs) sowie Systemfunktionen und System-
funktionsbausteine (SFCs und SFBs). Ein Datenbaustein (DB) wird nicht als
Codebaustein betrachtet.

CPU Die Zentralbaugruppe (Central Processing Unit) enthält das CPU-Programm


und bearbeitet die Daten für das Automatisierungssystem (AS).

Systemsoftware für S7-300/400 Standardfunktionen Teil 2


Glossar-2 A5E00066866-03
Glossar

CPU-Programm Das CPU-Programm enthält die Steuerungslogik für ein Automatisierungs-


projekt. Diese Steuerungslogik wird in Form von Operationen gespeichert, die
an das AS gerichtet sind, das die Anlage oder den Prozeß steuert.

Datenbaustein Ein Datenbaustein (DB) speichert die Daten des CPU-Programms. Sie definie-
(DB) ren die Struktur der Informationen, die in dem DB gespeichert werden. Diese
Informationen können entweder von allen Codebausteinen eines Programms
genutzt werden, oder sie können als “Instanz” eines bestimmten FB verwendet
werden (wobei die Struktur des DB von der Variablendeklarationstabelle des
FB abhängig ist).

Datentypen Daten, die in einem Programm verwendet werden sollen, müssen durch einen
Datentyp gekennzeichnet sein. Der Datentyp definiert die Länge und die An-
ordnung der Bits in dem Speicher, der für die CPU reserviert ist.
• Elementare Datentypen: BOOL (boolesch), BYTE, WORD (Wort),
DWORD (Doppelwort), CHAR (Zeichen), INT (Ganzzahl, 16 Bit), DINT
(Ganzzahl, 32 Bit), REAL (Gleitpunktzahl), TIME (Zeit), DATE (Datum),
TOD (Tageszeit) und S5TIME. Das Betriebssystem ordnet jedem elementa-
ren Datentyp eine bestimmte Länge im Speicher zu. Ein boolescher Daten-
typ (BOOL) beispielsweise verfügt über ein Bit, ein Byte (BYTE) über 8
Bits, ein Wort (WORD) besteht aus 2 Bytes (bzw. 16 Bits) und ein Doppel-
wort (DWORD) besteht aus 4 Bytes (bzw. 32 Bits).
• Zusammengesetzte Datentypen: DT (DATE_AND_TIME, Datum und
Zeit), STRING (maximal 255 Zeichen), STRUCT (Struktur) und ARRAY
(Feld). Zusammengesetzte Datentypen sind typischerweise länger als 32
Bits bzw. 4 Bytes). Sie können Datentypen mischen, indem Sie entweder
eine Gruppe von Datentypen in einer Struktur (STRUCT) oder eine Anzahl
eines bestimmten Datentyps in einem Feld (ARRAY) definieren.

Direkte Bei der direkten Adressierung zeigt der Operand einer Anweisung direkt auf
Adressierung die Adresse des Werts, mit dem die Operation arbeiten soll. Vergleiche
”Unmittelbare Adressierung”.

Systemsoftware für S7-300/400 Standardfunktionen Teil 2


A5E00066866-03 Glossar-3
Glossar

Formalparameter Formalparameter werden in der Variablendeklarationstabelle eines FB oder


einer FC deklariert. Wenn Sie einen FB oder eine FC aufrufen, müssen Sie für
jeden Formalparameter einen Aktualparameter bereitstellen (einen Operanden
oder einen Wert).

Funktion (FC) Eine FC ist ein Codebaustein, der ein Programmsegment enthält, jedoch nicht
über einen zugeordneten Speicherbereich verfügt. Eine Funktion arbeitet wie
ein Unterprogramm in einem Computerprogramm. Sie erstellen FCs und rufen
sie aus dem Programm auf. Da Ihr Progamm eine FC mehrfach aufrufen kann
(und für jeden Aufruf andere Werte übergeben kann), ist eine FC als “wieder-
verwendbarer” Baustein definiert. Wegen der Art, wie FCs Daten und Parame-
ter bearbeiten, ist die Bearbeitung von FCs in der CPU unkompliziert. Nach
der Bearbeitung der FC werden die temporären Lokaldaten, die von der FC
verwendet wurden, neu zugeordnet.

Funktionsbaustein Ein Funktionsbaustein (FB) ist ein Codebaustein, der ein Programmsegment
(FB) enthält und über einen zugeordneten Speicherbereich verfügt. Jedesmal wenn
ein FB aufgerufen wird, muß ein Datenbaustein (Instanz-DB) zur Verfügung
gestellt werden. Ein einzelner FB kann mehrfach aufgerufen werden, jedesmal
mit einem anderen Instanz-DB. Die Parameter und die statischen Variablen des
FB werden in dem Instanz-DB gespeichert.

Kontaktplan (KOP) Der Kontaktplan (KOP) ist eine von zwei Programmiersprachen in der Pro-
grammier-Software STEP 7, mit der Sie Ihr Automatisierungssystem (AS)
STEP 7-300 programmieren können. Die Programmiersprache KOP verwendet
graphische Symbole wie in einem Stromlaufplan.

Master Control Das Master Control Relay (MCR) ist ein Hauptschalter im Kontaktplan und
Relay dient zum Ein- und Ausschalten des Signalflusses im Strompfad. Ist der
Signalfluß in einem Pfad ausgeschaltet, so entspricht dies einer Folge von
Operationen, die statt des errechneten Werts nur Nullen schreiben, oder es ent-
spricht einer Folge von Operationen, die den bestehenden Wert im Speicher
nicht verändern.

Mnemonik Die Mnemonik ist die abgekürzte Darstellungsart von Operanden und Opera-
tionen im Programm (”E” beispielweise steht für ”Eingang” und ”U” steht für
die Operation ”UND”). STEP 7 unterstützt die internationale Darstellungsart
(basiert auf der englischen Sprache) und die SIMATIC-Darstellungsart (basiert
auf der deutschen Darstellungsart des Operationssatzes und den SIMATIC-
Richtlinien für die Adressierung).

Systemsoftware für S7-300/400 Standardfunktionen Teil 2


Glossar-4 A5E00066866-03
Glossar

Netzwerk In einem Kontaktplan in STEP 7 ist ein Netzwerk ein Strompfad mit KOP-
Anweisungen. Vergleiche ”Strompfad”.

Operand Der Operand einer Anweisung im Kontaktplan gibt eine Konstante oder eine
Adresse an, an der die Anweisung den Wert findet, mit dem Sie die Operation
ausführen soll. Der Operand kann als symbolische oder als absolute Adresse
oder auch als eine Mischung aus beiden angegeben werden. Der Operand kann
auf folgendes verweisen:
• Eine Konstante, einen Wert einer Zeit oder eines Zählers oder eine ASCII-
Zeichenkette
• Eine Adresse im Statuswort des Automatisierungssystems
• Ein Datenbaustein und eine Adresse innerhalb des Speicherbereichs des
Datenbausteins
• Eine Funktion (FC), einen Funktionsbaustein (FB), eine integrierte System-
funktion (SFC), einen integrierten Systemfunktionsbaustein (SFB) und die
Nummer der Funktion bzw. des Bausteins
• Eine Sprungmarke bei einer Sprungoperation
• Ein Operandenkennzeichen und eine Adresse innerhalb des Speicherbe-
reichs, der von dem Operandenkennzeichen angegeben wird (z. B. E 1.0)
• Die Nummer einer Zeit oder eines Zählers

Operanden- Ein Operandenkennzeichen ist Teil des Operanden einer Anweisung und liefert
kennzeichen die Informationen, in welchem Speicherbereich die Anweisung den Wert (Da-
tenobjekt) findet, mit dem sie die Operation ausführen soll. Bei dem Operand
”EB10” beispielsweise ist ”EB” das Operandenkennzeichen (wobei ”E” den
Speicherbereich der Eingänge und ”B” ein Byte in dem Speicherbereich an-
gibt).

Operation Die Operation in einem Kontaktplan gibt der CPU Ihres Automatisierungs-
systems an, welche Funktion das AS ausführen soll. KOP-Operationen können
in Form von Elementen oder Boxen angegeben werden.

Systemsoftware für S7-300/400 Standardfunktionen Teil 2


A5E00066866-03 Glossar-5
Glossar

Pointer Ein Pointer ist ein Element, das die Adresse einer Variablen angibt. Ein Pointer
enthält einen Operanden anstelle eines Werts. Wenn Sie dem Parametertyp
”Pointer” einen Aktualparameter zuordnen, dann geben Sie den Operanden an.
In STEP 7 können Sie den Pointer entweder im Pointerformat oder einfach nur
als Operand (z. B. M 50.0) angeben. Das folgende Beispiel zeigt einen Pointer
im Pointerformat zum Zugreifen auf Daten, die bei M 50.0 beginnen:
P#M50.0

Speicherbereich Ein Speicherbereich ist der Bereich in der CPU, in dem eine Anweisung einen
Wert (Datenobjekt) fndet, mit dem sie die Operation ausführen soll. Ihr Auto-
matisierungssystem verfügt über die folgenden Speicherbereiche, die Sie als
Teil des Operanden einer Anweisung angeben können:
• Prozeßabbild der Eingänge
• Prozeßabbild der Ausgänge
• Merker
• Peripherie
• Zeiten
• Zähler
• Datenbausteine
• Temporäre Daten (dynamische Lokaldaten)

Strompfad Ein Strompfad ist eine Zeile mit KOP-Anweisungen, die im allgemeinen Kon-
takte als Eingänge, Boxen mit Anweisungen und eine Ausgabeoperation am
Ende der Zeile enthalten. In STEP 7 ist ein Strompfad in einem Kontaktplan
ein Netzwerk.

Symbolische Jedes Element in der CPU verfügt über eine absolute Adresse (z. B. E 0.0). Sie
Adressierung können aber auch symbolische Namen erstellen, die Sie für die Adressierung
verwenden können. Sie können beispielsweise dem Eingang E 1.3 den symbo-
lischen Namen ”Pumpe_2_Rueckmeldung” zuordnen. Die symbolischen Na-
men werden in der Symboltabelle definiert, die Sie mit dem Tool Symbol Edi-
tor erstellen.

Systemfunktion Eine Systemfunktion (SFC) ist eine vorprogrammierte, geprüfte Funktion, die
(SFC) in das S7-Betriebssystem integriert ist. Sie können eine SFC aus Ihrem Pro-
gramm aufrufen. Weil SFCs Teil des Betriebssystems sind, belegen Sie keinen
Speicherplatz im Hauptspeicher. Wie eine FC benötigt eine SFC keinen In-
stanz-DB.

Systemsoftware für S7-300/400 Standardfunktionen Teil 2


Glossar-6 A5E00066866-03
Glossar

Systemfunktions- Ein Systemfunktionsbaustein (SFB) ist ein Funktionsbaustein, der in das S7-
baustein (SFB) Betriebssystem integriert ist. Sie können einen SFB aus Ihrem Programm auf-
rufen. Ähnlich wie ein FB hat der SFB seinen eigenen Arbeitsspeicher, in de-
nen Daten bis zum nächsten Aufruf des SFB gespeichert werden können. Der
Speicher ist als Instanz-Datenbaustein (Instanz-DB) implementiert. Sie müssen
diesen DB erstellen (der als Teil der Aufrufanweisung geöffnet wird). Weil
SFBs Teil des Betriebssystems sind, brauchen Sie sie nicht zu laden.

Unmittelbare Bei der unmittelbaren Adressierung wird der tatsächliche Wert, mit dem die
Adressierung Anweisung arbeiten soll, als Eingangsparameter angegeben. Bei diesem Wert
handelt es sich um den Operanden der Anweisung. Vergleiche ”Direkte Adres-
sierung”.

Variablen- Alle Codebausteine verfügen über eine Variablendeklarationstabelle. Wenn Sie


deklarationstabelle Informationen in die Variablendeklarationstabelle eingeben, dann deklarieren
(definieren) Sie Parameter und Variablen, die von dem Baustein verwendet
werden.

Verknüpfungs- Das Bit 1 des Statusworts wird VKE-Bit genannt (VKE steht für Verknüp-
ergebnis (VKE) fungsergebnis). Dieses Bit speichert das Ergebnis einer Verknüpfungsoperation
oder eines arithmetischen Vergleichs. Der Signalzustand des VKE-Bit liefert
Informationen zum Signalfluß. Der Signalzustand ”1” zeigt Signalfluß an
(Ein), der Signalzustand ”0” zeigt an, daß kein Signalfluß vorhanden ist (Aus).
Die erste Operation in einem KOP-Strompfad fragt den Zustand eines Kon-
takts ab und liefert das Ergebnis von ”1” oder ”0”. Die Operation speichert das
Ergebnis dieser Signalabfrage im VKE-Bit.
Die zweite Operation in einem KOP-Strompfad fragt auch den Signalzustand
eines Kontakts ab und liefert ein Ergebnis. Dann verknüpft die Operation die-
ses Ergebnis mit dem VKE-Bit im Statuswort gemäß den Regeln der Boole-
schen Logik. Dieses Verknüpfungsergebnis wird im VKE-Bit des Statusworts
gespeichert und ersetzt den vorherigen Wert im VKE-Bit. Jede folgende Ope-
ration in dem Strompfad führt eine Verknüpfung mit zwei Werten aus: mit dem
Ergebnis der Signalabfrage am Kontakt und dem aktuellen VKE.
Mit den booleschen Bitverknüpfungsoperationen können Sie dem VKE bei
einer Erstabfrage den Inhalt einer Operandenadresse zuordnen. Mit dem VKE
können Sie außerdem Sprungoperationen auslösen.

Systemsoftware für S7-300/400 Standardfunktionen Teil 2


A5E00066866-03 Glossar-7
Glossar

Systemsoftware für S7-300/400 Standardfunktionen Teil 2


Glossar-8 A5E00066866-03
Stichwortverzeichnis

A F
Anzahl der gesetzten Bits zählen (BITSUM), Funktionen (FCs)
6-11 auflisten, vi
ASCII-Zeichenkette in Hexadezimalzahl einbinden, iii
wandeln (ATH), 6-4 Funktionsbausteine (FBs)
Ausgangsbereich unmittelbar rücksetzen auflisten, vi
(RSETI), 1-4 einbinden, iii
Ausgangsbereich unmittelbar setzen (SETI), 1-8

G
B Gleitpunktfunktion, Standardabweichung
Bit in Bitschieberegister schieben (SHRB), 3-4 (DEV), 7-2
Bitmuster für 7-Segment-Anzeige erzeugen
(SEG), 6-2
Bitnummer des niederwertigsten gesetzten Bits H
lesen (ENCO), 6-8
Hexadezimalzahl in ASCII-Zeichenkette
Bitverknüpfungsfunktionen
wandeln (HTA), 6-6
Ausgangsbereich unmittelbar rücksetzen
(RSETI), 1-4
Ausgangsbereich unmittelbar setzen (SETI),
1-8 I
Merker- oder Peripheriebereich im Index Matrix Vergleich (IMC), 8-2
Prozeßabbild rücksetzen (RSET), 1-2
Merker- oder Peripheriebereich im
Prozeßabbild setzen (SET), 1-6 K
Korrelierte Datentabellen (CDT), 2-17
D
Datenbereich indirekt übertragen (IBLKMOV), L
4-2
Lead/Lag Algorithmus (LEAD/LAG), 6-16
Datum im Schieberegister speichern (WSR), 3-2
Letzten Wert der Tabelle ausgeben (LIFO), 2-9
Diskreter Steuerungszeitalarm (DCAT), 5-4

M
E
Matrixscanner (SMC), 8-6
Einbinden der Funktionen (FCs) und
Merker- oder Peripheriebereich im Prozeßabbild
Funktionsbausteine (FBs), iii
rücksetzen (RSET), 1-2
Ereignis maskierbare Drum (DRUM), 5-10
Ersten Wert der Tabelle ausgeben (FIFO), 2-4

Systemsoftware für S7-300/400 Standardfunktionen Teil 2


A5E00066866-03 Index-1
Stichwortverzeichnis

Merker- oder Peripheriebereich im Prozeßabbild Bitnummer des niederwertigsten gesetzten


setzen (SET), 1-6 Bits lesen (ENCO), 6-8
Motorsteuerungszeitalarm (MCAT), 5-7 Hexadezimalzahl in ASCII-Zeichenkette
wandeln (HTA), 6-6
Vorgegebenes Bit im Wort setzen (DECO),
S 6-9
Werte deskalieren (UNSCALE), 6-14
Sammle/Verteile Tabellendaten (PACK), 4-4
Werte skalieren (SCALE), 6-12
Schiebefunktionen
Zehnerkomplement erzeugen (BCDCPL),
Bit in Bitschieberegister schieben (SHRB),
6-10
3-4
Umwandlungsfunktionsbaustein, Lead/Lag
Datum im Schieberegister speichern (WSR),
Algorithmus (LEAD_LAG), 6-16
3-2
Unterstützung, technisch, v, 1-3
Standardabweichung (DEV), 7-2

V
T
Vergleichsfunktionsbausteine
Tabellenfunktionen
Index Matrix Vergleich (IMC), 8-2
ersten Wert der Tabelle ausgeben (FIFO),
Matrixscanner (SMC), 8-6
2-4
Vorgegebenes Bit im Wort setzen (DECO), 6-9
Korrelierte Datentabellen (CDT), 2-17
letzten Wert der Tabelle ausgeben (LIFO),
2-9
Tabellenoperation ausführen (TBL), 2-11 W
Tabellenverknüpfung (TBL_TBL), 2-19 Wert aus Tabelle kopieren (TBL_WRD), 2-13
Wert aus Tabelle kopieren (TBL_WRD), Wert in Tabelle eintragen (ATT), 2-2
2-13 Wert in Tabelle suchen (TBL_FIND), 2-6
Wert in Tabelle eintragen (ATT), 2-2 Wert logisch mit Tabellenelement verknüpfen
Wert in Tabelle suchen (TBL_FIND), 2-6 und speichern (WRD_TBL), 2-15
Wert logisch mit Tabellenelement Werte deskalieren (UNSCALE), 6-14
verknüpfen und speichern (WRD_TBL), Werte skalieren (SCALE), 6-12
2-15
Tabellenoperation ausführen (TBL), 2-11
Tabellenverknüpfung (TBL_TBL), 2-19 Z
Technische Unterstützung, v, 1-3
Zehnerkomplement erzeugen (BCDCPL), 6-10
Zeit als speichernde Einschaltverzögerung
starten (TONR), 5-2
U Zeitfunktion, Zeit als speichernde
Übertragungsfunktion, Datenbereich indirekt Einschaltverzögerung starten (TONR), 5-2
übertragen (IBLKMOV), 4-2 Zeitfunktionsbausteine
Übertragungsfunktionsbaustein, Diskreter Steuerungszeitalarm (DCAT), 5-4
Sammle/Verteile Tabellendaten (PACK), 4-4 Ereignis maskierbare Drum (DRUM), 5-10
Umwandlungsfunktionen Motorsteuerungszeitalarm (MCAT), 5-7
Anzahl der gesetzten Bits zählen (BITSUM),
6-11
ASCII-Zeichenkette in Hexadezimalzahl
wandeln (ATH), 6-4
Bitmuster für 7-Segment-Anzeige erzeugen
(SEG), 6-2

Systemsoftware für S7-300/400 Standardfunktionen Teil 2


Index-2 A5E00066866-03
An
Siemens AG
A&D AS E 81
Ö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 ❒ Pharmazeutische Industrie


❒ Chemische Industrie ❒ Kunststoffverarbeitung
❒ Elektroindustrie ❒ Papierindustrie
❒ Nahrungsmittel ❒ Textilindustrie
❒ Leittechnik ❒ Transportwesen
❒ Maschinenbau ❒ Andere _ _ _ _ _ _ _ _ _ _ _
❒ Petrochemie

Systemsoftware für S7-300/400 Standardfunktionen Teil 2


A5E00066866-03 1
Vorschläge und Anmerkungen zur Anwenderdokumentation
Ihre Anmerkungen und Vorschläge helfen uns, die Qualität und Benutzbarkeit
unserer Dokumentation zu verbessern. Bitte füllen Sie diesen Fragebogen bei
der nächsten Gelegenheit aus und senden Sie ihn an Siemens zurück.

Geben Sie bitte bei den folgenden Fragen Ihre persönliche Bewertung mit Werten
von 1 = gut bis 5 = schlecht an.
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:
_________________________________
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

Systemsoftware für S7-300/400 Standardfunktionen Teil 2


2 A5E00066866-03