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

# Modbus Read

هذه الدالة تقرأ البيانات من خادم Modbus (coils أو registers) باستخدام اتصال Modbus client مقدم. استخدم عناصر التحكم على الشاشة لاختيار العنوان المستهدف، عدد القيم للقراءة، ونوع بيانات Modbus.

## 📥 المدخلات <a href="#inputs" id="inputs"></a>

`Enable` بوابة منطقية (boolean) تسمح أو تمنع عملية القراءة. عندما تكون False، لن يقوم البلوك بالقراءة ولن يعيد أي بيانات.

`Modbus Client` زوّد كائن اتصال Modbus client (عادةً يأتي من بلوك `Modbus Connect`). يستخدم البلوك هذا العميل للتواصل مع الخادم.

## 📤 المخرجات <a href="#outputs" id="outputs"></a>

`Data` نتيجة القراءة على شكل قائمة عامة. لقراءات السجلات (registers) تكون القائمة أرقاماً تمثل قيم السجلات؛ لقراءات الـ coils/discrete تكون قائمة من القيم البوليانية. إذا فشلت القراءة أو كانت معطلة، تكون المخرجات فارغة/None.

## 🕹️ عناصر التحكم <a href="#controls" id="controls"></a>

`Address` أدخل عنوان البدء (عدد صحيح) على جهاز Modbus للقراءة منه.

`Quantity` أدخل عدد العناصر المتتالية (registers أو coils) المراد قراءتها.

`Data Type` اختر نوع بيانات Modbus للقراءة: Coil, Discrete Input, Input Register، أو Holding Register.

## 🎯 الميزات <a href="#features" id="features"></a>

* يدعم القراءة من أنواع البيانات القائمة على البت (coils/discrete inputs) وأيضًا الأنواع القائمة على الكلمة (input/holding registers).
* يستخدم اتصال Modbus خارجي المزوّد إلى مدخل `Modbus Client`، مما يفصل إعدادات الاتصال عن إعدادات البلوك.
* يعيد نتائج رقمية وبوليانية بسيطة في شكل قائمة مناسبة للتسجيل، الرسم البياني، أو المعالجة اللاحقة.
* يحتوي على تقارير خطأ مدمجة تظهر حالات فشل الاتصال لتتمكن من اتخاذ إجراء (إعادة الاتصال، إعادة المحاولة، التنبيه).

## ⚙️ آلية التشغيل <a href="#running-mechanism" id="running-mechanism"></a>

عند التفعيل، يتحقق البلوك من مدخل `Enable` ويتطلب وجود عميل صالح على مدخل `Modbus Client`. يقرأ نطاق العناوين المُكوّن باستخدام `Data Type` المحدد ويعيد القيم على مخرج `Data`. إذا فشلت القراءة أو كان البلوك معطّلاً، لا يعيد بيانات ويسجل رسالة خطأ مفيدة.

## 💡 نصائح وحيل <a href="#tips-and-tricks" id="tips-and-tricks"></a>

* استخدم `Modbus Connect` لإنشاء وتزويد اتصال `Modbus Client` المطلوب.
* استخدم `Logic Input` أو `Rising Edge` للتحكم في توقيت القراءات (زر يدوي أو قراءة لمرة واحدة).
* لكتابة قيم إلى جهاز، اجمع مع بلوك `Modbus Write`.
* سجّل القراءات للمراجعة لاحقًا باستخدام `CSV Export` أو احفظها باستخدام `Data Write Local` / `Data Write Global`.
* عرّض المخرجات الرقمية في الوقت الحقيقي عبر توصيلها إلى بلوك `Scope`.
* استخدم `Debug Input` لفحص والتحقق من القيم المعادة في أثناء الإعداد واستكشاف الأخطاء.

## 🛠️ استكشاف الأخطاء وإصلاحها <a href="#troubleshooting" id="troubleshooting"></a>

* لا توجد بيانات: تأكد من توصيل عميل صالح إلى مدخل `Modbus Client` وأن `Enable` قيمة True.
* قيم خاطئة أو قراءات جزئية: تحقق أن `Address` و `Quantity` ضمن خريطة عناوين الجهاز وحدوده.
* أخطاء في الاتصال: تحقق من إعدادات الشبكة/المنفذ التسلسلي عبر بلوك `Modbus Connect` وتأكد أنه لا توجد تطبيقات أخرى تحجب الوصول.
* تنسيق بيانات غير متوقع: تأكد من اختيار `Data Type` الصحيح (coils vs registers) للقيم التي تتوقعها.
