الفصل 4 · لغة السلّمالمتحكّمات المبرمجة · أومرون⌂📚🏠
الفصل 4 · أساسيات

لغة السلّم

التلامسات، والملفّات، وبِتات العمل، وSET وRSET، ومؤقّتات وعدّادات أومرون

🎯 أهداف التعلّم

في نهاية الفصل ستستطيعون:

  1. التعرّف على لغات البرمجة الخمس في المعيار IEC 61131-3.
  2. ترجمة سطر سلّم إلى معادلة بوليانية، وترجمة معادلة إلى سطر سلّم.
  3. استعمال التعليمتين SET وRSET وتجنّب الملفّ المزدوج.
  4. استعمال المؤقّت TIM من أومرون ورسم مخططه الزمني.
  5. استعمال العدّاد CNT من أومرون مع دخل للعدّ ودخل للتصفير.

❓ سؤال افتتاحي

نريد أن يومض مصباح العطل مرّة كلّ ثانية عندما يوجد حمل زائد.

كيف نفعل ذلك دون وصل أيّ مكوّن إضافي باللوحة؟

تلميح: ابحثوا في الفصل 2 عن بِت خاصّ يومض وحده.

معرفة سابقة

المعدّات والوقت

المعدّاتالكمية
حاسوب مع برنامج البرمجة من أومرون (CX-Programmer)1
متحكّم أومرون (غير إلزامي، يمكن العمل بالمحاكاة)1

⏱️ الوقت المقترح: ثلاث حصص. معظم العمل بالمحاكاة في الحاسوب.

4.1 لغات المعيار الخمس

حدّد المعيار الدولي IEC 61131-3 خمس لغات لبرمجة المتحكّمات. في معظم المتحكّمات يمكن الجمع بين عدّة لغات في البرنامج نفسه.

اللغةالنوعمتى نستعملها
مخطط السلّم (LD)رسوميةالتحكّم في المحرّكات والصمّامات. تشبه دائرة التحكّم، لذلك نبدأ بها.
مخطط الكتل (FBD)رسوميةالتحكّم المستمرّ والحسابات: كتل موصولة بخطوط.
النص المهيكل (ST)نصّيةالحسابات المعقّدة، والحلقات، والشروط، مثل لغات البرمجة العادية.
قائمة التعليمات (IL)نصّيةلغة قديمة تشبه لغة التجميع. لا تكاد تُستعمل اليوم.
مخطط المراحل (SFC)رسوميةعمليات على مراحل: تعبئة، وخلط، وتسخين، وتفريغ. سنلتقي بالفكرة في الفصل 12.

منطق التشغيل/الإيقاف نفسه من الفصل 5، بلغتين إضافيتين: بمخطط الكتل وبالنص المهيكل.

ORStartMotorANDOLStopMotorالتغذية الراجعة الخضراء هي التثبيت الذاتي
شكل 4.1: تشغيل/إيقاف بمخطط الكتل: الدائرة الصغيرة عند الدخل تعني «لا»
(* تشغيل/إيقاف مع التثبيت الذاتي *)
Motor := NOT OL AND NOT Stop AND (Start OR Motor);
⚠️انتبهوا

الطلّاب الذين يعرفون أردوينو يرون تشابهًا بين النص المهيكل ولغة C. الفكرة متشابهة، لكنّهما لغتان مختلفتان: في المتحكّم لا توجد loop()، لأنّ المتحكّم يمسح البرنامج مرّة بعد مرّة بنفسه.

📘تعريف

لماذا السلّم رغم ذلك؟ من يقف بجانب اللوحة يرى مخطط السلّم (דיאגרמת סולם) «حيًّا» على الشاشة: كلّ تلامس يوصل يُلوَّن. الفنّي الذي يعرف دوائر التحكّم يفهمه فورًا، حتّى دون أن يعرف البرمجة.

4.2 سطر السلّم هو معادلة

  • التلامسات على التوالي هي «و».
  • التلامسات على التوازي هي «أو».
  • التلامس المغلق هو «لا» على البِت الخاصّ به.
  • الملفّ في الجهة اليمنى هو النتيجة.
Y = ( A + B ) · C
00.00A0.01B0.02C100.00Y
شكل 4.2: سطر المعادلة
⚠️انتبهوا

الملفّ المزدوج (סליל כפול). هنا المخرج نفسه 100.00 مكتوب في سطرين. ينفّذ المتحكّم السطرين، والسطر الأخير هو الذي يحدّد. الزرّ 1 «لا يعمل»، لأنّ السطر 1 يطفئ المصباح مباشرةً بعده. القاعدة: كلّ ملفّ يُكتب مرّة واحدة، وكلّ شروطه نوصلها بالسطر نفسه.

