Datentelegramme

Zur eindeutigen Adressierung von Datenpunkten setzt sich die Peripherieadresse in WinCC OA aus folgenden Teilen zusammen:

  • Datenart

  • Regionsnummer (entspricht der Angabe im SSI-Telegramm)

  • Komponentennummer (entspricht der Angabe im SSI-Telegramm)

  • Baugruppennummer (entspricht der Angabe im SSI-Telegramm)

  • Wertnummer (entspricht der Angabe im SSI-Telegramm)

  • Subadresse (derzeit immer 0)

  • Index: zur Unterscheidung der Daten, wenn ein Telegramm mehrere verschiedene Daten enthält.

Da der Index im Telegramm einen Teil der Peripherieadresse darstellt, bleiben alle Einzeldaten eines Telegramms flexibel parametrierbar. So können die einzelnen Daten beliebig zu einem Datenpunkt zusammengefasst, Teil eines größeren Datenpunkt sein oder aber auch auf mehrere Datenpunkts aufgeteilt werden.

Die Indexnummern je Telegramm sind im Treiber vorgegeben. Sie werden bei den einzelnen Telegrammen gesondert aufgeführt.

Es gibt grundsätzlich mehrere Möglichkeiten, WinCC OA Datenpunkte Telegrammen zuzuordnen. Die Peripherieadressen können sowohl an den Datenpunktknoten, sofern die darunterliegenden Blätter denselben Typ haben (also bei allen dynamischen Feldern von Datenpunkten desselben Typs, wie z.B. Bitmusterstruktur, Bitstruktur), als auch bei den Blättern parametriert sein. Ist die Peripherieadresse an einem Knoten parametriert, dann gibt die Indexnummer der Peripherieadresse das Objekt im Telegramm an, von dem an alle weiteren Objekte auf die Blätter des WinCC OA Datenpunktes verteilt werden. So könnte man z.B. 16 Einzelmeldungen (Index 0-15) auf zwei Datenpunkte vom Typ Bitstruktur mit jeweils 6 Bits so verteilen, dass man im Datenpunktknoten des ersten Datenpunktes den Index der Peripherieadresse mit 0, im Knoten des zweiten Datenpunktes mit 6 angibt. Ankommende Einzelmeldungen werden dann auf die Blätter der Datenpunkte aufgeteilt. Die sechs Blätter des ersten Datenpunkt erhalten die Meldungen 0-5 (Bits), die des zweiten Datenpunkt erhalten die Meldungen 6-11 (ebenfalls Bits). Da die restlichen Meldungen (12-15) an keinem WinCC OA Datenpunkt parametriert wurden, werden sie vom Treiber verworfen.

Zusätzlich werden bei einigen Telegrammen Indizes für Sonderbehandlungen eingeführt. So soll es z.B. auch möglich sein, die 16 Einzelmeldungen zusammen auf ein Datenpunktblatt vom Typ Bitmuster zu parametrieren, dafür wurde der Index 20 (bei den 16 Einzelmeldungen) eingeführt.

Nichtechtzeit-Telegramme

Werden auch prioritätsgesteuerte Telegramme genannt, sind nicht zeitsortiert und kommen schneller an als die Echtzeittelegramme.

DF = 01 - Digitalwert unsigned 32 Bit

Der Datenbereich im Telegramm besteht aus:

Länge Parameter
4 Byte unsigned integer (Little Endian)

Der Wert wird in WinCC OA auf einen eigenen Datenpunkt parametriert. Der entsprechende Typ der WinCC OA Variable ist natürliche Zahl.

SSI-Bezeichnung Index SSI-Typ WinCC OA Typ
Digitalwert unsigned 32 Bit 0 32 bit unsigned int natürliche Zahl

DF = 02 - Digitalwert signed 32 Bit ( 31 Bit plus VZ )

Der Datenbereich im Telegramm besteht aus:

Länge Parameter
4 Byte signed integer (keine 2er-Komplement-Darstellung)

