Bloque que busca la primera ocurrencia de una STRING en otra, retornando la posición de tal ocurrencia.
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 búsqueda |
|
STR2 |
STRING |
STRING a ser buscada |
|
START |
BYTE |
Posición inicial de la búsqueda |
|
VAR_OUTPUT |
DONE |
BOOL |
Habilitación de salida |
POS |
BYTE |
Posición donde STR2 fue encontrada |
Operación
Este bloque permanece activo mientras EN está en nivel TRUE, actualizando el valor de POS, de acuerdo con los parámetros de entrada.
Es realizada una búsqueda en STR1, a partir de la posición START, por una ocurrencia de STR2.
En caso de que sea encontrada, insertará en POS la posición de la ocurrencia, mientras que DONE pasará al próximo bloque Ladder el valor de EN al finalizar la operación.
En caso de que no sea encontrada, o START reciba valor cero, DONE permanecerá en FALSE y POS permanecerá inalterada.
|
¡NOTA! POS es tratada con índice "base uno". O sea, POS = 1 referencia la primera posición de STR. |
Compatibilidad
Equipo |
Versión |
PLC300 |
2.10 o superior |
Diagrama de Flujo del Bloque

Ejemplo en Ladder

En el ejemplo de arriba es hecha una búsqueda por STR2 en STR1, a partir de la posición 1. Como STR2 es encontrada en la posición 1, POS recibe 1. Finalizado el bloque exitosamente, será activada la salida DONE.

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

En el ejemplo de arriba es hecha una búsqueda por STR2 en STR1, a partir de la posición 2. Como STR2 es encontrada en la posición 3, POS recibe 3. Finalizado el bloque exitosamente, será activada la salida DONE.

En el ejemplo de arriba es hecha una búsqueda por STR2 en STR1, a partir de la posición 2. Como STR2 es encontrada en la posición 3, POS recibe 3. Finalizado el bloque exitosamente, será activada la salida DONE.

En el ejemplo de arriba, es hecha una búsqueda por STR2 en STR1, a partir de la posición 2. Como STR2 no es encontrada, POS permanece inalterada y la salida DONE es desactivada.
Ejemplo en ST
El siguiente ejemplo muestra las instrucciones para aplicar el ejemplo anterior en el lenguaje ST.
VAR STR1 : STRING := '1212'; STR2 : STRING := '13'; START : BYTE := 2; POS : BYTE; END_VAR
POS := FB_STR_FIND( EN:=DI1, STR1:=STR1, STR2:=STR2, START:=START, Done=>DO1);
|
|---|