Details zum IEC Treiber

Dieses Kapitel wendet sich an fortgeschrittene WinCC OA Anwender, die Details zu den Übertragungsarten der Telegramme und deren Abbildung auf WinCC OA erfahren möchten.

Folgende Abbildung soll veranschaulichen wie eine ASDU (application service data unit, Dienstdateneinheit = Datenpaket) laut Norm aufgebaut ist. Die einzelnen Oktette der Adressen und Kennungen sind durch die Rechtecke dargestellt.

Abbildung 1. Aufbau einer ASDU, Dienstdateneinheit

Gemäß den Normen besteht die Dienstdateneinheit (ASDU, application service data unit) aus dem Idenifikationsfeld der Dateneinheit mit:

Insgesamt stellen sich die einzelnen Oktette der Telegramme wie in der Abbildung zusammen (ein Oktett entspricht einem Rechteck). Eine detaillierte Beschreibung der Oktette entnehmen Sie den Normen.

Im folgenden bedeutet UI[1..8] immer ein Byte mit einem Wertebereich 0 bis 255, UI[1] ist 2^0, UI[8] ist 2^7. BS[1], bedeutet genau ein Bit kann gesetzt sein an der ersten Stelle des Oktetts.

Typkennung = Art

Das Oktett der Typkennung legt Struktur, Typ und Format des folgenden Informationsobjekts fest.

Typkennung UI[1...8]<1..255>

2^7 2^0

<1..127>: kompatibler Bereich für Normfestlegungen

<128..135>: reserviert für Wegevermittlung von Nachrichten ("privater" Bereich)

<136..255>: für besondere Anwendungen ("privater" Bereich)

Welche Typkennungen in WinCC OA im Detail verwendet werden, entnehmen Sie dem Kapitel Kompatibilität.

Variable Strukturkennung

Die variable Strukturkennung enthält die Anzahl der Informationsobjekte oder -elemente und das SQ bit ("Single"/"Sequence"), das über die Adressierungsart der nachfolgenden Informationsobjekte oder -elemente informiert.

Oktett der Strukturkennung:

SQ 2^0
  • Anzahl: UI7[1..7]<0..127>: 0 bedeutet es ist kein Informationsobjekt enthalten, <1..127> die Anzahl der Informationsobjekte.

  • SQ: BS1[8]<0..1> Einzel/Folge

    <0>: Adressierung eines individuellen Elements oder einer Kombination von Elementen aus einer Anzahl von Informationsobjekten gleichen Typs

    <1>: Adressierung einer Folge von Informationselementen in einem einzelnen Objekt einer ASDU.

    SQ<0> und N<0..127>: Anzahl der Informationsobjekte

    SQ<1> und N<0..127>: Anzahl der Informationselemente in einem einzelnen Objekt einer ASDU

Die variable Strukturkennung wird vom Treiber gesetzt bzw. interpretiert. Das bedeutet, dass sie nicht parametriert werden muss und ist somit für den Anwender irrelevant.

Übertragungsursache (COT)

Die Übertragungsursache (spontan, periodisch etc.) leitet die ASDU zur Weiterbearbeitung an eine bestimme Anwendungsaufgabe (Programm). Das Oktett enthält Ursache, Bestätigung des Auftrages (positiv, negativ), ein Testbit (zur Prüfung der Übertragung ohne den Prozess zu beeinflussen) und die Herkunftsadresse:

T P/N 2^5 2^0
Herkunftsadresse
  • Ursache: UI6 [1..6]<0..63>; 0 nicht definiert, <1..63> Kennung der Ursache, <1..47> für den kompatiblen Bereich (gemäß der Norm), <48..63> privater Bereich für den besonderen Gebrauch

  • P/N: BS[7]<0..1>; 0 positive Bestätigung, 1 negative Bestätigung

  • T: BS[8]<0..1>; 0 keine Prüfung, 1 Prüfung

  • Herkunftsadresse: UI8[9..16]><0..255>; <0> nicht festgelegt, <1..255> Nummer der Herkunftsadresse

