For the complete documentation index, see llms.txt. This page is also available as Markdown.

Serial Read

هذه الدالة (function block) تقرأ آخر سطر متاح من اتصال تسلسلي (serial) بشكل غير حاجب (non-blocking) وتحوّله إلى نوع البيانات الذي تختاره. تم تصميمها لتكون متسامحة مع المدخلات القديمة أو غير الصحيحة من خلال إرجاع قيمة افتراضية يحددها المستخدم عند الحاجة.

📥 المدخلات

  • Enable مقبس (socket) من نوع Boolean يُفعّل أو يوقِف عملية القراءة.

  • ConnId مقبس عام (Generic) لتحديد معرف الاتصال التسلسلي الذي سيتم القراءة منه (connection identifier).

📤 المخرجات

  • Data مقبس خرج عام (Generic) يُصدر آخر قيمة بعد تحويلها، أو القيمة الافتراضية عندما تكون البيانات قديمة أو فشل التحويل.

🕹️ الضوابط

  • Stale timeout (s) حقل نصي يحدد المدة بالثواني التي ننتظرها لوصول سطر جديد قبل اعتبار القراءة "قديمة".

  • Data Type قائمة منسدلة لاختيار نوع التحويل للسطور الواردة. الخيارات المتاحة: String, Int, Float, Boolean, HexInt, Bytes.

  • Default (on stale/parse fail) حقل نصي يُدخل فيه قيمة الاحتياط التي تُرجَع عندما لا تتوفر بيانات حديثة أو يفشل التحويل. بالنسبة لـBytes أدخل أحرف هكس (hex) مثل AA55.

🎯 الميزات

  • قراءة غير حاجبة (non-blocking) لأحدث سطر متاح.

  • اكتشاف البيانات القديمة (stale) بحيث لا تُمرّر الأسطر القديمة بلا حدود.

  • عدة أنواع تحويل مع قيمة افتراضية قابلة للتكوين.

  • مدخلات ومخرجات بسيطة لتسهيل دمجها في سيناريوهات أكبر.

📝 كيفية الاستخدام

  1. ضع معرف الاتصال في ConnId الذي يشير إلى اتصال تسلسلي فعّال.

  2. استخدم Enable لبدء أو إيقاف القراءة بدون إزالة البلوك.

  3. اضبط Stale timeout (s) لتحديد مدى "جدة" البيانات المطلوبة.

  4. اختر Data Type المناسب لتحويل السطور الواردة.

  5. عرّف Default (on stale/parse fail) لتحديد ما يعيد البلوك عندما لا توجد بيانات حديثة أو قابلة للتحويل.

  6. استخدم مخرج Data في البلوكات التالية للتسجيل، العرض، أو النشر.

📊 التقييم

  • عندما يكون مفعلًا، يحاول البلوك قراءة آخر سطر من الاتصال المحدد.

  • إذا لم يصل سطر جديد خلال المدة المحددة في Stale timeout (s), يقوم البلوك بإخراج القيمة الافتراضية المحددة.

  • إذا فشل التحويل إلى نوع البيانات المختار، يُرجَع أيضًا القيمة الافتراضية.

  • بالنسبة لنوع Bytes، يعتبر البلوك القيمة الافتراضية كنص هكس (hexadecimal).

💡 نصائح وحيل

  • استخدم Debug Input لتسجيل أو فحص النتائج الخام أثناء التطوير.

  • وجه القراءات التسلسلية إلى Data to JSON أو CSV Export للتخزين المنظم أو التصدير الدفعي.

  • انشر القيم المعالجة عبر MQTT Publish أو أرسلها إلى خدمة ويب باستخدام REST API - Post.

  • خزّن القيم للاستخدام لاحقًا عبر Data Write Local أو Data Write Global واسترجعها بالبلوكات المقابلة للقراءة.

  • ارسم البيانات الرقمية في الوقت الحقيقي باستخدام Scope لمراقبة الاتجاهات أو الشذوذ.

  • اجمع مع Logic Input أو بلوكات المقارنة لتفعيل إجراءات بناءً على القيم الواردة (مثال: إنذار عند تجاوز قيمة رقمية لعتبة).

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

  • إذا لم تظهر بيانات على Data, تحقق أن ConnId يشير إلى اتصال فعّال.

  • إذا كان الإخراج دائمًا هو القيمة الافتراضية، زد قيمة Stale timeout (s) أو تأكد أن المصدر يرسل سطورًا بشكل فعّال.

  • إذا فشل التحويل لأنواع رقمية أو منطقية، افحص النص الخام القادم من الجهاز وعدّل القيمة الافتراضية لتتناسب مع الصيغة.

  • بالنسبة لنوع Bytes, تأكد أن القيمة الافتراضية مُدخلة كأحرف هكس صحيحة (بدون مسافات أو أحرف غير هكس).

آخر تحديث