English
cmc_main_correct
בקרה והינע
מכאניקה
אוטומציה
Mobile/OutDoor
כללי

מאמרים

בקרים מתוכנתים - תכנות במימד אחר

בקרים מתוכנתים קיימים כבר למעלה מ -40 שנה. במהלך זמן זה הרבה דברים השתנו במיוחד כאשר אנו באים לבחון את השינויים בדרישות התוכנה. ניהול I\O , בקרת תנועה , התממשקות לרשתות חיצוניות ואיסוף נתונים כל אלה הם רק חלק קטן מהדרישות הקיימות כיום. רצפת הייצור אינה עוד סביבה מבודדת, תהליכים רבים עובדים בה במקביל, טכנולוגיות שונות משולבות בה , לכן נשאלת השאלה האם תכנות בשיטה מעגלית שבה משתמשים רבים מהיצרנים עונה על הדרישות, או תכנות מוכוון תהליכים מרובה משימות (MultiTasking) יתאים יותר?
תכנות מעגלי גם כיום נחשב "קדמת הטכנולוגיה". השיטה של יצירת מספר שכבות באופן מלאכותי למעשה גורמת לעיוות המציאות ולא משקפת את התהליך כמו שהוא בתוכנה. ליבת הטכנולוגיה של חברת Jetter AG הינה בקרה מוכוונת תהליכים ומרובת משימות המשקפת בקוד התוכנה את המציאות כמו שהיא. טכנולוגיה זאת נקראת STX.


חברת Jetter AG הינה חברת בקרה גרמנית. מזה 30 שנה שחברת Jetter מפתחת טכנולוגיות לשוק האוטומציה. החברה מתמחה בפתרונות בקרה לתחום ההנעה ותחום בקרת התהליכים. טכנולוגיית החברה מאופיינת ב "מערכת אחת ושפה אחת לכל הצרכים".
כל תהליך מורכב או פשוט בנוי ממשימה (Task) אחת או יותר. ניהול המשימות ויצירת תלות בניהן הינם מרכיבים חיוניים בתכנות מוכוון תהליכים. ללא אפשרות שליטה על רצף המשימות והאפשרות לתזמן אותן נאבד את השליטה על התהליך כולו!
Jetter STX מציעה כתיבת קוד בשפה עילית כך שכל מי שלמד אי פעם תכנות יכול לפתח ב STX בצורה קלה ומהירה. מערכת ההפעלה של הבקר תוכננה מראש לבקרה מכוונת תהליכים. STX מאפשרת לנהל עד 100 משימות (Tasks) בצורה אוטונומית, אך יחד עם זאת ליצור תלות בניהן וכמובן ליצור תלות בין המשימות לאירועים שונים שקורים במערכת. לכל משימה ניתן להגדיר עדיפות כך שהבקר יכול לפנות זמן מעבד למשימות קריטיות. ניהול I\O וזיכרון מתבצע ע"י מערכת ההפעלה ושקוף למשתמש .


על מנת להשתמש בבקרה מרובת משימות חברת Jetter יצרה למשתמש אוסף פקודות חדשות ונוחות לשימוש – פקודות ניהול המשימות. Task_Break,Task_Restart,Task_Continue,Task_Exit באמצעות פקודות אלו יכול המשתמש ליצור תלות בין המשימות. נשתמש לדוגמא במערכת לאספקת מים חמים. בכל רגע נתון, במערכת זו, טמפרטורת המים אינה יכולה להיות מתחת ל 50 מעלות ולא מעל 53 מעלות. תהליך חימום המים מתבצע ע"י הכנסת מספר משאבות חום לפעולה לפי אלגוריתם שנקבע מראש. לפיכך נגדיר שתי משימות. משימה למדידת חום המים ומשימה להפעלת משאבות החום. ברגע שהמשימה של מדידת חום המים מזהה כי הטמפרטורה נמוכה מ 50 מעלות היא נותנת פקודת Task_Restart למשימה שתפקידה להכניס את משאבת החום לפעולה ופקודת Task_Break כאשר היא מזהה כי טמפרטורת המים מעל 53.


