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

13التحكم بالتدفق

التعليمة CASE وأول آلة حالات

بناء CASE OF بأرقام الحالات والنطاقات والقوائم و ELSE، ثم تسلسل حقيقي بأربع حالات: سكون وتعبئة وانتظار وتفريغ.

الدرس 13 من 3412 دقائقIEC 61131-3

متى CASE بدل IF؟

عندما تفحص متغيراً واحداً عدداً من المرات. سلم ELSIF يعيد اسم المتغير في كل فرع، و CASE يكتبه مرة واحدة:

CASE State OF
  0: Pump := FALSE;
  1: Pump := TRUE;
  2: Pump := FALSE;
ELSE
  State := 0;
END_CASE

التعبير المفحوص يجب أن يكون عدداً صحيحاً، لا عدداً حقيقياً ولا قيمة بوليانية.

أشكال التسميات

الشكل

المعنى

3:

قيمة واحدة

1..3:

نطاق من 1 إلى 3 شاملاً الطرفين

2, 5, 9:

قائمة قيم

10..19, 30:

نطاق وقيمة معاً

ELSE

كل ما لم تغطه التسميات

CASE Step OF
  0:         Lamp := FALSE;
  1..3:      Lamp := TRUE;          (* كل خطوات التعبئة *)
  10, 20:    Lamp := Blink;
ELSE
  Step := 0;                        (* قيمة غريبة؟ عُد إلى نقطة معروفة *)
END_CASE

اكتب ELSE دائماً. إذا اختلّت ذاكرة أو كتب HMI قيمة غير متوقعة، فإن ELSE هو الذي يُعيد الآلة إلى حالة آمنة بدل أن تتوقف الحالات كلها.

آلة الحالات

آلة الحالات ثلاثة أشياء فقط:

  1. متغير صحيح يحمل الحالة الحالية.
  2. CASE فيه فرع لكل حالة: ما يفعله المخرج هنا.
  3. داخل كل فرع، شرط انتقال يكتب رقم الحالة التالية.

تسلسل خزاننا:

الحالة

الاسم

المخارج

الانتقال

0

سكون Idle

الكل متوقف

Start إلى 1

1

تعبئة Fill

المضخة تعمل

LSH إلى 2

2

انتظار Hold

الكل متوقف

انتهاء المؤقت إلى 3

3

تفريغ Drain

الصمام مفتوح

LSL إلى 0

قواعد تحميك

  • اكتب المخارج في كل فرع، لا في الفرع الذي يحتاجها فقط. المخرج يحتفظ بقيمته، فمضخة شُغّلت في الحالة 1 تبقى شغّالة في الحالة 2 إن لم تُطفئها صريحاً.
  • الإيقاف فوق CASE لا داخله. شرط واحد قبل البناء يُرجع الآلة إلى الصفر من أي حالة.
  • لا تنتقل حالتين في مسح واحد إلا إن كنت تقصد ذلك. ترتيب الفروع في CASE لا يسمح بذلك هنا لأن الفحص يحدث مرة واحدة في الدورة.
  • أرقام أو أسماء؟ في PLC حقيقي تُعرّف نوعاً مُعدّداً (TYPE ... END_TYPE) فتكتب Fill بدل 1. المختبر هنا لا يدعم TYPE، فنستخدم الأرقام ونوثّقها بتعليق.

المؤقت داخل التسلسل

حالة الانتظار تحتاج زمناً. المؤقت يُستدعى خارج CASE، ويُغذّى من مقارنة الحالة:

Hold(IN := State = 2, PT := T#3s);

بهذا يُستدعى المؤقت في كل دورة كما يجب، ويبدأ العدّ تلقائياً عند دخول الحالة 2 ويُصفّر عند الخروج منها.

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

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

ماذا تجرّب

  1. شغّل البرنامج وتابع State في جدول المراقبة: 0 ثم 1 ثم 2 ثم 3 ثم يعود.
  2. لاحظ أن المشاة يعبرون (Walk) فقط في الحالة 2 والإشارة حمراء.
  3. غيّر زمن الحالة 0 إلى T#10s وأعد التحميل.
  4. في Ladder لاحظ كيف صار كل فرع CASE مقارنة State = n.

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

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

CASE في structured textآلة الحالات في PLCstate machine PLCCASE OF END_CASEنطاق في CASEتسلسل تعبئة خزانبرمجة تسلسل 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 بإجابات قصيرة