03البداية
هيكل البرنامج: POU و PROGRAM و FUNCTION و FUNCTION_BLOCK
وحدات تنظيم البرنامج الثلاث في IEC 61131-3، والفرق الجوهري بينها: من يحتفظ بذاكرته ومن ينساها.
وحدة تنظيم البرنامج POU
كل ما تكتبه في PLC يعيش داخل POU (Program Organization Unit، وحدة تنظيم برنامج). المعيار يعرّف ثلاثة أنواع، والفرق بينها سؤال واحد: هل تحتفظ بذاكرتها بين الدورات؟
النوع | الذاكرة | المخارج | مثال |
|---|---|---|---|
| لا شيء يبقى | قيمة واحدة | |
| تبقى في نسخة (Instance) | عدة مخارج | |
| تبقى | يُربط بمهمة | برنامج المحطة الرئيسي |
الدالة 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.
ماذا تجرّب
- شغّل البرنامج وراقب T1.ET و T2.ET في جدول المراقبة.
- لاحظ أنهما مؤقتان مستقلان رغم أن النوع واحد: لكل نسخة ذاكرتها.
- احذف تصريح T2 وشغّل: ستظهر رسالة «متغير غير معرّف».
مصطلحات هذا الدرس
يبحث الناس عن هذا الدرس بـ
POUprogram organization unitFUNCTION_BLOCKالفرق بين function و function blockPROGRAM في STinstance في 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 بإجابات قصيرة