> 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/french/function-blocks/blocks-reference/data-logic/logic/and.md).

# And

Ce bloc de fonction réalise une opération logique AND sur deux entrées booléennes et produit un seul résultat booléen. Il est utilisé pour combiner deux conditions : la sortie est `True` uniquement lorsque les deux entrées sont `True`.

## 📥 Entrées

* `Boolean` (première entrée) — Fournissez une condition booléenne (par exemple, le résultat d'une comparaison ou une entrée booléenne manuelle).
* `Boolean` (deuxième entrée) — Fournissez une seconde condition booléenne à combiner avec la première.

## 📤 Sorties

* `Boolean` — Résultat de l'opération AND. `True` quand les deux entrées sont `True`, sinon `False`.

## 🕹️ Contrôles

* `No Controls` — Ce bloc n'a pas de widgets réglables. Il évalue uniquement les entrées booléennes fournies.

## ⚙️ Mécanisme d'exécution

Lorsque le système fonctionne, le bloc évalue les deux entrées booléennes et renvoie une unique sortie booléenne. Le résultat reflète l'opération logique AND des deux entrées : `True` seulement si les deux entrées sont `True`. Utilisez en amont des blocs comparateurs ou des entrées booléennes pour produire les signaux booléens requis.

## 🎯 Caractéristiques

* Combinaison booléenne simple et fiable pour le contrôle de flux et les déclencheurs.
* Fonctionne avec des blocs comparateurs et des blocs produisant des booléens pour construire la logique conditionnelle.
* Petit et léger — idéal à utiliser dans des branches de décision ou pour verrouiller des actions.

## 📝 Exemples d'utilisation

* Combiner une vérification de détection et un temporisateur : alimentez une comparaison de détection (par exemple, utilisez un bloc `Greater` sur une sortie `Object Count`) sur une entrée et un booléen d'activation/temporisation sur l'autre pour déclencher des actions uniquement lorsque les deux conditions sont remplies.
* Assurez-vous que les deux entrées proviennent de blocs produisant des booléens tels que `Logic Input`, des comparateurs (`Greater`, `Smaller`, `Equals`) ou d'autres blocs logiques (`Not`, `Or`).

## 💡 Conseils et Astuces

* Pour vérifier qu'un objet est présent et qu'une condition de sécurité est respectée : utilisez `Object Detection` (ou `Object Detection - Custom`) → comparez son `Object Count` avec `Greater` → combinez ce résultat avec une vérification `Safety Equipment Detection` en utilisant ce bloc `And`.
* Pour des vérifications multi-conditions (plus de deux conditions), utilisez `All True` pour évaluer une liste de valeurs booléennes ou enchaînez plusieurs blocs `And`.
* Utilisez `Not` pour inverser une condition avant de l'alimenter dans `And` si vous avez besoin d'exiger une condition négative (par exemple, "object present" AND "not alarmed").
* Utilisez `Edge Rising` ou `Rising Edge` si vous souhaitez que le résultat d'`And` déclenche seulement lors d'une transition de signal (combinez la sortie d'arête avec un autre booléen dans ce bloc).
* Pour basculer des sorties (par ex. LEDs ou journalisation) lorsque les conditions combinées sont remplies, connectez la sortie de ce bloc à `Led Output`, `Image Logger`, `Image Write`, ou `Record Video`.

## 🛠️ Dépannage

* Résultat `False` inattendu : vérifiez que les sorties en amont sont bien des valeurs booléennes. Utilisez `Logic Input` ou des comparateurs (`Greater`, `Equals`, `Smaller`) pour convertir des sorties numériques en conditions booléennes.
* Résultat `True` inattendu : contrôlez que aucune des entrées n'est `True` par défaut ou non initialisée. Utilisez `Is None` ou `Data Type Converter` en amont pour valider les entrées.
* Besoin de plus de deux conditions : enchaînez des blocs `And` ou utilisez `All True` pour évaluer une liste de valeurs booléennes.
