Block move to a offset from source
This instruction is a modification of the F10_BKMV generated by the compiler.
The data block specified by the 16-bit starting area specified by s1_Start and 16-bit ending area specified by s2_End are copied to the block starting from the 16-bit area specified by the offset d_Offset from s1_Start if the trigger EN is in the ON-state.
Input
starting 16-bit area, source
ending 16-bit area, source
offset from s1_Start, destination
Whenever s1_Start and s2_End are in the same data area:
d_Offset = 0: data will be recopied to the same data area.
The variables s1_Start, s2_End and d_Offset have to be of the same data type.
All input and output variables used for programming this function have been declared in the POU header. The same POU header is used for all programming languages.
VAR
Array1: ARRAY [0..5] OF INT:=[6(0)];
CopyArrayInArray: BOOL:=FALSE;
END_VAR
When the variable CopyArrayInArray changes from FALSE to TRUE, the function is carried out. It copies the data block starting at the 16-bit area specified by s1_Start and 16-bit ending area specified by s2_End to the block starting from the 16-bit area specified by the offset d_Offset from s1_Start.
BODY
WORKSPACE
NETWORK_LIST_TYPE := NWTYPELD ;
ACTIVE_NETWORK := 0 ;
END_WORKSPACE
NET_WORK
NETWORK_TYPE := NWTYPELD ;
NETWORK_LABEL := ;
NETWORK_TITLE := ;
NETWORK_HEIGHT := 6 ;
NETWORK_BODY
B(B_F,F10_BKMV_OFFSET!,Instance,9,0,19,6,,?DEN?Ds1_Start?Ds2_End?Dd_Offset?AENO);
B(B_VARIN,,CopyArrayInArray,7,1,9,3,);
B(B_VARIN,,Array1[0],7,2,9,4,);
B(B_VARIN,,Array1[3],7,3,9,5,);
B(B_VARIN,,2,7,4,9,6,);
L(1,0,1,6);
END_NETWORK_BODY
END_NET_WORK
END_BODY