TIMESTMP: Zeitgestempelte Meldungen übertragen (S7-300, S7-400) - STEP 7

Erweiterte Anweisungen (S7-300, S7-400)

ft:publication_title
Erweiterte Anweisungen (S7-300, S7-400)
Product
STEP 7
Version
V20
Publication date
11/2024
Language
de-DE
TIMESTMP: Zeitgestempelte Meldungen übertragen

Beschreibung

Die Anweisung überträgt zeitgestempelte Meldungen einer IM153-2 in seinen Instanz-DB. Dort stehen die Daten für eine weitere Verarbeitung durch das Anwenderprogramm zur Verfügung.

  • IM153-2

    Die IM153-2 erfasst Änderungen von Binärsignalen, versieht diese mit einem Zeitstempel und legt diese Information in Datensätzen mit maximal 20 Meldungen ab. Bei bestimmten Ereignissen gibt sie Sondermeldungen aus. Wenn ein Datensatz zum Abholen bereit ist, löst die IM153-2 einen Prozessalarm aus.

  • Aufruf im Prozessalarm-OB

    "TIMESTMP" liest die Startinformation des Prozessalarm-OBs und speichert die Information, welche die Zeitstempelung betrifft, für die weitere Bearbeitung in einem Umlaufpuffer. "TIMESTMP" kann die Daten von maximal 17 Prozessalarmen speichern.

  • Aufruf im zyklischen OB:

    In der zyklischen Bearbeitung liest "TIMESTMP" den abzuholenden Datensatz mithilfe der Anweisung "RD_REC" (Datensatz lesen) und speichert ihn im Meldepuffer MESSAGE. Sind mehrere Datensätze abzuholen, wird der älteste zuerst gelesen. Wenn das Bit TIMECONV am Eingang gesetzt ist, rechnet "TIMESTMP" alle Zeitstempel aus dem ISP-Format in das Format DATE_AND_TIME (DT) um.

    Ist der Parameter BUFRDY = TRUE, können die Meldungen im Meldepuffer vom Anwenderprogramm weiterverarbeitet und z. B. zu einem Empfänger (B&B-Gerät, Drucker) übertragen werden. Die Anzahl der vorhandenen Meldungen wird im Parameter MSG_QTY angezeigt. Nach der Bearbeitung muss das Anwenderprogramm BUFRDY zurücksetzen, um den Meldepuffer für weitere Meldungen frei zu geben.

    Der Parameter BUFNOTREAD zeigt die Anzahl der empfangenen Prozessalarme an, zu denen "TIMESTMP" noch keine Datensätze aus der IM153-2 gelesen hat. Bei BUFNOTREAD = 15 sind alle Datensätze der IM153-2 gefüllt. Die IM153-2 erkennt dann keine weiteren Signaländerungen. Weitere Datensätze, die bei einer Änderung von Binärsignalen durch die IM153-2 erzeugt werden, gehen verloren. Der Parameter MSGLOST (Meldungsverlust) wird auf "1" gesetzt.

Parameter

Die folgende Tabelle zeigt die Parameter der Anweisung "TIMESTMP":

Parameter

Deklaration

Datentyp

Beschreibung

LADDR

Input

INT

Logische Adresse (Diagnoseadresse) der IM153-2

LADDR2

Input

INT

Logische Adresse (Diagnoseadresse) von Slot 2 der IM153-2

TIMECONV

Input

BOOL

1=ISP-Zeitstempel in S7-DT-Format wandeln

MSG_QTY

Output

INT

Anzahl der gültigen Meldungen im Meldungspuffer

BUFNOTREAD

Output

INT

Anzahl der alarmierten, aber noch nicht gelesenen Datensätze der IM153-2

READERR

Output

BOOL

1=Fehler beim Lesen von der IM153-2

READSTATUS

Output

INT

Rückgabewert der Anweisung "RD_REC"

BUFRDY

InOut

BOOL

1=Meldungspuffer bereit

MSGLOST

InOut

BOOL

1=Meldungen verloren

MESSAGE

Static

ARRAY[1..20] OF STRUCT

Meldepuffer für max. 20 Meldungen der IM153-2

SLOT_NO

./.

BYTE

Slotnummer/2=Sondermeldung

CH_NO

./.

BYTE

Kanalnummer/Kennung der Sondermeldung

SIGNAL

./.

BYTE

Signalzustand/Merkmal der Sondermeldung

TIME1

./.

DWORD

Sekunden ab 1900,0 (ISP)/Jahr, Monat, Tag, Stunde (DT)

