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

STR_COPY

Copia de Strings

Previous pageReturn to chapter overviewNext page

Bloque que realiza una copia de una sección de STR, almacenando el resultado en DST.

 

Representación Ladder

 

STR_COPY_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 copia

LEN

BYTE

Número de caracteres que serán copiados 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. DST recibe un número de caracteres de STR1, definido por LEN, a partir de la posición insertada en POS.

 

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, al finalizar la operación, el valor de DONE pasará al próximo bloque Ladder el valor de EN.

 

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 copiados de STR, el valor resultante será truncado.

 

Compatibilidad

 

Equipo

Versión

PLC300

2.10 o superior

 

Diagrama de Flujo del Bloque

 

STR_COPY_flowchart

 

Ejemplo en Ladder

 

STR_COPY_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_COPY_example02

 

En el ejemplo de arriba, son copiados dos caracteres a partir de la posición 1 de STR1, y el resultado es enviado a DST_2. Finalizado el bloque exitosamente, será activada la salida DONE.

 

STR_COPY_example03

 

En el ejemplo de arriba, son copiados cero caracteres a partir de la posición 1 de STR1, y el resultado es enviado a DST_2. Finalizado el bloque exitosamente, será activada la salida DONE. Observe que, cuando LEN es cero, la salida es siempre construida como una STRING nula.

 

STR_COPY_example04

 

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

 

STR_COPY_example05

 

En el ejemplo de arriba, son copiados tres caracteres a partir de la posición 2 de STR1, y el resultado es enviado 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 := 2;

   LEN : BYTE := 3;

   DST_2 : STRING;

END_VAR

 

DST_2 := FB_STR_COPY(

   EN:=DI1,

   STR:=STR1,

   POS:=POS,

   LEN:=LEN,

   Done=>DO1);