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

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

أنواع البيانات: BOOL و INT و REAL و TIME وغيرها

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

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

لماذا النوع مهم

في PLC الذاكرة محدودة والزمن محسوب، فكل متغير يأخذ حجمه بالضبط. اختيار نوع أصغر من اللازم يعني فيضاناً صامتاً: العداد يصل إلى نهايته فيلتف إلى السالب بلا أي رسالة خطأ.

الأنواع المنطقية والعددية

النوع

الحجم

المدى

يُستخدم لـ

BOOL

1 بت

TRUE / FALSE

تماس، صمام، إنذار

BYTE WORD DWORD

8 / 16 / 32 بت

نمط بتات

كلمة حالة، قناع

SINT INT DINT

8 / 16 / 32 بت

‎-128…127، ‎-32768…32767، ‎±2.1 مليار

عدّادات، خطوات

USINT UINT UDINT

بلا إشارة

0…255، 0…65535، 0…4.29 مليار

قراءات خام

REAL

32 بت

‎±3.4×10³⁸ بدقة 7 أرقام

قياسات، نسب، حسابات

LREAL

64 بت

دقة 15 رقماً

حسابات دقيقة

TIME

32 بت

مدة زمنية

PT للمؤقتات

STRING

حسب الطول

نص

رسائل، أسماء دفعات

الفخ الأول: INT يفيض

INT يتوقف عند 32767. عدّاد إنتاج بهذا النوع سينقلب إلى ‎-32768 بعد 32767 قطعة. استخدم DINT لأي شيء يتراكم.

الفخ الثاني: REAL ليس دقيقاً

REAL تقريبي: 0.1 + 0.2 لا تساوي 0.3 بالضبط. لذلك لا تقارن قيمتين REAL بالتساوي:

IF Level = 50.0 THEN   (* قد لا تتحقق أبداً *)
IF ABS(Level - 50.0) < 0.1 THEN   (* الصحيح *)

زمن TIME

TIME ليس رقماً عادياً، بل مدة تُكتب بصيغة خاصة:

T#500ms    T#2s    T#1m30s    T#2h15m

لا يمكنك إسناد 5000 إلى متغير TIME؛ لا بد من T#5s.

الاختيار العملي

  • إشارة حقلية تناظرية ← REAL
  • خطوة آلة حالات ← INT
  • عدّاد دفعات أو ساعات تشغيل ← DINT
  • أي شيء ON/OFF ← BOOL

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

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

ماذا تجرّب

  1. شغّل البرنامج واضغط START، وراقب Bar و Step في جدول المراقبة: Step يأخذ الرقم الصحيح من Bar فقط.
  2. غيّر Counter من DINT إلى INT وأعد التحميل: ما زال يعمل هنا، لكن في PLC حقيقي سيقلب إلى سالب بعد 32767.
  3. جرّب Delay : TIME := 5000; وسيرفضه المترجم: الزمن يُكتب T#5s.

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

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

أنواع البيانات في PLCdata types structured textBOOL INT REALالفرق بين INT و DINTنوع TIME في STمدى INT في PLCREAL و LREAL

محتوى الدورة

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