Die Definition für den kompatiblen Bereich entnehmen Sie dem Kapitel Kompatibilität. Weitere Details zu den Übertragungsursachen entnehmen Sie der Norm.

Die Übertragungsursache wird entweder vom Treiber automatisch definiert oder kann vom Anwender vorgegeben werden. Das automatische Verhalten wird wie folgt implementiert:

Bei Kommandos (C_* Telegramme), die der Treiber schickt, wird eine Übertragungsursache 6 (Aktivierung) eingesetzt. Wenn der Treiber Meldungen (M_* Telegramme) schickt, so ist die Übertragungsursache 3 (Spontan).

Die eingangsseitige Abbildung der Übertragungsursache ist folgendermaßen implementiert:

20 <= COT <= 36 ... Meldung aufgrund einer GA (GA Bit im PARA Panel ist gesetzt).

COT == 5 ... Meldung aufgrund einer Einzelabfrage (EA Bit im PARA Panel ist gesetzt).

andere COT ... Meldung spontan oder andere Ursache (kein Bit gesetzt).

Um zu unterscheiden, ob Meldungen (M_* Telegramme) normal von WinCC OA gesendet werden (d.h. Übertragungsursache spontan = 3) oder als Folge einer IGQ (Inverse General Query), gibt es den Config-Eintrag useCOTGQ (siehe auch Mögliche Config-Einträge des IEC Treibers). Wenn Wert des Config-Eintrags "Yes" ist (Default ist "No"), dann wird als COT (= Cause of Transmission) bei allen Meldungen, die aufgrund einer IGQ gesendet werden die Übertragungsursache 20 (abgefragt durch GA), bei Zählermeldungen 37 (abgefragt durch allgemeine Zählerabfrage) eingesetzt. Im Normalfall ist die Übertragungsursache 3.

Für die manuelle Abbildung der COT gibt es zwei Möglichkeiten:

Die Verwendung von Userbytes

Die Verwendung einer COT Adresse hat den Nachteil eines zusätzlich notwendigen DPEs inklusive spezieller COT Peripherieadresse (siehe Addresstyp in Panel zur Definition der Peripherieadresse).

Die COT Adresse

Ab WinCC OA Version 3.8 gibt es die Möglichkeit die "Cause Of Transmission" (COT) auf Userbytes abzubilden. Diese Methode sollte in Zukunft gegenüber der COT Adresse bevorzugt werden.

Um die COT und auch die Herkunftsadresse eingangsseitig auf WinCC OA abzubilden, müssen die Config Einträge UserByteCOT und UserByteOrigin auf die Nummer des zu verwendenden Userbytes gesetzt werden. Standardmäßig ist der Wert 0 und es erfolgt keine Abbildung. Mit den folgenden Config Einträgen wird die COT auf das Userbyte 3 und die Herkunftsadresse auf Userbyte 4 abgebildet.

UserByteCOT = 3

UserByteOrigin = 4

Damit Werte von Userbytes ausgangsseitig in das Telegramm eingebaut werden, sind die Config Einträge ConnUserByteCOT und ConnUserByteOrigin auf die Nummer des zu verwendenden Userbytes zu setzen. Es gilt wie bei der Abbildung der Quality mittels ConnUserByteQ, dass jede Änderungen des entsprechenden Userbytes (oder eines darin enthaltenen Userbit)s einen Hotlink auslöst und damit auch der Wert an die Peripherie verschickt wird. Um mehrfache Telegramme zu vermeiden, muss in einer Anwendung der _original.._value und das entsprechende _original.._userbyte<x> in einem dpSet() gesetzt werden. D.h. wenn z.B. der Wert, COT und die Herkunftsadresse im gleichem Moment geändert werden sollen, muss das in einem dpSet() geschehen, um Telegramme mit unerwünschten Zwischenzuständen zu vermeiden.

Kompatibilität COT Adressen Userbyte-Variante

Eingangsseitig:

Bisher war es möglich für die COT und Herkunftsadresse eine „COT Peripherieadresse“ zu parametrieren. Dies funktioniert weiterhin, auch wenn UserByteCOT bzw. UserByteOrigin ungleich 0 sind. Allerdings ist es nicht sinnvoll in einem neuen Projekt die Verfahren zu vermischen.

Ausgangsseitig:

Auch ausgangsseitig gab es bisher „COT Peripherieadressen“. Diese Adressen funktionieren nur noch, wenn ConnUserByteCOT und ConnUserByteOrigin auf 0 gesetzt sind. Ist ein Eintrag davon ungleich 0, so werden nur die Informationen aus den „user bytes“ in das Telegramm eingebaut.

Ist das Userbyte für die COT auf 0 gesetzt, so wird die Default COT vom Treiber verwenden.

Gemeinsame Adresse der ASDU = Region, Komponente

Die gemeinsame Adresse wird für alle Objekte innerhalb einer ASDU gemeinsam genutzt. Die globale Adresse ist eine an alle Stationen eines bestimmten Systems gerichtete Adresse.

Gemeinsame Adresse: UI8[1..16]<0...65535>

2^7 2^0
2^15 2^8

<0>: nicht benutzt

<1...65534>: Stationsadresse

<65535>: globale Adresse

ASDU mit einer "Adresse an alle" in Steuerungsrichtung müssen in Überwachungsrichtung mit ASDU beantwortet werden, welche die spezifisch festgelegte gemeinsame Adresse (Stationsadresse) enthalten.

Informationsobjekte = Information Object Address

Die Adresse des Informationsobjektes (1, 2 oder 3 Oktette) wird als Zieladresse in Steuerungsrichtung und als Quelladresse in Überwachungsrichtung benutzt. Je nach Zahl der Oktette ist die Adresse der Informationsobjekte:

2^7 2^0
2^15 2°8
2^23 2^16

UI [1...8]<1...255>: HB

UI [1-16]<1...65535>: MB

UI [1-24]<1...16777215>: LB

Einer detaillierte Beschreibung entnehmen Sie der Norm IEC 60870-5-104.

Anzahl an Ports und Wiederaufbau der Verbindung

Die theoretische Anzahl der Ports (seriellen Schnittstellen), die mit einem IEC 101 Treiber behandelt werden können, hängt von der Anzahl der möglichen seriellen Schnittstellen des betreffenden Betriebssystem zusammen. Für Windows ist die Anzahl auf 255 limitiert.

Die theoretische Anzahl der Slaves im unsymmetrischen Betrieb ist durch den maximalen Wert der Linkadresse vorgegeben.

Die Angaben sind deshalb "theoretisch“, da meistens aus Performance- oder anderen Gründen die maximale Anzahl nicht sinnvoll ist.

Im Falle einer unterbrochenen Verbindung zur Peripherie, versucht der Treiber periodisch die Verbindung zur Peripherie wiederherzustellen.

Generalabfrage

Automatische Generalabfrage beim Treiberstart bzw. bei Redundanzumschaltung IEC

Die Eigenschaften der automatischen Generalabfrage können mit dem Config Eintrag autoGQ bestimmt werden (Details siehe im Kapitel Mögliche Config-Einträge des IEC Treibers). Der 104 Treiber und der 101 Treiber verhalten sich bezüglich automatischer Generalabfrage identisch. Für die Funktion der Generalabfrage ist es notwendig, dass die Common Objekt-Adressen in der Lokalen/Globalen Liste explizit definiert sind, d.h. keine Wildcards vorhanden sind.

Zugriff auf verschiedene Telegrammtypen mittels Subindex

Die unten nachfolgende Tabelle enthält die Informationen, wie bei den unterschiedlichen Telegrammtypen mittels Subindex auf die, im Telegramm vorhandenen Felder zugegriffen werden kann. Dabei sind noch folgende Punkte zu beachten:

Quality Information

In Befehlsrichtung (sowohl C_* als auch M_* Telegrammtypen können in Befehlsrichtung geschickt werden) wird die Quality Information bei manchen Telegrammen als ODER-Verknüpfung des über Subindex angegebenen Wertes mit dem Wert aus der Adresse gebildet (z.B. M_SP_NA_1 oder C_SC_NA_1). Das ist in der Regel dann der Fall, wenn die Daten, oder ein Teil der Daten) und die Quality Information im selben Byte enthalten sind). Bei den anderen Telegrammen kann der Wert nur über die Quality Information aus der Adresse gebildet werden (z.B. M_BO_NA_1 oder C_SE_NA_1).

Wenn die Qualitätsinformation eingangseitig auf Userbits abgebildet wird, so werden die Userbits bei allen betroffenen Subindizes gesetzt.

DPE Typ

Der DPE Typ ist nicht notwendigerweise so wie in der Tabelle angegeben zu setzen, da auch eine Typkonvertierung stattfindet. So kann z.B. statt eines bool Typs auch ein int verwendet werden, der dann die Werte 0 oder 1 annimmt. Bei inkompatiblen Typen gibt es eine Fehlermeldung während der Transformation. Sinnvollerweise sollte man aber, wenn es keine anderen Gründe gibt, die Typen der Tabelle verwenden.

Spezielle Subindizes

Für manche Telegrammtypen gibt es spezielle Subindizes, die den Zugriff auf die Daten erleichtern. So ist es z.B. beim M_DP_NA_1 Telegramm möglich mit dem Subindex 8 auf das DPI Feld als "unsigned int zuzugreifen. D.h. man braucht nicht zwei DPEs für DPI bit 0 und DPI bit 1 zu definieren.

Anmerkung:

Ausgangsseitig wird der Wert des Userbytes aus einem Datenpunktelement mit niedrigstem Subindex auf die Datenpunktelemente mit höheren Subindizes geschrieben.

Anmerkung:

Bei der Definition der Peripherieadresse muss für die in folgender Tabelle aufgelisteten Telegrammtypen die Richtung mit "Ausgang (Gruppe)" parametriert werden!

Telegramm Transf. Item SI DPE Type Hinweis

M_SB_NA_1 (1)

M_SB_TA_1 (2)

M_SB_TB_1 (30)

SIQ SPI 0 bool

Eingangsseitig können BL, SB, NT und IV auch auf die entsprechenden Userbits abgebildet werden.

Ausgangsseitig kann man die Qualitätsbits im Userbyte ConnUserByteQ setzen.

BL 4 bool
SB 5 bool
NT 6 bool
IV 7 bool

M_DP_NA_1 (3)

M_DP_TA_1 (4)

M_DP_TB_1 (31)

DIQ DPI bit 0 0 bool
DPI bit 1 1 bool
BL 4 bool

Eingangsseitig können BL, SB, NT und IV auch auf die entsprechenden Userbits abgebildet werden.

Ausgangsseitig kann man die Qualitätsbits im Userbyte ConnUserByteQ setzen.

SB 5 bool
NT 6 bool
IV 7 bool
DPI as uint 8 uint DPI as unsigned integer, values from 0-3

M_ST_NA_1 (5)

M_ST_TA_1 (6)

M_ST_TB_1 (32)

VTI value 0 int

Value

Eingangsseitig können BL, SB, NT und IV auch auf die entsprechenden Userbits abgebildet werden.

Ausgangsseitig kann man die Qualitätsbits im Userbyte ConnUserByteQ setzen.

T 1 bool Display of Intermediate position

M_BO_NA_1 (7)

M_BO_TA_1 (8)

M_BO_TB_1 (33)

BSI

bit[i]

0-31

bool

Eingangsseitig können BL, SB, NT und IV auch auf die entsprechenden Userbits abgebildet werden.

Ausgangsseitig kann man die Qualitätsbits im Userbyte ConnUserByteQ setzen.

OV 32 bool
BL 36 bool
SB 37 bool
NT 38 bool
IV 39 bool

