Passa al contenuto principale

eVMove, move data using pointers

Questa funzione permette di copiare o spostare dati tra due variabili definendone indirizzo e tipo.

Descrizione​

Immagine funzione eVMove

ParametroTipoDescrizione
DestinationPVOIDIndirizzo variabile di destinazione.
SourcePVOIDIndirizzo variabile sorgente.
TypeVR_TYPETipo variabile (Vedi definizione).
OutBOOLLa funzione ritorna una variabile BOOL, FALSE: Errore esecuzione, TRUE: Esecuzione Ok.

Esempi​

Come utilizzare gli esempi.
Alcuni esempi di utilizzo funzione.

LogicLab (Ptp201, ST_eVMove)
PROGRAM ST_eVMove
VAR
pAV : PVOID; (* Auxiliary void pointer *)
BArray : ARRAY[0..1] OF BYTE := [16#00, 16#12]; (* Byte array *)
WArray : ARRAY[0..1] OF WORD := [16#0000, 16#1234]; (* Word array *)
DWArray : ARRAY[0..1] OF DWORD := [16#00000000, 16#12345678]; (* Double word array *)
LWArray : ARRAY[0..1] OF LWORD := [16#0000000000000000, 16#0123456789ABCDEF]; (* Long word array *)
RArray : ARRAY[0..1] OF REAL := [0.0, 1.2]; (* Real array *)
LRArray : ARRAY[0..1] OF LREAL := [0.0, 1.2]; (* Long real array *)
END_VAR

// *****************************************************************************
// PROGRAM "ST_eVMove"
// *****************************************************************************

// Some variables copy.

eTO_JUNK(eVMove(ADR(BArray[0]), ADR(BArray[1]), VR_TYPE#BYTE_TYPE)); //[16#12, 16#12]
eTO_JUNK(eVMove(ADR(WArray[0]), ADR(WArray[1]), VR_TYPE#WORD_TYPE)); //[16#1234, 16#1234]
eTO_JUNK(eVMove(ADR(DWArray[0]), ADR(DWArray[1]), VR_TYPE#DWORD_TYPE)); //16#12345678, 16#12345678]
eTO_JUNK(eVMove(ADR(LWArray[0]), ADR(LWArray[1]), VR_TYPE#LWORD_TYPE)); //16#0123456789ABCDEF, 16#0123456789ABCDEF]
eTO_JUNK(eVMove(ADR(RArray[0]), ADR(RArray[1]), VR_TYPE#REAL_TYPE)); //[1.2, 1.2]
eTO_JUNK(eVMove(ADR(LRArray[0]), ADR(LRArray[1]), VR_TYPE#LREAL_TYPE)); //[1.2, 1.2]

// Use of a void pointer on various architectures.
// On 32 bits architecture value is: 16#12345678
// On 64 bits architecture value is: 16#1234567812345678

eTO_JUNK(eVMove(ADR(pAV), ADR(DWArray), VR_TYPE#PVOID_TYPE));

// [End of file]