F_iecCopyBufferToStream

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

 F_iecCopyBufferToStream 1:

Diese Funktion kopiert Datenbytes von einer externen Puffervariablen in die stream-Variable. Der Speicherinhalt der stream-Variablen wird vergrößert. Der Rückgabeparameter der Funktion liefert die Anzahl der erfolgreich kopierten Datenbytes.

 

FUNCTION F_iecCopyBufferToStream: UDINT

VAR_INPUT
    pBuffer     : DWORD;
    cbBuffer    : UDINT;
END_VAR
VAR_IN_OUT
    stream      : ST_IEC870_5_101Stream;
END_VAR

pBuffer: Pointer (Adresse) einer externen Puffervariablen.

cbBuffer: Anzahl der Datenbytes die von der externen Puffervariablen in die stream-Variable kopiert werden sollen.

stream: Datenpuffer.

 

Beispiel in ST:

Bei einer steigenden Flanke an der bTx werden 4 Datenbytes der txBuffer-Variablen in die stream-Variable hineinkopiert.

PROGRAM P_CopyBufferToStream
VAR
    stream   : ST_IEC870_5_101Stream;
    txBuffer : ARRAY[0..3] OF BYTE := 1, 2, 3, 4;
    cbTx     : UDINT;
    bTx      : BOOL;
END_VAR

 

IF bTx THEN
    bTx     := FALSE;
    cbTx    := cbTx + F_iecCopyBufferToStream( ADR( txBuffer ), SIZEOF( txBuffer ), stream );
    txBuffer[0] := txBuffer[0] + 1;
    txBuffer[1] := txBuffer[1] + 1;
    txBuffer[2] := txBuffer[2] + 1;
    txBuffer[3] := txBuffer[3] + 1;
END_IF

 

Speicherdarstellung der stream-Variablen vor dem ersten Funktionsaufruf:

length

data

0

16#00

16#00

16#00

16#00

16#00

...

...

...

...

...

...

IEC870_MAX_ASDU_DATA_BYTE

 

Speicherdarstellung der stream-Variablen nach dem ersten Funktionsaufruf:

length

data

4

16#01

16#02

16#03

16#04

...

...

...

...

...

...

...

IEC870_MAX_ASDU_DATA_BYTE

 

Speicherdarstellung der stream-Variablen nach dem zweiten Funktionsaufruf:

length

data

8

16#01

16#02

16#03

16#04

16#02

16#03

16#04

16#05

...

...

...

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 )