Esta función copia el área de memoria definida en Src en el área de memoria definida en Dest para el tamaño definido en Size. Las dos áreas de memoria también pueden superponerse.
La función garantiza la atomicidad de la transferencia, por lo que el área de memoria definida en Dest siempre tiene un valor constante incluso si lo escribe una tarea y lo usa otra tarea. Debe usarse para pasar variables de más de 4 bytes para cadenas de una tarea a otra tarea con mayor prioridad de ejecución.
Funzione
CÓDIGOS: eCDSXUnificado12Lib
Laboratorio lógico: eLLabXUnified12Lib
Descripción
Dest (PVOID) Dirección del área de memoria de destino.
Src (PVOID) Dirección del área de memoria de origen.
Size (UDINT) Tamaño del área de memoria a transferir.
La función devuelve una variable (PVOID) con la dirección del área de memoria de destino. En caso de error, se devuelve eNULL.
Ejemplos
Cómo utilizar los ejemplos..
Establecer la variable de depuración CMovememoria Source será transferido a Destination.
LogicLab (Ptp116)
PROGRAM ST_Sysmemmove
VAR
i : UDINT; (* Auxiliary variable *)
CMove : BOOL; (* Move command *)
Source : ARRAY[ 0..15 ] OF BYTE; (* Source memory *)
Destination : STRING[ 32 ]; (* Destination memory *)
END_VAR
// *****************************************************************************
// PROGRAM "ST_Sysmemmove"
// *****************************************************************************
// By setting the "Move" command the memory is moved
// -----------------------------------------------------------------------------
IF (CMove) THEN
CMove:=FALSE; //Move command
i:=Sysmemmove(ADR(Destination), ADR(Source), SIZEOF(Source));
END_IF;
// [End of file]
CODESIS (Ptp161)
PROGRAM ST_Sysmemmove
VAR
i : UDINT; //Auxiliary variable
CMove : BOOL; //Move command
Source : ARRAY[ 0..15 ] OF BYTE; //Source memory
Destination : STRING[ 32 ]; //Destination memory
END_VAR
// *****************************************************************************
// PROGRAM "ST_Sysmemmove"
// *****************************************************************************
// By setting the "Move" command the memory is moved
// -----------------------------------------------------------------------------
IF (CMove ) THEN
CMove :=FALSE; //Move command
i:=Sysmemmove(ADR(Destination), ADR(Source), SIZEOF(Source));
END_IF;
// [End of file]