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

# Set - Reset

بلوك منطقي بسيط على شكل latch يخزن حالة بوليانية. استخدمه عندما تريد مُشغّلًا لتشغيل شيء ومُشغّلًا آخر لإيقافه، مع الاحتفاظ بالحالة الأخيرة بين عمليات التقييم.

## 📥 المدخلات

* `Set` أرسل إشارة TRUE لتعيين المخرج المؤمَّن.
* `Reset` أرسل إشارة TRUE لمسح المخرج المؤمَّن.

## 📤 المخرجات

* `Check` القيمة البوليانية المؤمَّنة الحالية (TRUE عند `Set`، FALSE عند `Reset`).

## 🕹️ الضوابط

لا توجد عناصر تحكم تفاعلية أو ويدجتات. هذا البلوك يستخدم مآخذ الإدخال فقط لتغيير الحالة المؤمَّنة.

## 🎯 الميزات

* سلوك latch يحافظ على آخر مخرج حتى يتم تغييره.
* `Reset` له أولوية: عندما يكون `Reset` مفعلًا يتم مسح المخرج بغض النظر عن حالة `Set`.
* مخرج مستقر مناسب للاستخدام مع منطق آخر، عدّادات، مؤشرات أو مشغلات.

## 📝 كيفية الاستخدام

1. وصل إشارة مؤقتة أو شرطية إلى `Set` لتشغيل latch.
2. وصل إشارة منفصلة إلى `Reset` لإيقاف latch.
3. استخدم مخرج `Check` كتمكين/علم مستمر للمعالجة اللاحقة أو للمخرجات.

## 📊 السلوك أثناء التشغيل

* إذا كان `Reset` TRUE فسيصبح المخرج FALSE.
* وإلا إذا كان `Set` TRUE فسيصبح المخرج TRUE.
* وإلا يبقى المخرج على قيمته السابقة.

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

* استخدم `Logic Input` للتحكم اليدوي في `Set` و`Reset` أثناء الاختبار.
* اقترن مع `Rising Edge` أو `Edge Rising` عندما يكون المشغل نبضة لحظية لتضمن أن latch يتغير مرة واحدة فقط لكل حدث.
* استخدم `Delay Step`، `ON Delay` أو `OFF Delay` لإنشاء إعادة ضبط مؤقتة أو لتنفيذ إلغاء الاهتزاز البسيط للإشارات المزعجة.
* ادمجه مع `Counter` لعدّ الحوادث أثناء نشاط latch؛ وصل مخرج latch إلى تمكين العداد.
* استخدم `And`، `Or` و`Not` لبناء شروط Set/Reset أكثر تعقيدًا (مثلاً طلب عدة شروط قبل التعيين).
* قدِّم مؤشرًا مرئيًا باستخدام `Led Output` أو أرسل حالة latch إلى `Output` للأنظمة الخارجية.

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

* إذا لم يتغير latch أبدًا، تحقّق أن البلوك السابق يرسل قيمة بوليانية متغيرة واعتبر استخدام `Rising Edge` لتحويل TRUE المستمر إلى مشغل واحد.
* إذا تم مسح latch فورًا عند محاولة تعيينه، افحص ما إذا كان دخل `Reset` يتم تفعيله TRUE بواسطة بلوك آخر.
* لتجنّب التبديلات المتكررة غير المقصودة بسبب الاهتزاز أو النبضات المتكررة، أضف `Delay Step` أو كاشف الحافة المناسب.