Der Wert wird in WinCC OA auf einen eigenen Datenpunkt parametriert. Der entsprechende Typ der WinCC OA Variable ist Ganzzahl.

SSI-Bezeichnung Index SSI-Typ WinCC OA Typ
Digitalwert signed 32 Bit 0 32 bit signed int Ganzzahl

DF = 03 - Trafostufenstellung ( digital )

Der Datenbereich im Telegramm besteht aus:

Länge Parameter
1 Byte Trafo-Stellung
1 Byte (Bit 1: Kontaktanzeige, Bit 0: Fehlerbit)

Es empfiehlt sich, die drei Werte auf einen gemeinsamen Datenpunkt zu parametrieren.

SSI-Bezeichnung Index SSI-Typ WinCC OA Typ
Trafo-Stellung 0 8 bit unsigned int natürliche Zahl
Fehlerbit 1 bit Bit
Kontaktanzeige 2 bit Bit

DF = 04 - Floating Point

Der Datenbereich im Telegramm besteht aus:

Länge Parameter
4 Byte floating point im IEEE Format

Der zugeordnete WinCC OA Datenpunkt ist vom Typ Fließkommazahl.

Tabelle: Den Einzeldaten zugeordneten Indizes und Typen für "Floating Point".

SSI-Bezeichnung Index SSI-Typ WinCC OA Typ
floating point Wert 0 32 bit floating point IEEE Fließkommazahl

DF = 05 - Kombinationstelegramme

Der Datenbereich im Telegramm besteht aus:

Länge Parameter
4 Byte signed integer im SSI-Format
1 Byte für Grenzwertmeldungen LI3, LI2, LI1, LI0, jeweils 1 Bit
1 Byte für Gradientenmeldungen GR1 und GR0, jeweils 1 Bit
SSI-Bezeichnung Index SSI-Typ WinCC OA Typ
Messwert 0 32 bit signed int Ganzzahl
Grenzwertmeldung LI0 1 bit Bit
Grenzwertmeldung LI1 2 bit Bit
Grenzwertmeldung LI2 3 bit Bit
Grenzwertmeldung LI3 4 bit Bit
Gradientenmeldung GR0 5 bit Bit
Gradientenmeldung GR1 6 bit Bit
Messwert 10 32 bit signed int Ganzzahl
Grenzwertmeldung 11 byte (4 bit) Bitmuster
Gradientenmeldung 12 byte (2 bit) Bitmuster
Messwert 20 32 bit signed int Ganzzahl
Grenzwert+Gradient 21 byte (6 bit) Bitmuster

DF = 06 - Rechnerkopplungsformate

Der Datenbereich im Telegramm besteht aus:

Länge Parameter
8 Byte (64 Bit) Transparente Daten

Eine genauere Strukturierung der Daten ist nicht realisiert.

SSI-Bezeichnung Index SSI-Typ WinCC OA Typ
Transparente Daten 0 8 byte transparente Daten Text

DF = 07 - String

Der Datenbereich im Telegramm besteht aus bis zu 1000 Byte transparente Daten. Momentan werden bis zu 57 Byte unterstützt. Eine genauere Strukturierung der Daten ist nicht realisiert.

SSI-Bezeichnung Index SSI-Typ WinCC OA Typ
String (dynamischer Länge) 0 1-1000 Datenbytes Text

DF = 08 - Transparente Daten

Der Datenbereich im Telegramm besteht aus:

Länge Parameter
8 Byte transparenten Daten

Eine genauere Strukturierung der Daten ist nicht realisiert.

SSI-Bezeichnung Index SSI-Typ WinCC OA Typ
Transparente Daten 0 8 byte transparente Daten Text

DF = 09 - 16 Einzelmeldungen

Der Datenbereich im Telegramm besteht aus:

Länge Parameter
2 Byte Meldungsbits

2 Byte Invalidbits zu den Meldungsbits

