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

06البيانات والمتغيرات

التصريح عن المتغيرات: VAR و VAR_INPUT و RETAIN

أقسام التصريح تحدد من أين تأتي القيمة وإلى أين تذهب، و RETAIN يحدد ما الذي ينجو من انقطاع الكهرباء.

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

كل متغير يُعلَن أولاً

ST لغة صارمة في الأنواع: لا يوجد متغير بلا تصريح. والتصريح يقع في قسم يحدد دوره:

VAR_INPUT
  Start : BOOL;
  SetPoint : REAL := 75.0;   (* قيمة ابتدائية *)
END_VAR

الأقسام

القسم

من أين / إلى أين

يُكتب عليه من الداخل؟

VAR_INPUT

يدخل من المستدعي

لا، يُقرأ فقط

VAR_OUTPUT

يخرج إلى المستدعي

نعم

VAR_IN_OUT

مرجع إلى متغير المستدعي

نعم، والتعديل يظهر عنده

VAR

داخلي

نعم

VAR_TEMP

داخلي، يُمسح كل دورة

نعم

VAR_GLOBAL

مشترك بين كل البرامج

نعم

VAR CONSTANT

ثابت لا يتغير

لا

الفرق الذي يوقع الناس

VAR يحتفظ بقيمته بين الدورات، و VAR_TEMP لا يحتفظ: يبدأ من الصفر في كل مسح. إذا كتبت عدّاداً في VAR_TEMP فسيبقى عند 1 إلى الأبد.

RETAIN: ما ينجو من انقطاع الكهرباء

VAR RETAIN
  TotalBatches : DINT;
  RunHours : REAL;
END_VAR

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

الثوابت بدل الأرقام السحرية

VAR CONSTANT
  HiAlarm  : REAL := 85.0;
  OverFill : REAL := 95.0;
END_VAR

الآن IF Level > HiAlarm تقرأ نفسها، وتغيير الحد يتم في مكان واحد.

التسمية

اسم المتغير يبدأ بحرف أو _، ولا يقبل مسافة ولا رمزاً، وحالة الأحرف لا تفرق (Pump و PUMP نفس المتغير). العرف الصناعي: سمِّ المتغير باسم الوسم على المخطط، مثل LT101_Level.

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

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

ماذا تجرّب

  1. شغّل البرنامج واضغط START: السير يعمل والمكبس يرفض الصناديق الطويلة.
  2. بعد رفض 3 صناديق يتوقف السير ويضيء المصباح، لأن Target يبدأ بالقيمة 3.
  3. غيّر Target إلى 5 في سطر تعريفه فقط وأعد التحميل.
  4. جرّب كتابة Start := TRUE; في نهاية البرنامج: سيرفضها المترجم لأن Start من VAR_INPUT.

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

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

VAR في STVAR_INPUT VAR_OUTPUTVAR_GLOBALRETAIN في PLCمتغيرات محفوظةالتصريح عن المتغيرات PLCVAR_IN_OUT

محتوى الدورة

  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 بإجابات قصيرة