מדריך מעשי למתי FANUC Karel עולה על TP ולהפך. מכסה קבצי I/O, טיפול במחרוזות, פעולות מתמטיות ודוגמאות מהשטח של תוכניות Karel+TP משולבות.
לרובוטי FANUC יש שני סביבות תכנות נייטיביות: TP (Teach Pendant) ו-Karel. רוב האינטגרטורים משתמשים רק ב-TP — אך Karel פותח יכולות שTP פשוט לא יכולה להתאים. לדעת מתי לפנות לכל כלי זה מה שמבדיל בין מתכנת ביניים למומחה.
מה Karel יכולה לעשות שTP לא יכולה
יכולות ייחודיות ל-Karel:
- קבצי I/O — קרא וכתוב CSV, טקסט, או קבצי נתונים מותאמים בכונן הבזק של הבקר
- טיפול במחרוזות — ניתוח, שרשור, חיתוך, המרת מספרים למחרוזת
- מתמטיקה מורכבת — טריגונומטריה, חישובים בנקודה צפה מעבר לרגיסטרי TP
- בקרת תוכנית — הפעל תוכניות TP, המתן להשלמתן, קרא את סטטוסן
- מבני נתונים מותאמים — סוגי RECORD, מערכים ומשתנים מוקלדים
- תקשורת PIPE — תקשר עם התקנים חיצוניים דרך סידורי או TCP
מתי TP עדיפה
לתנועה, I/O, וכל דבר שאופרטור צריך לקרוא או לשנות על ה-Teach Pendant, TP היא תמיד הבחירה הנכונה. תוכניות TP גלויות בעורך ה-Pendant, מכילות לימוד עמדה מובנה, ומובנות על ידי כל טכנאי מוסמך FANUC. תוכניות Karel הן בינאריות מקומפלות — אופרטורים לא יכולים לצפות בהן או לערוך אותן ללא מחשב ומקמפל Karel.
דוגמה אמיתית: טעינת מתכון CSV
תא פלטיזציה משתמש ב-50 מתכונים שונים. כל מתכון מגדיר תבניות שכבות, מידות מוצר וסטים גישה. אחסון זה ברגיסטרי TP אינו מעשי. הפתרון: תוכנית Karel אחת קוראת את ה-CSV בהפעלה וכותבת ערכים לרגיסטרים מספריים, שתוכנית TP קוראת אותם.
PROGRAM recipe_load
%NOLOCKGROUP
%NOPAUSE = COMMAND + TPENBL
VAR
f_id : FILE
fname : STRING[32]
val : REAL
i : INTEGER
status : INTEGER
BEGIN
fname = 'FR:RECIPE01.CSV'
OPEN FILE f_id ('RO', fname)
FOR i = 1 TO 10 DO
READ f_id (val)
SET_REG(i, val, status)
ENDFOR
CLOSE FILE f_id
END recipe_loadתוכניות Karel חייבות להיות מקומפלות עם מקמפל Karel (חלק מ-ROBOGUIDE או מתרגם Karel עצמאי) ולהעלות לבקר כקובצי .PC לפני שניתן לקרוא להן מ-TP.


