> For the complete documentation index, see [llms.txt](https://docs.augelab.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.augelab.com/spanish/function-blocks/blocks-reference/data-logic/logic/logic-operations.md).

# Logic Operations

Este bloque de función evalúa operaciones lógicas y comparaciones sobre una o más entradas. Úselo para combinar comprobaciones booleanas, comparar valores numéricos o reducir múltiples condiciones en una única salida verdadero/falso.

## 📥 Entradas

`Generic` Acepta cualquier tipo de dato. Se pueden conectar múltiples entradas para evaluar conjuntamente.

`Generic` Acepta cualquier tipo de dato. (Segundo socket por defecto; se pueden añadir más entradas)

## 📤 Salidas

`Boolean` El valor resultante verdadero/falso tras evaluar la operación lógica o de comparación seleccionada.

## 🕹️ Controles

`Method` Seleccione qué operación lógica o de comparación aplicar a las entradas. Los métodos comunes incluyen AND, OR, GREATER, SMALLER, EQUALS y NOT EQUALS.

## 🎨 Características

* `Multi-input support` Evalúa dos o más entradas juntas, no está limitado solo a dos valores.
* `Flexible input types` Las entradas son genéricas, por lo que puede conectar números, booleanos, listas u otros valores según su escenario.
* `Context-aware comparisons` Los métodos de comparación funcionan tanto para comparaciones pareadas como para verificar la primera entrada frente a múltiples otras.

## 📝 Instrucciones de uso

1. Conecte una o más valores a las entradas. Fuentes típicas son recuentos, valores de medición o señales booleanas de otros bloques de función.
2. Elija la operación deseada desde el combobox `Method`.
3. El bloque devuelve un único `Boolean` que representa el resultado de la operación lógica/comparativa seleccionada.

Ejemplos:

* Use `Method` = AND cuando necesite que todas las condiciones sean verdaderas para aprobar.
* Use GREATER cuando compruebe si un valor medido es mayor que un umbral o mayor que varias referencias.
* Use EQUALS para verificar que varias entradas sean idénticas.

## 📊 Comportamiento de evaluación

* AND devuelve true solo si cada valor de entrada se evalúa como true.
* OR devuelve true si alguna entrada se evalúa como true.
* GREATER compara la primera entrada con la segunda; cuando se proporcionan más entradas, comprueba si la primera es mayor que cada una de las demás.
* SMALLER funciona como GREATER pero verifica si la primera entrada es menor.
* EQUALS devuelve true cuando la primera entrada es igual a todas las demás entradas.
* NOT EQUALS devuelve true si alguna de las otras entradas difiere de la primera.

## 💡 Consejos y trucos

* Combínelo con bloques de detección y recuento
  * Conecte `Object Count` desde `Object Detection` o `Object Detection - Custom` para comprobar si el conteo de objetos supera un umbral usando GREATER, y luego desencadene `Record Video` o `Image Logger`.
* Úselo con resultados de tracking
  * Alimente salidas de tracking como `Position - ID List` desde `Object_Detection_Tracker` para crear reglas del tipo "¿hay algún objeto trackeado presente?" usando OR o NOT EQUALS.
* Lógica de máscara / seguridad
  * Combine salidas de `Mask Detection` o `Safety Equipment Detection` con AND para asegurar que se cumplan varias condiciones de seguridad antes de activar una alarma o guardar un fotograma.
* Comprobaciones previas y control de flujo
  * Use este bloque junto a `Is None` o `Replace None` para validar entradas antes del procesamiento posterior. Por ejemplo, asegúrese de que existen datos de imagen y que un detector produjo resultados antes de continuar.
* Comparaciones de medidas
  * Alimente salidas numéricas de `Measure Position Distance`, `Get Dimension` o `Mean Value of Image` a los métodos GREATER/SMALLER para crear condiciones de aprobado/reprobado en controles de calidad.
* Uso en flujos de automatización
  * Enlace el resultado booleano a `Led Output`, `Write Text On Image`, `CSV Export` o `MQTT Publish` para actuar según los resultados de detección o medición.

## 🛠️ Solución de problemas

* Resultados false inesperados
  * Verifique los tipos de datos que fluyen a las entradas. Convierta o normalice valores (por ejemplo, use `Round` o `String Operations`) para que las comparaciones se comporten como espera.
* Comparaciones con múltiples entradas se comportan de forma diferente
  * Recuerde que GREATER y SMALLER comparan la primera entrada con las demás. Si necesita comparaciones pareadas, alimente pares apropiados o utilice múltiples bloques Logic Operations.
* Sin salida o flujo bloqueado
  * Asegúrese de que al menos una entrada esté conectada o sea válida. Use `Is None` o `Replace None` para protegerse contra valores faltantes.
