אוטומציה מעולם לא היתה פשוטה כל כך

חברת 3S-Smart Software Solution  משיקה בישראל פלטפורמת תוכנה המתאימה לסביבת טכנולוגיית האוטומציה של מחר – פרי מחקר שנערך ע"י החברה בקרב יצרני מכונות בכל העולם

רולנד וגנר  CTO of CODESYS

עלויות התכנון נמצאות בראש רשימת הפריטים הדורשים אופטימיזציה בקרב יצרני המכונות והציוד. חברות רבות ממגזר ייצור המכונות והציוד בוחנים כיום באילו רעיונות או פרדיגמות עליהם להשתמש כאשר הם מחפשים את תוכנות הבקרה של עתיד. אחרי הכל, יצירת ערך מתבצעת יותר ויותר באמצעות התוכנות. בד בבד, המשתמשים מצפים לגידול נוסף ביכולות הרשת ובמורכבות, ואף דורשים יכולות טובות יותר לשליטה במורכבות זו. כך מלמד מחקר שנערך לאחרונה על-ידי ה-VDMA (סתיו 2011 "The requirements of machine manufacturers", המצוטט בכתב העת Computer & Automation, WEKA, 01/2012).

רולנד וגנר מסכם את הממצאים שאסף לא רק מהמחקרים שלו, אלא גם מדיונים שערך עם מספר רב של לקוחות ומשתמשים של CODESYS, התואמת לתקן IEC 61131-3. הוא מחלק ממצאים אלה לשתי מגמות:

  • סיכום המורכבות במודולים מהם מייצרים מכונות שלמות או פריטי ציוד.
  • שילוב של פונקציות מוכחות מעולם ה-IT במערכות אוטומציה

מגמות אלה והיישום שלהן מתוארים להלן על בסיס CODESYS.

מתן מענה למודולים בייצור מכונות או פריטי ציוד

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

  • "האם דרושים לנו מושגים או תקנים חדשים לתיכנות כדי להשתלט על הדרישות ההולכות וגדלות?"
  • "האם עלינו לעבור לפרדיגמות חדשות? האם נוכל להעריך את כל ההוצאות והסיכונים הכרוכים במעבר לגישות תיכנות אחרות?"
  • "האם המעבר מצדיק את ההוצאות הכרוכות בו?"
  • "האם ניתן להשיג זינוק משמעותי בפרודוקטיביות באמצעות תיכנות PLC, בלי לעזוב את IEC 61131-3"?

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

תשובה נוספת לשאלה על עתיד התיכנות בטכנולוגיית האוטומציה מבוססת בדיוק על גישה זו. אם רמת המורכבות של המכונות או הציוד מסוכמת במודולים, ניתן ליצור מהם את קוד היישום של IEC 61131-3 באופן אוטומטי. חברת 3S-Smart Software Solutions פיתחה משפחת מוצרים חדשה המבוססת על גישה זו: CODESYS Application Composer.

סקירת מערכת: CODESYS Application Composer

בניגוד לרעיונות אחרים שמונחים כיום על שולחן הדיונים, מתכנת היישומים לא צריך לעזוב את סביבת הפיתוח המוכרת של IEC 61131-3 כדי להפיק תועלת מ-Application Composer: כלי מוכר זה הורחב על-ידי רעיון המודולים, שעל בסיסו היישום "מורכב".

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

  • קוד תיכנות של IEC 61131-3 עבור יחידות במבנה של ספריות
  • נתוני קלט ופלט פיזיים שעמם היחידה מנהלת תקשורת
  • יכולת להשתמש בערכים שתלויים במאפייני שימוש שיש לבטאם באמצעות פרמטרים
  • מסכים חזותיים להטלת תפקידים או לפעולה

איור 1: עץ מודולים מורכב עם קלט פרמטרים

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

איור 2: עורך מיפוי המשמש לקישור נתוני קלט/פלט של המודולים לתמונת התהליך

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

