Subsystem Loop
تكرر هذه الدالة (function block) تدفق عمل داخليًا لكل عنصر من عناصر قائمة (أو أي مجموعة ذات حجم). استخدمها عندما تريد معالجة سلسلة من العناصر واحدًا تلو الآخر داخل نظام فرعي محاط وجمع النتائج على شكل قوائم.
📥 المدخلات
هذه الدالة لا تملك مقابس إدخال على المستوى العلوي.
لتمرير البيانات إلى تدفق العمل المتكرر، ضع كتلًا داخلية داخل النظام الفرعي (مثل Subsystem In).
📤 المخرجات
هذه الدالة لا تعرّض مقابس إخراج مباشرة على المستوى العلوي.
النتائج التي يتم إنتاجها داخل التدفق المتكرر تُعاد عبر الكتل الداخلية (مثل Subsystem Out) ويتم جمعها كقوائم بواسطة هذه الدالة.
🕹️ Controls
لا توجد عناصر تحكم مرئية على الكتلة نفسها. التفاعل والتكوين يتمان داخل مساحة عمل النظام الفرعي حيث تضع كتل المساعدة للإدخال/الإخراج:
Subsystem Inاستخدمها داخل النظام الفرعي لاستقبال العنصر الحالي (أو المدخلات المشتركة) لكل خطوة حلقة.Subsystem Outاستخدمها داخل النظام الفرعي لإرسال نتيجة كل خطوة ليقوم العنصر الحلقوي بجمعها.
🎨 Features
معالجة تكرارية: ينفذ تدفق العمل الداخلي مرة لكل عنصر من أول مجموعة بحجم توفره.
دعم قوائم متعددة: إذا تم تزويد عدة مجموعات لها نفس الطول، فسيتم تكرارها بالتوازي. استخدم مساعدات الاقتران إذا كنت بحاجة إلى إقران صريح.
التجميع: المخرجات التي يتم إنتاجها داخل التدفق تُجمع كقوائم (قائمة لكل إخراج) وتُعاد بعد انتهاء الحلقة.
إيقاف آمن وانتشار الحالة: الأخطاء الداخلية أو الحالات غير الصحيحة تنتشر بحيث يستطيع السيناريو الأبّ الاستجابة.
⚙️ Running mechanism (plain language)
تبحث الكتلة عن أول مدخل من نوع مجموعة تزوده به (مثال: قائمة صور أو أرقام).
لكل عنصر في تلك المجموعة تفتح مساحة عمل النظام الفرعي وتشغّل تدفق العمل المحتوى مرة باستخدام العنصر الحالي.
أي قيم ترسلها خارج النظام الفرعي باستخدام
Subsystem Outتُلحق إلى قوائم. بعد انتهاء الحلقة، تحصل على قائمة مجمعة لكل إخراج.إذا احتجت لتكرار عدة قوائم معًا، فتأكد أنها لها نفس الطول أو قم بإقرانها قبل إدخالها إلى النظام الفرعي.
📝 How to use
ضع كتلة
Subsystem Loopفي السيناريو الخاص بك.انقر مزدوجًا (أو افتح) مساحة عمل النظام الفرعي وأضف ما يلي داخلها:
كتل
Subsystem Inلاستقبال المدخلات لكل خطوة تريد العمل عليها.كتل المعالجة الخاصة بك (مرشحات، كاشفات، حسابات) لمعالجة كل عنصر.
كتل
Subsystem Outلإرسال النتائج مرة أخرى إلى جامع الحلقة.
إذا أردت تكرار قوائم متعددة معًا، حضّرها باستخدام أداة قائمة مثل
List Operations(استخدم خيار الإقران إن وُجد) قبل تمريرها إلى النظام الفرعي.شغّل السيناريو. ستقوم الحلقة بتشغيل تدفق العمل الداخلي لكل عنصر وتعيد قوائم مُجمّعة من المخرجات.
💡 نصائح وحيل
لمزامنة قوائم متعددة ذات صلة، حضّرها عبر كتلة
List Operations(استخدم خيار pairing إذا توفر) قبل إدخالها إلى النظام الفرعي.استخدم
Get Elementداخل النظام الفرعي فقط إذا كنت بحاجة للوصول المباشر بعنصر حسب الفهرس إلى قوائم مرسلة كمدخلات مشتركة.لمعالجات دفعات كبيرة من الصور، اجمع بين
Batch ProcessingوDebatchلتقليل استهلاك الذاكرة والحفاظ على فعالية المعالجة لكل خطوة.استخدم
Data Read Local/Data Write Local(أو النسخ العامة Global) لمشاركة بيانات ثابتة بين السيناريو الرئيسي والنظام الفرعي عندما لا يكون توصيل الإدخال/الإخراج البسيط مناسبًا.إذا أردت تشغيل نفس المعالجة على صور فردية ثم عرض النتائج، صِل كتلة
Show Imageبعد مخرجات الحلقة لمعاينة الصور المجمعة.عند العمل مع قوائم قد تحتوي على مدخلات فارغة أو مفقودة، أضف فحص
Is Noneداخل النظام الفرعي لتجنب أخطاء غير متوقعة.
🛠️ استكشاف الأخطاء وإصلاحها
لم تتم أي تكرارات: تحقق من أنك وفّرت على الأقل مدخلًا من نوع مجموعة داخل النظام الفرعي (عن طريق
Subsystem In).المخرجات تُرجع مغلفة في قوائم ذات عنصر واحد: راجع عدد كتل
Subsystem Outوتأكد أنها تُعيد القيم المقصودة لكل خطوة.اختلاف أطوال القوائم: إذا توقعت تكرار قوائم متعددة معًا، تأكد من أنها طولهما متساوٍ أو قم بإقرانها مسبقًا باستخدام
List Operations.ارتفاع استهلاك الذاكرة: فضّل استخدام
Batch ProcessingوDebatchأو قسّم المعالجة إلى قطع أصغر داخل النظام الفرعي لتقليل الذروة في استهلاك الذاكرة.
آخر تحديث