> 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/input-output/communication/siemens-s7-read.md).

# Siemens S7 Read

تقوم هذه الدالة بقراءة بيانات من قاعدة بيانات PLC من طراز Siemens S7 (DB) وتخرج القيمة لاستخدامها في أجزاء أخرى من السيناريو. تدعم أنواع البيانات الشائعة في PLC وتوفر واجهة بسيطة لتحديد رقم DB، إزاحة البايت ونوع البيانات. استخدم مدخل `Enable` لتشغيل/إيقاف القراءة ولتزويدها بعميل متصل `S7 Client` من كتلة الاتصال المناسبة.

## 📥 المدخلات

* `Enable` — مآخذ إدخال تُستخدم لتشغيل أو إيقاف عملية القراءة. زودها بإشارة منطقية (مثل المخرجات من كتلة `Logic Input`) للتحكم بموعد تنفيذ القراءات.
* `S7 Client` — مأخذ إدخال يقبل كائن العميل/الاتصال (عادةً يُوفّره كتلة `Siemens S7 Connect`). يخبر هذا الكائن الكتلة أي PLC/خادم يجب التواصل معه.

## 📤 المخرجات

* `Data` — مأخذ الإخراج الذي يوفر القيمة المقروءة من الـ PLC. نوع القيمة يعتمد على `DB Data Type` المُحدّد (رقم، سلسلة، قائمة بوليانية، إلخ).

## 🕹️ الضوابط

* `DB Number` — أدخل رقم الـ DB (data block) الذي ستقرأ منه.
* `DB Byte Address` — أدخل إزاحة البايت داخل الـ DB حيث تبدأ القيمة المطلوبة.
* `DB Data Type` — قائمة منسدلة لاختيار نوع البيانات التي ستقرأها (أمثلة: Boolean, Int, DInt, Real, String, Word, DWord, Time, ...).
* `Connection Type` — قائمة منسدلة لاختيار وضع الاتصال (مثال: Sync أو Async). استخدم هذا الخيار للتحكم بكيفية مشاركة/استخدام اتصال الـ PLC بين الكتل المختلفة.

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

* عندما يكون إدخال `Enable` مفعلًا، تقوم الكتلة بقراءة القيمة عند `DB Number` و`DB Byte Address` المُعدّين مسبقًا باستخدام `DB Data Type` المحدد، وتخرج النتيجة فورًا عبر مخرج `Data`.
* تتوقع الكتلة وجود `S7 Client` موصول على مدخلها. إذا لم يكن العميل متصلاً فستبلّغ الكتلة عن خطأ اتصال ولن تخرج بيانات.
* إعداد `Connection Type` يحدد ما إذا كانت الكتلة تستخدم اتصالًا مشتركًا (synchronous) أو اتصالًا مخصصًا/غير متزامن عند التفاعل مع الـ PLC. اختر الوضع المناسب لتكوينك (انظر النصائح).

## 🎯 الميزات الرئيسية

* دعم لأنواع البيانات الشائعة في PLC: مصفوفات بوليانية، أعداد صحيحة (SInt/Int/DInt)، أنواع غير موقعة، أعداد عائمة (Real/LReal)، سلاسل نصية، Word/DWord، وأنواع زمنية.
* ضوابط واجهة بسيطة لتعيين رقم DB / عنوان البايت ونوع البيانات.
* إمكانية اختيار وضع الاتصال ليتناسب مع سيناريوهات تتطلب وصولًا متعددًا إلى نفس الـ PLC.
* يعيد البيانات بتنسيق مناسب للاستخدام الفوري من قِبل الكتل الأخرى على سطح العمل.

## 📝 تعليمات الاستخدام

