Apr 15, 2023 השאר הודעה

בואו נדבר על תוכניות מאקרו CNC

 

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

תְמוּנָה

01

לגבי תוכניות מאקרו

מהי תוכנית מאקרו

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

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

מתי ייעשה שימוש בתכנות מאקרו?

1) עקומת נוסחת עיבוד מתוכנתת ידנית (חישוב פשוט, קלט מהיר)

2) נתיב חיתוך רגיל (כמודול חיתוך)

3) שליטה בין תוכניות (תזמון תוכניות)

4) ניהול כלים (בלאי הכלים)

5) מדידה אוטומטית (בדיקה בתוך המכונה)

ההבדל בין תוכנית מאקרו לתוכנית רגילה

1) בגוף תוכנית המאקרו ניתן להשתמש במשתנים, ניתן להקצות ערכים למשתנים, לבצע חישובים בין משתנים וניתן לקפוץ לתוכניות.

2) בתוכניות רגילות ניתן לציין רק קבועים ולא ניתן לבצע פעולות בין קבועים. ניתן להפעיל תוכניות רק ברצף ולא ניתן לדלג עליהן, לכן הפונקציות קבועות ולא ניתן לשנותן.

3) פונקציית המאקרו היא פונקציה מיוחדת עבור המשתמש לשיפור הביצועים של כלי מכונת CNC, והשימוש המיומן בתוכנית המאקרו בעיבוד של חלקי עבודה דומים ישיג פי שניים את התוצאה בחצי מהמאמץ.

02

משתנים ופורמטים של תוכניות מאקרו

תכונות של תוכניות מאקרו

תוכנית המאקרו יכולה להשתמש במשתנה, והמשתנה יכול לשמש לביצוע פעולות מתאימות; ניתן להקצות את ערך המשתנה בפועל למשתנה על ידי הוראת תוכנית המאקרו.

שלושה סוגים של משתנים

צורת הייצוג המשתנים של מערכת CNC היא "#" ואחריו 1 עד 4 ספרות, ויש שלושה סוגים של משתנים:

(1) משתנים מקומיים: #1~#33 הם משתנים בשימוש מקומי בתוכנית המאקרו, המשמשים להעברת משתנים בלתי תלויים.


(2) משתנה משותף: המשתמש יכול להשתמש בו באופן חופשי, והוא משותף לכל תת שגרה ולכל תוכנת מאקרו שנקראת על ידי התוכנה הראשית. #100~#149, לאחר כיבוי החשמל, כל ערכי המשתנים ינוקו, בעוד #500~#509, לאחר כיבוי החשמל, ניתן לשמור את ערכי המשתנים.


(3) משתנה מערכת: הוא מוגדר על ידי ואחריו 4 ספרות, הוא יכול לקבל מידע לקריאה בלבד או קריאה/כתיבה הכלול במעבד כלי המכונה או בזיכרון ה-NC, כולל פרמטרי החלפה הקשורים למעבד כלי המכונה, רכישת מצב כלי המכונה. פרמטרים, מידע מערכת כגון פרמטרי עיבוד.

פורמט קורא פשוט של תוכנית מאקרו

הקריאה הפשוטה של ​​תוכנית המאקרו פירושה שבתוכנית הראשית, ניתן לקרוא לתוכנית המאקרו על ידי בלוק בודד.

פורמט הזמנה:

G65 P (מספר תוכנית מאקרו) L (מספר חזרות) (מקצה משתנה).

ביניהם: G65 — פקודת קריאת תוכנית מאקרו;

P (מספר תוכנית מאקרו) - הקוד של תוכנית המאקרו שיש לקרוא;

L (מספר החזרות) - מספר הריצות החוזרות ונשנות של תוכנית המאקרו, כאשר מספר החזרות הוא 1, ניתן לוותר עליה;

(הקצאת משתנה) - הקצה ערכים למשתנים המשמשים בתוכנית המאקרו.

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

פורמט כתיבת תוכניות מאקרו

