Insertar caracteres
INSERT inserta la cadena de caracteres IN2 en la cadena IN1 a partir de la posición P, donde 0 indica el primer carácter de la cadena, 1 el segundo carácter, etc. El resultado se guarda en la variable de salida.
Entrada
Cadena de entrada
Cadena a insertar en la cadena de entrada
Posición después de la cual la cadena IN2 se inserta en la cadena de entrada IN1, donde 0 indica el primer carácter de la cadena, 1 el segundo carácter
Salida
Resultado
Si esta instrucción se utiliza con caracteres UTF-8, consultar las notas relativas a los caracteres UTF-8 en el tipo de datos STRING.
Si las cadenas son más largas que la longitud definida para las variables de entrada (IN1 y IN2) en el campo Tipo, se genera un error (para corregir el error, consultar sys_bIsCarry).
si una cadena aplicada en la entrada o la salida es una cadena no válida.
si una cadena aplicada en la entrada o la salida es una cadena no válida.
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
input_string1: STRING[32]:='ideas life';
input_string2: STRING[32]:='for';
position: INT:=6;
output_string: STRING[32]:='';
END_VAR
En este ejemplo se han declarado las variables de entrada (input_string1, input_string2 y position). Sin embargo, se puede introducir una constante directamente en la entrada de la función. Las cadenas de caracteres (STRING) deben ir entre comillas simples, tanto en la cabecera de la POU como en la función. La cadena en input_string2 ('for ') se inserta en la cadena de la entrada input_string1 ('Ideas life') a partir de la posición 6 El resultado ('Ideas for life') se almacena en output_value. En el ejemplo en LD, está activado el icono (Monitorización) en modo online, por lo que se pueden ver los resultados inmediatamente.
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,INSERT!,Instance,9,0,14,5,,?DIN1?DIN2?DP?C);
B(B_VARIN,,input_string1,7,1,9,3,);
B(B_VARIN,,input_string2,7,2,9,4,);
B(B_VARIN,,position,7,3,9,5,);
B(B_VAROUT,,output_string,14,1,16,3,);
L(1,0,1,5);
END_NETWORK_BODY
END_NET_WORK
END_BODY
output_value:=INSERT(IN1:=input_string1, IN2:=input_string2, P:=6);