Im Fall, dass alle Einzelmeldungen auf ein Bitmuster abgebildet werden, ergibt sich das dazugehörige Invalidbit als ODER-Verknüpfung der einzelnen Invalidbits.

SSI-Bezeichnung Index SSI-Typ WinCC OA Typ
Meldung 0 0 bit Bit
Meldung 1 1 bit Bit
Meldung 2 2 bit Bit
Meldung 3 3 bit Bit
Meldung 4 4 bit Bit
Meldung 5 5 bit Bit
Meldung 6 6 bit Bit
Meldung 7 7 bit Bit
Meldung 8 8 bit Bit
Meldung 9 9 bit Bit
Meldung 10 10 bit Bit
Meldung 11 11 bit Bit
Meldung 12 12 bit Bit
Meldung 13 13 bit Bit
Meldung 14 14 bit Bit
Meldung 15 15 bit Bit
Alle 20 16 bit bitmuster

DF = 10 - 8 Doppelmeldungen

Der Datenbereich im Telegramm besteht aus:

Länge Parameter
2 Byte Schalterstellungen (je 2 Bit)
2 Byte Invalidbits zu den Schaltermeldungen

Dieses Telegramm meldet den Status eines Schalters. Jeder Schalterzustand wird mit zwei Bits beschrieben.

D Z Zustand
0 1 ON
0 0 OFF
1 0 Intermediate
1 1 Fehler

Im Fall, dass alle Meldungen auf ein Bitmuster abgebildet werden, ergibt sich das dazugehörige Invalidbit als ODER-Verknüpfung der einzelnen Invalidbits.

SSI-Bezeichnung Index SSI-Typ WinCC OA Typ
Meldung Z0 0 bit Bit
Meldung D0 1 bit Bit
Meldung Z1 2 bit Bit
Meldung D1 3 bit Bit
Meldung Z2 4 bit Bit
Meldung D2 5 bit Bit
Meldung Z3 6 bit Bit
Meldung D3 7 bit Bit
Meldung Z4 8 bit Bit
Meldung D4 9 bit Bit
Meldung Z5 10 bit Bit
Meldung D5 11 bit Bit
Meldung Z6 12 bit Bit
Meldung D6 13 bit Bit
Meldung Z7 14 bit Bit
Meldung D7 15 bit Bit
Meldung 0 20 2 bit Bitmuster
Meldung 1 21 2 bit Bitmuster
Meldung 2 22 2 bit Bitmuster
Meldung 3 23 2 bit Bitmuster
Meldung 4 24 2 bit Bitmuster
Meldung 5 25 2 bit Bitmuster
Meldung 6 26 2 bit Bitmuster
Meldung 7 27 2 bit Bitmuster
Alle 30 16 bit Bitmuster

DF = 11 - 4 Doppelmeldungen mit Befehlsrückmeldung

Der Datenbereich im Telegramm besteht aus:

Länge Parameter
2 Byte Befehlsrückmeldungen (je 4 Bit)
2 Byte Invalidbits zu den Befehlsrückmeldungen

Diese Telegramm wird benutzt, um die Auswirkungen eines Befehls rückzumelden. 4 Bits beschreiben den Status eines Schalters (Relais, Öffners)

Bit Bit Schalterstatur
Z 0 Aus
1 Ein (Schalterzustand)
D 0 ok
1 Schalter-Fehler
SF 0 ok
1 Z Bit wechselt auf Grund externer Events (nicht bei Befehl)
SL 0 definierter Zustand
1 Z schaltet
SSI-Bezeichnung Index SSI-Typ WinCC OA Typ
Meldungs Z0 0 bit Bit
Meldungs D0 1 bit Bit
Meldungs SF0 2 bit Bit
Meldungs SL0 3 bit Bit
Meldungs Z1 4 bit Bit
Meldungs D1 5 bit Bit
Meldungs SF1 6 bit Bit
Meldungs SL1 7 bit Bit
Meldungs Z2 8 bit Bit
Meldungs D2 9 bit Bit
Meldungs SF2 10 bit Bit
Meldungs SL2 11 bit Bit
Meldungs Z3 12 bit Bit
Meldungs D3 13 bit Bit
Meldungs SF3 14 bit Bit
Meldungs SL3 15 bit Bit
Meldung 0 20 4 bit Bitmuster
Meldung 1 21 4 bit Bitmuster
Meldung 2 22 4 bit Bitmuster
Meldung 3 23 4 bit Bitmuster
Alle 30 16 bit Bitmuster

