انتقل إلى المحتوى

33من المختبر إلى المصنع

المشروع الختامي: محطة خزان كاملة بآلة حالات وإنذار وعدّ دفعات

المشروع الذي يجمع الدورة كلها: شروط بدء، وآلة حالات CASE بمهل للخطوات، ومؤقتات وعدّاد، ومستوى مفلتر، وإنذار بإقرار، وحالة عطل.

الدرس 33 من 3416 دقائقIEC 61131-3

ما نبنيه

محطة تعمل دفعة بعد دفعة: تملأ الخزان إلى نقطة ضبط، تنتظر فترة استقرار، تفرّغ إلى الحد الأدنى، تسجّل دفعة، وتعيد. تتوقف بأمان عند أي شيء غريب، وتطلق إنذاراً يحتاج إقراراً. هذا هو هيكل أي محطة دفعات حقيقية مهما كبرت.

القرار 1: الشروط قبل الحركة

لا خطوة أولى قبل أن تكون الشروط سليمة. نجمعها في متغير واحد:

Permissive := NOT (LSH AND LSL) AND LevelF <= 99.0;

LSH AND LSL معاً حالة مستحيلة فيزيائياً، فهي تعني عطل مفتاح أو سلك مقطوع. الشرط الواحد المسمّى أفضل من سبعة شروط مكررة في سبعة أماكن: تقرؤه في جدول المراقبة وتعرف فوراً لماذا لم تبدأ المحطة.

القرار 2: المستوى المفلتر لا الخام

قياس المستوى يرتجف، وأي مقارنة على القيمة الخامة سترتجف معها. نستخدم مرشّحاً أسّياً من سطر واحد:

LevelF := LevelF + 0.20 * (Level - LevelF);

المعامل 0.20 يعني «خُذ خمس الجديد»، وهو توازن معقول بين الهدوء والاستجابة. وننسخ القيمة الخامة في أول دورة فقط، وإلا بدأ الفلتر من صفر وانتظرنا حتى يصعد.

القرار 3: آلة حالات لا سلسلة شروط

خمس حالات، كل واحدة تعرف مخارجها وشرط خروجها:

الخطوة

الحالة

المخارج

الخروج

0

خامل

الكل مغلق

أمر تشغيل والشروط سليمة

1

ملء

المضخة

المستوى ≥ 85%

2

استقرار

الكل مغلق

3 ثوان

3

تفريغ

الصمام

المستوى ≤ 12% أو LSL

4

إكمال

الكل مغلق

دورة واحدة، يعدّ الدفعة

9

عطل

الكل مغلق

إقرار المشغل

قاعدتان تجعلان آلة الحالات نظيفة: مخرج يُضبط في مكان واحد فقط، وكل حالة لها شرط خروج واحد واضح. رقم العطل 9 بعيد عن الأرقام المتسلسلة حتى تعرف من الرقم وحده أنك خارج التسلسل الطبيعي.

القرار 4: مهلة لكل خطوة متحركة

الخطوة التي تنتظر حدثاً فيزيائياً يجب أن تنتظر بحد. إذا طُلب الملء ولم يرتفع المستوى في 60 ثانية، فالمضخة معطلة أو الصمام مغلق أو المصدر فارغ. بلا مهلة يبقى البرنامج ينتظر إلى الأبد والمضخة تعمل جافة.

نستخدم مؤقتاً واحداً للخطوتين المتحركتين، ونصفّره عند أي تغيير خطوة بمقارنة الخطوة الحالية بالسابقة.

القرار 5: إنذار بأسلوب ISA-18.2

الإنذار ليس HiAlm := Level > 90. المعيار ISA-18.2 يفرّق بين حالة العملية وحالة الإنذار، وأهم أثر عملي: الإنذار يبقى ظاهراً حتى يقرّه إنسان، حتى لو عاد المستوى إلى طبيعته. ونضيف نطاقاً ميتاً (Deadband) لمنع الارتعاش حول العتبة:

  • يُطلق فوق 90% أو عند LSH.
  • لا يُزال إلا تحت 85%، و بعد الإقرار.
  • المصباح يرمش ما لم يُقر، ويثبت بعد الإقرار وقبل عودة العملية.

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

القرار 6: الحافة لا المستوى

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

القرار 7: من يوقف ماذا

Stop يعيد الآلة إلى الخامل بترتيب نظيف. والعطل يذهب إلى الحالة 9 ويغلق كل شيء ويبقى هناك. الفرق مقصود: الإيقاف طلب مشغّل، والعطل حالة تحتاج إنساناً يفهم ما حدث قبل أن تُستأنف.

اقرأ البرنامج هكذا