עד כה דנו בתכנות מרובה משימות למרות זאת לא תמיד נזדקק לכך. לפעמים תכנות פרוצדוראלי הינו הדרך האופטימלית לתאר מערכות או לחלופין תתי מערכות פשוטות. גם בנושא זה יצרה עבורנו חברת Jetter פקודה ייחודית ל STX , פקודת ה When. משמעות הפקודה היא: אם אירוע מסוים לא קרה, עצור ואל תתקדם. פקודת ה When משפיעה רק על המשימה (Task) שבה היא נמצאת. ניתן להגדיר פקודת When בכל משימה (Task) ללא הגבלה. ע"י שימוש בפקודה זו תיאור רצף התהליך בקוד נשמר והבקרה היא עדיין בקרה מכוונת תהליך. בנוסף קיימות פקודות המאפשרות תזמון של פעולות , פקודת ה , Dealy, לדוגמא, מאפשרת לנו לבצע השהייה לפרק זמן מסוים ובהמצאות הגדרת Timer ניתנת לנו האפשרות להתנות המשך פעולה בזמן.
Jetter STX מסנכרנת בצורה מושלמת בין המשימות (Tasks) שנגדיר לבין מצב ה I\O. מנקודת מבטו של המשתמש כל Input הוא עוד משתנה בתוכנה , רק שמשתנה זה מתעדכן ע"י מערכת ההפעלה בצורה אוטומטית ובזמן אמת. תכונה זאת הינה ייחודית בעולם הבקרה ומאפשרת לנו לשלב ולהגיב לאירועים שונים שקורים במערכת. אין עוד צורך בתחילת כל פעולה או מחזור להתעדכן במצב ה I\O ובסוף כל מחזור לעדכן אותם. העדכון קורה תוך כדי המחזור.
יתרונות טכנולוגים משמעותיים לשיטה זו, אך מה לגבי הפן הכלכלי? עתה נבחן האם הטכנולוגיה נפגשת גם עם הצד העסקי.
אחת ההוצאות הגדולות ביותר בכל הנושא של אוטומציה היא שעות האדם. עלות רכיבים וחומרים ניתן להעריך בצורה מדויקת, אבל עלות שעות הפיתוח היא נושא בעייתי, "מרווח הטעות" הוא קטן מאד. הערכה נכונה של שעות הפיתוח היא ההבדל בין הצלחה בקבלת פרויקט לבין כישלון או לחלופין בין פרויקט רווחי לבין פרויקט שבו נביא "כסף מהבית". מציאת נקודת איזון זו היא "הגביע הקדוש" בעולם האוטומציה ובעולם הפיתוח בכלל. טכנולוגיות מתקדמות עשויות לחסוך לנו אלפי שעות אדם. השימוש בבקרה מוכוונת תהליכים Jetter STX חוסכת 30% מזמני הפיתוח. זמני כתיבת הקוד מתקצרים, איתור התקלות נעשה מהיר , האינטגרציה הרבה יותר ''חלקה'' ונושא התחזוקה מתייעל באופן משמעותי.
יתרון בולט נוסף, הוא אמינות המערכת. באמצעות בקרה מוכוונת תהליכים אנו למעשה "רוכשים" בעלות על הקוד שפיתחנו. אין עוד הגבלות טכנולוגיות שמאלצות אותנו לעוות את הקוד ותכנון המערכת.
עוד יתרון בולט, הוא גמישות המערכת. ע"י הגדרת משימות עצמאיות ויצירת תלות בניהם ניתן לשנות סדר ברצף התהליך ושינויו בהתאם לדרישות הלקוח. כל זה מבלי לבצע שינויים מרחיקי לכת בקוד.
היתרונות שמנינו עד כה הם רק חלק מהיתרונות של תכנות מוכוון תהליכים ומרובה משימות. יתרונות אלה מקנים לנו את היכולת להגדיל את "מרווח הטעות" בבואנו לתמחר פרויקט ומקרבים אותנו עוד קצת למציאת נקודת האיזון.


חברת Jetter AG מביאה בשורה נוספת וייחודית בתחום הבקרה והיא האפשרות לכתיבת קוד בשיטת Object Orientate Programming)OOP) – תכנות מונחה עצמים. חשוב להדגיש מההתחלה כי כתיבה בשטיה זו איננה מחויבת אלה היא אופציה שקיימת למשתמש. עקרונות השיטה הם פיתוח של "קופסאות שחורות" אשר אינן תלויות בגורמים חיצוניים והאפשרות לבצע בהם שימוש חוזר בקלות ובמספר רב של אפליקציות שונות. יתרונות שיטה זאת באים לידי ביטוי בתוכנות בעלות נפח גדול של קוד , החלוקה ואפיון האובייקטים לפי קריטריונים משותפים עוזרים לנו לפתח , לשנות , לאתר תקלות , להשתמש ואפילו לסדר בצורה פיזית את הקוד לפי המשמעות הלוגית ולא לפי סדר כתיבת הדברים. כתיבה בתכנות מונחה עצמיים מאפשרת לנו לשייך תכונות משותפות לאובייקטים שונים. לדוגמא ציר: לכל ציר יש תכונה משותפת של התקדמות אבל סוג הציר עשוי להשתנות, ציר שמונע ע"י בוכנה שונה מציר שמונע ע"י מנוע. באמצעות פיתוח בתכנות מונחה עצמיים יש באפשרותנו להניע את הציר ללא כל הבדל בין סוגיו השונים.


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

חזרה >>
צור קשר
שם:
דוא"ל:
טלפון: