ST_IEC870_5_101TBuffer

Diese Datenstruktur (TX/RX-Datenpuffer) wird beim Datenaustausch über das IEC60870-5-104/101 Low-Level-Interface benutzt.

Syntax

TYPE ST_IEC870_5_101TBuffer :
STRUCT
    eDbg        : E_IEC870_5_101FifoDbgFlags :=eIEC870_FIFO_DBG_OFF;
    asduFmt     : ST_IEC870_5_101AsduFmtParams;
    asduSize    : BYTE := 0;
    mode        : DWORD := 0;
    dataLink    : ST_IEC870_5_101DataLink;
    bOverwrite  : BOOL := FALSE;
END_STRUCT
END_TYPE

eDbg: Konfiguriert die Debug-Ausgabe der ASDU's.

asduFmt: ASDU-Formatparameter.

asduSize: Maximale Bytelänge der ASDU.

mode: Reserviert, wird zur Zeit nicht benutzt. Dieser Wert sollte Null sein.

dataLink: Auf die Elemente dieser Datenstruktur sollte nicht direkt, sondern nur mit einer Instanz des FB_IEC870_5_101TBufferCtrl-Funktionsbausteins zugegriffen werden.

Der TX/RX-Datenpuffer verwendet intern zwei Sende-Fifos und einen Empfangs-Fifo:

  1. Class 1 Sende-Fifo mit (hochprioren) Daten;
  2. Class 2 Sende-Fifo mit (niederprioren) Daten;
  3. Receive-Fifo (für Class 1 und Class 2 Daten);

Die unteren Transportfunktionen der Bibliothek leeren zuerst den Class 1-Fifo und dann den Class 2-Fifo. Die Class 2 Daten werden nur dann versendet wenn der Class 1-Fifo keine zu versendenden Daten enthält.

Jeder der internen Fifos hat eine feste Größe von 200000 Bytes. Dies dürfte für die meisten Anwendungen ausreichen, weil die Anzahl der Frames die einmalig verschickt werden können durch die iK und iW-Protokollparameter begrenzt wird. Erfahrungsgemäß können in jedem Fifo ca. 2000 ASDUs mit einem Informations-Element (Objekt) oder ca. 600 ASDUs mit einer Sequence von 100 Informations-Elementen (Objekten) abgelegt werden.

Wenn eine größere Anzahl der zu versendenden oder zu empfangenen Frames zwischengespeichert werden soll (z.B. >2000), so können diese in externen, vom SPS-Programmierer festgelegten Puffern/Fifos zwischengehalten werden. Die SPS-Applikation kann dann zur Laufzeit die TwinCAT-Sende-Fifos mit den eigenen Fifo-Einträgen nachfüllen oder bei vielen empfangenen Frames den TwinCAT-Receive-Fifo leeren. Eine andere Möglichkeit ist z.B. zwei Puffer zu benutzen und diese abwechselnd zu füllen/lesen und an den Kommunikationsbaustein übergeben.

bOverwrite: Aktiviert/deaktiviert das Überschreiben der ältesten Meldungen im Sendepuffer bei der Überschreitung der max. zulässigen Puffergröße. Dieser Parameter sollte nur im Offline-Mode aktiviert werden (d.h. wenn die Verbindung unterbrochen wurde) und wenn Offline-Datenspeicherung zusätzlich über den bRetainBuffer-Parameter in den Protokollparametern (ST_IEC870_5_10xProtPara) aktiviert wurde. Im Online-Mode (d.h. wenn der Datentransfer gestartet wurde) sollten keine älteren Meldungen überschrieben werden (sonst fehlen möglicherweise einige Zwischenwerte).

Voraussetzungen

Entwicklungsumgebung

Zielplattform

Einzubindende SPS Bibliotheken (Kategoriegruppe)

TwinCAT v3.1.4012.0

PC oder CX (x86, x64, ARM)

Tc2_IEC60870_5_10x (Communication->IEC60870)
Tc2_SerialCom (Communication->Serial)
Tc2_TcpIp (Communication->TcpIp)
Tc2_Utilities (System)