Im Fall, dass alle Meldungen auf ein Bitmuster abgebildet werden, ergibt sich das dazugehörige Invalidbit als Oder-Verknüpfung der einzelnen Invalidbits.

DF = 12 - 1 Einzeldatenpunktmeldung

Der Datenbereich im Telegramm besteht aus:

Länge Parameter
1 Byte Rückmeldung (4 Bit, 0...3)
SSI-Bezeichnung Index SSI-Typ WinCC OA Typ
Meldungs Z 0 bit Bit
Meldungs D 1 bit Bit
Meldungs SF 2 bit Bit
Meldungs SL 3 bit Bit
Meldung gesamt 10 4 bit Bitmuster

DF = 13 Befehl

Der Datenbereich im Telegramm besteht aus:

Länge Parameter
1 Byte Befehlsnummer
1 Byte Schaltzeit

Dieses Telegramm stellt den Impulsbefehl des SSI-Protokolls dar. Es beinhaltet einen einzelnen Befehl. Ein Relais (Schalter) wird für die gegebene Schaltzeit geschaltet und fällt dann in einen Idle-Zustand zurück. Normalerweise sind zwei verschiedene Befehlsnummern notwendig, um eine Peripherieeinheit zwischen "EIN" und "AUS" zu schalten. Im Unterschied zu den übrigen Datenformaten müssen Datenpunkte vom Typ Impulsbefehl (in Befehlsrichtung) mittels Einzelanmeldung beim Eventmanager angemeldet werden. Alle anderen Datenpunkte werden als Gruppe angemeldet. Solange die Parametrierung der Peripherieadresse im Parametrierpanel erfolgt, wird die richtige Anmeldung automatisch gesetzt. Falls die Parametrierung über ASCII-Dateien erfolgen soll, muss bei den Befehlen das Attribut addresse.._mode auf den Wert 5 gesetzt werden (= Einzelanmeldung), bei allen anderen auf 1 (in Befehlsrichtung) bzw. 2 (in Melderichtung).

Außer der Befehlsnummer enthält das Telegramm noch die Schaltzeit. Diese wird in einem Byte codiert, wobei die einzelnen Bits folgende Bedeutung haben:

Zeit (Bit 0 und 1) 0 für 50 ms, 1 für 500 ms, 10 für 1 sek, 11 für 10 sek.
Faktor (Bit 2-6) 1...31 Schaltzeit = Zeitfaktor
OW (Bit 7) 1...Überschreibt bereits laufendes Kommando
0...Überschreiben nicht erlaubt