TIME2

./.

DWORD

Sekundenteile (ISP)/Minute, Sekunde, Millisekunde, Wochentag (DT)

Weitere Informationen zu den gültigen Datentypen finden Sie unter "Übersicht über die gültigen Datentypen".

Hardware-Konfiguration

Sie können "TIMESTMP" nur in Konfigurationen einsetzen, die eine Uhrzeitweiterleitung und eine Zeitstempelung von Binärsignalen unterstützen. Diese sind:

  • CPUs

    • CPU 4xx mit CP443-5 zur Weiterleitung der Uhrzeittelegramme (ab 6GK7443-5DX02-0XE0), oder

    • CPU 4xx mit Weiterleitung der Uhrzeittelegramme (z. B. CPU416-2 DP ab Firmwarestand 3.0)

  • Dezentrale Peripherie

    • Anschaltbaugruppe IM153-2 redundanzfähig mit Uhrzeitstempelung (ab 6ES7153-2AA02 Firmwarestand V1.2.3 (Ausgabestand 10))

      Oder:

      IM153-2 FO redundanzfähig mit integrierter LWL-Schnittstelle (ab 6ES7153-2AB01 ab Firmwarestand V1.2.3 (Ausgabestand 9))

    • Digitaleingabe SM321 (6ES7321-7BH00-0AB0) potenzialgetrennt 16 DE, DC 24V, Prozessalarm, Diagnose

      Oder:

      Digitaleingabe SM321 (6ES7321-7TH00-0AB0) potenzialgetrennt 16 DE, DC 24V, NAMUR, diagnosefähig, mit Leittechnikfunktionen

      Die Zeitstempelung sollten Sie nur für ausgewählte und für Ihre Anwendung wichtige Binärsignale einsetzen. Es wird empfohlen, wegen der Auslastung des PROFIBUS-DP und der IM153-2 diese Signale gegebenenfalls über mehrere IM153-2 bzw. auch über mehrere Stationen zu verteilen.

Software-Konfiguration

  • Aufrufende OBs

    "TIMESTMP" muss mit derselben Instanz in folgenden Organisationsbausteinen (OBs) aufgerufen werden, wobei die Parameter nur im zyklischen Programm ver- und entsorgt werden dürfen:

    • OB1 (zyklisches Programm) oder alternativ ein Weckalarm-OB (OB30 bis OB38)

    • OB86 (Baugruppenträgerausfall)

    • OB100 (Anlauf)

      Falls Sie andere Anlauf-OBs (OB101, OB102) verwenden, muss "TIMESTMP" auch dort aufgerufen werden.

    • OB40 oder, falls in der Hardware-Konfiguration auswählbar, auch ein anderer Prozessalarm-OB (OB41 bis OB47)

  • Adressierung

    • Verwenden Sie für jede IM153-2 eine eigene Instanz von "TIMESTMP". Tragen Sie am Eingang LADDR die in der Hardware-Konfiguration eingestellte logische Adresse (Diagnoseadresse) der IM153-2 ein.

    • Wenn Sie den DP-Master in der Betriebsart "S7-kompatibel" verwenden, tragen sie am Eingang LADDR2 denselben Wert wie für LADDR ein. Verwenden Sie die Betriebsart "DPV1", so tragen Sie bei LADDR2 die Diagnoseadresse von Steckplatz 2 der IM153-2 ein.

    • Wenn Sie die Adressen während des Betriebs ändern, löscht "TIMESTMP" die bisher gespeicherten Prozessalarmdaten.

Fehlerbehandlung

Wenn "TIMESTMP" nicht behebbare Fehler beim Lesen eines Datensatzes festgestellt hat, setzt "TIMESTMP" den Parameter READERR auf TRUE. Für eine weitere Analyse steht der Rückgabewert der Anweisung WR_USMSG im Parameter READSTATUS zur Verfügung. Da "TIMESTMP" im nächsten Zyklus gegebenenfalls einen weiteren Datensatz liest, sind READERR und READSTATUS nur für einen Zyklus gültig. Sie sollten daher im Anwenderprogramm eine entsprechende Auswertung vorsehen.

Werden Datensätze gelesen, während der DP-Master ausgefallen ist, gibt "TIMESTMP" READERR = TRUE und READSTATUS =80B2h ("Der projektierte Steckplatz ist nicht belegt.") aus.

Anlaufverhalten IM153-2

