F_iecMoveStreamToBuffer

F_iecMoveStreamToBuffer 1:

Diese Funktion kopiert Datenbytes von der stream-Variablen in eine externe Puffervariable und löscht anschließend die kopierten Datenbytes aus der stream-Variablen. Der Speicherinhalt der stream-Variablen wird verkleinert. Der Rückgabeparameter der Funktion liefert die Anzahl der erfolgreich kopierten Datenbytes.

Syntax

FUNCTION F_iecMoveStreamToBuffer : UDINT
VAR_INPUT
    pBuffer  : PVOID;
    cbBuffer : UDINT;
END_VAR
VAR_IN_OUT
    stream   : ST_IEC870_5_101Stream;
END_VAR

F_iecMoveStreamToBuffer 2: Eingänge

pBuffer: Pointer (Adresse) einer externen Puffervariablen.

cbBuffer: Maximale Anzahl der Datenbytes die aus der stream-Variablen in den externen Puffer kopiert werden sollen.

Ein-/Ausgänge

stream: Quelldatenpuffer.

Beispiel in ST

Nach dem Programmstart sind 8 Byte-Werte in der stream-Variable initialisiert. Bei einer steigenden Flanke an bRx werden jedes Mal 4 Datenbytes aus der stream-Variablen in die rxBuffer-Variable kopiert.

PROGRAM P_iecMoveStreamToBuffer 
VAR
    stream   : ST_IEC870_5_101Stream := ( length := 8, data := [16#78, 16#56, 16#34, 16#12, 16#01, 16#EF, 16#CD, 16#AB] );
    rxBuffer : DWORD;
    cbResult : UDINT;
    bRx      : BOOL := TRUE;
END_VAR
IF bRx THEN
    bRx := FALSE;
    cbResult := F_iecMoveStreamToBuffer( ADR( rxBuffer ), SIZEOF( rxBuffer ), stream );
END_IF

Speicherdarstellung der stream-Variablen nach dem Programmstart:

length

data

8

16#78

16#56

16#34

16#12

16#01

16#EF

16#CD

16#AB

...

...

...

IEC870_MAX_ASDU_DATA_BYTE

Speicherdarstellung der stream-Variablen nach dem ersten F_iecMoveStreamToBuffer-Funktionsaufruf:

length

data

4

16#01

16#EF

16#CD

16#AB

16#01

16#EF

16#CD

16#AB

...

...

...

IEC870_MAX_ASDU_DATA_BYTE

Speicherdarstellung der stream-Variablen nach dem zweiten F_iecMoveStreamToBuffer-Funktionsaufruf:

length

data

0

16#01

16#EF

16#CD

16#AB

16#01

16#EF

16#CD

16#AB

...

...

...

IEC870_MAX_ASDU_DATA_BYTE

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)