איור 3: בקרת רצף עם תרשים זרימה של תוכניות

השלמת יישום IEC 61131-3 בלחיצה על לחצן

באמצעות פקודה אחת, המחולל המשולב יוצר יישום IEC 61131-3 מלא ומובנה היטב מעץ המודולים, כולל אפשרות המחשה. ניתן לתרגם יישום זה באופן מידי באמצעות CODESYS ולטעון אותו לבקר. המשמעות היא שהמשתמש לא צריך לכתוב שורה אחת של קוד IEC 61131-3 בעצמו – כל המידע נלקח מהמודולים ומהספריות שמאחוריהן, ומשובץ כראוי במבנה הפרויקט. ניתן להציג את קוד המקור שנוצר ולערוך אותו ישירות בעת הצורך. בדרך זו המשתמשים יכולים להבין את הרעיון של יצירת קוד מונחה אובייקטים. היישום מופעל בתאימות עם הפעלת הבקר – לא נדרשים שלבים נוספים.

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

איור 4: פרמטרים למחולל, שיוצרים את קוד היישום של IEC 61131-3

מודולים זמינים ומודולים ספציפיים ליישום

גישה נוחה זו מחייבת באופן טבעי את שהמודולים המתאימים יהיו זמינים. כיצרנית של CODESYS, חברת 3S-Smart Software Solutions מגדירה את עצמה כספקית טכנולוגיה ולכן מתרכזת באספקת מודולים תלויי יישומים, לדוגמה למכונות מצבים, לניהול נתונים קבועים, לתקשורת או לניהול הרשת של יישומים מבוזרים, להגדרות של מכונות, לניהול מרשמים/תתי-תוכניות, לניהול התראות ושגיאות ולרישום נתונים.

כלומר, יצרני המכונות והציוד יוצרים בדרך כלל בעצמם מודולים ספציפיים לשימוש ב-CODESYS Application Composer – המותאמים באופן ספציפי ליישומים או למוצרים שלהם. מעבר לכך, ספקי רכיבים יספקו מודולים מתאימים למוצרים שלהם, כדי להקל על הלקוחות בחלק מההוצאה.

ניתן ליצור תיאורי מודולים ספציפיים כגון אלה באמצעות CODESYS Application Composer Toolkit. מעבר לכך, ניתן להתאים גם את המחולל שיוצר באופן אוטומטי את קוד היישום של IEC 61131-3 בטקסט מובנה מהמודולים בהתאם לצרכים או להרחבת הדרישות. אפשרות זו שימושית כאשר יש ליצור שילובים נוספים כאשר המחולל פועל, לדוגמה, מידע עבור מערכת ERP או המחשה מחוץ למערכת CODESYS.

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

מכל האמור לעיל, ברור שמתכנתי יישומים מיומנים לא יישארו חסרי מעש כתוצאה מהשימוש ב-CODESYS Application Composer. למעשה הסטנדרט רק עולה עבור מתכנתים שלא אותגרו בסביבת התיכנות הקודמת של מכונות סטנדרטיות: הם יכולים להתרכז בפיתוח של מודולים ובלוקי מערכת ולמצות את הפוטנציאל שלהם עד תום. הם יכולים להיעזר בכלים רבי עוצמה המשולבים בכלים הנוספים עבור CODESYS Professional Developer Edition שהוצגו לעיל.

מצד שני, המשתמשים יכולים לבצע כעת את ההרכבה בעצמם, ובכך ליצור את קוד התוכנית עבור הבקרים. לשם כך עליהם להכיר רק את התהליך, את הרצף או את הטכנולוגיה של המכונה –  לא נדרש כל ידע בתיכנות.

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

תיכנות מונחה אובייקטים לבקרת אוטומציה (OOP) ב-IEC 61131-3

