Transferencia de bloques por número con offset a partir del origen
Esta instrucción es una modificación de la instrucción F10_BKMV generada por el compilador.
El bloque de datos especificado por el área de 16 bits inicial s1_Start y el número de PALABRAS especificado por s2_Number se copia en bloque a un área inicial especificado por un d_Offset a partir de s1_Start si la entrada de trigger EN pasa a TRUE.
Entrada
área inicial de 16 bits, fuente
Número de palabras a copiar, fuente
área inicial de 16 bits, destino
Siempre que d_Offset = 0: los datos se sobrescribirán en el mismo área.
El valor de s2_Number tiene que ser mayor que 0.
Las variables s1_Start, s2_Number y d_Offset tienen que ser del mismo tipo de datos.
Todas las variables de entrada y de salida utilizadas para la programación de esta función han sido declaradas en la Cabecera de la POU. Se utiliza la misma cabecera de la POU para todos los lenguajes de programación.
VAR
Array1: ARRAY [0..5] OF INT:=[6(0)];
CopyArrayInArray: BOOL:=FALSE;
END_VAR
Cuando la variable CopyArrayInArray pasa de FALSE a TRUE, se ejecuta la función. Copia el bloque de datos especificado por un área de 16 bits inicial s1_Start y el número de PALABRAS especificado por s2_Number a la zona determinada por un d_Offset a partir de
BODY
WORKSPACE
NETWORK_LIST_TYPE := NWTYPELD ;
ACTIVE_NETWORK := 0 ;
END_WORKSPACE
NET_WORK
NETWORK_TYPE := NWTYPELD ;
NETWORK_LABEL := ;
NETWORK_TITLE := ;
NETWORK_HEIGHT := 7 ;
NETWORK_BODY
B(B_F,F10_BKMV_NUMBER_OFFSET!,Instance,9,1,23,7,,?DEN?Ds1_Start?Ds2_Number?Dd_Offset?AENO);
B(B_VARIN,,CopyArrayInArray,7,2,9,4,);
B(B_VARIN,,Array1[0],7,3,9,5,);
B(B_VARIN,,4,7,4,9,6,);
B(B_VARIN,,2,7,5,9,7,);
L(1,0,1,7);
END_NETWORK_BODY
END_NET_WORK
END_BODY