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

09التعابير والعمليات

الإسناد والحساب في ST: ‎:=‎ وأولوية العمليات

الفرق بين ‎:=‎ و ‎=‎، العمليات الحسابية الخمس، أولوية المعاملات، وأشهر خطأ في برمجة PLC: القسمة الصحيحة.

الدرس 9 من 3410 دقائقIEC 61131-3

الإسناد ‎:=‎ وليس ‎=‎

في ST يوجد رمزان مختلفان تماماً:

الرمز

المعنى

مثال

:=

إسناد: ضع القيمة في المتغير

Pump := TRUE;

=

مقارنة: هل القيمتان متساويتان؟

IF State = 3 THEN

كل تعليمة إسناد تنتهي بفاصلة منقوطة ;. نسيان الفاصلة المنقوطة هو أول خطأ ترجمة يصادفه المبتدئ.

Litres := Level * 25.0;      (* إسناد *)
Lamp   := Level = 50.0;      (* إسناد لنتيجة مقارنة، وهذا صحيح تماماً *)

العمليات الحسابية

+ جمع، - طرح، * ضرب، / قسمة، و MOD باقي القسمة.

Total     := A + B;
Remaining := Capacity - Total;
Volume    := Level * 25.0;
Average   := Total / 4.0;
Phase     := Counter MOD 3;   (* يعطي 0 ثم 1 ثم 2 ثم 0 ... *)

MOD أداة عملية جداً: تقسيم زمن المسح، أو توزيع عمل على ثلاث دورات، أو وميض لمبة.

أولوية المعاملات

المعاملات لا تُنفّذ من اليسار إلى اليمين، بل حسب أولوية ثابتة. من الأعلى إلى الأدنى:

المستوى

المعاملات

1

الأقواس ( ) ونداء الدوال

2

NOT والسالب الأحادي

3

* / MOD

4

+ -

5

< > <= >=

6

= <>

7

AND

8

XOR

9

OR

لهذا يعمل هذا السطر دون أقواس حول المقارنة:

Pump := Start AND Level < 90.0;

لأن < أعلى أولوية من AND. ومع ذلك ضع الأقواس: السطر الذي تحتاج قراءته مرتين سطر رديء، ولو كان صحيحاً.

المصيدة: القسمة الصحيحة

إذا كان الطرفان عددين صحيحين، فالنتيجة عدد صحيح، والكسر يُقطع ولا يُقرّب:

IntHalf  := 7 / 2;       (* النتيجة 3، وليست 3.5 ولا 4 *)
RealHalf := 7.0 / 2.0;   (* النتيجة 3.5 *)

وأسوأ منه الخطأ الكلاسيكي في معادلة التحجيم:

Percent := Raw / 27648 * 100;      (* خطأ: النتيجة 0 لأي Raw أقل من 27648 *)
Percent := Raw * 100.0 / 27648.0;  (* صحيح: اضرب أولاً، واستخدم أعداداً حقيقية *)

القاعدة: إذا كانت النتيجة نسبة أو كسراً، اجعل أحد الطرفين على الأقل من نوع REAL، واضرب قبل أن تقسم.

القسمة على صفر

القسمة على صفر توقف البرنامج بخطأ في معظم المتحكمات. احمِ المقام دائماً:

IF Span > 0.0 THEN
  Percent := (Raw - Zero) * 100.0 / Span;
END_IF

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

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

ماذا تجرّب

  1. شغّل البرنامج وقارن IntHalf (3) مع RealHalf (3.5) في جدول المراقبة.
  2. قارن NoParens (14) مع Parens (20): الأقواس غيّرت النتيجة.
  3. اضغط START وراقب Rate: المصباح يضيء عندما يتجاوز معدل التعبئة 100 لتر في الدقيقة.

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

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

الاسناد في structured textاولوية العمليات في STالقسمة في PLCMOD في structured textالفرق بين := و =العمليات الحسابية في STINT و REAL في 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 بإجابات قصيرة