Transferencia de bloques por número
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 d_Start si la entrada de trigger EN pasa a TRUE.
Entrada
área inicial de 16 bits, fuente
número de palabras a copiar, fuente
Salida
área inicial de 16 bits, destino
Esta instrucción es una modificación de la instrucción F10_BKMV generada por el compilador.
Siempre que s1_Start y d_Start estén en el mismo área de datos:
s1_Start = d_Start: data will be recopied to the same data area.
El valor de 's2_Number' tiene que ser mayor que 0.
Las variables s1_Start, s2_Number y d_Start 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)];
Array2: ARRAY [0..5] OF INT:=[6(0)];
CopyArray: BOOL:=FALSE;
END_VAR
Cuando la variable CopyArray pasa de FALSE a TRUE, se ejecuta la función. Copia el bloque de datos especificado por el área de 16 bits inicial s1_Start y el número de PALABRAS especificado por s2_Number al área especificado por d_Start.
BODY
WORKSPACE
NETWORK_LIST_TYPE := NWTYPELD ;
ACTIVE_NETWORK := 0 ;
END_WORKSPACE
NET_WORK
NETWORK_TYPE := NWTYPELD ;
NETWORK_LABEL := ;
NETWORK_TITLE := ;
NETWORK_HEIGHT := 5 ;
NETWORK_BODY
B(B_F,F10_BKMV_NUMBER!,Instance,8,0,19,5,,?DEN?Ds1_Start?Ds2_Number?AENO?Cd_Start);
B(B_VARIN,,CopyArray,6,1,8,3,);
B(B_VARIN,,Array1[0],6,2,8,4,);
B(B_VARIN,,2,6,3,8,5,);
B(B_VAROUT,,Array2[0],19,2,21,4,);
L(1,0,1,5);
END_NETWORK_BODY
END_NET_WORK
END_BODY