PLC Test Harness
TDD للأتمتة الصناعية
حدد سيناريوهات الاختبار، وقم بتنفيذها مقابل PLCSim Advanced، واحصل على أحكام PASS/FAIL فورية. اختبار الوحدة لمنطق PLC — بنفس الطريقة التي يختبر بها مهندسو البرمجيات كودهم.
لا يزال اختبار PLC يدوياً
كل تغيير في الكود هو مغامرة بدون اختبارات آلية
لا يوجد اختبار تراجع (Regression Testing)
تقوم بتعديل بلوك وظيفي وتدعو ألا ينهار أي شيء آخر. بدون اختبارات آلية، كل تغيير يخاطر بإدخال أخطاء خفية لا تظهر إلا في أرض المصنع.
التحقق اليدوي
الاختبار يعني فرض المدخلات يدوياً على PLC أو PLCSim، ومراقبة تغير المخرجات، والتحقق من القيم يدوياً. عملية مملة، معرضة للخطأ، ومن المستحيل تكرارها باستمرار.
لا يوجد توثيق للاختبار
كيف تثبت أن برنامجك يعمل بشكل صحيح؟ إجراءات الاختبار موجودة في مستندات Word أو في رأس المهندس. لا توجد مواصفات اختبار معيارية وقابلة للتنفيذ تنتقل مع المشروع.
الذكاء الاصطناعي لا يمكنه التحقق من الكود الخاص به
الذكاء الاصطناعي يولد كود PLC، ولكن كيف تعرف أنه يعمل؟ بدون اختبار آلي، يدخل الكود المولد بالذكاء الاصطناعي إلى الإنتاج دون اختبار. الـ Test Harness يغلق هذه الفجوة.
كيف يعمل PLC Test Harness
إطار عمل اختبار منظم لمنطق PLC، متاح عبر MCP و Copilot و REST API
تحديد سيناريوهات الاختبار
كل اختبار عبارة عن سلسلة من الخطوات: ضبط المدخلات، انتظار استجابة PLC، ثم التحقق من مطابقة المخرجات للتوقعات. يتم تخزين الاختبارات كملفات .test.json بجانب مشروع TIA Portal الخاص بك.
4 أنواع من التأكيدات (Assertions)
مطابقة تامة للقيم البولينية والأعداد الصحيحة. تسامح (Tolerance) للقيم العشرية (±0.1). نطاق (Range) لفحوصات الحد الأدنى/الأقصى. 'لا يساوي' للتحقق من تغير القيمة. يغطي كل أنواع بيانات PLC.
Setup & Teardown
يبدأ كل اختبار بمرحلة setup (تهيئة التاغات لحالة معروفة) وينتهي بـ teardown (إعادة تعيين التاغات إلى الصفر)، حتى لو فشل الاختبار. حالة نظيفة مضمونة.
تشغيل واحد أو تشغيل الكل
نفذ اختباراً واحداً بالاسم، أو مرر اختباراً مباشراً، أو استخدم حرف البدل (*) لتشغيل مجموعة الاختبارات بالكامل. يتم تخزين النتائج في last-results.json للمراجعة.
سجل مراجعة كامل (Full Audit Trail)
تنتج كل عملية تشغيل للاختبار تقريراً مفصلاً: أي الخطوات اجتازت (passed)، وأيها فشلت (failed)، القيم المتوقعة مقابل القيم الفعلية، وطوابع وقت التنفيذ. قم بتصدير النتائج أو الاستعلام عنها في أي وقت.
دورة TDD مدفوعة بالذكاء الاصطناعي
يمكن لـ LLM متصل كتابة الكود، إنشاء الاختبارات، الترجمة (compile)، التنزيل إلى PLCSim، تشغيل الاختبارات، وإصلاح الإخفاقات — كل ذلك بشكل مستقل. Red ← Green ← Refactor، لـ PLC.
دورة TDD لـ PLC
من تعريف الاختبار إلى منطق PLC الذي تم التحقق منه
1. اكتب الاختبار
حدد السلوك المتوقع: عند الضغط على Start_Button، يجب أن يكون Motor_Running صحيحاً (true) خلال 500 مللي ثانية. أنشئ الاختبار باستخدام plc_test_create.
2. التشغيل مقابل PLCSim
نفذ الاختبار باستخدام plc_test_run. يقوم T-IA Connect بكتابة المدخلات إلى PLCSim، وينتظر التأخير المحدد، ثم يقرأ المخرجات ويفحصها. الحكم: PASS أو FAIL.
3. الإصلاح والتكرار
إذا فشلت خطوة ما، فسترى بالضبط ما الخطأ: المتوقع Motor_Running = true، والنتيجة false. قم بإصلاح برنامج PLC، وأعد الترجمة، وقم بالتنزيل، وتشغيل الاختبار مرة أخرى.
4. بناء مجموعة اختباراتك
قم بتجميع الاختبارات أثناء التطوير. قم بتشغيل المجموعة الكاملة بعد كل تغيير لاكتشاف التراجعات. تنتقل الاختبارات مع المشروع في مجلد .tia-connect/tests/.
أنواع التأكيدات بالتفصيل
تغطية كل أنواع بيانات PLC مع المقارنة الصحيحة
مطابقة تامة
للقيم البولينية والأعداد الصحيحة. يجب أن يكون Motor_Running صحيحاً (true) تماماً. يجب أن يكون العداد 5 تماماً. لا يوجد هامش للخطأ.
التسامح (±)
لقيم REAL و LREAL. يجب أن تكون السرعة 50.0 ± 0.1. يأخذ في الاعتبار دقة الفاصلة العائمة وضجيج القياس التناظري.
النطاق (الحد الأدنى/الأقصى)
يجب أن تقع القيمة ضمن نطاق محدد. درجة الحرارة بين 10.0 و 100.0. مثالي للمدخلات التناظرية وقيم العمليات.
لا يساوي
التحقق من أن القيمة قد تغيرت عن حالتها الأولية. يجب ألا يساوي العداد 0 — للتأكد من أن منطق العد قد تم تنفيذه بالفعل.
5 أدوات عبر 3 قنوات
متاحة عبر MCP و Copilot (المساعد المدمج) و REST API
plc_test_create
حفظ تعريف حالة الاختبار مع setup والخطوات (المدخلات ← التأخير ← التأكيدات) و teardown. يتم تخزينه كملف .test.json في .tia-connect/tests/.
plc_test_run
تنفيذ اختبار بالاسم، أو تمرير واحد مباشر، أو استخدام * لتشغيل جميع الاختبارات. غير متزامن عبر REST (يُرجع jobId). تُحفظ النتائج في last-results.json.
plc_test_list
قائمة بجميع حالات الاختبار المحفوظة مع أسمائها وأوصافها. نظرة عامة سريعة على تغطية الاختبار لمشروعك.
plc_test_delete
إزالة حالة اختبار بالاسم. تنظيف الاختبارات القديمة مع تطور مشروعك.
plc_test_get_results
استرداد نتائج أحدث تشغيل للاختبار: حالة PASS/FAIL لكل خطوة، القيم المتوقعة مقابل القيم الفعلية، وقت التنفيذ، والحكم العام.
الأسئلة الشائعة
هل يتطلب هذا PLCSim Advanced؟
نعم. يقوم Test Harness بكتابة المدخلات وقراءة المخرجات عبر واجهة محاكاة PLCSim Advanced. إنه لا يعمل مع أجهزة PLC الحقيقية (سيكون ذلك خطيراً على الاختبار الآلي). يوفر PLCSim Advanced بيئة آمنة وقابلة للتكرار.
هل يمكن للذكاء الاصطناعي إنشاء وتشغيل الاختبارات بشكل مستقل؟
بكل تأكيد. يمكن لـ LLM متصل (عبر MCP أو Copilot) كتابة كود PLC، وإنشاء اختبار باستخدام plc_test_create، والترجمة والتنزيل إلى PLCSim، وتشغيل الاختبارات، والتحقق من النتائج، وإصلاح الكود إذا فشل. دورة TDD كاملة دون تدخل بشري.
أين يتم تخزين الاختبارات؟
في مجلد .tia-connect/tests/ بجوار مشروع TIA Portal الخاص بك. كل اختبار عبارة عن ملف .test.json. النتائج موجودة في last-results.json. تنتقل الاختبارات مع المشروع — أرشفة المشروع تعني أرشفة الاختبارات.
كم يستغرق تشغيل الاختبار؟
يعتمد ذلك على التأخيرات التي تحددها في خطوات الاختبار (الوقت الذي تمنحه لـ PLC للاستجابة). الاختبار العادي المكون من 3-5 خطوات مع تأخيرات 200-500 مللي ثانية يستغرق 1-3 ثوانٍ. تشغيل مجموعة كاملة من 20 اختباراً يستغرق عادةً أقل من دقيقة.