Πολλοί τεχνικοί CNC δεν καταλαβαίνουν τα προγράμματα μακροεντολών. Πιστεύουν ότι με το λογισμικό αυτόματου προγραμματισμού, δεν χρειάζεται να μάθουν προγράμματα μακροεντολών. Στην πραγματικότητα, οι λειτουργίες των μακροπρογραμμάτων είναι πολύ ισχυρές. Για παράδειγμα, για να γράψετε ορισμένα προγράμματα ομαδικής και επαναλαμβανόμενης χρήσης, χρειάζεται μόνο να αλλάξετε μερικά δεδομένα όταν χρησιμοποιείτε προγράμματα μακροεντολών. Δεν υπάρχει ανάγκη για μεγάλο αριθμό επαναλαμβανόμενων προγραμματισμών, ο οποίος μπορεί να απλοποιήσει σημαντικά τις λειτουργίες και να βελτιώσει σημαντικά την αποδοτικότητα της εργασίας.
Τα μακροπρογράμματα μπορούν να χρησιμοποιούν μεταβλητές για να εκτελούν μικτές πράξεις αριθμητικών πράξεων, λογικών πράξεων και συναρτήσεων, καθώς και να παρέχουν εντολές βρόχου, δηλώσεις διακλάδωσης και δηλώσεις κλήσεων υπορουτίνας.
Σε γενικές γραμμές: το πρόγραμμα macro είναι κατάλληλο για τον προγραμματισμό μιας σειράς εξαρτημάτων με τα ίδια γραφικά αλλά με διαφορετικά μεγέθη. Είναι κατάλληλο για τον προγραμματισμό μιας σειράς εξαρτημάτων με την ίδια διαδρομή διαδικασίας αλλά με διαφορετικές παραμέτρους θέσης. είναι κατάλληλο για τον προγραμματισμό παραβολών, ελλείψεων, υπερβολών και άλλων καμπυλών χωρίς οδηγίες παρεμβολής.
01
Αναπαράσταση και χρήση μεταβλητών
1. Αναπαράσταση μεταβλητής
#I(I=1,2,3,…) ή #[
Παράδειγμα: #5, #109, #501, #[#1 συν #2-12]
Δεύτερον, η χρήση μεταβλητών
1. Καθορίστε τον αριθμό ή τον τύπο της μεταβλητής μετά τη λέξη διεύθυνσης
Μορφή:
Εδώ το "I" σημαίνει μεταβλητό αριθμό
Παράδειγμα: F#103, αν #103=15, τότε είναι F15
Z-#110, αν #110=250, είναι Z-250
X[#24 συν #18*COS[#1]]
2. Ο αριθμός μεταβλητής μπορεί να αντικατασταθεί από μεταβλητή
Παράδειγμα: #[#30], εάν #30=3, θα είναι #3
3. Οι μεταβλητές δεν μπορούν να χρησιμοποιούν διευθύνσεις O, N, I
Παράδειγμα: Επιτρέπονται οι ακόλουθες μέθοδοι
O#1;
I#2 6.00×100.0;
N#3 Z200.0;
4. Η μεταβλητή που αντιστοιχεί στον αριθμό της μεταβλητής έχει ένα συγκεκριμένο εύρος τιμών για κάθε διεύθυνση
Παράδειγμα: όταν το #30=1100, το M#30 δεν επιτρέπεται
5. Η #0 είναι μια κενή μεταβλητή και μια μεταβλητή χωρίς καθορισμένη τιμή μεταβλητής είναι επίσης μια κενή μεταβλητή
6. Ορισμός μεταβλητής τιμής:
Η υποδιαστολή μπορεί να παραλειφθεί όταν ορίζεται το πρόγραμμα, για παράδειγμα: #123=149
02
τύπος μεταβλητής
Προσθήκη φωτογραφιών στο WeChat: ο mvm9987 θα στείλει ένα σεμινάριο CNC
1. Τοπικές μεταβλητές #1~#33
Μια μεταβλητή που χρησιμοποιείται τοπικά σε ένα πρόγραμμα μακροεντολής, το αποτέλεσμα λειτουργίας της δεν μπορεί να χρησιμοποιηθεί από άλλα προγράμματα.
Παράδειγμα: Ένα μακροπρόγραμμα Β μακροπρόγραμμα
...
#10=20 Το X#10 δεν σημαίνει X20
...
Θα διαγραφεί μετά την απενεργοποίηση και η τιμή της μεταβλητής θα συμπληρωθεί όταν καλείται το πρόγραμμα μακροεντολής
2. Δημόσιες μεταβλητές #100~#199, #500~#999
Η κοινή μεταβλητή σε κάθε πρόγραμμα μακροεντολής χρήστη έχει το ίδιο αποτέλεσμα λειτουργίας σε οποιαδήποτε κλήση προγράμματος.
Παράδειγμα: Όταν το #10 στο παραπάνω παράδειγμα αλλάξει σε #100, το
X#100 σημαίνει X20
#100~#149 Άδειο μετά την απενεργοποίηση
#500~#531 Μόνιμες μεταβλητές (δεν χάνονται μετά την απενεργοποίηση)
3. Μεταβλητές συστήματος
Μεταβλητή σταθερού σκοπού της οποίας η τιμή εξαρτάται από την κατάσταση του συστήματος
Παράδειγμα: #2001 είναι η τιμή αντιστάθμισης άξονα Χ της αντιστάθμισης εργαλείου Νο. 1
Η τιμή #5221 είναι η τιμή μετατόπισης της αρχής του τεμαχίου εργασίας άξονα G54
Πρέπει να εισαχθεί μια υποδιαστολή κατά την εισαγωγή και η μονάδα είναι μm όταν παραλείπεται η υποδιαστολή
03
Οδηγία λειτουργίας
Η δεξιά πλευρά της έκφρασης μπορεί να είναι σταθερές, μεταβλητές, συναρτήσεις, εκφράσεις
Στον τύπο, #j και #k μπορούν επίσης να είναι σταθερές
Η δεξιά πλευρά της έκφρασης είναι η μεταβλητή αριθμός, η έκφραση
1. Ορισμός
#I=#j
2. Αριθμητικές πράξεις
#I=#j συν #k
#I=#j-#k
#I=#j*#k
#I=#j/#k
3. Λογικές πράξεις
#I=#JOK#k
#I=#JXOK#k
#Ι=#JAND#k
4. Λειτουργία
εικόνα
#I=SIN[#j] ημίτονο
#I=COS[#j] συνημίτονο
#I=TAN[#j] εφαπτομένη
#I=ATAN[#j] εφαπτομένη
#I=SQRT[#j] τετραγωνική ρίζα
#I=ABS[#j] απόλυτη τιμή
#I=ROUND[#j] Στρογγυλοποίηση
#I=ΔΙΟΡΘΩ[#j] στρογγυλοποίηση
#I=FUP[#j] Στρογγυλοποίηση προς τα κάτω
#I=BIN[#j] BCD→BIN (δυαδικό)
#I=BCN[#j] BIN→BCD
1) Οι γωνίες είναι σε μοίρες
Παράδειγμα: 90 μοίρες και 30 λεπτά είναι 90,5 μοίρες
2) Τα δύο μήκη πλευρών μετά τη συνάρτηση ATAN πρέπει να διαχωρίζονται με "/"
Παράδειγμα: #{{0}}ATAN[1]/[-1], το #1 είναι 35,0
3) Το ROUND χρησιμοποιείται για τη διεύθυνση στη δήλωση, στρογγυλοποιημένη σύμφωνα με την ελάχιστη μονάδα ρύθμισης κάθε διεύθυνσης
Παράδειγμα: Σετ #1=1.2345, #2=2.3456, η μονάδα ρύθμισης είναι 1μm
G91 X-#1; X-1.235
X-#2 F300; X-2.346
X[#1 συν #2]; Χ3.580
δεν επιστρέφεται και πρέπει να αντικατασταθεί από
X[ROUND[#1] plus ROUND[#2]];
4) Εάν η απόλυτη τιμή μετά τη στρογγυλοποίηση είναι μεγαλύτερη από την αρχική τιμή, θα στρογγυλοποιηθεί προς τα πάνω, διαφορετικά θα στρογγυλοποιηθεί προς τα κάτω
Παράδειγμα: Όταν #1=1.2, #2=-1.2
Αν #{{0}}FUP[#1], τότε #3=2.0
Αν #{{0}}ΔΙΟΡΘΩΣΗ[#1], τότε #3=1.0
Αν #{{0}}FUP[#2], τότε #3=-2.0
Αν #{{0}}ΔΙΟΡΘΩΣΗ[#2], τότε #3=-1.0
5) Όταν δίνετε εντολή σε μια συνάρτηση, μπορούν να γραφούν μόνο τα δύο πρώτα γράμματα
Παράδειγμα: ROUND→RO
FIX→FI
6) Προτεραιότητα
Συνάρτηση → πολλαπλασιασμός και διαίρεση (*, 1, ΚΑΙ) → πρόσθεση και αφαίρεση ( συν , -, Ή, XOR)
Παράδειγμα: #1=#2 συν #3*SIN[#4];
7) Οι αγκύλες είναι αγκύλες, έως και 5 φορές, και οι αγκύλες χρησιμοποιούνται για δηλώσεις σχολίων
Παράδειγμα: #1=SIN[[[#2 συν #3]*#4 συν #5]*#6]; (3 βάρη)
04
Οδηγίες διακλάδωσης και βρόχου
1. Μεταβίβαση άνευ όρων
Μορφή: GOTO n;
Διακλάδωση άνευ όρων στο μπλοκ n
n: αριθμός αποκλεισμού (1-99999)
Το n μπορεί επίσης να αντικατασταθεί από μεταβλητές ή εκφράσεις
goto10;
GOTO #10;
2. Μεταβίβαση υπό όρους
ΑΝ [
Αν το
Εάν δεν είστε ικανοποιημένοι, εκτελέστε το επόμενο μπλοκ.
ΑΝ [
Αν το
ΑΝ[#1EQ #2] ΤΟΤΕ #3=0;
Έκφραση υπό όρους:
εικόνα
Τα #j και #k μπορούν επίσης να αντικατασταθούν από
Παράδειγμα: IF[#1 GT 10] GOTO 100;
…
N100 G00 G91 X10;
Παράδειγμα: Βρείτε το άθροισμα από το 1 έως το 10
O9500;
#1=0
#2=1
N1 IF [#2 GT10] GOTO 2
#1=#1 συν #2;
#2=#2 συν 1;
GOTO 1
N2 M30
3. Κύκλος
Μορφή: WHILE[
…
…
…
ΤΕΛΟΣ μ
1. Όταν πληρούνται οι προϋποθέσεις, εκτελέστε το DOm στο ENDm και, στη συνέχεια, από το τμήμα προγράμματος του DOm
Εάν δεν ικανοποιηθεί, εκτελέστε το τμήμα προγράμματος μετά το ENDm
2. Εάν παραλείψετε την πρόταση WHILE και έχετε μόνο DOm...ENDm, θα σχηματιστεί ένας άπειρος βρόχος από το DOm στο ENDm
3. φωλιάζω
4. EQ NE, κενό και "0" είναι διαφορετικά
Αλλού, το null είναι το ίδιο με το "0"
Παράδειγμα: Βρείτε το άθροισμα από το 1 έως το 10
O0001;
#1=0;
#2=1;
WHILE [#2LE10] DO1;
#1=#1 συν #2;
#2=#2 συν #1;
ΤΕΛΟΣ 1;
M30;





