Bloque que realiza comparación entre STRINGs.
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 |
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

Ejemplo en Ladder

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.

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.

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.

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.

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);
|
|---|