F_iecCopyStreamToStream

F_iecCopyStreamToStream 1:

Diese Funktion kopiert Datenbytes von der source-Variablen in die target-Variable. Der Speicherinhalt der source-Variablen bleibt unverändert. Der Speicherinhalt der target-Variablen wird vergrößert. Der Rückgabeparameter der Funktion liefert die Anzahl der erfolgreich kopierten Datenbytes.

Syntax

FUNCTION F_iecCopyStreamToStream: UDINT
VAR_INPUT
    cbCopy  : UDINT;
END_VAR
VAR_IN_OUT
    target  : ST_IEC870_5_101Stream;
    source  : ST_IEC870_5_101Stream;
END_VAR

F_iecCopyStreamToStream 2: Eingänge

cbCopy: Anzahl der Bytes die von der source-Variablen in die target-Variable kopiert werden sollen.

Ein-/Ausgänge

target: Zieldatenpuffer.

source: Quelldatenpuffer.

Beispiel in ST

Bei einer steigenden Flanke am bCopy wird zuerst srcValue inkrementiert und in srcStream kopiert. Danach werden die ersten 4 Datenbytes von srcStream nach dstStream kopiert. Zum Schluss werden die ersten 4 Datenbytes von dstStream in die dstValue-Variable kopiert.

PROGRAM P_iecCopyStreamToStream
VAR
    srcStream   : ST_IEC870_5_101Stream;
    srcValue    : DWORD;

    dstStream   : ST_IEC870_5_101Stream;
    dstValue    : DWORD;

    bCopy       : BOOL;
END_VAR
IF bCopy THEN
    bCopy := FALSE;
    srcValue := srcValue + 1;
    F_iecCopyBufferToStream( ADR( srcValue ), SIZEOF( srcValue ), srcStream );
    F_iecCopyStreamToStream ( SIZEOF( srcValue ), dstStream, srcStream );
    F_iecCopyStreamToBuffer( ADR( dstValue ), SIZEOF( dstValue ), dstStream );
END_IF

Speicherdarstellung der srcStream- und dstStream-Variablen nach dem ersten F_iecCopyStreamToStream-Funktionsaufruf:

srcStream:

length

data

4

16#01

16#00

16#00

16#00

...

...

...

...

...

...

...

IEC870_MAX_ASDU_DATA_BYTE

dstStream:

length

data

4

16#01

16#00

16#00

16#00

...

...

...

...

...

...

...

IEC870_MAX_ASDU_DATA_BYTE

Speicherdarstellung der srcStream- und dstStream-Variablen nach dem zweiten F_iecCopyStreamToStream-Funktionsbaufruf:

srcStream:

length

data

8

16#01

16#00

16#00

16#00

16#02

16#00

16#00

16#00

...

...

...

IEC870_MAX_ASDU_DATA_BYTE

dstStream:

length

data

8

16#01

16#00

16#00

16#00

16#01

16#00

16#00

16#00

...

...

...

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)