F_iecCopyStreamToStream

Ab der Produktversion:  TwinCAT PLC Library IEC60870-5-104 Unterstation v2.0.6 und höher.

F_iecCopyStreamToStream 1:
F_iecCopyStreamToStream

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.

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

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

target: Ziel-Datenpuffer.

source: Quell-Datenpuffer.

 

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

TwinCAT v2.10.0 Build >= 1301

PC oder CX (x86)

CX (ARM)

TcIEC870_5_101.Lib
( Standard.Lib; TcBase.Lib; TcSystem.Lib; TcUtilities.Lib;  werden automatisch eingebunden )