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

# TwinCAT Read

هذه الدالة تقوم بقراءة متغير من PLC من نوع TwinCAT وتخرج القيمة المسترجعة مع مؤشر نجاح. تم تصميمها لعمليات استرجاع بيانات PLC البسيطة في سيناريوهات الأتمتة.

## 📥 Inputs (sockets) <a href="#inputs" id="inputs"></a>

`Connection` — كائن اتصال عام بالـ PLC (قدِّم عبر بلوك اتصال مثل `TwinCAT Connect`).

## 📤 Outputs (sockets) <a href="#outputs" id="outputs"></a>

`Data` — قيمة المتغير المقروءة من الـ PLC.

`Success` — علم منطقي (Boolean) يشير ما إذا كانت عملية القراءة ناجحة.

## 🕹️ Controls <a href="#controls" id="controls"></a>

`Variable Name` — حقل نصي تكتب فيه اسم متغير الـ PLC المراد قراءته. يجب أن يطابق هذا الاسم معرف المتغير المعرفة داخل الـ PLC.

## 🎯 Features <a href="#features" id="features"></a>

* عملية قراءة PLC بسيطة مع إرجاع مؤشر نجاح واضح.
* مصمم لاستقبال اتصال من بلوك اتصال منفصل، بحيث يبقى إدارة الاتصال مفصولة عن عمليات القراءة.
* يتحقق من المدخلات الأساسية ويعرض رسائل خطأ واضحة عند غياب الاتصال أو اسم المتغير.

## 📝 How to use <a href="#usage" id="usage"></a>

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

## 📊 Runtime behavior <a href="#evaluation" id="evaluation"></a>

عند التنفيذ، يتحقق البلوك من وجود `Connection` صالح وأن `Variable Name` ليس فارغًا. إذا كان أي منهما مفقودًا، سيتم الإبلاغ عن خطأ ويخرج `Success` بقيمة فشل. في حالة التكوين الصحيح، يجري عملية قراءة ويخرج قيمة المتغير على `Data` والعلم المنطقي على `Success`.

## 💡 Tips and Tricks <a href="#tips-and-tricks" id="tips-and-tricks"></a>

* استخدم `TwinCAT Connect` لإنشاء وإدارة اتصال الـ PLC وتمريره إلى `Connection`.
* اجمع مع `Rising Edge` أو `Cycle Timer` للتحكم في تكرار القراءة (مثلاً: قراءة مرة عند البدء أو بشكل دوري).
* أرسل القراءات الناجحة إلى `CSV Export` أو `Data to JSON` لتسجيل القيم للتحليل لاحقًا.
* استخدم `Debug Input` أو `Scope` لفحص القيم أثناء البناء والاختبار.
* لكتابة قيم إلى الـ PLC، زوج هذا البلوك مع `TwinCAT Write` واستخدم بلوكات منطقية (مثل `Logic Input` أو `Set - Reset`) للتحكم بمتى تحدث القراءات/الكتابات.
* استخدم `Data Write Local` أو `Data Write Global` لتخزين القيم لأجزاء أخرى من السيناريو.

## 🛠️ Troubleshooting <a href="#troubleshooting" id="troubleshooting"></a>

* إذا ظهرت أخطاء تفيد بأن "Connection is not established"، تحقق من إعداد وتوصيل بلوك الاتصال (مثل `TwinCAT Connect`).
* إذا كان `Variable Name` فارغًا، فلن يحاول البلوك القراءة — أدخل معرف متغير PLC صالحًا.
* إذا فشلت القراءة رغم وجود مدخلات صحيحة، تحقق من صلاحيات الوصول في الـ PLC، تهجئة اسم المتغير، وحالة الشبكة/الـ PLC. استخدم `Debug Input` لالتقاط الاستجابة الخام واستخدم خرج `Success` لتفريع منطق معالجة الأخطاء.
* إذا احتجت لاستقرار دوري، تحكم في القراءات بواسطة بلوكات التوقيت مثل `Cycle Timer` وأضف منطق إعادة محاولة بسيط باستخدام بلوكات منطقية.
