חדשות היום

השגת יכולות זמן אמת בבנית IoT Gateway תוך הפחתת עלויות בחומרה ובפיתוח

עם הצמיחה של טכנולוגיית ענן והאינטרנט של הדברים (IoT) קורית היום בשוק המכונות התעשייתיות מהפיכה הקרויה גם Industry 4.0 – The fourth industrial revolution.

כפי שמראה איור מספר 1 – המהפיכה (או השלב האבולוציוני הרביעי) קורית על ידי חיבור מכונות ייצור מפעליות לענן. חברות יכולות להשיג את יכולות השליטה והניתוח המרכזיות והפיכת המכונות ליעילות יותר ובעלות תחזוקה מונעת טובה יותר. כדי לאפשר את ההתפתחות הזו, יצרני המכונות רוצים לבצע את המעבר לחיבור לרשת ורוצים להיות מסוגלים להשתמש בכלים ופתרונות מוכרים שיעזרו להם לקצר את זמן היציאה לשוק. למשל, הם רוצים להמשיך להשתמש Microsoft Windows כפלטפורמה סטנדרטית עבור פונקציות שליטה וממשקים-של אדם מכונה (HMl), ובמקביל, לספק תמיכה פונקציונליות מלאה בתהליכים בזמן אמת.
יחידת המחשוב שמצידה האחד מחוברת לרשת, ומצידה השני מבצעת את פעולת המכונה התעשיתית – קרויה IoT Gateway. עבור תחנה כזו, אחת הדרכים להשגת דו-קיום הנדרש של פונקציות שלא בזמן אמת עם פונקציות זמן אמת, היא על ידי שינוי של Windows או הוספת תקורה של מרכיב Hypervisor נוסף. מאמר זה בוחן גישה שונה.  במאמר נראה כיצד מערכת ההפעלה INtime For Windows (תוצרת החברה האמריקאית (TenAsys) ושימוש אפשרי ב-eVM (שבנוי מעל INtime) יכולים לחלק את הישום של IoT Gateway בין מרכיבי זמן אמת שדרושים לבקרת המכונה בזמן אמת לבין מרכיבי Windows שאינם דורשים טיפול בזמן אמת. חלוקה זו נעשית מבלי שהחלקים מתחרים על משאבים או משפיעים האחד על השני. המאמר מסביר גם את היתרונות הטמונים בהפרדה כזו, לממשקי אדם מכונה, וגם את יצירת האפשרות להתפתחות של הפתרונות בצמוד להתפתחות חומרת המעבדים והתוכנה הנלוית למערכת – מערכת הפעלה Windows ותוכנות נוספות.

חלוקה מפורשת של משאבי החומרה
כשמזכירים הרצה של כמה מערכות הפעלה על אותו המעבד עולה המושג VMM – Virtual Machine Manager. זוהי שכבה מעל למעבד שמאפשרת לכמה מערכות הפעלה לרוץ. שימוש כזה מקובל ב-Data Centers, אולם עבור IoT Gateway – שימוש ב-VMM יכול להגביל את השירותים הניתנים על ידי מערכת ההפעלה ו\או לפגוע בצורה קשה בתכונות זמן אמת. אם במקום VMM נשתמש בוירטואליזיה שנשענת על חלוקת משאבי חומרה בצורה מפורשת – נוכל לספק ל-IoT Gateway פתרון טוב יותר. למשל – כמו שמודגם באיור 2 – נחלק את משאבי החומרה: ליבות, פסיקות, זכרון – בין מערכת הפעלה Windows לבין מערכת הפעלה לזמן אמת (INtime). שלא כמו פתרונות עם Virtual Machine חלוקת משאבים כזו מונעת השפעות והעמסות הדדיות, תוך שמירה על תקשורת מהירה ב-over head נמוך מאד בין החלקים המופרדים. כך נוצרת מערכת אסימטרית שבה פעולות זמן אמת מבוצעות על ידי INtime בשתי ליבות בצורה מפורשת הקרויה Asymmetrical Multi Processing (בחרנו לשם דוגמא שתי ליבות להרצת INtime), ויתר הפעולות: תקשורת לאינטרנט, ממשק אדם\מכונה וכו’ מבוצעות על ידי Windows בשתי ליבות אחרות בצורה הקרויה Symmetrical Multi Processing. חלוקת משאבים כזו מבוצעת על ידי INtime כבר משנת 1997 וניתן לומר שזוהי מערכת התוכנה עם הפרדת המשאבים לצורך טיפול בזמן אמת, בעלת הנסיון האמיתי המוכח הרב ביותר: מאות מערכות מבוססות INtime צברו כבר מיליוני שעות ריצה. המערכת פועלת בהצלחה בין השאר גם על אותם מעבדים שאינטל הגדירה כאופטימליים לשימוש ב-IoT Gateway.
INtime For Windows כוללת Kernel לזמן אמת בעל 256 רמות עדיפות אפשריות לכל thread. המערכת הינה Preemptive – משימות מסוגלות להפסיק את ריצתן לפי עדיפות כשנכנסת משימה בעלת עדיפות גבוהה יותר. רמות העדיפויות מתיחסות גם ל-threads שמופעלים על ידי פסיקות. הפסיקות גורמות ל-Interrupt handler שמבצע פעולות דחופות וקצרות, ובדרך כלל, במקום לחזור מיידית ל-context שהופסק על ידי הפסיקה – הוא מפעיל thread שמשתלב – בתלות בעדיפות שלו ב-threads האחרים שרצים. יכולת הטיפול הזו מאפשרת התאמת העדיפויות לקבלת דטרמיניסטיות מצוינת. בין ה-threads וה-processes מתאפשרת התקשרות באמצעות מנגנונים מגוונים שניתן לבחור מהם לפי התנאים ביישום. ניתן להגדיר אוביקטים כמו semaphore או mailbox או queue או shared memory ב-INtime ולתת ל-Windows את ה-pointer לגישה אליו. זה מאפשר סינכרון והעברת נתונים. ממשק נוח אחר בין INtime ל-Windows הוא הגדרת Virtual LAN ביניהם: שתי הסביבות רואות האחת את רעותה כאילו נמצאות על מחשב אחר בחיבור רשת.
את הפרדת המשאבים בין INtime ל-Windows מבצעים על ידי כלי קונפיגורציה שרץ ב-Windows. אחרי שלב קונפיגורציה כזה – נקבעים הליבות, הזכרון וניתוב הפסיקות – גם עבור INtime וגם עבור Windows.
כפי שמודגם באיור מספר 3, התהליכם שרצים מעל INtime שמטבע הדברים מתפעלים משימות בזמן אמת, אינם כפופים למנגנוני ניהול הזכרון, תזמון תהליכים ואחרים – של Windows. זה מאפשר ל-INtime לספק זמני תגובה קצרים ביותר, בסטיות Jitter – של פחות ממיקרו שניה אחת.
עבור ה-IoT Gateway – הממשק ל-Internet ותוכנות ההגנה שרצות מעליו הם שני תהליכים נוספים שעל המערכת לתפעל, פרט לפונקציות הבקרה התעשייתית וממשק אדם מכונה.

סביבת פיתוח מוכרת
עם היכולת לשלב עומסי עיבוד בזמן אמת וכאלה שאינם בזמן אמת על IoT Gateway יחיד, אך טבעי הוא ש-INtime תאפשר למפתחים לערוך, לקמפל, ולנפות משגיאות יישומי RTOS באמצעות תוכנת Visual Studio בדיוק כפי שהם עושים עם יישומי Windows סטנדרטיים. למתכנת מוצגת אפשרות לבחור ביצירת INime Project שהתנהגותו זהה בדיוק להתנהגות פרויקט C++ או C של Windows.
אין צורך לרכוש או ללמוד כלי פיתוח נוספים, ומבחינת תכולת הפרויקט – רק החלקים שדורשים התנהגות בזמן אמת מקודדים ב-INtime כל היתר – ב-Windows.
שימוש אפשרי בחלקי תוכנת Embedded קיימים בנוסף לאפשרות לפתח מעל INtime ומעל Windows קוד שנותן מענה לדרישות היישום גם בחלק הזמן אמת שלו וגם בחלק שאינו זמן אמת – מרחיבה TenAsys את האפשרות להשתמש בחלק מהמערכת בקוד Embedded שפותח והורץ בהצלחה – וזאת כדי לחסוך בזמן פיתוח או לחסוך מסלול של אישרורי תוכנה עבור חלקים שאושררו כבר בעבר. ניתן להוסיף מרכיב הקרוי eVM – שמעליו ניתן “ליבא” image של דיסק שכולל מערכת הפעלה Embedded מסוימת וגם את היישום שמעליה.
eVM בנוי כיישום וירטואליזציה מעל INtime שמשתמש ב-Intel Virtualization Technology extensions להשגת תוצאות של גישה ב-very low latency למרכיבי ה-I/O שרוצים לשמר מהתכנון המקורי. הקוד המקורי “עובר” עם מערכת ההפעלה שמתחתיו לרוץ מעל ה-eVM ובאמצעות מנגנוני ה-eVM משתמרים הביצועים של המערכת המקורית. במקביל ניתן לבצע “החלפה” (וירטואליזציה שאינה משמרת את תכונות זמן אמת) לרכיבי I/O שאין צורך בשימור הדטרמיניסטיות שלהם.  בין מערכות ההפעלה שנבדקו בפעולה מעל eVM מצויות VX-Works Windows CE QNX ו-Linux.
יש לציין שפרט לליבה שמריצה את ה-eVM ניתן להוסיף ליבות נוספות שמריצות מערכת הפעלה INtime. כל הליבות עשויות להתקשר האחת לרעותה באמצעות Shared Memory או Virtual LAN.

איחוד משימות מעל ה-Gateway
השימוש בליבות השונות ב-Gateway להרצת הרכב התוכנה האופטימלית, תורם להורדת העלויות ולחסכון בהספק. בשימוש במעבדי Atom או Core Processors של Intel שאליהם מטעינים את INtime (ולעיתים גם את eVM ) – יצרני המכונות התעשיתיות שרוצים להצטרף ל”מהפכה 4.0″ מקבלים פלטפורמה שיכולה להריץ תוכנות קימות מעל Windows או מעל אחת ממערכות ההפעלה שבשימוש eVM, ולהשלים את התכנון על ידי כתיבת קוד לזמן אמת מעל INtime בסביבת הפיתוח המוכחת של Visual Studio.  למשל Gateway שבנוי מהמרכיבים שצוינו מעל מעבד אחד – יכול לתפקד כמערכת (CNC (Computer Numerical Control מלאה בחיבור לרשת.
ניתן להשתמש במרכיבי ה-HD Graphics שמופעלים ב-Windows מעל מעבדי אינטל. גרפיקה כזו במחשב התעשיתי יכולה להוסיף רבות לפונקציונליות של המוצר – תחנות רצפת הייצור במפעל יכולות להשתמש בגרפיקה, תמונות, קטעי וידאו ולפעמים לספק ייצוג חי של מצב המפעל. שימוש בפיתוחים העדכניים של Intel HD Graphics נותנת למתכנן אמצעים רבים בגרפיקה של 2D או 3D.  כאשר ה-gateway מכיל את IoT Windows 10 – המתכנן מקבל גם אתחול מאובטח, אימות יישום, ואכיפה של מדיניות האבטחה. ניתן ליצור גם להשתמש ביכולות Read Only להגנה על קבצים.

בנה את Gateway הזמן-האמת שלך
כשהמחשנו בפרקים הקודמים מימוש של IoT Gateway, הזכרנו אפשרות להשתמש בפונקציות זמן אמת של INtime מול המכונה, וליתר הפעולות: ממשק ל-Internet, ממשק אדם\מכונה – לבצע ב-Windows.  ברצוננו להרחיב מעט את האפשרויות – ולהפריד את הממשק ל-Internet שיהא מעל Linux. באיור מספר 4 מודגם תכנון של Gateway שמנצל במלואה, במחשב בעל ארבע ליבות, את ארכיטקטורת שילוב מערכות ההפעלה האופטימליות למשימתן – תוך הפרדת משאבים.
את משימות:
Motor simulation, Motor Program Development, PLC program Development ו-Human Interface נבצע ב-Windows שמוקצות לו שתי ליבות. את המשימות שפועלות לכיוון המנועים מבצעים ב-INtime שרץ מעל ליבה אחת. את כל הממשקים ל-Internet כולל תוכנות ה-Firewall וה-security מבצעים מעל Linux שבעצמו מופעל מעל ה-eVM בליבה הרביעית.  דוגמה זו ממחישה אופן בניה של IoT Gateway שמבוסס על מעבד אינטל ובנוי מתוכנה שרצה מעל מערכות הפעלה שונות בהפרדה מפורשת של משאבי חומרה. הדוגמה ממחישה את האופן שיצרני מכונות תעשיתיות מסוגלים להפחית עלויות חומרה, ועלויות פיתוח ולהביא את לקוחותיהם להיות חלק ממהפיכת Industry 4.0:
חיבור המערכות התעשיתיות שלהם לאינטרנט.

Kim Hartman – V.P Sales & Marketing, TenAsys Corporation

Kim Hartman, TenAsys Corporation

תגובות סגורות