בקרת FBD רציפה: מדריך לתכנות מכונת מצב

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

בקרת רצף נמצאת בכל מקום באוטומציה: קו מילוי, פלטת סיבוב, מכונת חותמת, תא צבע. הטעות הקלאסית היא לכתוב כל פלט כתנאי רופף — "כאשר חיישן A וטיימר B, פתח שסתום C" — ואז לדבג את השילובים הבלתי אפשריים בשעה 2 בלילה. הפתרון הוא להפסיק לחשוב בפלטים ולהתחיל לחשוב במצבים.

מהי מכונת מצב למעשה

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

ב-FBD של xLogicSoft, מכונת מצב מתאימה בצורה נקייה לתבנית רישום משולב קלאסית או לדגלים F שמשמשים כדגלי שלב. התבנית: דגל F אחד לכל שלב, קבוצת תנאי מעבר, וחסימת מעבר חד פעמית כך שהמכונה מתקדמת בדיוק שלב אחד לכל אירוע. מכיוון שהשלב הנוכחי תמיד נראה — ה-LCD מראה איזה דגל F פעיל — המפעיל ואיש התחזוקה יכולים לראות במבט אחד היכן המכונה חושבת שהיא נמצאת. תכונה אחת זו מקטינה את זמן פתרון הבעיות יותר מכל מדריך אבחון.

לבנות את זה: שלוש תחנות מילוי

קח דוגמה פשוטה של שלושה תחנות: בקבוק מגיע, מתמלא, מתכסה. הצעדים:

  • שלב 0 IDLE: כל הפלטים כבויים. מעבר: חיישן בקבוק נוכח, לחצן הפעלה.
  • שלב 1 מיקום: הקונveyor פועל עד שהבקבוק עוצר בראש המילוי. מעבר: חיישן מיקום.
  • שלב 2 מילוי: שסתום המילוי נפתח במשך משך זמן מתוזמן או עד שחיישן הרמה מפעיל. מעבר: טיימר סיים.
  • שלב 3 סגירה: מכונת הסגירה מורידה ולוחצת. מעבר: לחץ מאושר, טיימר סיים.
  • שלב 4 הוצא: הקונveyor פועל להזיז את הבקבוק החוצה. מעבר: חיישן היציאה מתנקה.

כל מעבר משתמש בחסימת עיכוב או חסימת ריליי מחק (חד פעמי) כך שההתקדמות מתרחשת בדיוק פעם אחת. השומר על כל מעבר הוא השלב עצמו — שלב 2 לא יכול להתחיל אלא אם המכונה נמצאת בשלב 1, נקודה. הבקבוק לא יכול להתמלא מוקדם כי "מוקדם" לא קיים כתנאי; זה לא בטבלת השלבים, והבקבוק לא ממוקם עד שהמכונה עזבה את המיקום.

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

מבחן מצב הכישלון

הנה התרגיל שמגלה אם בנית מכונת מצב או ערימת תנאים: רשום את החירומים. בקבוק נתקע מתחת לראש המילוי? המכונה צריכה להישאר בשלב המילוי, לעצור את המשאבה, ולהתריע — לא לנדוד להוציא ולזרוק מוצר על הרצפה. חיישן נכשל ומדווח "בקבוק נוכח" לנצח? המכונה צריכה להפסיק את שלב המיקום ולהתריע, לא למלא את אותו בקבוק בלתי נראה כל הלילה. חיישן נכשל בדרך אחרת, "אף פעם לא נוכח"? המכונה מחכה בסבלנות — זה בסדר, זה מה שמכונות צריכות לעשות.

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

החליט מה קורה לאחר תקלה לפני שהתקלה מתרחשת. הבחירה הנפוצה: המכונה עוצרת היכן שהיא, המפעיל מסיר את הסיבה, לוחץ על איפוס, והרצף חוזר לרדום — או להתחלה של השלב המופרע אם המוצר עדיין בטוח. חזרה לרדום היא פשוטה ובטוחה יותר עבור מכונות קטנות; חזרה באמצע מחזור היא מהירה יותר אך דורשת שכל מצב פלט ידוע ומוכח. עבור מכונת מילוי, רדום הוא התשובה הכנה — בקבוק חצי מלא הוא פסולת בכל מקרה.

מדוע FBD מנצחת את הלוגיקה של הסולם עבור זה

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

לוגיקת סולם יכולה לבטא מכונת מצב, אבל זה לוקח מאה מדרגות ודיאגרמה שאף אחד לא קורא. ב-FBD, מבנה השלבים נמצא לפניך: רישום משולב או חסימת דגל מראה את השלב הנוכחי, חסימות המעבר נראות, והרצף נקרא מלמעלה למטה. הסביבה של xLogicSoft כוללת כ-70 חסימות פונקציה, ומכונה בת חמישה שלבים עם מנעולים מתאימה בנוחות בדף תוכנית אחד. כאשר המכונה משתנה — תחנה חדשה, חיישן חדש — אתה מוסיף שלב ושני מעברים במקום לחבר מחדש את הלוגיקה.

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