פרק 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 הכניסה דלקה רק 2 שניות, ולכן הנורית לא נדלקה וקוצב הזמן התאפס. מ-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