bit pattern

40 bit32 complete bit pattern

M_ME_NA_1 (9)

M_ME_TA_1 (10)

M_ME_ND_1 (21)

M_ME_TD_1 (34)

NVA value 0 float

Eingangsseitig können BL, SB, NT und IV auch auf die entsprechenden Userbits abgebildet werden.

Ausgangsseitig kann man die Qualitätsbits im Userbyte ConnUserByteQ setzen.

OV 1 bool
BL 5 bool
SB 6 bool
NT 7 bool
IV 8 bool
M_ME_ND_1 (21) NVA value 0 float Bei Typ 21 gibt es keine Qualitätsinformation

M_ME_NB_1 (11)

M_ME_TB_1 (12)

M_ME_TE_1 (35)

SVA value 0 int

Eingangsseitig können BL, SB, NT und IV auch auf die entsprechenden Userbits abgebildet werden.

Ausgangsseitig kann man die Qualitätsbits im Userbyte ConnUserByteQ setzen.

OV 1 bool
BL 5 bool
SB 6 bool
NT 7 bool
IV 8 bool

M_ME_NC_1 (13)

M_ME_TC_1 (14)

M_ME_TF_1 (36)

R32 value 0 float

Eingangsseitig können BL, SB, NT und IV auch auf die entsprechenden Userbits abgebildet werden.

Ausgangsseitig kann man die Qualitätsbits im Userbyte ConnUserByteQ setzen.

OV 1 bool
BL 5 bool
SB 6 bool
NT 7 bool
IV 8 bool

M_IT_NA_1 (15)

M_IT_TA_1 (16)

M_IT_TB_1 (37)

BCR counter value 0 int

Eingangsseitig können CY, CA, und IV auf die entsprechenden Userbits abgebildet werden.

Ausgangsseitig kann man die Qualitätsbits inklusive SQ im Userbyte ConnUserByteQ setzen.

SQ kann eingangsseitig nicht auf Userbits abgebildet werden, da es sich um einen Integerwert handelt.

SQ 1 uint
CY 2 bool
CA 3 bool
IV 4 bool

M_EP_TA_1 (17)

M_EP_TD_1 (38)

SEP ES bit 0 0 bool You cannot access ES as int at the moment. There is no implementation.
ES bit 1 1 bool
EI 3 bool

Eingangsseitig können EI, BL, SB, NT und IV auf die entsprechenden Userbits abgebildet werden.

Ausgangsseitig kann man die Qualitätsbits im Userbyte ConnUserByteQ setzen.

BL 4 bool
SB 5 bool
NT 6 bool
IV 7 bool
elapsed time 8 time

M_EP_TB_1 (18)

M_EP_TE_1 (39)

SPE GS 0 bool
SL1 1 bool

Eingangsseitig können SL1, SL2, SL3, SIE und SRD auf die entsprechenden Userbits abgebildet werden.

Ausgangsseitig kann man die Qualitätsbits im Userbyte ConnUserByteQ setzen.

SL2 2 bool
SL3 3 bool
SIE 4 bool
SRD 5 bool
relay time 8 time

M_EP_TC_1 (19)

M_EP_TF_1 (40)

OCI GC 0 bool
CL1 1 bool

Eingangsseitig können CL1, CL2 und CL3 auf die entsprechenden Userbits abgebildet werden.

Ausgangsseitig kann man die Qualitätsbits im Userbyte ConnUserByteQ setzen.

CL2 2 bool
CL3 3 bool
relay opening time 8 time
M_PS_NA_1 (20) BSI bit[i] 0-31 bool single bits
bit pattern 40 bit32 complete bit pattern

C_SC_NA_1 (45)

C_SC_TA_1 (58)

SCO SCS 0 bool
QU bit 0 2 bool

Ausgangsseitig kann man QU und S/E im Userbyte ConnUserByteQ setzen.

Eingangsseitig muss man die Subindizes verwenden.

