Vai al contenuto

eVMove, move data using pointers

Vai all indice del manuale di programmazione
Tipo: Funzione
Libreria LogicLab: eLLabCommonLib
Libreria Codesys: Non disponibile

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

Descrizione

Destination (PVOID) Indirizzo variabile di destinazione.
Source (PVOID) Indirizzo variabile sorgente.
Type (VR_TYPE) Tipo variabile (Vedi definizione).

La funzione ritorna una variabile BOOL, FALSE: Errore esecuzione, TRUE: Esecuzione Ok.

Immagine funzione eVMove

Esempi

Come utilizzare gli esempi.
Alcuni esempi di utilizzo funzione.

LogicLab (Ptp201, ST_eVMove)
PROGRAM ST_eVMove
VAR
    pAV : PVOID; (* Auxiliary void pointer *)
    dwAV:DWORD; (* Auxiliary dword *)
    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 *)
    RArray : ARRAY[0..1] OF REAL := [0.0, 1.2]; (* 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(RArray[0]), ADR(RArray[1]), VR_TYPE#REAL_TYPE)); //[1.2, 1.2]

    // Use of void pointer on 32bits architecture.

    dwAV:=TO_DWORD(ADR(DWArray[0]))+4;
    eTO_JUNK(eVMove(ADR(pAV), ADR(dwAV), VR_TYPE#PVOID_TYPE));
    eTO_JUNK(eVMove(ADR(DWArray[0]), dwAV, VR_TYPE#DWORD_TYPE)); //[16#12345678, 16#12345678]

// [End of file]
Was this article helpful?