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.