> 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/and.md).

# And

Este bloque de función realiza una operación lógica AND sobre dos entradas booleanas y devuelve un único resultado booleano. Se usa para combinar dos condiciones: la salida es `True` solo cuando ambas entradas son `True`.

## 📥 Entradas

* `Boolean` (primera entrada) — Proporcione una condición booleana (por ejemplo, el resultado de una comparación o una entrada booleana manual).
* `Boolean` (segunda entrada) — Proporcione una segunda condición booleana para combinar con la primera.

## 📤 Salidas

* `Boolean` — Resultado de la operación AND. `True` cuando ambas entradas son `True`; de lo contrario, `False`.

## 🕹️ Controles

* `No Controls` — Este bloque no tiene elementos ajustables. Solo evalúa las entradas booleanas suministradas.

## ⚙️ Mecanismo de ejecución

Cuando el sistema se ejecuta, el bloque evalúa ambas entradas booleanas y devuelve una única salida booleana. El resultado refleja la operación lógica AND de las dos entradas: `True` únicamente si las dos entradas son `True`. Use bloques comparadores o entradas booleanas (`Logic Input`) aguas arriba para producir las señales booleanas necesarias.

## 🎯 Características

* Combinación booleana simple y fiable para control de flujo y disparadores.
* Funciona con bloques comparadores y bloques que generan booleanos para construir lógica de condiciones.
* Pequeño y ligero — ideal para usar dentro de ramas de decisión o para permitir/gatear acciones.

## 📝 Ejemplos de uso

* Combine una comprobación de detección y un temporizador: alimente una comparación de detección (por ejemplo, use un bloque `Greater` sobre un `Object Count`) en una entrada y un booleano de temporización/enable en la otra para activar acciones solo cuando ambas se cumplan.
* Asegúrese de que ambas entradas provengan de bloques que produzcan booleanos, como `Logic Input`, comparadores (`Greater`, `Smaller`, `Equals`) u otros bloques lógicos (`Not`, `Or`).

## 💡 Consejos y trucos

* Para comprobar que un objeto está presente y que se cumple una condición de seguridad: use `Object Detection` (o `Object Detection - Custom`) → compare su `Object Count` con `Greater` → combine ese resultado con una comprobación de `Safety Equipment Detection` usando este bloque `And`.
* Para comprobaciones con más de dos condiciones, use `All True` para evaluar una lista de valores booleanos o encadene varios bloques `And`.
* Use `Not` para invertir una condición antes de alimentarla en `And` si necesita requerir una condición negativa (por ejemplo, "object present" AND "not alarmed").
* Use `Edge Rising` o `Rising Edge` cuando quiera que el resultado de `And` dispare solo en la transición de una señal (combine la salida de borde con otro booleano en este bloque).
* Para alternar salidas (por ejemplo, LEDs o registros) cuando se cumplan las condiciones combinadas, conecte la salida de este bloque a `Led Output`, `Image Logger`, `Image Write` o `Record Video`.

## 🛠️ Solución de problemas

* Resultado `False` inesperado: verifique que ambas salidas aguas arriba sean valores booleanos reales. Use `Logic Input` o bloques comparadores (`Greater`, `Equals`, `Smaller`) para convertir salidas numéricas en condiciones booleanas.
* Resultado `True` inesperado: compruebe que ninguna entrada sea `True` de forma no intencionada (por ejemplo, señales por defecto o no inicializadas). Use `Is None` o `Data Type Converter` en la cadena anterior para validar las entradas.
* Necesita más de dos condiciones: encadene bloques `And` o utilice `All True` para evaluar una lista de valores booleanos.
