F_iecCopyBufferToStream
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.
Syntax
FUNCTION F_iecCopyBufferToStream: UDINT
VAR_INPUT
pBuffer : PVOID;
cbBuffer: UDINT;
END_VAR
VAR_IN_OUT
stream : ST_IEC870_5_101Stream;
END_VAR
Eingänge
pBuffer: Pointer (Adresse) einer externen Puffervariablen.
cbBuffer: Anzahl der Datenbytes die von der externen Puffervariablen in die stream-Variable kopiert werden sollen.
Beispiel in ST
Bei einer steigenden Flanke an der bTx werden 2 x 4 Datenbytes der txBuffer-Variablen in die stream-Variable hineinkopiert.
PROGRAM P_iecCopyBufferToStream
VAR
stream : ST_IEC870_5_101Stream;
txBuffer : ARRAY[0..3] OF BYTE := [1, 2, 3, 4];
cbResult : UDINT;
bTx : BOOL;
END_VAR
IF bTx THEN
bTx := FALSE;
cbResult := F_iecResetStream( 0, stream );
cbResult := F_iecCopyBufferToStream ( ADR( txBuffer ), SIZEOF( txBuffer ), stream );
cbResult := F_iecCopyBufferToStream ( ADR( txBuffer ), SIZEOF( txBuffer ), stream );
END_IF
Speicherdarstellung der stream-Variablen vor dem ersten Funktionsaufruf:
length | data | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|
0 | 16#00 | 16#00 | 16#00 | 16#00 | 16#00 | 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 | 16#00 | 16#00 | 16#00 | 16#00 | 16#00 | 16#00 | ... | 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#01 | 16#02 | 16#03 | 16#04 | 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) |