STR_COMPARE
STR_COMPARE compara STR1 e STR2 e grava o resultado da comparação em COMP. A comparação pode diferenciar ou não maiúsculas de minúsculas, dependendo da entrada SENSITIVE.
Representação em Ladder
Estrutura de blocos
| Tipo de variável | Nome | Tipo de dado | Descrição |
|---|---|---|---|
| VAR_INPUT | EN | BOOL | Habilita o bloco. |
| VAR_INPUT | STR1 | STRING | Primeira string usada na comparação. |
| VAR_INPUT | STR2 | STRING | Segunda string usada na comparação. |
| VAR_INPUT | SENSITIVE | BOOL | Define se caracteres maiúsculos e minúsculos são tratados como diferentes. |
| VAR_OUTPUT | DONE | BOOL | Indica que a operação foi concluída com sucesso. |
| VAR_OUTPUT | COMP | BYTE | Valor do resultado da comparação. |
Operação
Enquanto EN for TRUE, o bloco compara STR1 com STR2 e atualiza COMP.
Quando SENSITIVE é TRUE, caracteres maiúsculos e minúsculos são comparados como caracteres diferentes. Quando SENSITIVE é FALSE, a comparação ignora diferenças de maiúsculas e minúsculas.
A comparação utiliza os valores ASCII dos caracteres. Quando a operação é concluída com êxito, DONE passa o valor de EN para o próximo bloco Ladder.
Resultado da comparação
| COMP | Significado |
|---|---|
| 0 | STR1 e STR2 são iguais. |
| -1 | STR1 vem antes de STR2 em ordem alfabética. |
| 1 | STR1 vem depois de STR2 em ordem alfabética. |
Compatibilidade
| Equipamento | Versão |
|---|---|
| PLC300 | 2.10 ou superior |
Fluxograma de execução

Exemplos
- Diagrama Ladder
- Texto Estruturado
O código ASCII de a, o primeiro caractere de STR1, é menor que o código ASCII de c, o primeiro caractere de STR2. COMP recebe -1, e DONE é ativado quando o bloco é concluído com êxito.
O código ASCII de a, o primeiro caractere de STR1, é maior que o código ASCII de ., o primeiro caractere de STR2. COMP recebe 1, e DONE é ativado quando o bloco é concluído com êxito.
STR1 e STR2 são iguais. COMP recebe 0, e DONE é ativado quando o bloco é concluído com êxito.
STR1 e STR2 são iguais quando diferenças de maiúsculas e minúsculas são ignoradas, pois SENSITIVE é FALSE. COMP recebe 0, e DONE é ativado quando o bloco é concluído com êxito.
STR1 e STR2 são diferentes quando se consideram diferenças de maiúsculas e minúsculas, pois SENSITIVE é TRUE. O código ASCII de a, o primeiro caractere de STR1, é maior que o código ASCII de A, o primeiro caractere de STR2; portanto, COMP recebe 1, e DONE é ativado quando o bloco é concluído com êxito.
O código em Structured Text a seguir aplica a mesma lógica mostrada no exemplo em Ladder.
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);