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

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

القيم الحرفية والثوابت: 16#FF و 2#1010 و T#5s

كيف تكتب رقماً أو زمناً أو نمط بتات في ST، ولماذا يرفض المترجم أحياناً رقماً يبدو صحيحاً.

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

الأساس في القيمة الحرفية

الصيغة

المعنى

مثال

123

عشري

عدد صحيح

1.5 1.5e3

حقيقي

REAL

2#1010_0001

ثنائي

نمط بتات

8#777

ثماني

نادر

16#FF 16#00FF_A1

ست عشري

أقنعة، عناوين Modbus

TRUE FALSE

منطقي

BOOL

T#1m30s

مدة

TIME

'Batch A'

نص

STRING

الشرطة السفلية _ تُستخدم للفصل البصري فقط: 1_000_000 تساوي 1000000.

النوع الصريح

أحياناً تحتاج أن تقول للمترجم أي نوع تقصد:

INT#100        (* 100 كعدد صحيح 16 بت *)
REAL#100       (* 100.0 *)
DINT#100000

تحتاج هذا عندما تستدعي كتلة تقبل DINT وتريد تمرير رقم صغير بلا لبس.

لماذا يرفض المترجم PT := 5000؟

لأن PT من نوع TIME، و 5000 عدد صحيح. المعيار لا يسمح بالتحويل الضمني هنا:

HiTmr(IN := Level > 85.0, PT := T#5s);     (* صحيح *)
HiTmr(IN := Level > 85.0, PT := 5000);     (* خطأ *)

الثوابت المسماة

كل رقم في برنامجك يحتاج اسماً إن تكرر أو كان له معنى هندسي:

VAR CONSTANT
  LevelHi    : REAL := 85.0;   (* حد الإنذار العالي، LAH-101 *)
  LevelHiHi  : REAL := 95.0;   (* إيقاف المضخة *)
  AlarmDelay : TIME := T#2s;   (* ISA-18.2: ضد الاهتزاز *)
END_VAR

الفائدة ليست جمالية: بعد سنة، عندما يطلب المشغّل رفع الحد إلى 88، ستغيّر رقماً واحداً بدل البحث عن 85.0 في ألف سطر.

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

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

ماذا تجرّب

  1. شغّل البرنامج وارفع S1: المصابيح تعدّ بالثنائي من 0 إلى 15 ثم تعود.
  2. راقب Count و Limit و Ten في جدول المراقبة: 2#1111 هي 15 و 16#A هي 10.
  3. غيّر Limit إلى Ten وأعد التحميل: العدّ يتوقف عند 10.
  4. غيّر T#500ms إلى T#200ms لعدّ أسرع.

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

hexadecimal في PLC16# في STbinary literal plcT# زمنالثوابت في STCONSTANT structured textكتابة الارقام في 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 بإجابات قصيرة