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

STR_DELETE

Borra Sección de Strings

Previous pageReturn to chapter overviewNext page

Bloque que borra parte de una sección de STR, almacenando el restante en DST.

 

Representación Ladder

 

STR_DELETE_block

 

Estructura del Bloque

 

Tipo de Variable

Nombre

Tipo de Dato

Descripción

VAR_INPUT

EN

BOOL

Habilitación del bloque

STR

STRING

STRING original

POS

BYTE

Posición a partir de la cual se iniciará la retirada

LEN

BYTE

Número de caracteres que serán retirados a partir de POS

VAR_OUTPUT

DONE

BOOL

Habilitación de salida

DST

BYTE

Variable que recibe la nueva STRING

 

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. Es retirada de STR una sección definida por la posición inicial POS y un tamaño LEN, y el resultado final es almacenado en DST.

 

En caso de que POS esté fuera del rango de valores permitido (entre 1 y el tamaño de STR), 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 el número de caracteres restantes en STR, el valor resultante será truncado.

 

Compatibilidad

 

Equipo

Versión

PLC300

2.10 o superior

 

Diagrama de Flujo del Bloque

 

STR_DELETE_flowchart

 

Ejemplo en Ladder

 

STR_DELETE_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_DELETE_example02

 

En el ejemplo de arriba, son borrados dos caracteres a partir de la posición 2 de STR1, y los caracteres remanentes son enviados a DST_6. Finalizado el bloque exitosamente, será activada la salida.

 

STR_DELETE_example03

 

En el ejemplo de arriba, son borrados dos caracteres a partir de la posición 4 de STR1, y los caracteres remanentes son enviados a DST_6. Finalizado el bloque exitosamente, será activada la salida DONE. Observe que, si POS + LEN es mayor que el tamaño de STR1, son borrados solamente los caracteres restantes de STR1, sin generar error.

 

STR_DELETE_example04

 

En el ejemplo de arriba, son borrados cinco caracteres a partir de la posición 3 de STR1, y los caracteres remanentes son enviados a DST_6. Finalizado el bloque exitosamente, es activada la salida DONE. Observe que, si POS + LEN es mayor que el tamaño de STR1, son borrados solamente los caracteres restantes de STR1, sin generar error.

 

STR_DELETE_example05

 

En el ejemplo de arriba, es borrado un carácter a partir de la posición 1 de STR1, y los caracteres remanentes son enviados a DST_2. Como el tamaño de DST_2 es 2, el último carácter copiado es descartado. Finalizado exitosamente el bloque, será activada la salida DONE.

 

Ejemplo en ST

 

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

 

 

VAR

   STR1 : STRING := 'ABCD';

   POS : BYTE := 1;

   LEN : BYTE := 1;

   DST_2 : STRING;

END_VAR

 

DST_2 := FB_STR_DELETE(

   EN:=DI1,

   STR:=STR1,

   POS:=POS,

   LEN:=LEN,

   Done=>DO1);