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

16الكتل الوظيفية القياسية

كشف الحافة: R_TRIG و F_TRIG ومشكلة «نفّذ في كل مسح»

كيف تنفّذ شيئاً مرة واحدة عند ضغط الزر بدل تنفيذه في كل دورة مسح، باستخدام كتلتي R_TRIG و F_TRIG.

الدرس 16 من 3410 دقائقIEC 61131-3

الخطأ الذي يقع فيه الجميع مرة واحدة

تريد عدّ كم مرة ضغط المشغّل زر التشغيل، فتكتب:

IF Start THEN
  Starts := Starts + 1;
END_IF;

تضغط الزر ضغطة واحدة قصيرة، فيصبح العداد 14. لأن الضغطة القصيرة تساوي 300 ميلي ثانية، ودورة المسح 20 ميلي ثانية، فالشرط كان صحيحاً في 15 دورة متتالية. البرنامج لا يرى الضغطة، بل يرى حالة الزر في كل دورة.

الحافة

ما تحتاجه هو الحافة (Edge): اللحظة التي تتغير فيها القيمة، لا القيمة نفسها.

النوع

الكتلة

تعطي TRUE عندما

حافة صاعدة · Rising

R_TRIG

كانت FALSE في المسح السابق وأصبحت TRUE

حافة هابطة · Falling

F_TRIG

كانت TRUE في المسح السابق وأصبحت FALSE

مخرج الكتلة Q يبقى TRUE لدورة مسح واحدة فقط، ولهذا يسمى المنطق الناتج نبضة واحدة (One-shot).

كيف تستخدمها

الكتلة لها ذاكرة، فيجب أن تُعلن في VAR كنسخة مستقلة لكل إشارة تراقبها:

VAR
  StartEdge : R_TRIG;
  StopEdge  : F_TRIG;
END_VAR

StartEdge(CLK := Start);

IF StartEdge.Q THEN
  Starts := Starts + 1;   (* مرة واحدة لكل ضغطة *)
END_IF;

لا تشارك نسخة واحدة بين إشارتين. النسخة تخزّن القيمة السابقة لإشارة واحدة فقط.

كيف تعمل داخلياً

الكتلة ليست سحراً، وهذا كل ما فيها:

Q    := CLK AND NOT Last;
Last := CLK;

يمكنك كتابتها بيدك بمتغير BOOL واحد، لكن استخدام الكتلة القياسية أوضح للمراجع وينتقل بين الشركات.

متى تحتاج الحافة فعلاً

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

القاعدة

القيمة تسأل «هل هو مشغّل الآن؟»، والحافة تسأل «هل بدأ الآن؟». كل ما يُحتسب أو يُسجّل أو يُغيّر خطوة يحتاج السؤال الثاني.

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

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

ماذا تجرّب

  1. شغّل البرنامج واضغط PB1 ضغطة قصيرة: L1 يضيء، واضغط مرة ثانية: ينطفئ.
  2. قارن Presses مع Scans في جدول المراقبة: الأول يزيد 1 والثاني يزيد عشرات في الضغطة الواحدة.
  3. لاحظ L3 يومض لحظة ترك الزر.
  4. استبدل Rise.Q بـ PB1 في سطر L1 وجرّب: المصباح يرتجف طالما الزر مضغوط.

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

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

كشف الحافة في PLCR_TRIGF_TRIGrising edge بالعربيone shot في 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 بإجابات قصيرة