M98/M99 सबप्रोग्राम: दोहराई जाने वाली आकृति एक बार लिखें और कई बार कॉल करें
उदाहरण सहित M98 से सबप्रोग्राम कॉल और M99 से वापसी की संरचना, P संख्या और दोहराव संख्या L, इन्क्रिमेंटल सबप्रोग्राम से कई स्थितियों पर समान स्लॉट मशीन करना, तथा कॉल त्रुटियों के प्रकार समझाता है।
सबप्रोग्राम क्यों उपयोग करें?
समान स्लॉट पाँच स्थानों पर काटना या समान कंटूर को अलग-अलग गहराइयों पर कई बार मशीन करना आम है। हर बार समान ब्लॉक कॉपी करने से प्रोग्राम लंबा होता है और एक आयाम सुधारने पर पाँचों स्थान सुधारने पड़ते हैं। एक भी छूटने पर पाँच में से एक का आकार अलग होकर पार्ट अस्वीकृत हो जाता है।
सबप्रोग्राम दोहराए जाने वाले भाग को अलग प्रोग्राम में रखता है, जिसे मुख्य प्रोग्राम आवश्यकता पर कॉल करता है। आकृति केवल एक स्थान पर रखी जाती है और मुख्य प्रोग्राम को बस "कहाँ और कितनी बार" बताना होता है।
कॉल और वापसी
| कमांड | अर्थ | उदाहरण |
|---|---|---|
M98 P_ | P संख्या (O संख्या) वाला प्रोग्राम कॉल करता है | M98 P3100 |
L_ या P के आरंभिक अंक | दोहराव संख्या | L3 → 3 बार |
M99 | कॉल करने वाले ब्लॉक के बाद वाली पंक्ति पर लौटता है | O3100 की अंतिम पंक्ति |
M99 P_ | लौटता है, पर निर्दिष्ट सीक्वेंस संख्या पर जाता है | ब्रांच और लूप संरचनाओं में उपयोग |
उदाहरण: इन्क्रिमेंटल सबप्रोग्राम से तीन स्लॉट
सबप्रोग्राम O3100 G91 इन्क्रिमेंटल मोड में लिखा है। वर्तमान स्थिति से यह 6 mm नीचे जाता है, X में 30 mm स्लॉट काटता है, 6 mm ऊपर आता है और आरंभिक X पर लौटते हुए Y में 10 mm चलता है। अंतिम स्थिति अगले दोहराव का आरंभ बनती है, इसलिए समान कॉल तीन बार दोहराने से 10 mm अंतर वाले तीन स्लॉट बनते हैं।
10 mm अंतर वाले तीन स्लॉट काटने के लिए L3 से सबप्रोग्राम O3100 को तीन बार कॉल करना
O3007
T1 M6
G21 G90 G17 G94
G54
S3000 M03
G00 X0. Y0. Z5.
M98 P3100 L3
G90 G00 Z50.
M30
O3100
G91 G01 Z-6. F100
X30. F300
G00 Z6.
X-30. Y10.
M99ऊपर का चित्र इस प्रोग्राम का CNC Path Analyzer परिणाम है (रैपिड 8 खंड, रेखीय कटिंग 6 खंड).
मुख्य प्रोग्राम के नियम
- मोड पुनर्स्थापित करें: सबप्रोग्राम G91 में समाप्त होता है, इसलिए वापसी के तुरंत बाद मुख्य प्रोग्राम में फिर
G90दें। उदाहरण काG90 G00 Z50.यही करता है। G90 के बिना केवलZ50.लिखने पर अर्थ "वर्तमान स्थिति से 50 mm ऊपर" होगा, "ऊँचाई 50" नहीं। यहाँ गति ऊपर है इसलिए हानि कम है, पर अगले औजार के अप्रोच ब्लॉक में टक्कर हो सकती है। - आरंभिक स्थिति: इन्क्रिमेंटल सबप्रोग्राम कॉल के समय की स्थिति के अनुसार अलग परिणाम देता है। कॉल से ठीक पहले आरंभिक स्थिति निरपेक्ष निर्देशांकों में स्पष्ट दें।
- कम्पेन्सेशन और चक्र स्थिति: कटर त्रिज्या कम्पेन्सेशन या सक्रिय स्थिर चक्र के साथ कॉल करने पर सबप्रोग्राम की गतियाँ अप्रत्याशित हो सकती हैं। कॉल से पहले और बाद में मोडल स्थिति सुव्यवस्थित करें।
- M30 की स्थिति: सबप्रोग्राम उसी फ़ाइल में हो तो उसे मुख्य प्रोग्राम के
M30के बाद रखें। मुख्य प्रोग्राम M30 पर समाप्त होता है, इसलिए सबप्रोग्राम गलती से नहीं चलता।
दोहराव संख्या और चक्र समय गणना
सबप्रोग्राम का एक रन Z में 6 mm (F100) और X में 30 mm (F300) काटता है: 3.6 सेकंड और 6 सेकंड, यानी प्रति रन 9.6 सेकंड तथा तीन रन के लिए लगभग 29 सेकंड शुद्ध कटिंग। दोहराव संख्या L5 करने से मुख्य प्रोग्राम का एक अक्षर बदलता है और पाँच स्लॉट व लगभग 48 सेकंड कटिंग मिलती है। यह दिखाता है कि दोहराव संरचना प्रोग्राम बदलाव और समय अनुमान दोनों सरल करती है। गणना विधि मशीनिंग समय गणना में विस्तार से है।
कॉल त्रुटियों के प्रकार
टूल में अलग फ़ाइलों के कॉल किए गए प्रोग्राम मुख्य प्रोग्राम के साथ लोड किए जा सकते हैं, और P संख्या फ़ाइल नाम से नहीं बल्कि फ़ाइल के भीतर O संख्या से जुड़ती है।
| त्रुटि | कारण | CNC Path Analyzer क्या दिखाता है |
|---|---|---|
| कॉल किया प्रोग्राम नहीं मिला | P से मेल खाती O संख्या वाला प्रोग्राम नहीं | कॉल पंक्ति और न मिली संख्या |
| डुप्लिकेट O संख्या | समान संख्या वाले दो या अधिक प्रोग्राम | किसे उपयोग करना है यह तय न कर पाने की चेतावनी |
| M99 अनुपस्थित | सबप्रोग्राम समाप्त नहीं होता और अगले प्रोग्राम में चला जाता है | वापसी अनुपस्थित होने की चेतावनी |
| अनंत कॉल | प्रोग्राम एक-दूसरे को लगातार कॉल करते हैं, या स्वयं को कॉल करता है | रिकर्शन या निष्पादन सीमा पर गणना रुकती है |
अक्सर पूछे जाने वाले प्रश्न
क्या सबप्रोग्राम दूसरा सबप्रोग्राम कॉल कर सकता है?
M98 और G65 मैक्रो कॉल में क्या अंतर है?
G65 वह मैक्रो कॉल है जो आर्ग्युमेंट (A, B, C…) को वेरिएबल के रूप में देता है। इसे अलग आयामों के साथ समान आकृति कॉल करने में उपयोग किया जाता है, जबकि M98 बिना आर्ग्युमेंट समान क्रिया दोहराता है।