בקר לוגי מיתכנת
 Jetter JC-340
מארזי בקר שונים
**בקר מתוכנת** (**PLC**-Programmable Logic Controller) הוא התקן תעשייתי ממוחשב המיועד לאסוף מידע, לפתור לוגיקת בקרה ולשלוט בתהליכים ("בקרת תהליכים") בהתאם ליעד הבקר ולציוד הקצה המחובר אליו (מנועים, גששים וכו'). הבקר אוסף נתונים אנלוגיים ודיגיטליים, ועל פיהם, בצירוף מדדים מתוכנתים, מחזיר מידע (מבצע פעולה) לציוד הקצה בזמן אמת. הבקר עובד בצורה לוגית על פי עץ תהליך או סדר פעולות שניתן לתכנות מראש. את סדר הפעולות הזה ניתן לשמור בדיאגרמת הסולם של הבקר (Input/Output, Tolerance וכו').

בקרים מסוג זה משמשים בדרך כלל לתעשייה מתקדמת ולאיסוף מידע מפס הייצור. הבקרים ניתנים לתכנות ולעבודה מרובת-כניסות (של ציוד קצה) בתצורת Input/Output. הדבר שימושי לריבוי משימות מול מספר סוגים של ציוד קצה (חיסכון בעלויות). הבקרים מתוכננים לתפקד בסביבות עבודה קשות וכוללים יכולת לעבוד בטווח טמפרטורות גדול יותר, חסינות לרעש גבוהה בסביבה רועשת, עמידות לתקלות, חסינות לזעזועים ולמכות, אבק ולחות. הבקר בדרך כלל כולל זיכרון לא נדיף המאחסן את תוכניות המחשב. הבקרים מסוגלים לבקר על מגוון רחב של התקנים אלקטרונים, אלקטרומכניים, חשמליים, אופטיים, מתמרים ועוד.

בקר מרובה משימות
----------------

כמעט כל תהליך ניתן לפירוק לתת משימות עצמאיות או אשר תלויות אחת בשנייה; עד היום הבקרים לא אפשרו לדמות מצב זה בתוכנה שנכתבה בהם אלא כפו להתייחס לכל התהליך כתהליך אחד. בקרים חדשים מאפשרים לדמות את תלות/אי התלות המשימות בתוכנת הבקר.
לדוגמה מפעל לייצור בקבוקי זכוכית - בתהליך ייצור הזכוכית קיימים תהליכים רבים כמו שינוע החול, הפעלת התנורים, יצור הבקבוקים עצמם וכו. אלו תהליכים שונים בעלי נקודות השקה. שימוש בבקר "קונבנציונלי" לא יאפשר הטמעה של התהליכים בתוכנה בתהליכים אוטונומיים. בקר מרובה משימות יאפשר זאת מה שיאפשר יכולות ניטור בעיות אמין יותר, בקרת תהליך נכונה וטובה יותר ויקצר זמני פיתוח באופן משמעותי.

שימושים בתעשייה
---------------

במפעלים שמפעילים קווי ייצור חשובה בקרת התהליכים והחלת אוטומציה בהתאם לפרמטרים בני-תכנות. לדוגמה, במאפייה גדולה יש צורך לבקר את החום בתנור האפייה (יש השפעה לשינויים בטמפרטורה חיצונית), ולפי מדדים קבועים (Input) מגששי טמפרטורה מקצים לבקר יכולת לשלוט בתהליך (Output). הבקר משנה טמפרטורה (מוריד או מעלה את הספק החשמל) ללא התערבות אדם.

בנוסף לבקרים מתוכנתים ישנם בקרים מקומיים שהיעוד שלהם הוא אך ורק לוויסות טמפרטורה. אחד הדברים החשובים בבקרים הללו הוא הגדרת חיישן הטמפרטורה, ישנם סוגים רבים של חיישנים לדוגמה תרמוקפל מסוג K או מסוג J, או RTD כדוגמת PT100. הגדרה זו חשובה מאוד לוויסות הטמפרטורה בגלל שלכל חיישן סקלת טמפרטורה משלו.

דוגמאות נוספות הן בקרי-תנועה אשר שולטים על רמזורים או על תנועת רכבות לפי ציוד קצה (פסי מתכת בכביש, מתגים במסילת רכבת). בציוד תעופתי גם כן נעשה שימוש רב בטכנולוגיה זו (איסוף נתונים, ריכוזם והצגתם במכשור הצוות בכלי הטיס).

שימושים בסביבה ביתית
--------------------

בכלי רכב פרטיים יש, לעיתים, בקרים שמבקרים תהליכים (למשל טמפרטורת מנוע או יחס תערובת דלק-אוויר), וכן בציוד חקלאי (חלק ממחשבי ההשקיה), כמו בדיקות לחות ופרמטרים שונים מגששים באדמה.

שימושים לצורכי לימוד
--------------------

בקר המיקרוביט. במרכז ניתן להבחין במסך נוריות הלד
* בקר המיקרוביט משמש ללימוד תיכנות. המיקרוביט ניתן לתכנות בשפות שונות (סקראצ', פייתון, ג'אווה סקריפט, makecode), ולו חיישנים רבים.

ציוד קצה סטנדרטי
----------------

* גששים
* בקרת הנעה
* חיישנים
* מכשור אופטי (מכשור לייזר, עדשות אופטיות)
* גלאים

שפת התיכנות
-----------

שפת התיכנות בבקרים התפתחה מהאופן שבו נבנו ממסרים חשמליים (Relays) ולכן היא משלבת רכיבים לוגים בסיסים עם פונקציות מתקדמות. התיכנות נעשה בכלים גרפיים, שמקלים על מלאכת התיכנות, ובגלל דמיוני לסולם (Ladder) הוא נקרא דיאגרמות סולם.

* רכיבי תכנות בסיסייםרכיבי תכנות בסיסיים
* דיאגרמת סולם הכוללת מספר רכיבים בסיסיםדיאגרמת סולם הכוללת מספר רכיבים בסיסים
* דיאגרמת סולם הכוללת רכיבים בסיסים ומונה זמן (timer)דיאגרמת סולם הכוללת רכיבים בסיסים ומונה זמן (timer)

עם הזמן התפתחה שפת התיכנות ויצרני הבקרים הוסיפו מגוון פונקציות ורוטינות שניתן לשלבן בדיאגרמות. בנוסף איפשרו היצרנים למתכנתים להוסיף פונקציות מותאמות אישית לקוד.

קישורים חיצוניים
----------------

ויקישיתוף מדיה וקבצים בנושא **בקר לוגי מיתכנת** בוויקישיתוף
* מבנה בסיסי בקר מתוכנת PLC בעברית
* מדריך PLC למתחילים
* ההיסטוריה וההתפתחות של ה-PLC
* מדריך לעבודה משלבת PLC-Linux

|  |  |
| --- | --- |
| בקרת זהויות עריכת הנתון בוויקינתונים | 
* BNE: XX531788

 |