> 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-write.md).

# Modbus Write

تقوم هذه الوظيفة بإرسال قيم إلى خادم Modbus باستخدام عميل Modbus المزوّد. استخدمها لكتابة coils أو holding registers من مخطط السيناريو الخاص بك.

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

* `Enable`\
  إدخال منطقي يتحكم فيما إذا كانت عملية الكتابة ستتم أم لا. إذا لم يُزوّد أو كانت قيمته False، فلن تحاول الوحدة الكتابة.
* `Modbus Client`\
  يتوقع هذا الإدخال كائن العميل الذي يُنتَج بواسطة `Modbus Connect`. زود عميلًا صالحًا لتمكين الاتصال.
* `Data`\
  بيانات عامة للكتابة. تقبل قيمة مفردة أو قائمة (للكتابة إلى عدة coils/registers).

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

لا تنتج هذه الوظيفة أية مخرجات.

## 🕹️ الضوابط <a href="#controls" id="controls"></a>

* `Address`\
  أدخل عنوان السجل/الـ coil في Modbus للكتابة إليه. استخدم أعداد صحيحة تتوافق مع خريطة الجهاز لديك.
* `Data Type`\
  اختر بين `Coil` و`Holding Register` لتحديد نوع مورد Modbus الذي سيتم الكتابة إليه.

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

* يدعم كتابة قيمة مفردة أو قائمة إلى عناوين متعددة عندما يدعم الجهاز ذلك.
* يتيح اختيار نوع المورد الهدف عبر قائمة منسدلة بسيطة: `Coil` أو `Holding Register`.
* يحترم إدخال `Enable` حتى يمكنك التحكم بالكتابة منطقياً أو عبر مدخلات المستخدم.
* يسجل الأخطاء في السجلات عند فشل الكتابة لمساعدتك على تشخيص مشاكل الاتصال أو الإعداد.

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

عند تشغيل البلوك:

* إذا كان إدخال `Enable` False أو مفقودًا، فلن تُجرى محاولة كتابة.
* إذا لم يُزوَّد أي عميل عند `Modbus Client`، فلن تؤدي الوحدة أي كتابة.
* عند التمكين ووجود عميل صالح، ترسل الوحدة بيانات `Data` إلى العنوان الموجود في `Address` باستخدام نوع البيانات المختار في `Data Type`.
* تُبلغ الأخطاء (مشكلات الاتصال، عنوان غير صالح، بيانات غير مدعومة) في السجل بحيث يمكنك اتخاذ الإجراء المناسب.

## 📝 تعليمات الاستخدام <a href="#usage" id="usage"></a>

* أضِف بلوك `Modbus Connect` وصل مخرجه `Modbus Client` إلى إدخال `Modbus Client` في هذا البلوك.
* اضبط `Address` إلى عنوان السجل أو الـ coil الذي تريد الكتابة إليه.
* اختر `Data Type` كـ `Coil` للقيم البوليانية/coils أو `Holding Register` للسجلات العددية.
* قدّم قيمك إلى إدخال `Data` (قيمة مفردة أو قائمة).
* استخدم `Logic Input` أو أي عنصر تحكم آخر لتبديل `Enable` عند رغبتك في تنفيذ الكتابة.

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

* استخدم `Modbus Connect` للحصول على عميل موثوق وتأكد من الاتصال عبر `Modbus Read` قبل محاولة الكتابة.
* قم بتحريك إدخال `Enable` بواسطة `Logic Input` أو بلوك شرطي (مثل `Equals` / `Greater`) حتى تتم الكتابات فقط في الشروط المرغوبة.
* حضّر قيم الكتابة باستخدام `Number Input` أو بتجميع البيانات عبر بلوكات مثل `String Merge` أو `Data Write Global` / `Data Write Local` عندما تحتاج إلى تجهيز القيم.
* إذا كنت بحاجة لحفظ أو تصدير القيم التي تكتبها، اجمع هذا البلوك مع `CSV Export` أو `REST API - Post` للاحتفاظ بسجلات خارجية أو إرسال إشعارات.

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

* لا تتم أي كتابة: تحقق أن `Enable` True وأن `Modbus Client` صالح ومتصل.
* أخطاء عنوان غير صالح: تأكد أن `Address` عدد صحيح ضمن خريطة عنوان الجهاز ويتطابق مع `Data Type` المختار.
* تنسيق بيانات غير متوقع: استخدم boolean أو قائمة booleans لـ `Coil`؛ استخدم أرقام أو قائمة أرقام لـ `Holding Register`.
* فشل الكتابة: تحقق من الاتصال باستخدام `Modbus Read` وتأكد أن الخادم يقبل الكتابة إلى العنوان المستهدف. اطلع على رسائل السجل للتفاصيل.