QU bit 1 3 bool
QU bit 2 4 bool
QU bit 3 5 bool
QU bit 4 6 bool
S/E 7 bool

C_DC_NA_1 (46)

C_DC_TA_1 (59)

DCO DCS bit 0 0 bool
DCS bit 1 1 bool
QU bit 0 2 bool

Ausgangsseitig kann man QU und S/E im Userbyte ConnUserByteQ setzen.

Eingangsseitig muss man die Subindizes verwenden.

QU bit 1 3 bool
QU bit 2 4 bool
QU bit 3 5 bool
QU bit 4 6 bool
S/E 7 bool
DCS 8 uint DCS as unsigned integer, values from 0-3

C_RC_NA_1 (47)

C_RC_TA_1 (60)

RCO RCS bit 0 0 bool
RCS bit 1 1 bool
QU bit 0 2 bool

Ausgangsseitig kann man die QU und S/E im Userbyte ConnUserByteQ setzen.

Eingangsseitig muss man die Subindizes verwenden.

QU bit 1 3 bool
QU bit 2 4 bool
QU bit 3 5 bool
QU bit 4 6 bool
S/E 7 bool
RCS 8 uint RCS as unsigned integer, values from 0-3

C_SE_NA_1 (48)

C_SE_TA_1 (61)

NVA value 0 float

QL1-7 -> Subindex 1-7

S/E -> Subindex 8

C_SE_NB_1 (49)

C_SE_TB_1 (62)

SVA value 0 int

QL1-7 -> Subindex 1-7

S/E -> Subindex 8

Ausgangsseitig kann man die QL und S/E im Userbyte ConnUserByteQ setzen.

Eingangsseitig muss man die Subindizes verwenden.

C_SE_NC_1 (50)

C_SE_TC_1 (63)

R32 value 0 float

QL1-7 -> Subindex 1-7

S/E -> Subindex 8

Ausgangsseitig kann man die QL und S/E im Userbyte ConnUserByteQ setzen.

Eingangsseitig muss man die Subindizes verwenden.

C_BO_NA_1 (51)

C_BO_TA_1 (64)

BSI bit[i] 0-31 bool

single bits

Bei diesem Typ gibt es keine Qualitätsinformation.

bit pattern 40 bit32 complete bit pattern
C_IC_NA_1 (100) Interrogation QOI 0 uint
C_CI_NA_1 (101) Interrogation QCC 0 uint
C_RD_NA_1 (102) Empty - - bool The data in the frame are fix coded. If you receive that kind of frame the value 1 is set on the datapoint.
C_CS_NA_1 (103) CP56 CP56 time 0 time

C_TS_NA_1 (104)

C_TS_TA_1 (107)

FBP - - bool The data in the frame are fix coded. If you receive that kind of frame the value 1 is set on the datapoint.
C_RP_NA_1 (105) Interrogation QRP 0 uint
P_ME_NA_1 (110) NVA value 0 float Ausgangsseitig kann man die Parameterqualifier KPA, LPC und POP im Userbyte ConnUserByteQ setzen
P_ME_NB_1 (111) SVA value 0 int Ausgangsseitig kann man die Parameterqualifier KPA,LPC und POP im Userbyte ConnUserByteQ setzen
P_ME_NC_1 (112) R32 value 0 float Ausgangsseitig kann man die Parameterqualifier KPA,LPC und POP im Userbyte ConnUserByteQ setzen
P_AC_NA_1 (113) Empty - - bool The data in the frame are fix coded. If you receive that kind of frame the value 1 is set on the datapoint.

M_IT_ND_1 (230)

M_IT_TD_1 (231)

eight byte floating point counter value counter value 0 float
SQ 1 uint

Sequenznummer

SQ kann eingangseitig nicht auf Userbits abgebildet werden, da es sich um einen Integerwert handelt.

CY 2 bool

Eingangsseitig können CY, CA, und IV auf die entsprechenden Userbits abgebildet werden.

Ausgangsseitig kann man die Qualitätsbits inklusive SQ im Userbyte ConnUserByteQ setzen.