00.00Btn_1100.00Lamp10.01Btn_2100.00Lamp
شكل 4.3: خطأ شائع: الملفّ نفسه في سطرين

التعليمتان SET وRSET

00.02StartSET100.00Motor10.01Stop0.00O.LRSET100.00Motor
شكل 4.4: تشغيل/إيقاف بواسطة SET وRSET

SET يجعل البِت فعّالًا، ويبقى البِت فعّالًا حتّى بعد أن يزول الشرط. RSET يلغي تفعيله. هذه طريقة إضافية لبناء ذاكرة دون تلامس تثبيت.

عندما يتحقّق الشرطان معًا، يتغلّب السطر الأخير. لذلك نضع سطر RSET بعد سطر SET: هكذا يتغلّب الإيقاف.

4.3 مؤقّت أومرون

00.02StartTIM0000#50Delay1T0000Delay100.00Lamp
شكل 4.5: مؤقّت مدّته 5 ثوانٍ
  • TIM 0000 هو رقم المؤقّت (קוצב זמן).
  • #50 هو القيمة المضبوطة، بوحدات من عُشر الثانية: 50 × 0.1 = 5 ثوانٍ.
  • عندما يكون الدخل فعّالًا، القيمة الحالية تنزل من 50 حتّى 0.
  • عندما تصل إلى 0، يصبح علم الانتهاء (דגל סיום) T0000 فعّالًا.
  • عندما يتوقّف الدخل، يُصفَّر المؤقّت فورًا.
t1t2t3t3+5s0.02الدخلT0000الانتهاءt
شكل 4.6: يُصفَّر المؤقّت عندما يتوقّف الدخل قبل مرور 5 ثوانٍ
✅مثال

بين t1 وt2 كان الدخل فعّالًا ثانيتين فقط، لذلك لم يضئ المصباح وصُفِّر المؤقّت. من t3 يكون الدخل فعّالًا بشكل متواصل، وبعد 5 ثوانٍ يصبح علم الانتهاء فعّالًا. هذا هو تأخير التشغيل (השהיה בהפעלה). تأخير الإيقاف نبنيه ببِت عمل، وسنتعلّمه في الفصل 8.

📘تعريف

قيم شائعة: #10 = ثانية واحدة، #50 = 5 ثوانٍ، #200 = 20 ثانية، #600 = دقيقة. تُكتب القيمة مع علامة # قبلها.

4.4 عدّاد أومرون

00.06Sensor0.07ResetCNT0000#5BoxesR1C0000Boxes100.02Full
شكل 4.7: عدّاد لـ 5 صناديق
  • للعدّاد (מונה) دخلان: العدّ في السطر العلوي، والتصفير (R) في السطر السفلي.
  • في كلّ مرّة ينتقل فيها دخل العدّ من 0 إلى 1، القيمة الحالية تنزل بواحد، من 5 حتّى 0.
  • عندما تصل القيمة إلى 0، يصبح علم الانتهاء C0000 فعّالًا ويبقى فعّالًا.
  • دخل التصفير يعيد القيمة إلى 5 ويلغي تفعيل العلم.
123450.06العدّC0000الانتهاء0.07التصفيرt
شكل 4.8: خمس نبضات تجعل علم الانتهاء فعّالًا، والتصفير يلغي تفعيله
⚠️انتبهوا

قيمة العدّاد تُحفظ حتّى عند انقطاع الكهرباء. لذلك نخطّط دائمًا كيف نصفّره: بزرّ، أو في نهاية الدورة، أو ببِت المسح الأوّل P_First_Cycle.

4.5 تدريب

✏️تمرين

المستوى 1 · أساسي اكتبوا معادلة السلّم.

00.00A0.01B0.02C100.00Y
شكل 4.9: سلّم لتمرين المستوى 1
✏️تمرين

المستوى 2 · متوسّط ارسموا سلّمًا للمعادلة Y = A · ( B + C ) + D. استعملوا المداخل 0.00 إلى 0.03 والمخرج 100.00.

0
✏️تمرين

المستوى 3 · متقدّم اكتبوا سلّمًا فيه:

  • مصباح العطل 100.02 يومض مرّة كلّ ثانية ما دامت الحماية الحرارية 0.00 تعمل.
  • العدّاد CNT 0001 يعدّ كم مرّة شُغِّل المحرّك 100.00، والمصباح 100.03 يضيء بعد 10 مرّات تشغيل. الزرّ 0.07 يصفّر العدّاد.
01