Die Angabe der Schaltzeit kann auf 2 verschiedene Arten erfolgen. Für die meisten Befehle wird eine systemweite Schaltzeit, die bei allen Befehlen verwendet wird, ausreichen. Zu diesem Zweck gibt es beim SSI-Treiber einen Defaultwert für die Schaltzeit. Dieser kann mit dem Eintrag defaultImpulseTime in der Konfigurationsdatei gesetzt werden (siehe Kapitel Einträge in der Konfigurationsdatei). Fehlt dieser Eintrag, dann wird 8 (entspricht 100 ms) als Defaultwert verwendet. Sollen für einzelne Befehle andere Schaltzeiten parametriert werden, können diese im Datenpunkt _SSI_Impulse_Times (dieser enthält ein dynamisches Feld von Bitmustern, in denen die gewünschten Schaltzeiten angegeben werden können (am einfachsten im Impulszeiten-Panel des Peripherieadresspanels). Um nun eine Schaltzeit dieses Feldes einem Befehlsdatenpunkt zuzuordnen, wird der Index, unter dem diese Schaltzeit im _SSI_Impulse_Times-Datenpunkt angelegt wurde, der Peripherieadresse beigefügt, und zwar als Beigabe zur Datenart (mit Doppelpunkt getrennt). Man beachte, dass diese Beigabe nur für Datenpunkte vom Typ Befehl zulässig ist.

Beispiel

Die Peripherieadresse 13:2.255.3.4.1.0 ordnet dem Datenpunkt die Schaltzeit zu, die als zweiter Feldeintrag im _SSI_Impulse_Times eingetragen ist.

SSI-Bezeichnung Index SSI-Typ WinCC OA Typ
Befehl 0 0 codiert in byte Bit
Befehl 1 1 codiert in byte Bit
Befehl 2 2 codiert in byte Bit
Befehl 3 3 codiert in byte Bit
Befehl 4 4 codiert in byte Bit
Befehl 5 5 codiert in byte Bit
Befehl 6 6 codiert in byte Bit
Befehl 7 7 codiert in byte Bit
Befehl 8 8 codiert in byte Bit
Befehl 9 9 codiert in byte Bit
Befehl 10 10 codiert in byte Bit
Befehl 11 11 codiert in byte Bit
Befehl 12 12 codiert in byte Bit
Befehl 13 13 codiert in byte Bit
Befehl 14 14 codiert in byte Bit
Befehl 15 15 codiert in byte Bit

Echtzeit-Telegramme

Für jedes prioritätsgesteuerte Telegramm existiert ein Echtzeittelegrammformat, in dem vor den Daten ein 5 Byte großes Zeitfeld, das die Entstehungszeit der gelieferten Daten angibt. Diese Zeitangabe besitzt folgendes Format:

Länge Parameter
2 Byte Millisekunden (niederwertiges Byte der msec vor höherwertigem)
1 Byte Sekunden
1 Byte Minuten
1 Byte Stunden (24h Format)

DF = 101 Digitalwert unsigned 32 Bit mit Zeit

Dieses Telegramm verhält sich sonst wie das analoge NEZ-Telegramm.

DF = 102 Digitalwert signed 32 Bit ( 31 Bit plus VZ ) mit Zeit

Dieses Telegramm verhält sich sonst wie das analoge NEZ-Telegramm.

DF = 103 Trafostufenstellung ( digital ) mit Zeit

Dieses Telegramm verhält sich sonst wie das analoge NEZ-Telegramm.

DF = 104 Floating Point mit Zeit

Dieses Telegramm verhält sich sonst wie das analoge NEZ-Telegramm.

DF = 105 Kombinationstelegramm mit Zeit

Dieses Telegramm verhält sich sonst wie das analoge NEZ-Telegramm.

DF = 106 Rechnerkopplungsformate mit Zeit

Dieses Telegramm verhält sich sonst wie das analoge NEZ-Telegramm.

DF = 107 String mit Zeit

Dieses Telegramm verhält sich sonst wie das analoge NEZ-Telegramm.

DF = 108 Transparente Daten mit Zeit

Dieses Telegramm verhält sich sonst wie das analoge NEZ-Telegramm.

DF = 109 16 Einzelmeldungen mit Zeit

Dieses Telegramm verhält sich sonst wie das analoge NEZ-Telegramm.

DF = 110 8 Doppelmeldungen mit Zeit

Dieses Telegramm verhält sich sonst wie das analoge NEZ-Telegramm.

DF = 111 4 Doppelmeldungen mit Befehlsrückmeldung mit Zeit

Dieses Telegramm verhält sich sonst wie das analoge NEZ-Telegramm.

DF = 112 1 Einzeldatenpunktmeldung mit Zeit

Dieses Telegramm verhält sich sonst wie das analoge NEZ-Telegramm.

DF = 113 Befehl mit Zeit

Dieses Telegramm verhält sich sonst wie das analoge NEZ-Telegramm.