1. أضف كتلة `Siemens S7 Connect` وقم بتكوين عنوان الـ PLC ومعاملات الاتصال هناك.
2. وصل مخرج كتلة `Siemens S7 Connect` إلى مدخل `S7 Client` في هذه الكتلة.
3. اضبط `DB Number` و`DB Byte Address` المستهدَفين باستخدام الضوابط.
4. اختر `DB Data Type` الصحيح الذي يطابق المتغير في PLC الذي تريد قراءته.
5. استخدم `Logic Input` أو أي إشارة بوليانية أخرى على مدخل `Enable` للتحكم بموعد إجراء القراءات.
6. استهلك مخرج `Data` للعرض، التسجيل أو لاتخاذ قرارات في بقية السيناريو.

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

* اجمع بينها وبين `Siemens S7 Connect` لإدارة اتصال الـ PLC مركزيًا — فهي تزودك بكائن العميل الذي تتوقعه هذه الكتلة على مدخل `S7 Client`.
* استخدم `Logic Input` لتمكين/تعطيل القراءات الدورية أو لتنفيذ قراءات عند الطلب.
* لعرض الاتجاهات الرقمية، قم بتغذية مخرج `Data` الرقمي إلى كتلة `Scope` للرسم الحي.
* لحفظ القراءات للتحليل لاحقًا، أرسل مخرج `Data` إلى `Data to JSON` ثم `CSV Export`.
* أرسل القياسات إلى السحابة عبر توصيل `Data` إلى `MQTT Publish` أو أرسل تنبيهات عبر `Send Mail` (بهيكل رسالة منسق).
* شارك النتائج المقروءة عبر السيناريو باستخدام `Data Write Global` / `Data Read Global` أو كتل الذاكرة المحلية ليتمكن أجزاء أخرى من النظام من الاستجابة دون إعادة قراءة الـ PLC.
* لتصحيح الأخطاء، استخدم `Debug Input` لتسجيل قيمة الإخراج والتحقق من العناوين وأنواع البيانات.
* إذا كانت كتل متعددة تقرأ/تكتب في نفس منطقة الـ DB، جرّب تغيير `Connection Type` إلى `Sync` لتجنب مشاكل التزامن.
* عند قراءة حقول نصية، انتبه لطول السلسلة وترميزها على الـ PLC. تحقق من الطول المتوقع في DB لتفادي اقتطاع النتائج.

(تلميح: الكتل المفيدة للتركيب مع هذه الكتلة: `Siemens S7 Connect`, `Logic Input`, `Number Input`, `Data to JSON`, `CSV Export`, `MQTT Publish`, `Scope`, `Debug Input`, `Data Write Global`)

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

* لا توجد بيانات أو خطأ اتصال: تأكد من أن الـ PLC قابل للوصول وأن كتلة `Siemens S7 Connect` تُظهر اتصالًا ناجحًا. افحص عناوين الشبكة والجدران النارية وحالة الـ PLC.
* قيمة خاطئة: تحقق من أن `DB Number` و`DB Byte Address` و`DB Data Type` تطابق تخطيط المتغير في DB على الـ PLC. إزاحة بايت خاطئة أو اختيار نوع بيانات غير صحيح يسبب نتائج غير صالحة.
* سلسلة جزئية أو مقتطعة: تأكد من أن طول السلسلة في PLC يطابق التوقعات. إذا ظهرت السلسلة مقطوعة، افحص الطول المهيأ في جانب الـ PLC.
* قراءات متقطعة أو تحذيرات عن انشغال الخادم: إذا كان الـ PLC يخدم الكثير من الطلبات، جرّب استخدام وضع `Sync` للوصول المنسق أو قلّل من تكرار القراءات.
* نتيجة بوليانية غير متوقعة: بعض قراءات البتات تُرجع مجموعات من البتات — تعامل معها كمجموعة من القيم البوليانية عند الحاجة.

إذا استمرت المشاكل، أضف كتلة `Debug Input` لعرض القيم الخام وأرسل النتائج إلى كتل التسجيل أو التصدير لالتقاط حالات الفشل وتحليلها.