البرنامج في المختبر تحت هذا الدرس مرتب في ثماني فئات بالترتيب نفسه: نقاط الضبط، الفلتر، الأحداث والحوافّ، الإنذار، كشف العطل، آلة الحالات، توقيت الخطوة، ثم المخارج. هذا الترتيب ليس زينة: كل ما يَقرأ يأتي قبل كل ما يَقرّر، وكل ما يَقرّر يأتي قبل كل ما يَكتب. اتبعه في كل برنامج تكتبه بعد اليوم.

جرّبه في المختبر

المختبر يعمل في متصفحك: محرر ST، وعملية افتراضية تناسب الدرس، ونفس البرنامج كمخطط Ladder حي، وجدول مراقبة، وتصدير إلى Siemens SCL.

ماذا تجرّب

  1. اضغط START وتابع Step: 1 تعبئة، 2 تهدئة، 3 تفريغ، 4 اكتمال، ثم 1 مرة أخرى.
  2. راقب Batches.CV يزيد مع كل دفعة؛ بعد 3 دفعات تتوقف المحطة ويضيء المصباح. اضغط START لوردية جديدة.
  3. اضغط STOP في أي خطوة: يعود إلى 0 فوراً.
  4. غيّر 80.0 إلى 95.0: المستوى يصل 90% فيفصل LSH ويضيء الإنذار، وهذه طبقة السلامة المستقلة.

مصطلحات هذا الدرس

يبحث الناس عن هذا الدرس بـ

مشروع PLC كاملآلة حالات CASE في STبرنامج تحكم خزانمهلة الخطوة في PLCانذار ISA 18.2عد الدفعات في PLCمشروع تخرج برمجة PLC

محتوى الدورة

  1. 01ما هي لغة ST؟ ومتى تستخدمها بدل Ladder
  2. 02كيف يشتغل الـ PLC: دورة المسح وصورة المداخل والمخارج
  3. 03هيكل البرنامج: POU و PROGRAM و FUNCTION و FUNCTION_BLOCK
  4. 04أول برنامج: تشغيل مضخة بالإمساك الذاتي (Seal-in)
  5. 05أنواع البيانات: BOOL و INT و REAL و TIME وغيرها
  6. 06التصريح عن المتغيرات: VAR و VAR_INPUT و RETAIN
  7. 07القيم الحرفية والثوابت: 16#FF و 2#1010 و T#5s
  8. 08التحويل بين الأنواع وتحجيم إشارة 4-20 مللي أمبير
  9. 09الإسناد والحساب في ST: ‎:=‎ وأولوية العمليات
  10. 10المنطق البولياني والمقارنات وعمليات البتات
  11. 11الدوال القياسية: ABS و SQRT و MIN و MAX و LIMIT و SEL و MUX
  12. 12الشرط IF و ELSIF و ELSE: القواعد ومتى تتجنبه
  13. 13التعليمة CASE وأول آلة حالات
  14. 14حلقة FOR والحارس Watchdog
  15. 15WHILE و REPEAT و EXIT و CONTINUE و RETURN
  16. 16كشف الحافة: R_TRIG و F_TRIG ومشكلة «نفّذ في كل مسح»
  17. 17المؤقتات: TON و TOF و TP
  18. 18العدّادات: CTU و CTD و CTUD
  19. 19القلّابات: SR و RS ومن يغلب عند التعارض
  20. 20اكتب دالتك: FUNCTION وقيمة الإرجاع
  21. 21اكتب كتلتك الوظيفية: FUNCTION_BLOCK لمحرك
  22. 22المصفوفات: ARRAY وفلتر المتوسط المتحرك
  23. 23الأنواع المركّبة: STRUCT والتعدادات
  24. 24المراجع والمؤشرات: REF_TO و POINTER TO ولماذا تتجنبها
  25. 25آلة الحالات: تسلسل دفعة كامل بـ CASE لا يعلق أبداً
  26. 26إدارة الإنذارات على أصول ISA-18.2: تأخير، نطاق ميت، إقرار، وأول خروج
  27. 27معالجة الإشارة التناظرية: من العدّات إلى وحدة هندسية، و NE43، وفلتر EMA
  28. 28التحكم المغلق في ST: من التشغيل والإيقاف بفجوة إلى PID عملي
  29. 29تشغيل المحركات والصمامات: سماحيات، تشابيك، رجع تشغيل، وزمن حركة
  30. 30نفس الكود عند كل شركة: SCL و Studio 5000 و CODESYS و TwinCAT
  31. 31الاختبار وتصحيح الأخطاء: جدول المراقبة والفرض والمحاكاة
  32. 32دليل أسلوب ST: التسمية والتعليقات والثوابت وإدارة النسخ
  33. 33المشروع الختامي: محطة خزان كاملة بآلة حالات وإنذار وعدّ دفعات
  34. 3420 سؤال مقابلة في ST وبرمجة PLC بإجابات قصيرة