La instrucción EQ realiza una operación que compara la primera entrada con la segunda para determinar la igualdad de los tipos de datos Integer, Real, Time, Date y String.
Detalles de la operación:
No se recomienda efectuar la prueba de igualdad de valores de tiempo en el caso de los bloques de instrucción TON, TP y TOF.
No se recomienda utilizar el tipo de datos Real si se compara si los valores son iguales, ya que los números de la operación matemática se redondean de forma diferente de aquellos que se muestran en la pantalla de salida de la variable. Por tanto, dos valores de salida pueden aparecer iguales en la pantalla, aunque se evalúen como falsos. Por ejemplo, al comparar 23,500001 con 23,499999 ambos aparecen como 23,5 en la pantalla de entrada de variable, pero no serán iguales en el controlador.
Idiomas compatibles: Diagrama de bloque de funciones, diagrama de lógica de escalera y texto estructurado.
Esta instrucción se aplica a los controladores Micro810, L20E, L50E y L70E.
EQ
Parámetros EQ
Parámetro
Tipo de parámetro
Tipo de datos
Descripción
EN
Entrada
BOOL
Cuando se establece como cierto, la instrucción está habilitada.
CIERTO: Ejecuta el cálculo actual.
FALSO: No hay cómputo.
Se aplica a programas de diagrama de lógica de escalera.
i1
Entrada
BOOL
SINT
USINT
BYTE
INT
UINT
WORD
DINT
UDINT
DWORD
LINT
ULINT
LWORD
REAL
LREAL
TIME
DATE
STRING
Todas las entradas deben ser del mismo tipo de datos.
La entrada Tiempo se aplica a los lenguajes de texto estructurado, diagrama de lógica de escalera y diagrama de bloque de funciones.
No se recomienda el tipo de datos real.
i2
Entrada
BOOL
SINT
USINT
BYTE
INT
UINT
WORD
DINT
UDINT
DWORD
LINT
ULINT
LWORD
REAL
LREAL
TIME
DATE
STRING
o1
Salida
BOOL
CIERTO si i1 = i2.
Ejemplo de comparación de valores REAL utilizando SUB (-), ABS, y LT (<)
No se recomienda utilizar el tipo de datos real al comparar la igualdad de valores, ya que los números se redondean de forma diferente. Dos valores de salida pueden aparecer iguales en la pantalla del
FactoryTalk Design Workbench
, pero seguirán evaluándose como falsos.
Por ejemplo, al comparar 23,500001 con 23,499999 ambos aparecen como 23,5 en la pantalla de entrada de variable, pero no serán iguales en el controlador.
Para probar si dos tipos de datos reales son iguales, puede utilizar una instrucción SUB para obtener la diferencia entre los valores y determinar si esta es menor que (Less Than) un valor de precisión establecido. Observe el siguiente ejemplo de programa de LD en el que se comparan dos valores de tipo de datos real.
Ejemplo de comparación de valores REAL utilizando SUB (-), ABS, y LT (<)
Ejemplos de EQ
Ejemplo de diagrama de bloque de funciones EQ
Ejemplo de programa de diagrama de lógica de escalera EQ
(* ST Equivalence: *)
aresult := (10 = 25); (* aresult is FALSE *)
mresult := ('ab' = 'ab'); (* mresult is TRUE *)