4.6 تلخيص

  1. المعيار IEC 61131-3 يحدّد خمس لغات: السلّم، والكتل، والنص المهيكل، وقائمة التعليمات، ومخطط المراحل.
  2. في السلّم: التوالي هو «و»، والتوازي هو «أو»، والتلامس المغلق هو «لا».
  3. كلّ ملفّ يُكتب في سطر واحد فقط. في الملفّ المزدوج، السطر الأخير هو الذي يحدّد.
  4. SET يجعل البِت فعّالًا ويبقيه فعّالًا. RSET يلغي تفعيله. سطر RSET يكون الأخير كي يتغلّب الإيقاف.
  5. TIM من أومرون يعدّ تنازليًّا بوحدات من عُشر الثانية: #50 يساوي 5 ثوانٍ.
  6. يُصفَّر المؤقّت في اللحظة التي يتوقّف فيها دخله.
  7. CNT من أومرون يعدّ تنازليًّا من القيمة المضبوطة حتّى 0، وله دخل للتصفير.
  8. P_1s يومض مرّة كلّ ثانية، وP_First_Cycle فعّال فقط في المسح الأوّل.

المصطلحات

المصطلحبالعبريةبالإنجليزيةشرح مختصر
مخطط السلّمדיאגרמת סולםLadder Diagramلغة رسومية تشبه دائرة التحكّم
النص المهيكلטקסט מובנהStructured Textلغة نصّية في المعيار
مخطط المراحلתרשים שלביםSFCلغة للعمليات التي تتقدّم على مراحل
المؤقّتקוצב זמןTimerيعدّ الزمن ويفعّل علم الانتهاء
العدّادמונהCounterيعدّ النبضات ويفعّل علم الانتهاء
الملفّ المزدوجסליל כפולDouble coilخطأ: المخرج نفسه في سطرين
القيمة المضبوطةערך קביעהSet valueالقيمة التي يجب أن يصل إليها المؤقّت أو العدّاد

فحص ذاتي

  1. اكتبوا معادلة سطر فيه التلامسان A وB على التوالي، وC على التوازي معهما.
  2. ماذا يحدث إذا كان المخرج نفسه 100.00 مكتوبًا في سطرين مختلفين؟
  3. كم من الزمن سيعدّ TIM 0003 مع القيمة #120؟
  4. وصل المؤقّت إلى 3 ثوانٍ من أصل 5، ثمّ توقّف دخله. ماذا يحدث لقيمته؟
  5. أجيبوا عن السؤال الافتتاحي للفصل.

الأجوبة في نهاية الفصل.

🖥️تدرّبوا في المحاكي

صفحة المدخل إلى المتحكّمات المبرمجة في الموقع، مع شروحات وعروض حيّة لمواضيع الفصول 1 إلى 4:

fahed-lab.com/hashmal/plc_intro

حلول تمارين الفصل

المستوى 1

Y = A · ( B + C )

التلامس 0.00 على التوالي مع بقيّة السطر («و»). التلامس المغلق 0.01 هو B، وهو على التوازي مع C («أو»).

المستوى 2

00.00A0.01B0.02C0.03D100.00Y
شكل أ.1: حلّ الفصل 4، المستوى 2

الفرع العلوي هو A · (B + C). التلامس D على التوازي مع الفرع كلّه، لأنّه «أو» على التعبير كلّه.

المستوى 3

00.00O.LP_1sClock100.02Fault_Lamp1100.00Motor0.07ResetCNT0001#10StartsR2C0001Starts100.03Service
شكل أ.2: حلّ الفصل 4، المستوى 3

البِت P_1s يومض وحده، لذلك عندما يكون على التوالي مع الحماية الحرارية فإنّه يُنتج الوميض. العدّاد يعدّ صعود المخرج 100.00: كلّ تشغيل للمحرّك هو نبضة واحدة. بعد 10 مرّات تشغيل يضيء علم الانتهاء مصباح الخدمة.

أجوبة الفحص الذاتي
  1. Y = A · B + C.
  2. ينفَّذ السطران، والسطر الأخير هو الذي يحدّد حالة المخرج. شرط السطر الأوّل كأنّه غير موجود.
  3. 120 × 0.1 = 12 ثانية.
  4. يُصفَّر فورًا، وعندما يصبح الدخل فعّالًا مرّة أخرى يبدأ العدّ من البداية.
  5. نوصل على التوالي تلامس الحماية الحرارية والبِت P_1s، ونشغّل بهما مصباح العطل. يومض المصباح مرّة كلّ ثانية ما دامت الحماية تعمل.
إعداد: أ. فهد غانم · fahed-lab.com