הצגת פרדיגמת ה-OOP המקורית כאפשרות תיכנות בהקשר של כלי התיכנות CODESYS V3 המבוסס על IEC 61131-3 כבר סגרה פער גדול בין תיכנות ה-IT לתיכנות בקרה. לכן, משתמשים שהוכשרו כראוי יכולים לתכנת בלוקי מערכת, לדוגמה, באמצעות תיכנות מונחה אובייקטים. הם יכולים להשתמש בממשקים, בשיטות ובמורשת, לקשר באופן דינמי בין חלקי תוכניות, לטעון פעולות שירות ולהגדיר מאפיינים – בדיוק כפי שהם מכירים משפות ברמה גבוהה. עם זאת, בכך הם לא מפסיקים להשתמש ב-IEC 61131-3; כלומר, ניתן לתכנת את פעולות השירות ואת הקריאות לפעולות אלה ב-IL, FBD, LD או, בדרך כלל, בטקסט מובנה. לאחר מכן ניתן להשתמש בבלוקים שנוצרו באמצעות קריאה פשוטה לפונקציה. משתמשים אלה, שמכירים רק תיכנות פונקציונלי, יכולים לגשת בדרך זו לבלוקי המערכת כבעבר, ואינם נדרשים להתמודד עם OOP.

ביוזמה של 3S-Smart Software Solutions, הרעיון הובא לוועידת התקנון של IEC 61131-3 והוא עומד להתפרסם בהקשר של המהדורה השלישית של התקן.

UML: "מדריך" ו"שפה אחידה"

בפרויקט OOP מורכב, המתכנת יכול בקלות רבה לאבד את השליטה על יחסי התלות בין הבלוקים השונים. באמצעות דיאגרמת המחלקות של UML, שהיא הדיאגרמה המבנית החשובה ביותר, הוא יכול להציג את יחסי התלות בין מחלקות, אובייקטים, פעולות שירות וממשקים, או לתכנן וליצור באופן ספציפי יחסי תלות אלה. לכן, בסך הכל השליטה ב-OOP הופכת לקלה יותר. הצגת דיאגרמת המחלקות  של UML היא הצעד ההגיוני הבא לאחר הצגת OOP בכלי של IEC 61131-3. דיאגרמת המחלקות משולבת בצורה חלקה ב-CODESYS ככלי עזר מבני.

אך זהו בהחלט לא סוף פסוק עבור UML! מתוך 14 דיאגרמות מוגדרות שונות, ההערכה היא כי בהקשר של פרויקט מחקר, גם דיאגרמת הפעילות ודיאגרמת המצב יביאו תועלת לתחום האוטומציה. שתי הדיאגרמות הוטמעו באופן דומה ככלי עריכה חדשים בממשק CODESYS IEC 61131-3. כעת המשתמשים יכולים לתאר את היישום ואף ליצור קוד יישום מקביל לתקן IEC. טכנאי תהליכים או יישומים ששולטים ברצף התהליכים של המפעל או המכונות (המכונים "טכנולוגים") מכירים דיאגרמות אלה. עם זאת, אין להסיק מכך שהם שולטים בהטמעתן בתוכנה. במערכת התיכנות של IEC 61131-3, דיאגרמות אלה הפכו לאמצעי התקשורת או ל"שפה האחידה" שבאמצעותה ניתן "להתיר את בליל השפות של מגדל בבל הגורם לקצרים בתקשורת בין עולם ייצור המכונות לעולם התוכנה", כפי שתיאר זאת דר' הוטרר מ-Trumpf Maschinen מאוסטריה, ב-"Benchmark Forum Intelligent Engineering" (מינכן, מרץ 2012). הטכנולוגים משתמשים בדיאגרמות אלה כדי לתאר תהליכים, פונקציות וקריאות לפונקציות אלה עבור מתכנתי יישומים. השילוב ב-CODESYS מאפשר לשני הצדדים לחסוך בהוצאות ההעברה של דיאגרמות אלה מכלים אחרים, ובאופן טבעי אף להקטין את שיעור השגיאות.

איור 5: דיאגרמת פעילות של UML משתלבת בצורה חלקה במערכת התיכנות IEC 61131-3

