כיצד לבנות פרויקט אוטומציה לדוגמה ב-CODESYS
באדיבות ‎DigiKey's North American Editors
2025-12-03
אימוץ פלטפורמת אוטומציה חדשה יכול ליצור עקומות למידה תלולות ולעורר חששות לגבי תלות בספק. CODESYS עונה על אתגרים אלה באמצעות סביבת פיתוח בלתי-תלויה בחומרה המבוססת על IEC 61131-3. הוא מציע תהליך עבודה מאוחד לתכנות, מיפוי I/O, ויזואליזציה ופריסה על פני מספר פלטפורמות חומרה.
מאמר זה מדגים כיצד לבנות פרויקט אוטומציה שלם ב-CODESYS, החל מההתקנה הראשונית ועד לבדיקות בזמן ריצה. הקוראים יגדירו את עץ ההתקנים, ימפו ערוצי I/O, יבצעו תכנות לוגיקה בטקסט מובנה (ST), יתכננו ויזואליזציות, יתחברו לסביבת זמן-ריצה ויישמו אסטרטגיות ניפוי באגים כדי לוודא את הפעולה. לצד הנחיות מעשיות, המאמר מדגיש שיטות עבודה מומלצות עבור ארגון פרויקטים, ניהול ספריות ופריסה מאובטחת.
למרות שהמדריך משתמש בסימולטור המובנה של CODESYS עבור הנגישות, אותו תהליך עבודה חל על פלטפורמות החומרה הזמינות של DigiKey, כגון בקרי PLC מאופשרי-CODESYS, בקרי Raspberry Pi תעשייתיים(לדוגמה, EdgeBox-RPI-200 של Seeed), וממשקי אדם-מכונה (HMIs) עם זמן-ריצה משולב. בסוף, הקוראים יבססו מסגרת ברורה עבור בניית יישום אוטומציה מתפקד ב-CODESYS, עם תובנות לגבי טכניקות התומכות במידרגיות ואמינות בסביבות תעשייתיות.
כינון הפרויקט
הצעד הראשון הוא כינון פרויקט חדש במערכת הפיתוח CODESYS. מרשימת התבניות, בחרו "פרויקט רגיל" והקצו שם תיאורי כגון MotorControlDemo. כאשר תתבקשו להזין התקן, בחרו ב-CODESYS Control Win V3, המספק זמן-ריצה מבוסס Windows עבור לסימולציה ללא חומרה ייעודית. זה מאפשר בדיקת תהליך העבודה המלא לפני הפריסה לפלטפורמות כגון בקרי PLC או מודולי Raspberry Pi תעשייתיים.
הפרויקט נפתח עם עץ התקנים, המארגן בקרים, ערוצי I/O וקישורי תקשורת. עבור דוגמה זו, העץ מכיל אובייקט בקר, כניסות דיגיטליות עבור לחצני התחלה ועצירה, ויציאות דיגיטליות עבור מנוע ונורת חיווי. כדי לחבר אותות אלה ללוגיקת בקרה, יש להצהיר על משתנים בוליאניים כגון StartButton, StopButton, MotorOn ו-LampOn ברשימת המשתנים הגלובלית או בעורך התוכנית. בסימולציה, החלפת ערכים אלה מחקה את התנהגות החומרה. בחומרה, הם נקשרים ישירות לנקודות I/O פיזיות.
איור 1: הצהרות משתנים בוליאניים עבור I/O בקרת מנוע. (מקור התמונה: כותב המאמר)
מתן שמות ברורים ועקביים בשלב זה הוא שיטת עבודה מומלצת הממזערת את מאמצי ניפוי הבאגים ומפשטת את המידרגיות כאשר מתווספים פונקציות או התקנים חדשים.
לוגיקת תכנות
לאחר שמבנה הפרויקט קיים, השלב הבא הוא יישום לוגיקת בקרה בטקסט מובנה (ST), אחת משפות IEC 61131-3 הנתמכות על ידי CODESYS. ST משתמש בתחביר דמוי-Pascal המשלב יכולת קריאה עם תיאור רב-עוצמה, ותומך ביישום ברור של רוטינות סדרתיות ולוגיקה מבוססת-מצב.
פרויקט ההדגמה דורש הפעלה/עצירה פשוטה: לחיצה על כפתור ההפעלה מפעילה את המנוע והמנורה, בעוד שלחיצה על כפתור העצירה מנטרלת את שניהם. זה מבוטא ב-ST כפי שמוצג באיור 2.
איור 2: יישום טקסט מובנה של לוגיקת הפעלה/עצירה. (מקור התמונה: כותב המאמר)
דוגמה זו ממחישה את יסודות ה-ST, כולל משפטי תנאי, לוגיקה בוליאנית והקצאת משתנים. מכיוון שהמשתנים הוגדרו במהלך הגדרת הפרויקט, הם ממפים ישירות לערוצי I/O, ומגשרים בין אותות חומרה לבין הרצת התוכנית.
עבור פרויקטים גדולים יותר, ארגון הפרויקט הוא המפתח. קוד אתחול יכול לקבוע מצבי ברירת מחדל, בעוד שמשימות מחזוריות מנטרות כניסות ודוחפות יציאות. בלוקי פונקציות וספריות עוזרים למסגר לוגיקה, להפחית יתירות ולשפר את יכולת הקריאה. את אותו קוד ST שפותח בסימולציה ניתן ליישם מאוחר יותר על החומרה הזמינה אצל DigiKey, כגון בקרי PLC קומפקטיים או PACs, עם שינויים קלים בלבד. ניידות זו מחזקת את הערך של CODESYS כסביבה שאינה תלויה בחומרה. ראוי לציין, כי הפרדת האתחול, ניטור מחזורי וטיפול בשגיאות היא שיטת עבודה מומלצת המשפרת את יכולת הקריאה ומבטיחה ביצוע צפוי ככל שהפרויקטים מתרחבים.
הגדרת התקנים ומיפוי I/O
לאחר שמבנה הפרויקט והמשתנים הם במקומם, השלב הבא הוא קישור המשתנים לחומרה - או ל-I/O שבסימולציה - באמצעות מיפוי I/O. ב-CODESYS, זה מטופל בלשונית מיפוי I/O של עורך ההתקנים, שם כל ערוץ משויך למשתנה בפרויקט.
התחילו על ידי הכנסת הבקר ומודולי ה-I/O שלו בעץ ההתקנים. לדוגמה, ניתן להוסיף מודול עם שתי כניסות דיגיטליות ושתי יציאות דיגיטליות. ברגע שקיים התקן עם יכולת I/O, לשונית מיפוי I/O מופעלת, ומציגה טבלה של ערוצי I/O עם עמודות עבור שמות משתנים, כתובות וסוגי נתונים. בעוד שתיאורי התקנים מספקים בדרך כלל שמות וכתובות ברירת מחדל, ניתן לשנות אותם כך שיתאימו לחיווט המערכת או לכללי מתן שמות.
בלשונית מיפוי ה-I/O ניתן למפות משתנים לערוצים בשלוש דרכים: קישור משתנה קיים (למשל, StartButton, MotorOn), יצירת משתנה גלובלי משתמע חדש בתוך הממשק, או עריכת כתובות ישירות כדי להתאים לדרישות הפרויקט. משתנים הממופים לכניסות הם לקריאה-בלבד מעצם הגדרתם, וכל משתנה ניתן למפות לערוץ אחד בלבד.
בסביבות ייצור, מיפוי דורש גם תשומת לב למפרטי ממשק חשמלי, כולל רמות אות, דירוגי מודולים והארקה. גורמים אלה חורגים מנושאי מדריך זה, אך נותרים קריטיים עבור פריסת החומרה.
לצורך תיעוד או עריכה בכמות גדולה, ניתן לייצא או לייבא מיפויים כקובצי CSV. ייצוא נתוני מיפוי לקובץ CSV הוא שיטת עבודה מומלצת, מכיוון שהוא מספק תיעוד עבור ביקורות ומקור אמין לשיתוף פעולה בצוות.
ויזואליזציה ו-HMI
לאחר שהלוגיקה קיימת, השלב הבא הוא ליצור ממשק משתמש המבקר ומנטר את המערכת. CODESYS מציעה ערכת כלי ויזואליזציה משולבת התומכת במספר אופני פריסה - WebVisu, TargetVisu ו-CODESYS HMI - המאפשרים להריץ את הוויזואליזציה בדפדפני אינטרנט, צגים מקומיים או התקנים ייעודיים.
בעץ ההתקנים, תחת צומת היישום, הוסיפו אובייקט של מנהל ויזואליזציה, לאחר מכן הוסיפו מסך ויזואליזציה אחד או יותר כגון MainVisu. בכל מסך, גררו את רכיבי ממשק המשתמש כגון כפתורים, נורות/מחוונים, תצוגות מעקב או גרפי מגמות. אלמנטים אלה קשורים למשתני התוכנית (למשל, StartButton, LampOn) דרך דיאלוג תכונות האלמנט.
לדוגמה, כדי להציג את סטטוס המנוע, יש למקם רכיב מנורה ולהגדיר את קישור המשתנה שלו ל-LampOn. כאשר המשתנה הוא TRUE, הנורה דולקת; כאשר הוא FALSE, היא נשארת כבויה. קישור ישיר זה בין משתנים ואלמנטים מאפשר אינטראקציה אינטואיטיבית בזמן-ריצה.
אפשרויות אופן פריסה
לאחר תכנון הממשק, השלב הבא הוא להחליט כיצד הוויזואליזציה תיפרס עבור מפעילים או מערכות חיצוניות. CODESYS תומך במספר אופני פריסה, כל אחד מהם מיועד עבור דרישות ביצועים ורשת שונות:
- WebVisu: פועל כ-HTML5 בדפדפן אינטרנט, כאשר ההתקן פועל כשרת אינטרנט דרך HTTP/HTTPS. זה מאפשר גישה מרחוק ללא צג ייעודי.
- TargetVisu: פועל על צג המחובר ישירות לבקר או להתקן. יעיל עבור מערכות משובצות המשלבות בקרה ו-HMI ביחידה אחת.
- CODESYS HMI: זמן-ריצה נפרד המוקדש עבור ויזואליזציה ומסוגל להתחבר למספר בקרים.
בעת בחירת אופן הפריסה יש לקחת בחשבון את הביצועים, צורכי התצוגה וטופולוגיית הרשת. למרות ש-WebVisu הוא גמיש, ייתכן שהבקרים יצטרכו לתמוך בשרת HTTP ובעומסים נוספים. TargetVisu מקצר את שיהוי (Latency) הרשת, אך דורש תמיכה בתצוגה מקומית, בעוד שאופן HMI ניתן להרחבה עבור מערכות רבות-בקרים.
דוגמה לחומרה מהעולם-האמיתי
כייחוס חומרה, ה-HMI 7 אינץ' cMT3072XHT של Maple Systems הזמין ב-DigiKey כולל זמן-ריצה ותצוגה CODESYS משולבים, המאפשרים לו לארח את מסכי הוויזואליזציה שנוצרו בפרויקט ישירות.
שיטות עבודה מומלצות עבור תכן ויזואליזציה כוללות שימוש במסכי ספרייה וממשקי פרמטרים לבניית טמפלטים לשימוש-חוזר. על המתכנן גם להגדיר את תצוגות ההתרעה והמעקב כך שיציגו רק משתנים קריטיים, ובכך למזער את העומס על הבקר. זה מאפשר תמיכה רבת-שפות והמרות של יחידות עם רשימות טקסט ומידרוג משתנה. בנוסף, מיקומי אלמנטי נעילה עם Snaplines או Containers לשמירה על פריסות עקביות על פני גודלי מסך שונים.
כאשר הוויזואליזציה מחוברת, האפליקציה היא כעת אינטראקטיבית במלואה. המשתמש יכול להפעיל ולעצור את המנוע, לנטר מחוונים ולצפות בסטטוסים בזמן-אמת דרך ממשק ה-HMI. זה משלים את שלב הוויזואליזציה ומכין את הפרויקט עבור בדיקות זמן-ריצה.
פריסה ובדיקות זמן-ריצה
לאחר השלמת התכנות והוויזואליזציה, יש לפרוס את הפרויקט בסביבת זמן-ריצה. CODESYS תומך במספר אפשרויות, החל מסימולטור Control Win SL המובנה ועד זמני-ריצה מורשים על חומרה תעשייתית.
מהתפריט המקוון במערכת הפיתוח, בחרו את התקן היעד או הסימולטור וצרו חיבור. הורידו את הפרויקט שעבר קומפילציה לזמן-ריצה, כאשר ה-IDE מציג את סטטוס ההעברה ומדגיש כל אי-התאמה בתצורה. לאחר הטעינה, העבירו את הבקר לאופן RUN כדי להתחיל בביצוע.
זמן-הריצה המובנה של Windows מאפשר אימות מהיר ללא חומרה, בעוד שזמני-ריצה של CODESYS מבוצעים גם על פלטפורמות Linux משובצות כגון Revolution Pi (RevPi) Connect 4 של KUNBUS הזמין מ-DigiKey. מודול Raspberry Pi תעשייתי בקוד-פתוח זה מדגים כיצד ניתן להתאים את אותו הפרויקט בצורה חלקה, מסימולציה ועד לפריסה בשטח.
ניפוי באגים ושיטות עבודה מומלצות
מעבר לניטור בזמן-אמת, CODESYS מספקת סביבת ניפוי באגים משולבת לשיפור ותחזוקה של פרויקטים. נקודות-עצירה וצעד-אחר-צעד דרך הלוגיקה, כמו גם ניתוח של זרימות ביצוע, ניתן להגדיר ולבצע ידנית. כלי המעקב מרחיב את האבחון על ידי רישום היסטוריית משתנים עבור ניתוח מאוחר יותר, המשמש לעתים קרובות בסקירות לאחר-האירוע.
עבור איתור תקלות, CODESYS יכול לייצר משתני אכיפה (Force) (איור 3) העוקפים זמנית אותות ממופים.
איור 3: סינטקס של כללי מתן שמות למשתני אכיפה (Force) ב-CODESYS. (מקור התמונה: כותב המאמר)
הם שימושיים במיוחד להפעלה או סימולציה של תנאים כגון לחיצות על כפתורים. כאשר אות האכיפה הוא אקטיבי, CODESYS מחליף את הערך האוכף באות הממופה. מכיוון שאכיפה יכולה לשבש את הביצוע בזמן-אמת, יש ליישם אותה בזהירות ורק על ערוצים שכבר ממופים.
האמינות לטווח ארוך תלויה בניהול פרויקטים מובנה. מנהל הספרייה תומך בתכנון מודולרי ובקרת גרסות מרכזית, בעוד ששומרי-מקום (Placeholders) מוגדרים מבטיחים בניות עקביות על פני יעדי חומרה. שמירה על גרסות ספרייה יציבות מפחיתה סיכוני תאימות בעת פריסה או שדרוג.
לצד אמצעי הגנה מבניים אלה, שיטות עבודה מומלצות יומיומיות חשובות באותה מידה. אלה כוללים אימות פרויקטים בסימולטור לפני המעבר לחומרה ושימוש בנקודות-עצירה או כפייה זהירה בייצור כדי למנוע שיבושים במחזורי זמן-אמת. מומלץ גם לאחסן בארכיון מערכות בניות וספריות הידועות כתקינות לצורך חזרה מהירה, תוך תיעוד מיפויי משתנים ומתן קישורי ויזואליזציה לתמיכה בהעברה חלקה בתוך הצוות.
סיכום
CODESYS מאיצה את תהליך התכנון לפריסה על ידי איחוד הגדרת הפרויקט, מיפוי I/O, תכנות לוגיקה, ויזואליזציה וניפוי באגים בסביבה אחת. תהליך העבודה מתפרש על פני פלטפורמות של DigiKey, כולל בקרי PLC התומכים ב-CODESYS, בקרי Raspberry Pi תעשייתיים וממשקי אדם-מכונה (HMI), ומספקת מסגרת מעשית למעבר מהרעיון לאוטומציה מידרגית.
מיאון אחריות: דעות, אמונות ונקודות מבט המובעות על ידי מחברים שונים ו/או משתתפי פורום באתר אינטרנט זה לא בהכרח משקפות את הדעות, האמונות ונקודות המבט של חברת DigiKey או את המדיניות הרשמית של חברת DigiKey.




