A instrução EQ executa uma operação que compara a primeira entrada com a segunda entrada para determinar a igualdade para os tipos de dados Inteiro, Real, Hora, Data e String.
Detalhes da operação:
O teste de igualdade dos valores de Hora não é recomendado para os blocos de instruções TON, TP e TOF.
Não é recomendado usar o tipo de dados Real para comparações de igualdade porque os números são arredondados de maneira diferente nas operações matemáticas daqueles que aparecem na exibição de saída variável. Consequentemente, dois valores de saída podem parecer iguais na exibição, mas ainda serem avaliados como false. Por exemplo, ao comparar 23,500001 com 23,499999, ambos serão exibidos como 23,5 na exibição de entrada variável, mas não serão iguais no controlador.
Linguagens suportadas: Diagrama de blocos de função, diagrama de ladder, texto estruturado.
Essa instrução aplica-se aos controladores Micro810, L20E, L50E e L70E.
EQ
Parâmetros da EQ
Parâmetro
Tipo do parâmetro
Tipo de dados
Descrição
EN
Entrada
BOOL
Quando definida como true, a instrução é habilitada.
TRUE: Executa a computação atual.
FALSE: Não há computação.
Aplica-se aos programas do diagrama de ladder.
i1
Entrada
BOOL
SINT
USINT
BYTE
INT
UINT
WORD
DINT
UDINT
DWORD
LINT
ULINT
LWORD
REAL
LREAL
TIME
DATE
STRING
Todas as entradas devem ser do mesmo tipo de dados.
A entrada de Hora aplica-se às linguagens de texto estruturado, diagrama de ladder e diagrama de blocos de função.
O tipo de dados real não é recomendado.
i2
Entrada
BOOL
SINT
USINT
BYTE
INT
UINT
WORD
DINT
UDINT
DWORD
LINT
ULINT
LWORD
REAL
LREAL
TIME
DATE
STRING
o1
Saída
BOOL
TRUE se i1 = i2.
Exemplo de comparação de valores Real usando SUB (-), ABS e LT (<)
Não é recomendado usar o tipo de dados Real para comparações de igualdade por causa da maneira como os números são arredondados. Dois valores de saída podem parecer iguais na exibição do
FactoryTalk Design Workbench
, mas serão avaliados como false.
Por exemplo, ao comparar 23,500001 com 23,499999, ambos serão exibidos como 23,5 na exibição de entrada variável, mas não serão iguais no controlador.
Para testar se dois valores do tipo de dados Real são iguais, é possível usar uma instrução SUB para obter a diferença entre os valores e determinar se ela é Menor que o valor de precisão estabelecido. Veja o seguinte exemplo do programa LD para comparar dois valores de tipo de dados Reais.
Exemplo de comparação de valores Real usando SUB (-), ABS e LT (<)
Exemplos de EQ
Exemplo de diagrama de blocos de função EQ
Exemplo de programa de diagrama de ladder EQ
(* ST Equivalence: *)
aresult := (10 = 25); (* aresult is FALSE *)
mresult := ('ab' = 'ab'); (* mresult is TRUE *)