גידול בפרודוקטיביות באמצעות כלים נוספים

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

במיוחד בפרויקטים מורכבים, חלפו הימים שבהם מהנדס יישומים מתכנת את המכונה או הציוד כולו, לבדו. לפי כלל האצבע המקובל כיום, צוותי היישומים מסכים לאחסן חלקי יישומים הניתנים לשימוש חוזר בספריות, שלאחר מכן ניתן להשתמש בהם באופן בלתי תלוי ביישום. בין אם חלקים אלה מיועדים לספריות או לבלוקי תוכניות שנוצרים בתוך היישום, יש צורך בבקרת מהדורות. חברת Apache Subversion (SVN) ביססה את מעמדה בעולם ה-IT כחברה המספקת מענה לדרישה זו. כעת המתכנת יכול לאחסן את בלוגי התוכנית והספריות שלו ב-SVN באמצעות מנגנוני ייצוא/ייבוא. עם זאת, יש לשלב פונקציה זו ב-IEC 61131-3, כדי למנוע שיבושים משמעותיים ברצף התיכנות הטבעי. לכן, מערכת CODESYS מציעה כעת חיבור ל-SVN המשולב בצורה חלקה במהדורת "Professional Developer Edition". חיבור זה מכסה באופן טבעי את מאגר מרכז הנתונים וכן את ניהול הגישה לקוד ואת ניהול גירסאות קוד המקור (נקרא "ניהול תצורה"), כך שניתן ליצור מחדש גירסאות שסופקו בכל עת, לדוגמה. זוהי דרישה נפוצה מאוד, במיוחד בייצור מכונות וציוד.

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

איור 6: ניתוח קוד סטטי עבור יישומי IEC 61131-3

כלים נוספים ייכללו ב-CODESYS Professional Developer Edition – כל הכלים הללו נוצרו בעולם ה-IT: לדוגמה, פרופיל לחישובי זמן ריצה ואופטימיזציות של קוד היישום, או מנהל בדיקות שבאמצעותו ניתן לבצע בדיקות יישומים אוטומטיות, ניתנים לביצוע ישירות בממשק IEC 61131-3.

סיכום :

כיצד יתוכנתו רכיבי אוטומציה בעתיד? כאשר בוחנים שאלה זו, מתקבלת תשובה אחת:

IEC 61131-3 ימשיך לשמש כתקן ליצירת רוב היישומים, אך הכלים יתמכו בעבודת מתכנת היישומים בצורה מקיפה יותר מבעבר. עם זאת, האופן שבו תמיכה זו תתבצע במדויק יכול להשתנות מקצה לקצה, בהתאם לקבוצת מתכנתי היישומים.

מצד אחד, ישנם מתכנתי המערכת שמטמיעים בתוכנה את  מרכיבי המכונות והמשימות באמצעות הידע המקיף שלהם בתיכנות. הם נתמכים על-ידי השיטות החדשות והכלים המשולבים שהוכיחו את עצמם בתיכנות יישומי שולחן עבודה בענף ה-IT. עקב השילוב של טכנולוגיות אלה תחת קורת הגג של IEC 61131-3, קבוצת משתמשים זו יכולה לבצע את המשימות של בצורה הרבה יותר יעילה, בלי להיפרד מהממשק המוכר. מתכנתי מערכות רבים אכן מצפים להרחבות כגון אלה.

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

לסיום, ענף ייצור המכונות והציוד כולו ייהנה מהפיתוחים הנוספים שהוצגו לעיל. על-ידי התמקדות בתחום הספציפי שלה, כל קבוצת משתמשים תבצע את המשימות המוטלות עליה במהירות רבה יותר ובשיעורי שגיאות נמוכים יותר. החידושים הללו כבר הוצגו במערכת התיכנות המובילה בשוק, CODESYS, התואמת לתקן IEC 61131-3 – כך שעתיד התיכנות כבר כאן!