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

# TwinCAT Write

هذه الدالة (function block) تكتب قيمة إلى متغير PLC في TwinCAT باستخدام اتصال PLC موجود. استخدمها لإرسال قيم رقمية، منطقية أو نصية من السيناريو الخاص بك إلى PLC واستقبال مؤشر نجاح بسيط.

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

* `Connection` — كائن اتصال PLC (يتم توفيره من خلال كتلة إعداد الاتصال مثل TwinCAT Connect).
* `Value` — القيمة المراد كتابتها في متغير الـ PLC (عدد، نص، boolean، أو قيمة مركبة اعتمادًا على نوع متغير الـ PLC).

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

* `Success` — قيمة منطقية تشير إلى ما إذا كانت عملية الكتابة نجحت أم لا.

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

* `Variable Name` — أدخل اسم/عنوان متغير الـ PLC بالضبط الذي تريد الكتابة إليه (كما هو معرّف في مشروع TwinCAT الخاص بك).

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

عند تشغيل هذه الكتلة، فإنها:

1. تقرأ مدخلات `Connection` و`Value` والتحكم `Variable Name`.
2. تتحقق من وجود اسم متغير صالح، اتصال صحيح، وقيمة متاحة.
3. تحاول كتابة القيمة المقدّمة إلى متغير الـ PLC المحدد عبر الاتصال المزوّد.
4. تصدر `Success` كـ True عند اكتمال الكتابة بنجاح، وإلا False وتدوّن رسالة خطأ للمساعدة في استكشاف الأعطال.

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

* عملية كتابة بسيطة لمتغير واحد مع نتيجة منطقية واضحة.
* مرن في نوعية المدخلات: يقبل قيمًا عامة بحيث يمكن استخدامه مع مصادر بيانات رقمية، نصية أو منطقية.
* تقرير الأخطاء: يُعلِمك عندما يكون الاتصال أو اسم المتغير أو القيمة مفقودًا أو عند فشل الكتابة.

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

1. أضف كتلة اتصال PLC مثل `TwinCAT Connect` وقم بتكوينها.
2. اربط مخرج الاتصال إلى مدخل `Connection` في هذه الكتلة.
3. وفّر قيمة للكتابة باستخدام كتلة إدخال مناسبة (مثلاً `Number Input` أو `String Input`) إلى مدخل `Value`.
4. أدخل اسم متغير الـ PLC في تحكم `Variable Name`.
5. شغّل السيناريو وتحقق من مخرج `Success` لتأكيد نجاح الكتابة.

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

* استخدم `TwinCAT Connect` لإنشاء وتزويد مدخل `Connection`.
* استخدم `Number Input`, `String Input` أو `Logic Input` لتحضير مدخل `Value` بناءً على نوع المتغير في الـ PLC.
* بعد الكتابة، تحقق من النتيجة بقراءة نفس المتغير باستخدام `TwinCAT Read`.
* إذا كان نوع القيمة غير واضح، مرّر البيانات عبر `Data Type Converter` قبل الكتابة لضمان توافق النوع.
* أضف `Debug Input` أو فحص `Is None` قبل الكتلة للكشف عن القيم المفقودة أو غير الصالحة وتجنّب محاولات كتابة فاشلة.
* سجّل عمليات الكتابة الناجحة أو الفاشلة باستخدام `CSV Export` أو `MQTT Publish` لأغراض التدقيق أو المراقبة البعيدة.

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

* إذا كانت `Success` False: تحقق من أن `Variable Name` مطابق تمامًا لما هو معرّف في الـ PLC (بما في ذلك المسارات/الأسماء النمطية).
* تأكد من أن `Connection` المزود نشط ومكون بشكل صحيح (تحقق من حالة `TwinCAT Connect`).
* تأكد أن نوع القيمة يتطابق مع نوع متغير الـ PLC؛ حول الأنواع مسبقًا إذا لزم.
* تحقق من السجلات التي تعرضها الكتلة للحصول على رسائل خطأ وصفية تساعدك في اتخاذ إجراءات تصحيحية.
