05البيانات والمتغيرات
أنواع البيانات: BOOL و INT و REAL و TIME وغيرها
كل نوع في ST له مدى وحجم في الذاكرة، واختيار النوع الخاطئ يسبب فيضاناً صامتاً أو خسارة في الدقة.
لماذا النوع مهم
في PLC الذاكرة محدودة والزمن محسوب، فكل متغير يأخذ حجمه بالضبط. اختيار نوع أصغر من اللازم يعني فيضاناً صامتاً: العداد يصل إلى نهايته فيلتف إلى السالب بلا أي رسالة خطأ.
الأنواع المنطقية والعددية
النوع | الحجم | المدى | يُستخدم لـ |
|---|---|---|---|
| 1 بت | TRUE / FALSE | تماس، صمام، إنذار |
| 8 / 16 / 32 بت | نمط بتات | كلمة حالة، قناع |
| 8 / 16 / 32 بت | -128…127، -32768…32767، ±2.1 مليار | عدّادات، خطوات |
| بلا إشارة | 0…255، 0…65535، 0…4.29 مليار | قراءات خام |
| 32 بت | ±3.4×10³⁸ بدقة 7 أرقام | قياسات، نسب، حسابات |
| 64 بت | دقة 15 رقماً | حسابات دقيقة |
| 32 بت | مدة زمنية | |
| حسب الطول | نص | رسائل، أسماء دفعات |
الفخ الأول: 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.
ماذا تجرّب
- شغّل البرنامج واضغط START، وراقب Bar و Step في جدول المراقبة: Step يأخذ الرقم الصحيح من Bar فقط.
- غيّر Counter من DINT إلى INT وأعد التحميل: ما زال يعمل هنا، لكن في PLC حقيقي سيقلب إلى سالب بعد 32767.
- جرّب Delay : TIME := 5000; وسيرفضه المترجم: الزمن يُكتب T#5s.
مصطلحات هذا الدرس
يبحث الناس عن هذا الدرس بـ
أنواع البيانات في PLCdata types structured textBOOL INT REALالفرق بين INT و DINTنوع TIME في STمدى INT في PLCREAL و LREAL
محتوى الدورة
- 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 بإجابات قصيرة