CA 3 bool
IV 4 bool

M_IT_NC_1 (240)

M_IT_TC_1 (241)

6 octet BCD 0 double 6 octet counter value
6 octet BCD 1 uint

Sequenznummer

SQ kann eingangseitig nicht auf Userbits abgebildet werden, da es sich um einen Integerwert handelt.

6 octet BCD CY 2 bool

Eingangsseitig können CY, CA, und IV auf die entsprechenden Userbits abgebildet werden.

Ausgangsseitig kann man die Qualitätsbits inklusive SQ im Userbyte ConnUserByteQ setzen.

6 octet BCD CA 3 bool
6 octet BCD IV 4 bool
C_SE_NZ_1 (242) 6 octet BCD 0 double 6 octet counter value
6 octet BCD 1 uint not used
6 octet BCD 2 bool not used
6 octet BCD 3 bool not used
6 octet BCD 4 bool S/E

Private Telegrammtypen

Der Telegrammtyp 135 gehört zu den privaten Typen. D.h. es wird der Inhalt eines BLOB DPEs übertragen und es findet keine Interpretation der Daten statt. Das gilt für den IEC 101 und 104 Treiber.

Dieser Telegrammtyp funktioniert daher nur bei DPEs vom Typ blob. Zusätzlich muss die Information Object Address auf 0.0.135 gesetzt werden.

Konsistenzprüfungen der Telegramme

IEC 101

Geprüft wird:

  1. Konsistenter Telegrammkopf

  2. Prüfsumme

Bei Fehler ist die Konsequenz der Wiederaufbau der Verbindung.

IEC 104

Geprüft wird:

  1. Konsistenter Telegrammkopf

Bei Fehler ist die Konsequenz der Wiederaufbau der Verbindung.

Anmerkung:

Wenn die Prüfsummenberechnung schief geht wird die Verbindung neu initialisiert. Es kommt dabei nur eine Fehlermeldung, dass die Verbindung unterbrochen wurde. Mit dem Debug-Level "-dbg 27" kann man sich näher anschauen ob die Prüfsumme die Ursache ist.

Optimierung vom Datendurchsatz

Nach Möglichkeit werden Telegramme beim Versenden in ein Telegramm gepackt.

Es wird geprüft ob TYP, COT (= Cause of Transmission) und COA (Common Object Address) vom letzten Telegramm in der Queue mit dem aktuellen Telegramm übereinstimmen. Wenn ja, wird das Informationobjekt an das letzte Telegramm in der Queue angehängt, wenn das von der Länge her möglich ist. Es wird nur versucht das IOA an das letzte Telegramm in der Queue anzuhängen damit sicher gestellt ist, dass kein Telegramm ein anderes überholt.

Mögliche Fehlermeldungen bei der Verwendung vom IEC-Treiber

WCCOAiec (1), 2005.02.26 17:27:25.622, PARAM,SEVERE, 54, Unexpected

state, IecResources, DP-Element does not exist , _Iec_1.FileTransfer.Command:_original.._value

WCCOAiec (1), 2005.02.26 17:27:25.623, PARAM,SEVERE, 54, Unexpected state, IecResources, DP-Element does not exist , _Iec_1.FileTransfer.Status:_original.._value

Diese Meldungen deuten daraufhin, dass eine Inkonsistenz zwischen der Treiber-Version und den internen Datenpunkten bzw. deren Typen besteht.

WCCOAiec (1), 2005.02.27 16:27:19.990, PARAM,WARNING, 54, Unexpected state, IecTgLayer, generalQuery, Check format of local/global list entry, COA not correctly specified *.*.*.*.*

In der globalen/lokalen IEC-Liste ist *.*.*.*.* definiert. Die Log-Meldung ist eine Warnung, eine GA über den internen Datenpunkt bzw. den Config-Eintrag autoGQ > 0 ist damit nicht möglich. Damit dies möglich ist müssen die beiden ersten Einträge (Region + Komponente) ungleich "*" sein.