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

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

20 سؤال مقابلة في ST وبرمجة PLC بإجابات قصيرة

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

الدرس 34 من 3415 دقائقIEC 61131-3

كيف تُقرأ هذه القائمة

الإجابات هنا مختصرة على قدر ما يُقال في مقابلة: جملة أو ثلاث. من يسأل يبحث عن الفهم لا عن التعريف المحفوظ، وأفضل إجابة تنتهي بمثال من عمل قمت به فعلاً.

1. ما هي دورة المسح؟

تكرار دائم من ثلاث مراحل: قراءة المداخل إلى صورة المداخل، تنفيذ البرنامج من أعلى إلى أسفل، ثم كتابة صورة المخارج إلى الحقل. قيمة المدخل لا تتغير في منتصف الدورة، ولهذا يكون سلوك البرنامج قابلاً للتوقع.

2. ما الفرق بين TON و TOF؟

TON تأخير عند التشغيل: يصبح Q صحيحاً بعد بقاء IN صحيحاً مدة PT. TOF تأخير عند الإطفاء: Q يتبع IN فوراً عند الصعود، ويبقى صحيحاً PT بعد هبوط IN. الأولى للتأكيد، والثانية لإبقاء مروحة أو مصباح يعمل بعد التوقف.

3. ما الفرق بين FUNCTION و FUNCTION_BLOCK؟

الدالة لا ذاكرة لها: نفس المدخلات تعطي نفس المخرج دائماً. الكتلة الوظيفية لها ذاكرة في كل نسخة، ولهذا يمكن للمؤقت أن يعرف كم مضى. المؤقت والعدّاد والـ PID كلها كتل وظيفية لهذا السبب تحديداً.

4. لماذا := وليس =؟

:= إسناد يكتب قيمة في متغير، و = مقارنة تنتج BOOL. اللغة ورثت هذا من Pascal، والفائدة أن الخلط بينهما لا يمر صامتاً كما يحدث في لغات أخرى.

5. ما متغيرات RETAIN ومتى تستخدمها؟

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

6. كيف تكتشف حافة صاعدة؟

إما R_TRIG من المكتبة، أو يدوياً:

Edge := Signal AND NOT SignalLast;
SignalLast := Signal;

تحتاجها لكل حدث: عدّ قطعة، تسجيل إنذار، بدء تسلسل. بلا حافة يتكرر الحدث بعدد الدورات.

7. ما نتيجة 7 / 2 في ST؟

3 إذا كان الطرفان INT، لأن القسمة الصحيحة تقطع الكسر. الحل: 7.0 / 2.0 أو تحويل الطرف بـ INT_TO_REAL. وفي حسابات التحجيم اضرب قبل أن تقسم لتحافظ على الدقة.

8. ما الـ Watchdog ولماذا يوقف المتحكم؟

مؤقت حارس يقيس زمن الدورة. إذا تجاوزت الدورة الحد المسموح يُعلن المتحكم خطأ ويذهب إلى STOP. المنطق: متحكم يتأخر عن العملية أخطر من متحكم متوقف بشكل معروف. السبب العملي الأشهر حلقة WHILE لا تنتهي.

9. متى CASE بدل IF؟

CASE عندما تختار بين حالات متبادلة على قيمة عددية واحدة: رقم الخطوة، وضع التشغيل، رمز العطل. IF/ELSIF عندما تكون الشروط مختلفة وغير مرتبطة بمتغير واحد. آلة حالات مكتوبة بـ CASE تُقرأ، وبعشرين ELSIF لا تُقرأ.

10. كيف تبني آلة حالات في ST؟

متغير INT للخطوة، و CASE فيه حالة لكل خطوة. كل حالة تحدد مخارجها وشرط انتقالها الواحد. أضف مهلة لكل خطوة تنتظر حدثاً فيزيائياً، وحالة عطل برقم بعيد، واضبط كل مخرج في مكان واحد فقط.

11. متى تتفوق ST على Ladder؟

الحسابات والفلاتر والتحجيم، والحلقات على عدد كبير من الأجهزة، وآلات الحالات الطويلة، ومعالجة البيانات والاتصالات، وأي كود تريد مقارنته في Git. وتبقى Ladder أفضل للتشابيك التي يقرأها فني الصيانة أمام اللوحة.

12. ما الفروق العملية في Siemens SCL؟

بادئة # للمتغيرات المحلية، وعلامات تنصيص للعامة، والمؤقت TON_TIME، وفاصلة منقوطة بعد END_IF، والكتل المحسّنة التي تمنع العنونة المطلقة مثل %MD20. المنطق نفسه ينتقل، وتتغير الصيغة.

13. وما الفرق في Rockwell؟

لا بادئة #، والمؤقت بنية TIMER فيها PRE بالميلي ثانية و ACC و DN بدل PT و ET و Q، والمنطق القابل لإعادة الاستخدام يُغلّف في AOI بدل FUNCTION_BLOCK.

14. إنذار يرتعش حول العتبة، كيف تعالجه؟

ثلاث طبقات بالترتيب: نطاق ميت فيُطلق عند 90% ولا يُزال إلا تحت 85%؛ تأخير زمني بـ TON فلا يُطلق إلا إذا استمرت الحالة ثانيتين؛ ثم إقرار فلا يختفي الإنذار وحده قبل أن يراه إنسان. وإذا بقي الارتعاش، المشكلة في القياس نفسه لا في البرنامج.

15. ما Anti-windup في متحكم PID؟

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

16. ما خطر الخروج عن حدود ARRAY؟

الكتابة خارج الحدود تفسد ذاكرة مجاورة، وبعض المتحكمات تعلن خطأ وتتوقف وبعضها يستمر بسلوك غير متوقع. تحقق من الفهرس قبل استخدامه، أو استخدم FOR بحدود ثابتة، واحذر الفهرس الآتي من شاشة تحكم أو من شبكة.

17. ما إنذار First-out ولماذا يهم؟

عند عطل كبير تنهار عشرات الإشارات معاً وتمتلئ الشاشة بإنذارات نتيجة لا سبب. منطق First-out يمسك أول إنذار ظهر ويميّزه، فيعرف المشغّل من أين بدأ العطل. يُنفّذ بمزلاج يُقفل عند أول إنذار ولا يُحدّث حتى يُعاد التعيين.

18. ما أولويات المهام (Task Priorities)؟

المتحكم الحديث ينفّذ مهاماً متعددة: مهمة سريعة كل 10 ms للمنطق الحرج، وأبطأ كل 100 ms للاتصالات والتقارير. الأعلى أولوية يقطع الأقل. ضع القليل في المهمة السريعة، واحذر الكتابة على نفس المتغير من مهمتين.

19. كيف تختبر تغييراً بأمان؟

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

20. ما الذي لا تفعله أونلاين أبداً؟

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

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

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

ماذا تجرّب

  1. اضغط PB1 ضغطات منفصلة: L1 يتبدل بين التشغيل والإطفاء مع كل ضغطة.
  2. ارفع S1: L3 يومض. لماذا نحتاج مؤقتين؟ راقب T1 و T2 في Ladder.
  3. س2 تحكم بيدين: على الهاتف اضغط PB1 و PB2 بإصبعين معاً، يضيء L2 ويبقى ما دام الزرّان مضغوطين. اضغط أحدهما ثم الآخر بعد ثانية: لا يضيء، لأن الفرق تجاوز نصف ثانية.

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

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

اسئلة مقابلة PLCاسئلة مقابلة مهندس تحكماسئلة structured textالفرق بين TON و TOFمقابلة عمل اتمتة صناعيةاسئلة برمجة 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 بإجابات قصيرة