פורמט הכתיבה של תוכנית מאקרו זהה לזה של תת שגרה. הפורמט שלו הוא:

0-(0001-8999 הוא מספר תוכנית המאקרו)

פקודת N10

N-M99

בתוכן תוכנית המאקרו הנ"ל, בנוסף להוראות התכנות הנפוצות, ניתן להשתמש גם במשתנים, הוראות הפעלה אריתמטיות והוראות בקרה אחרות. ערך המשתנה מוקצה בהוראת הקריאה לתוכנית המאקרו.

03

יישום תוכנית מאקרו מערכת FANUC

(1) גרוב תוכניות מאקרו

תְמוּנָה

1) הצהרת WHILE

G00 X52 Z2;

#2=-14;

זוהי נקודת ההתחלה של הכלי בכיוון z (מכיוון שרוחב הכלי הוא 4 מ"מ, נקודת ההתחלה מוגדרת ב-Z-14)

WHILE [#2 GE -30] DO2;

זהו אילוץ בכיוון z. כאשר z שווה ל--30, כיוון z לא יזוז עוד

G00 Z〔#2〕;

המיקום הנוכחי בכיוון z

#2=#2-2;

הצעד הנעים בכיוון z, נע 2 מ"מ בכל פעם

#1=52;

היא נקודת ההתחלה של הסכין בכיוון x

WHILE [#1 GE 20] DO1;

אילוצים בכיוון X, כשהקוטר שווה ל-20, הוא לא יחתוך יותר

G01 X〔#1〕F0.2;

עומק חיתוך בכיוון x

G00 X〔#1 פלוס 1〕;

כמות נסיגה יחסית בכיוון x

#1=#1-1;

מרחק צעד בכיוון x (חתוך 1 מ"מ בכל פעם)

END1;

G00 X52;

END2;

תוכנית מלאה:

O1234;

G40 G97 G99;

T0101;

S1000 M3;

G00 X52 Z2;

#2=-14;

WHILE〔#2GE-30〕DO2; END1;

G00 Z〔#2〕;

#2=#2-2;

#1=52

WHILE〔#1GE20〕DO1;

G01X〔#1〕F0.2;

G00X〔#1 פלוס 1〕;

#1=#1-1;

G00 X52;

END2;

G00 X150 Z150;

M30;

2) הצהרת IF

G00 X52 Z-2;

#1=-14;

זוהי נקודת ההתחלה בכיוון Z של הכלי (רוחב הכלי הוא 4 מ"מ)

N2 #1=#1-2;

הוא צעד התנועה בכיוון z

#2=52;

היא נקודת ההתחלה של הכלי בכיוון x

N1#2=#2-1;

הוא מרחק הצעדים בכיוון x (עומק חיתוך 1 מ"מ בכל פעם)

G01 X〔#2〕F0.2;

מיקום נוכחי בכיוון X

G00 X〔#2 פלוס 1〕;

כמות נסיגה יחסית בכיוון X

IF [#2 GE 21] GOTO1;

אילוצים בכיוון x (כאשר הערך של x נחתך ל-20, ההליך הבא יתבצע, ולא תתבצע חזרה)

G00 X52;

X נסוג למצב 52

G00 Z〔#1〕;

מיקום נוכחי בכיוון Z

IF [#1 GE -30] GOTO2;

אילוצים בכיוון Z, כאשר z שווה ל--30, כיוון z לא יזוז

תוכנית מלאה:

O1234;

G40G97G99;

T0101;

S1000M3;

G00 X52 Z-2;

#1=-14;

N2 #1=#1-2;

#2=52;

N1#2=#2-1;

G01 X〔#2〕F0.2;

G00 X〔#2 פלוס 1〕;

IF〔#2GE21〕GOTO1;

G00X52;

G00Z〔#1〕;

IF[#1GE-30]GOTO2;

G00X200;

Z200;

M5;

M30;

(2) תכנות אליפסה

1) הפורמט הסטנדרטי של הצהרת האליפסה WHILE:

#1=a;

ת: נקודת ההתחלה של הכלי היא בכיוון החיובי מ"מ ביחס לציר Z של האליפסה

WHILE [#1 GE b] DO1;

ב: נקודת הסיום של עיבוד אליפסה היא בכיוון השלילי b mm ביחס לציר Z של האליפסה (אם מעובדת חצי אליפסה שלמה, אז a ו-b הם שני ערכים עם אותו ערך וסימנים שונים)

#2= c*SQRT[1-#1*#1/d*d];

ג: הציר החצי-מינורי של האליפסה

d: ציר חצי-מז'ורי של האליפסה (חשב את #2 לפי נוסחת האליפסה, הציר החצי-מז'ורי הוא d, הציר החצי-מינורי הוא c, #2 מייצג את הערך של X, #1 הוא הערך של Z , ו-SQRT פירושו שורש ריבועי)

G01 X〔±2*#2 בתוספת e〕Z〔#1±f〕;

ה: ההיסט (ערך קוטר) של ציר X של אליפסה ביחס למערכת הקואורדינטות של חלק העבודה

f: ההיסט של ציר Z של האליפסה ביחס למערכת הקואורדינטות של חלק העבודה

#1=#1-1; מרחק צעדים (זז 1 מ"מ בכל פעם)

END1;

הערה: כאשר הופכים אליפסה קעורה, ה-"±" בסוגריים אחרי X נלקח כ-"-"; כאשר הופכים אליפסה קמורה, ה-"±" בסוגריים אחרי X נלקח כ-"plus".

כאשר ציר ה-X של האליפסה עובר לכיוון החיובי, ה-"±" בסוגריים אחרי Z לוקח "פלוס"; כאשר ציר ה-X של האליפסה עובר לכיוון השלילי, ה-"±" בסוגריים אחרי Z לוקח את "-"

2) הפורמט הסטנדרטי של הצהרת ה-IF האליפטית

#1=a;

ת: נקודת ההתחלה של הכלי היא בכיוון החיובי מ"מ ביחס לציר Z של האליפסה

N1#2=b*SQRT〔1-#1*#1/c*c〕;

b: ציר חצי קצר של האליפסה c: ציר חצי ראשי של אליפסה (לפי נוסחת האליפסה X/c בתוספת Y/b=1, SQRT פירושו שורש ריבועי)

G01X〔±2*#2 בתוספת d〕Z〔#1±e〕F0.2; ד: ההיסט (ערך קוטר) של ציר ה-X של האליפסה ביחס לקואורדינטת האפס e: ציר ה-Z של האליפסה ביחס למישור האפס.

#1=#1-1;

מרחק צעדים (נע 1 מ"מ בכל פעם)

IF [#1 GE -f] GOTO1

ו: הפסקת עיבוד אליפסה

 

הערה: כאשר הופכים אליפסה קעורה, ה-"±" בסוגריים אחרי X נלקח כ-"-"; כאשר הופכים אליפסה קמורה, ה-"±" בסוגריים אחרי X נלקח כ-"plus". כאשר ציר ה-X של האליפסה סוטה לכיוון החיובי, ה-"±" בסוגריים אחרי Z לוקח "פלוס"; כאשר ציר ה-X של האליפסה סוטה לכיוון השלילי, ה-"±" בסוגריים אחרי Z לוקח את "-".

תְמוּנָה

הצהרת WHILE

#1=20;

WHILE〔#1GE-20〕DO1;

#2=10*SQRT〔1-#1*#1/400〕;

G01X〔-2*#2 פלוס 50〕Z〔#1-25〕;

#1=#1-1;

END1;

הצהרת IF

#1=20;

N1#2=10*SQRT〔1-#1*#1/400〕;

G01X〔-2*#2 פלוס 50〕Z〔#1-25〕F0.2;

#1=#1-1;

IF[#1GE-20]GOTO1;

תוכנית שלמה

O1234;

G40G97G99;

T0101;

S1000 M3;

G00 X50 Z2;

G73 U5 R5;

G73 P10 Q20 U0.5 F0.2;

N10 G0 G42 Z-5;

#1=20;

WHILE〔#1GE-20〕DO1;

#2=10*SQRT〔1-#1*#1/400〕;

G01X〔-2*#2 פלוס 50〕Z〔#1-25〕F0.2;

#1=#1-1;

END1;

G00 X50;

N20 G00 G40 Z2;

G70 P10 Q20;

G00 X200;

Z200;

M5;

M30;

הפורמט המלא של משפט ה-IF מושמט (הדבר נכון גם לגבי הצהרת ה-IF, כל עוד המחזור נוסף). במערכת FANUC-0i, ניתן להוסיף את תוכנית המאקרו רק ב-G73.

(3) עיבוד פרבולה

1) הפורמט הסטנדרטי של הצהרת WHILE הפרבולית:

#1=a;

א: נקודת ההתחלה של הכלי היא מ"מ בכיוון הציר הפרבולי Z

WHILE [#1 GE -b] DO1;

b: הוא אורך העיבוד של האליפסה בכיוון z

#2=SQRT〔-#1*5/3〕;

(לפי הנוסחה הפרבולית Z=-3/5*X*X, מצא את הערך של X, שהוא #2, כאשר SQRT פירושו השורש הריבועי)

G01 X〔±2*#2 בתוספת c〕Z〔#1〕;

c: הוא ההיסט (ערך הקוטר) של ציר ה-X של הפרבולה ביחס למערכת הקואורדינטות של חלק העבודה, "±"

כאשר לוקחים "פלוס", הוא קמור, וכאשר לוקחים "-", הוא קעור

#1=#1-1; מרחק צעדים (נע 1 מ"מ בכל פעם)

END1;

2) הפורמט הסטנדרטי של הצהרת ה-IF הפרבולית

#1=a;

א: נקודת ההתחלה של הכלי היא מ"מ בכיוון הציר הפרבולי Z

N1 #2=SQRT〔-#1*5/3〕;

(לפי הנוסחה הפרבולית Z=-3/5*X*X, מצא את הערך של X, שהוא #2, כאשר SQRT פירושו השורש הריבועי)

G01 X〔±2*#2 בתוספת b〕Z〔#1〕;

ב: זהו ההיסט (ערך קוטר) של ציר כיוון X של הפרבולה ביחס לנקודת האפס בקואורדינטה. כאשר "±" לוקח " פלוס ", הוא קמור, וכאשר לוקחים "-" הוא קעור

#1=#1-1;

(מרחק צעדים בכיוון Z, כל תנועה היא 1 מ"מ)

IF〔#1 GE -c〕GOTO1; ג: אורך העיבוד של האליפסה בכיוון z

פרבולי IF

צורה אחרת של משפט

#1=a;

N1 #2=SQRT〔( פלוס )#1*5/3〕;

ניתן להשמיט את הסימן "פלוס".

G01 X〔2*#2 בתוספת b〕Z〔-#1〕;

#1=#1 פלוס 1;

IF [#1 LE c] GOTO1;

בהנחה שהפרבולה נמצאת בכיוון החיובי של Z, אז השתמש ב-Z〔-#1〕; להפוך את הפרבולה לסימטרית לכיוון השלילי

תְמוּנָה

הצהרת WHILE

#1=0;

WHILE [#1 GE -15] DO1;

#2=SQRT〔-#1*5/3〕;

G01 X〔2*#2 בתוספת 30〕Z〔#1〕;

#1=#1-1;

END1;

הצהרת IF

#1=0;

N1 #2=SQRT〔-#1*5/3〕;

G01X〔2*#2 בתוספת 30〕Z〔#1〕;

#1=#1-1;

IF [#1 GE -15] GOTO1;

תוכנית שלמה

O1234;

G40 G97 G99;

T0101;

S1000 M3;

G00 X42 Z1;

G73 U5 R5;

G73 P10 Q20 U0.5 F0.2;

N10 G00 G42 Z0;

#1=0;

WHILE [#1 GE -15] DO1;

#2=SQRT〔-#1*5/3〕;

G01 X〔2*#2 בתוספת 30〕Z〔#1〕;

#1=#1-1;

END1;

G00 X42;

N20 G00 G40 Z2;

G70 P10 Q20;

G00 X200;

Z200;

M5;

M30;

(4) ההבדל בין הצהרת WHILE להצהרת IF

1) הכיוונים של שתי ההיגדים שונים

ההצהרה WHILE חוזרת לאחור

דוגמה: WHILE〔#1 GE 20〕DO1;

G01 X〔#1〕F0.2;

בהנחה שכאשר כלי המכונה יבצע את המשפט הזה, #1=20, הוא ימשיך לפעול. לאחר ביצוע #1=#1-1, הערך של #1 הופך ל-19, שאינו עומד עוד בתנאי האילוץ, כך שהוא לא יחזור. (חתוך ל-20 בכיוון X)

G00 X〔#1 פלוס 1);

#1=#1-1;

END1;

2) הצהרת ה-IF חוזרת קדימה

דוגמה: N1 #2=#2-1;

G01X〔#2〕F0.2; בהנחה ש-#2=20 כאשר כלי המכונה יבצע את המשפט הזה, הוא ימשיך לפעול עד IF〔#2 GE 20〕GOTO1; אם התנאי עדיין מתקיים, הוא ימשיך לחזור ל-N1# 2=#2-1; וערך ה-X הנוכחי יהפוך ל-19, שאינו עומד עוד בתנאי האילוץ, ולאחר מכן יבצע עוד אחד

G01X〔#2〕F0.2; לבסוף, הפעל את התוכנית הבאה (כיוון X נחתך ל-19)

G00X〔#2 פלוס 1);

IF [#2 GE 20] GOTO1;

3) כפי שניתן לראות מתוכנית החריצים לעיל, מספר המילים במשפט IF קטן בהרבה מזה של המשפט WHILE.

4) עקב כיווני ההחזרה השונים, קרא משפט אחד פחות עבור הצהרת WHILE ועוד משפט אחד עבור הצהרת IF במהלך העיבוד.

04

יישום מאקרו של מערכת SIEMENS (מחרטה).

הערה: תוכנית המאקרו מתוכנתת עם משתנים, ומספר המשתנה של מערכת סימנס מיוצג על ידי R.

לדוגמה, כתוב בשיטת תכנות נפוצה: G01X-10

תוכנית המאקרו יכולה להתבטא כך:

R1=-10

G01 X=R1

העברה מותנית:

IF GOTOB: קפוץ לאחור

IF GOTOF: קפוץ קדימה

כתוב בתכנות נפוץ

GO1X100

ניתן לבטא משתנים כך:

R1=0

AA: R1=R1 פלוס 1

G01X=R1

IF R1<100 GOTOB AA

R1 הוא משתנה בלתי תלוי, הערך ההתחלתי הוא 0, R1=R1 ועוד 1 פירושו שהערך המצטבר של המשתנה הבלתי תלוי הוא 1, כאשר התוכנית עוברת על שורה זו בכל פעם, הערך של R1 גדל ב-1, R1<100 is a conditional expression, IF R1<100 GOTOB AA This line means that if the argument R1<100, the program jumps backward to the mark: AA

אם R1 גדול או שווה ל-100, התוכנית יורדת.

ניתן להשתמש בתוכנות מאקרו הן במצב G90 והן במצב G91, אך משמעויותיהן שונות, למשל;

R1=0, G90R1=R1 ועוד 1, G1X=R1, הערך של X לאחר המעבר השני של תוכנית זו הוא 2.

R1=0, G91R1=R1 פלוס 1, G1X=R1, הערך של X לאחר המעבר השני של התוכנית הוא 3. הסבר: הערך של R1 הוא 1 לאחר הראשון לעבור את התוכנית, והערך של R1 הוא המעבר השני הוא 2, אבל במצב G91 הוא מבוסס על הקודם.

(1) חריצים

תְמוּנָה

T1

TC

T1D1

G0G40X100Z100

M03S1000

G0X54Z2

להגיע במהירות לנקודת ההתחלה

Z-10

R1=3

הגדר את רוחב הלהב כ-3 מ"מ

R2=-10-R1-0.2

נקודת ההתחלה של הכלי היא -10, והצד השמאלי של הלהב משמש בעת הגדרת הכלי;

הגדרת הכלי, כך שיש להפחית את רוחב הלהב, 0.2 היא קצבת הגמר

G1Z=R2F0.1

הכלי מגיע לנקודת ההתחלה של ציר Z

AA:R2=R2-2.5

R3=50

ציר ה-X של החריץ מגיע לנקודה

BB: R3=R3-2

הגדירו את עומק החיתוך של כל סכין כ-2 מ"מ

G1X=R3

X=R3 פלוס 1

0הסרת שבב.5 מ"מ בצד אחד בכל עומק של 2 מ"מ של חיתוך

IF R3>30 ועוד 0.4 GOTOB BB

Define the groove depth as 10mm, if R3>30 מ"מ, התוכנית קופצת אחורה לסימון BB, ו-0.4 היא קצבת הסיום

G0X50

הכלי מגיע לנקודת ההתחלה של ציר X

G1Z=R2

IF R2>{{0}} פלוס 0.2 GOTOB AA

הגדירו את רוחב החריץ כ-20 מ"מ, ו-0.2 היא קצבת הגימור

G0X50

G01Z-13

גימור

X30

Z-16

G0X50

Z-30

G01X30

Z-16

G0X50

לָסֶגֶת

G0X100

Z100

M05

M30

(2) אליפסה

1) פורמט בסיסי

R1=0

הגדר את המשתנה R1 עם ערך התחלתי של 0

AA:R2=b×SQRT(1-R1×R1/a×a)

לפי משוואת האליפסה, a הוא הציר החצי-עיקרי של האליפסה, b הוא הציר החצי-מינורי של האליפסה, ו-SQRT הוא סמל השורש הריבועי.

G1X=±2×R2 פלוס XZ=R1-Z

הגדר את המיקום והצורה של האליפסה, פלוס 2 הוא קמור, -2 הוא קעור, X, Z הם המרחקים בין ציר חומר העבודה לציר האליפסה (מערכת קוטר).

R1=R1-1

הגדר את שלב העיבוד

IF R1>=n ​​GOTOB AA

אם המשתנה R1

2) דוגמה לתכנות:

תְמוּנָה

T1D1

G0G40X100Z100

M3S1000

G0X52Z2

Z-20

מחזור 95 ( )

G42S1500

OO:

R1=20

AA:R2=5×SQRT(1-R1×R1/400)

G1X=-2×R2 בתוספת 50 Z=R1-40

R1=R1-2

IF R1>=-20 GOTOB AA

PP:X42

G0G40X100Z100

M05

M09

M30

(3) פרבולה

1) פורמט בסיסי:

R1=0

הגדר את הערך ההתחלתי של משתנה R1 ל-0

AA: R2=SQRT(-R1×n)

הושג על פי הפורמט הבסיסי של הפרבולה, כאשר SQRT הוא סמל השורש הריבועי, ו-n הוא המקדם

G01X=2×R2 פלוס n

Z=R1

נתיב עיבוד, פלוס 2 הוא קמור, n הוא הערך של נקודת ההתחלה של ציר X

R1=R1-1

ערך התוספת המשתנה הוא 1 מ"מ

IF R1>-30 GOTOB AA

If the variable R1>-30, התוכנית קופצת אחורה לסימון: AA

2) דוגמה לתכנות:

תְמוּנָה

T1

Tc

T1D1

G0G40X100Z100

M03S1000

G0X52Z2

מחזור 95 ( )

G0G42

OO:

R1=0

AA:R2=SQRT(-R1×5/3)

G01X=2×R2 בתוספת 30 Z=R1

R1=R1-2

IF R1>-60 GOTOB AA

PP: X52

G0X100Z100

M05

M30

שלח החקירה

whatsapp

skype

דוא

חקירה