INSERT

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.

Parámetros

Entrada

IN1 (STRING)

Cadena de entrada

IN2 (STRING)

Cadena a insertar en la cadena de entrada

P (INT)

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

Unnamed output (STRING)

Resultado

Observaciones

  • 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).

Banderas de error

sys_bIsOperationErrorHold (pasa a TRUE y permanece TRUE)

si una cadena aplicada en la entrada o la salida es una cadena no válida.

sys_bIsOperationErrorNonHold (pasa a TRUE para un ciclo de scan)

si una cadena aplicada en la entrada o la salida es una cadena no válida.

Ejemplo

Cabecera de la POU

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

Cuerpo de la POU

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.

Cuerpo LD

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

Cuerpo en ST

output_value:=INSERT(IN1:=input_string1, IN2:=input_string2, P:=6);

Cuerpo IL

Modificado el: 2022-04-19Comentarios sobre esta páginaLínea directa de Panasonic