Im Anlauf/Wiederanlauf/Kaltstart gibt die IM153-2 nochmals Prozessalarme für die Datensätze ab, die vor dem Anlauf belegt waren, aber noch nicht abgeholt wurden.

In den ersten freien Datensatz trägt die IM153-2 folgende Meldungen ein:

  • Sondermeldung "Beginn Anlaufdaten"

  • Signaländerungen, die unmittelbar vor einem CPU-STOP aufgetreten sind ("kommend" oder "gehend" gemäß der parametrierten Flanke)

  • Aktueller Signalstatus für alle zeitzustempelnden Binärsignale ("kommend" oder "gehend" gemäß der parametrierten Flanke)

  • Sondermeldung "Ende Anlaufdaten"

Anlaufverhalten von "TIMESTMP"

Wird "TIMESTMP" in einem Anlauf-OB (OB100, OB101, OB102) aufgerufen, löscht "TIMESTMP" alle gespeicherten Prozessalarmdaten und setzt BUFRDY zurück. Sind noch alarmierte und nicht gelesene Datensätze bekannt, setzt "TIMESTMP" MSGLOST (Meldungsverlust) auf TRUE. Das Anwenderprogramm muss MSGLOST wieder zurücksetzen.

Verhalten von "TIMESTMP" im OB86 (Baugruppenausfall)

Wird "TIMESTMP" im OB86 aufgerufen und kommt das Ereignis von der zugehörigen IM153-2, so reagiert "TIMESTMP" wie im Anlauf. Dies ist z. B. bei Ausfall und Wiederkehr der IM153-2 und Wiederkehr des DP-Masters der Fall.

Redundanz

Bei H-Systemen mit zwei IM153-2 ist bezüglich der Zeitstempelung in folgenden Fällen Redundanz vorhanden:

  • Die Kommunikation läuft zwischen beiden IM153-2 über K-Bus.

  • Das Aufdaten der aktiven und passiven IM153-2 ist fehlerfrei abgeschlossen.

Während einer Umschaltung zwischen aktiver und passiver IM153-2 ist die Zeitstempelung unterbrochen. Mit der Sondermeldung "Umschalten bei Redundanz Anfang/Ende" wird der Unterbrechungszeitraum angezeigt.

Im Normalfall teilt die aktive der passiven IM153-2 den aktuellen Peripheriezustand mit. Wenn diese Kommunikation gestört ist, wird die Sondermeldung "Redundanz-Informationsverlust kommend" ausgegeben. Sobald zwischen aktiver und passiver IM153-2 die Kommunikation wieder möglich ist, wird die Sondermeldung "Redundanz-Informationsverlust gehend" ausgegeben. Ein nachträglicher Abgleich ist nicht möglich, d. h. ein Umschalten im Fehlerzustand der IM153-2 führt zu Meldungsverlust.

Aufbau des Meldepuffers

Der Meldepuffer enthält einen Datensatz der IM153-2. Die Interpretation des Zeitstempels hängt von der Einstellung des Parameters TIMECONV ab.

Zeitformate von "TIMESTMP"

Wenn der Eingang TIMECONV = TRUE ist, werden alle Zeitstempel im Datentyp DATE_AND_TIME (BCD-Format) gespeichert:

Die folgende Tabelle zeigt den Aufbau des Datentyps DATE_AND_TIME:

Bytes

Inhalt

Bereich

0

Jahr

90 … 89

Entsprechend 1990 ... 2089

1

Monat

01 ... 12

2

Tag

01 ... 31

3

Stunde

00 ... 23

4

Minute

00 ... 59

5

Sekunde

00 ... 59

6

2 MSD (most significant decade) von ms

00 ... 99

7 (4 MSB)

LSD (least significant decade) von ms

0 ... 9

7 (4 LSB)

Wochentag

1 ... 7 (1 = Sonntag)

Wenn der Eingang TIMECONV = FALSE ist, werden alle Zeitstempel im ISP-Format (2 Doppelworte) gespeichert.

Die folgende Tabelle zeigt die Aufteilung der Bytes:

Bytes

Inhalt

Bereich

0 … 3

Sekunden ab 1.1.1900 0:00:00,000 Uhr

Entsprechend

1.1.1900 ... 6.2.2036

4 … 7

Sekundenbruchteile in Vielfachen von 1/232 s

0 … <1

Die Zeitkonvertierung ist in dem Datumsbereich gültig, der von den Zeitformaten gemeinsam abgedeckt ist, d. h. vom 1.1.1990 bis einschließlich 6.2.2036.