Camino:  Equipo (Dispositivos) > PLC300 > Ladder > String >

STR_REPLACE

Sustitución de Valores en Strings

Previous pageReturn to chapter overviewNext page

Bloque que sustituyó una sección de una STRING por otra STRING, retornando la STRING resultante.

 

Representación Ladder

 

STR_REPLACE_block

 

Estructura del Bloque

 

Tipo de Variable

Nombre

Tipo de Dato

Descripción

VAR_INPUT

EN

BOOL

Habilitación del bloque

STR1

STRING

STRING donde será realizada la sustitución

STR2

STRING

STRING a ser insertada

POS

BYTE

Posición donde STR2 será insertada

LEN

BYTE

Número de caracteres a ser sustituidos por STR2 en STR1

VAR_OUTPUT

DONE

BOOL

Habilitación de salida

DST

STRING

STRING resultante

 

Operación

 

Este bloque permanece activo mientras EN está en nivel TRUE, actualizando el valor de DST de acuerdo con los parámetros de entrada.

A partir de la posición definida en POS, es borrado un número de caracteres definidos por LEN. Luego de eso, en esta misma posición, es insertado el contenido de STR2.

 

En caso de que POS esté fuera del rango de valores permitido (entre 1 y el tamaño de STR más uno), DONE recibirá FALSE y DST permanecerá inalterada.

 

En caso de éxito, el valor de DONE pasa al próximo bloque Ladder el valor de EN, al finalizar la operación.

 

wpshelp_common_fig_note

¡NOTA!

POS es tratada con índice "base uno". O sea, POS = 1 referencia la primera posición de STR.

 

wpshelp_common_fig_note

¡NOTA!

En caso de que el tamaño de DST sea menor que la suma del número de caracteres restantes de STR1 y STR2, el valor resultante será truncado.

 

Compatibilidad

 

Equipo

Versión

PLC300

2.10 o superior

 

Diagrama de Flujo del Bloque

 

STR_REPLACE_flowchart

 

Ejemplo en Ladder

 

STR_REPLACE_example01

 

En el ejemplo de arriba, como el valor de POS es inválido, el bloque no es finalizado exitosamente, y la salida DONE es desactivada.

 

STR_REPLACE_example02

 

En el ejemplo de arriba, como el valor de POS es inválido, el bloque no es finalizado exitosamente, y la salida DONE es desactivada.

 

STR_REPLACE_example03

 

En el ejemplo de arriba, es hecha una sustitución de cero caracteres a partir de la posición 5 de STR1 por el contenido de STR2, y el resultado es enviado a DST_10. Finalizado el bloque exitosamente, será activada la salida DONE. Observe que este bloque actuó como un STR_INSERT.

 

STR_REPLACE_example04

 

En el ejemplo de arriba, es hecha una sustitución de cero caracteres a partir de la posición 2 de STR1 por el contenido de STR2, y el resultado es enviado a DST_10. Finalizado el bloque exitosamente, será activada la salida DONE. Observe que este bloque actuó como un STR_INSERT.

 

STR_REPLACE_example05

 

En el ejemplo de arriba, es hecha una sustitución de un carácter a partir de la posición 3 de STR1 por el contenido de STR2, y el resultado es enviado a DST_10. Finalizado el bloque exitosamente, será activada la salida DONE.

 

STR_REPLACE_example06

 

En el ejemplo de arriba, es hecha una sustitución de ocho caracteres, a partir de la posición 2 de STR1, por el contenido de STR2, y el resultado es enviado a DST_10. Finalizado el bloque exitosamente, será activada la salida DONE. Observe que, si POS + LEN es mayor que el tamaño de STR1, son sustituidos solamente los caracteres restantes de STR1 sin generar error.

 

Ejemplo en ST

 

 El siguiente ejemplo muestra las instrucciones para aplicar el ejemplo anterior en el lenguaje ST.

 

 

VAR

   STR1 : STRING := 'abcd';

   STR2 : STRING := '1234';

   POS : BYTE := 2;

   LEN : BYTE := 8;

   DST_10 : STRING;

END_VAR

 

DST_10 := FB_STR_REPLACE(

   EN:=DI1,

   STR1:=STR1,

   STR2:=STR2,

   POS:=POS,

   LEN:=LEN,

   Done=>DO1);