Bloque que inserta una STRING en determinada posición de otra, retornando la STRING resultante.
Representación Ladder

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 inserción |
|
STR2 |
STRING |
STRING a ser insertada |
|
POS |
BYTE |
Posición donde STR2 será insertada |
|
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.
Es realizada una inserción en STR1, a partir de la posición definida en POS, del 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.
|
¡NOTA! POS es tratada con índice "base uno". O sea, POS = 1 referencia la primera posición de STR. |
|
¡NOTA! En caso de que el tamaño de DST sea menor que la suma del número de caracteres de STR1 y STR2, el valor resultante será truncado. |
Compatibilidad
Equipo |
Versión |
PLC300 |
2.10 o superior |
Diagrama de Flujo del Bloque

Ejemplo en Ladder

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.

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.

En el ejemplo de arriba, es hecha una inserción de STR2 en STR1, a partir de la posición 2, y el resultado es enviado a DST_10. Finalizado el bloque exitosamente, será activada la salida DONE.

En el ejemplo de arriba, es hecha una inserción de STR2 en STR1, a partir de la posición 4, y el resultado es enviado a DST_6. Como el tamaño de DST_6 es 6, los últimos dos caracteres copiados son descartados. 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 := '2232'; STR2 : STRING := '1'; POS : BYTE; DST_2 : STRING; END_VAR
DST_2 := FB_STR_INSERT( EN:=DI1, STR1:=STR1, STR2:=STR2, POS:=POS, Done=>DO1);
|
|---|