> 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/arabic/alblwkat-alwzyfyh/blocks-reference/data-logic/logic/and.md).

# And

هذا الـ function block ينفذ عملية منطقية من نوع AND على مدخلين من نوع boolean ويعطي مخرجًا واحدًا من نوع boolean. يدمج شرطين بحيث يكون الناتج `True` فقط عندما يكون كلا المدخلين `True`.

## 📥 المدخلات

* `Boolean` (المدخل الأول) — زوّد شرطًا منطقيًا (مثلاً نتيجة مقارنة أو إدخال منطقي يدوي).
* `Boolean` (المدخل الثاني) — زوّد شرطًا منطقيًا ثانٍ ليُدمج مع الأول.

## 📤 المخرجات

* `Boolean` — نتيجة عملية الـ AND. تكون `True` عندما يكون كلا المدخلين `True`، وإلا فـ `False`.

## 🕹️ الضوابط

* `No Controls` — هذا البلوك لا يحتوي على عناصر ضبط قابلة للتعديل. يقوم فقط بتقييم المدخلات المنطقية المقدمة.

## ⚙️ آلية التشغيل

عند تشغيل النظام، يقوم البلوك بتقييم كلا المدخلين المنطقيين ويعيد مخرجًا منطقيًا واحدًا يعبر عن عملية AND: النتيجة تكون `True` فقط إذا كان كلا المدخلين `True`. استخدم بلوكات المقارنة أو مدخلات منطقية upstream لتوليد إشارات boolean المطلوبة.

## 🎯 الميزات

* مزيج بسيط وموثوق للقيم المنطقية للتحكم في التدفق وتشغيل المشغلات.
* يعمل مع بلوكات المقارنة والبلوكات التي تنتج قيم boolean لبناء منطق الشروط.
* صغير وخفيف الوزن — مثالي للاستخدام داخل فروع اتخاذ القرار أو لتقييد الإجراءات.

## 📝 أمثلة الاستخدام

* دمج فحص كشف و مؤقت: أدخل ناتج مقارنة كشف (مثلاً استخدم بلوك `Greater` على خرج `Object Count`) في مدخل واحد، وأدخل قيمة منطقية للتمكين في المدخل الآخر لتشغيل إجراء فقط عندما يتحقق الشرطان معًا.
* تأكد أن كلا المدخلين ناتجان عن بلوكات تعطي boolean مثل `Logic Input` أو المقارنات (`Greater`, `Smaller`, `Equals`) أو بلوكات منطقية أخرى (`Not`, `Or`).

## 💡 نصائح وحيل

* للتحقق من وجود كائن ولتوافر شرط أمان: استخدم `Object Detection` (أو `Object Detection - Custom`) → قارن `Object Count` باستخدام `Greater` → اجمع النتيجة مع فحص `Safety Equipment Detection` عبر هذا البلوك `And`.
* لفحص شروط متعددة (أكثر من شرطين)، استخدم `All True` لتقييم قائمة قيم منطقية، أو اربط عدة بلوكات `And`.
* استخدم `Not` لعكس شرط قبل إدخاله في `And` إذا احتجت إلى اشتراط حالة سلبية (مثال: "الكائن موجود" AND "ليس هناك إنذار").
* استخدم `Edge Rising` أو `Rising Edge` عندما تريد أن يعطي نتيجة `And` تفعيلًا فقط عند انتقال إشارة (ادمج خرج الحافة مع boolean آخر في هذا البلوك).
* لتبديل المخرجات (مثل LED أو السجلات) عند تحقق الشروط المجمعة، أدخل خرج هذا البلوك إلى `Led Output`, `Image Logger`, `Image Write`، أو `Record Video`.

## 🛠️ استكشاف الأخطاء وإصلاحها

* نتيجة `False` غير متوقعة: تحقق أن المخرجات upstream هي بالفعل قيم boolean. استخدم `Logic Input` أو بلوكات المقارنة (`Greater`, `Equals`, `Smaller`) لتحويل القيم العددية إلى شروط منطقية.
* نتيجة `True` غير متوقعة: تأكد أن أيًا من المدخلين ليس `True` عن غير قصد (مثلاً قيمة افتراضية أو غير مهيأة). استخدم `Is None` أو `Data Type Converter` سابقًا في السلسلة للتحقق من صحة المدخلات.
* تحتاج أكثر من شرطين: اربط بلوكات `And` متعددة أو استخدم `All True` لتقييم قائمة من القيم المنطقية.
