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