03البداية

هيكل البرنامج: POU و PROGRAM و FUNCTION و FUNCTION_BLOCK

وحدات تنظيم البرنامج الثلاث في IEC 61131-3، والفرق الجوهري بينها: من يحتفظ بذاكرته ومن ينساها.

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

وحدة تنظيم البرنامج POU

كل ما تكتبه في PLC يعيش داخل POU (Program Organization Unit، وحدة تنظيم برنامج). المعيار يعرّف ثلاثة أنواع، والفرق بينها سؤال واحد: هل تحتفظ بذاكرتها بين الدورات؟

النوع

الذاكرة

المخارج

مثال

FUNCTION

لا شيء يبقى

قيمة واحدة

SQRT، تحجيم 4-20mA

FUNCTION_BLOCK

تبقى في نسخة (Instance)

عدة مخارج

TON، كتلة محرك

PROGRAM

تبقى

يُربط بمهمة

برنامج المحطة الرئيسي

الدالة FUNCTION

تدخلها قيم وتخرج قيمة، ولا تتذكر شيئاً. نفس المدخلات تعطي دائماً نفس المخرج. استخدمها للحسابات.

الكتلة الوظيفية FUNCTION_BLOCK

هذه هي الفكرة الأهم في IEC 61131-3. الكتلة لها ذاكرة خاصة بكل نسخة: عندما تكتب

VAR
  T1 : TON;
  T2 : TON;
END_VAR

أنت أنشأت نسختين من TON، لكل واحدة زمنها المنقضي ومخرجها. ولهذا يجب أن تعلن المؤقت في VAR ولا تستخدمه كدالة عابرة. النسخة هي التي تتذكر.

البرنامج PROGRAM

هو أعلى مستوى: يُربط بمهمة (Task) فينفّذ دورياً. في المختبر هنا كل مثال برنامج واحد، وتُربط متغيراته بالعملية بالاسم.

أقسام التصريح

VAR_INPUT  … END_VAR   (* يدخل من الخارج، يُقرأ فقط *)
VAR_OUTPUT … END_VAR   (* يخرج إلى الخارج *)
VAR        … END_VAR   (* داخلي، يبقى بين الدورات *)

في المختبر: المتغيرات المسماة Start Stop Level LSH LSL تُربط بالمداخل، و Pump Valve Lamp HiAlm بالمخارج.

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

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

ماذا تجرّب

  1. شغّل البرنامج وراقب T1.ET و T2.ET في جدول المراقبة.
  2. لاحظ أنهما مؤقتان مستقلان رغم أن النوع واحد: لكل نسخة ذاكرتها.
  3. احذف تصريح T2 وشغّل: ستظهر رسالة «متغير غير معرّف».

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

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

POUprogram organization unitFUNCTION_BLOCKالفرق بين function و function blockPROGRAM في STinstance في 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 بإجابات قصيرة