כשהלחמה ידנית הופכת לחלק משמעותי מספיק בפרויקט, צריך להתחיל לשים לב ליעילות ולמהירות שלה. כמה זמן באמת נדרש לכל סוג רכיב? האם סדר העבודה משנה? האם יש צווארי בקבוק? ביצעתי מספר מדידות בסיסיות כדי לקבל נתוני אמת שימושיים, והנה התוצאות.
כל פרויקט, ברגע שהוא חוצה סף מסוים של מספר מעגלים ומורכבות שלהם, עדיף לשלוח להרכבה במפעל במקום לעשות זאת ידנית. אלא שהסף הזה מאוד גמיש, ותלוי בהמון גורמים. כך יצא שמצאתי את עצמי מול משימה להלחים שלושים-ומשהו לוחות דו-צדדיים עם כמעט שבעים רכיבים על כל לוח – ועם צפי לעשות זאת שוב בהמשך, עם מספר לוחות גדול עוד יותר. כמובן שהלקוח משלם על העבודה הזו, אך האם התמחור שלי, שמבוסס בסופו של דבר על הערכה גסה, בכלל ריאלי? האם אפשר לשפר את תהליך העבודה? כדי להפסיק לנחש, השגתי סטופר נוח והתחלתי למדוד.
מה קודם
כשצריך להלחים X רכיבים על Y לוחות, אפשר לגשת למלאכה בשני אופנים עיקריים: הראשון הוא להשלים לוח אחד כל פעם, והשני הוא לעבוד על רכיב אחד כל פעם (להלחים לכל הלוחות את נגד א', ואז להלחים לכל הלוחות את דיודה ב', וכן הלאה). ניתן כמובן גם לשלב בין הגישות – לעבוד על קבוצות של לוחות, או לשים בבת אחת מספר רכיבים זהים/דומים על כל לוח, בהתאם לתכנון שלו. איך שלא נעשה זאת, יש יתרונות וחסרונות; אבל אם אני רוצה למדוד הבדלים במשך ההלחמה הידנית של רכיבים מסוגים שונים, אין ברירה אלא לעשות זאת בצורה קרובה יותר לשיטה השנייה. זו גם אחת הסיבות שלא ניסיתי reflow שמחייב את השיטה הראשונה.
בשלב זה, לפחות, לא נכנסתי לרזולוציה גבוהה במדידה ולא הפרדתי בין השלבים השונים: הוצאת הרכיבים המתאימים מהקופסה, ספירתם, ההלחמה בפועל, סידור הלוחות לפני ואחרי העבודה – הכול נכלל במדידת "ברוטו" אחת, שאותה חילקתי במספר הרכיבים באותו סשן כדי למצוא את הזמן הממוצע פר רכיב.
חשוב לציין גם שכמעט כל הרכיבים מלבד כמה קונקטורים היו במארזי SMD, ושמטעמי בקרת איכות, ואיכות הראייה שלי, ביצעתי את רוב ההלחמות מתחת למיקרוסקופ.
מספר ממצאים גולמיים
לא תופתעו במיוחד לשמוע שהרכיב הכי "מסובך" במערכת, המיקרו-בקר ATmega4809 במארז TQFP-48, דרש הכי הרבה זמן: הקיבוע שלו על הלוח (הלחמת שני פינים בפינות נגדיות כדי לייצב אותו להמשך ההלחמה) לקח כ-47 שניות ברוטו ליחידה, ואילו שאר ההלחמה (בשיטת Drag soldering) נמשך 137 שניות, סה"כ קצת יותר משלוש דקות.
רכיב בעל כיוון ושתי נקודות הלחמה – לד במארז 0603 – לקח בממוצע 41 שניות ברוטו. רכיב פשוט עוד יותר – נגד 0603 – דרש 34 שניות. כשהלחמתי שני נגדים כל פעם (בגדלים זהים, במיקומים קרובים ובאותה אוריינטציה על הלוח, כך שלא נדרשו סיבוב והזזה שלו תוך כדי עבודה), וגם כשהלחמתי ארבעה כל פעם, כל אחד מהם לקח כ-28 שניות.
כשהרכיבים היו זהים אבל דרשו סיבוב של הלוח תוך כדי עבודה (שלושת הקבלים שסביב המיקרו-בקר, בתמונה שבראש הפוסט), כל אחד לקח 36 שניות. לעומת זאת, שלושה קבלים אחרים, סמוכים זה לזה ובאוריינטציה זהה, לקחו רק 24 שניות כל אחד. טרנזיסטור בעל 3 רגליים הולחם, בממוצע, ב-60 שניות, ואילו זוג ג'וקים במארזי SOIC-8 דרשו 50 שניות ברוטו כל אחד.
מסקנות ראשוניות
באופטימיזציה של מערכות באופן כללי, וגם כאן, הגישה הנכונה היא לא "בוא נתחיל לקצץ איפה שאפשר" אלא "בוא נבדוק קודם איזו מאפשרויות הקיצוץ תיתן מקסימום תועלת". ראינו שההפרש בין נגד ללד הוא 7 שניות. נניח שאמצא פטנט מדהים למחוק את כל ההפרש הזה: יש לי 5 לדים על כל לוח, אז הרווחתי 35 שניות במצטבר. אבל אם אוכל לגלח ולוּ רק 10% מה-34 השניות ש"משותפות" לשני סוגי הרכיבים, ובהתחשב בזה שיש שבעה ערכי נגדים שונים על הלוח, הרווחתי מינימום 41 שניות. ואם אותו חיסכון יחול גם על שאר הרכיבים, הרווח יימדד בדקות שלמות לכל לוח – שזה כבר משמעותי מבחינת שעות עבודה וכסף בפרויקט השלם.
אז על מה "הולכות" 34 השניות האלה לכל רכיב? כאמור לא מדדתי בנפרד כל פעולה ופעולה, אך בגדול, רוב הזמן מוקדש לתהליך הידני של "Pick and Place": להוציא את הרכיבים מהקופסה/סליל, להניח את הלוח במקום וזווית נוחים לעבודה, לתפוס את הרכיב עם פינצטה, ואז להפוך ולסובב לפי הצורך, לשים על הלוח, ולהחזיק אותו באורינטצייה הנכונה לפחות עד שההלחמה הראשונה מסתיימת. מכאן ברור מדוע הלחמה של מספר רכיבים סמוכים ו/או באוריינטציה דומה חוסכת זמן: צריך למקם את הלוח רק פעם אחת, במקום לכל רכיב בנפרד. עבודה בשיטה כזו טובה כל עוד הרכיבים השונים לא דומים מדי, פיסית, זה לזה. למשל, אם אני מלחים לדים שקופים בצבעים שונים, ובגלל מכה קטנה על הלוח הם מתערבבים ואני לא יכול לזהות מי זה מי, המון זמן יתבזבז על השבת הסדר על כנו.
מסקנה קצת פחות אינטואיטיבית אך לא פחות חשובה היא לעבוד עם פינצטה איכותית. זה נשמע מצחיק, אבל אחרי שרכיבים יפלו או "יקפצו" לכם מספיק פעמים באמצע העבודה, ויבזבזו לכם שניות יקרות בחיפוש, הרמה והצבה-מחדש, תגלו שכלי העבודה משחקים תפקיד חשוב מאוד. אותו העיקרון תופס, כמובן, גם לשאר סביבת העבודה: גישה נוחה ללוחות ולרכיבים, מלחם נוח וכו'.
הצעדים הבאים
עכשיו, כשהמדידות חיזקו תובנות מסוימות ונתנו לי משהו מבוסס קצת יותר לעבוד איתו מאשר סתם אינטואיציות והשערות, אנצל את הלוחות הבאים לבדיקת המסקנות הראשוניות: בסיבוב ההלחמות הקרוב אנסה לקבץ כמה שיותר רכיבים לפי קירבה פיזית ואוריינטציה על הלוח, ואבדוק את ההפרש בזמן ההלחמה הממוצע של לוח שלם. אם הוא יהיה משמעותי, יהיו לכך השלכות גם לגבי פרויקטים עתידיים: אם יסתמן שאצטרך להלחים לוחות רבים בהלחמה ידנית, אתאים את התכנון שלהם במידת האפשר ל"קיבוץ" היעיל של רכיבים.