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

STR_COMPARE

Comparación de Strings

Previous pageReturn to chapter overviewNext page

Bloque que realiza comparación entre STRINGs.

 

Representación Ladder

 

STR_COMPARE_block

 

Estructura del Bloque

 

Tipo de Variable

Nombre

Tipo de Dato

Descripción

VAR_INPUT

EN

BOOL

Habilitación del bloque

STR1

STRING

Primera STRING de la comparación

STR2

STRING

Segunda STRING de la comparación

SENSITIVE

BOOL

Selecciona si la comparación diferenciará mayúsculas y minúsculas, o no.

VAR_OUTPUT

DONE

BOOL

Habilitación de salida

COMP

BYTE

Valor de la comparación

 

Operación

 

Este bloque permanece activo mientras EN está en nivel TRUE, actualizando el valor de COMP de acuerdo con las STRINGs de entrada. La entrada SENSITIVE con valor TRUE fuerza la comparación a tomar en consideración letras mayúsculas y minúsculas, mientras que un valor FALSE desconsidera esa diferenciación. Los valores que COMP puede asumir son:

0, si ambas son iguales;
-1, si STR1 viene antes en orden alfabético;
1, si STR1 viene después en orden alfabético.

La comparación toma en consideración los valores de la tabla ASCII para los caracteres.

 

El valor de DONE pasa al próximo bloque Ladder el valor de EN al finalizar la operación.

 

Compatibilidad

 

Equipo

Versión

PLC300

2.10 o superior

 

Diagrama de Flujo del Bloque

 

STR_COMPARE_flowchart

 

Ejemplo en Ladder

 

STR_COMPARE_example01

 

En el ejemplo de arriba, el código ASCII de 'a', primer carácter de STR1, es menor que el de 'c', primer carácter de STR2. Por eso, COMP recibe el valor de -1. Finalizado el bloque exitosamente, será activada la salida DONE.

 

STR_COMPARE_example02

 

En el ejemplo de arriba, el código ASCII de 'a', primer carácter de STR1, es mayor que el de '.', primer carácter de STR2. Por eso, COMP recibe el valor de 1. Finalizado el bloque exitosamente, será activada la salida DONE.

 

STR_COMPARE_example03

 

En el ejemplo de arriba, STR1 y STR2 son iguales. Por eso, COMP recibe el valor de 0. Finalizado el bloque exitosamente, será activada la salida DONE.

 

STR_COMPARE_example04

 

En el ejemplo de arriba, STR1 y STR2 son iguales, desconsiderando mayúsculas y minúsculas (SENSITIVE con valor FALSE). Por eso, COMP recibe el valor de 0. Finalizado el bloque exitosamente, será activada la salida DONE.

 

STR_COMPARE_example05

 

En el ejemplo de arriba, STR1 y STR2 son diferentes, considerando mayúsculas y minúsculas (SENSITIVE con valor TRUE). El código ASCII de 'a', primer carácter de STR1, es mayor que el de 'A', primer carácter de STR2. Por eso, COMP recibe el valor de 1. Finalizado el bloque exitosamente, 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 := 'abc';

   STR2 : STRING := 'AbC';

   SENSITIVE : BOOL := 0;

   COMP : SINT;

END_VAR

 

COMP := FB_STR_COMPARE(

   EN:=DI1,

   STR1:=STR1,

   STR2:=STR2,

   SENSITIVE:=SENSITIVE,

   Done=>DO1);