PostHeaderIcon Οπτικός προγραμματισμός και έλεγχος εργαλειομηχανής CNC τριών αξόνων

Article Index
Οπτικός προγραμματισμός και έλεγχος εργαλειομηχανής CNC τριών αξόνων
Λογισμικό
All Pages
There are no translations available.

VeNC flyier

Εισαγωγή

Στην παρακάτω εργασία θα μιλήσουμε και θα αναδείξουμε τον τρόπο και τα βήματα που απαιτούνται για την κατασκευή ενός ελεγκτή αριθμητικού ελέγχου τριών αξόνων υποβοηθούμενου από υπολογιστή. Επίσης θα αναφερθούν πιθανά προβλήματα που δημιουργούνται καθώς και οι λύσεις που ο χρηστής μπορεί να χρησιμοποιήσει για να τα αντιμετωπίσει.

.

 

Μια δεύτερη πτυχή της εργασίας, εκτός των προβλημάτων που πρέπει να επιλυθούν για την αξιοπιστία της κατασκευής, είναι και ο εύκολος χειρισμός του από τον χρήστη. Για το σκοπό αυτό δημιουργήθηκε το πρόγραμμα VeNC (Visual Enhanced (C)NC ) το οποίο εισάγει τον οπτικό χειρισμό και προγραμματισμό της εργαλειομηχανής, κάνοντας έτσι την κατεργασία μια εύκολη διαδικασία (η αναφορά αφορά τον προγραμματισμό μόνο καθώς η κατεργασία ενός υλικού εξαρτάται από ποικίλους παράγοντες που αφορούν την μηχανική υλικών και απαιτεί αρκετή εξειδίκευση από το χειριστή).

Τέλος μέσα από τα κεφάλαια της εργασίας θα αναφερθούμε σε ένα-ένα αναλυτικά, τα βήματα υλικού και λογισμικού που απαιτούνται για την κατασκευή, τον έλεγχο αλλά και την προστασία των μονάδων.

 

Σκοπός

•Ο σκοπός της εργασίας αυτής είναι η κατασκευή ενός ελεγκτή αριθμητικού ελέγχου (CNC) 3 αξόνων.
•Η σχεδίαση περιλαμβάνει την επιλογή των υλικών (Hardware)
•Καθώς και τον προγραμματισμό για τον έλεγχο της κίνησης

Στόχοι

•Στόχος της εργασίας εκτός από την σωστή λειτουργία του ελεγκτή, είναι αυτός να είναι ιδιαίτερα φιλικός προς τον χρήστη.
•Για το σκοπό αυτό έχει δοθεί ιδιαίτερη έμφαση σε δυνατότητες όπως στον οπτικό προγραμματισμό, στην κίνηση σε πραγματικό χρόνο χρησιμοποιώντας συσκευές κατάδειξης (ποντίκι, πληκτρολόγιο, κτλ..) οι οποίες μπορούν να καταγραφούν και να αποθηκευτούν κ.α.
•Το καθιστούν έτσι ιδανικό ακόμη και για κάποιον που δεν έχει δουλέψει ποτέ με CNC και δεν γνωρίζει τον προγραμματισμό τους.

 

Απαιτήσεις

Το υλικό (Hardware):

Βηματικοί κινητήρες
Κύκλωμα οδήγησης (H-Bridge)
Τερματικοί διακόπτες
Παράλληλη θύρα
Επεξεργαστική μονάδα (PC, ελεγκτής)

 

Το Λογισμικό (Software):

Αναλυτής κώδικα εργαλειομηχανών (G-parser)
Επιφάνεια γραφικών και διασύνδεσης με τον χρήστη (interface)
Γραμμική και κυκλική παρεμβολή χρησιμοποιώντας μόνο ακέραιους αριθμούς
Ανάπτυξη πλατφόρμας πραγματικού χρόνου (για χρήση των ρουτινών παρεμβολής)

 

 

-HARDWARE-

Υλικά που χρησιμοποιήθηκαν

Φρέζα Proxxon MF70

Για την κατασκευή της μηχανής χρησιμοποιήθηκε μια μικρή  χειροκίνητη φρέζα της εταιρίας Proxxon. Πρόκειται για το μοντέλο MF70 το οποίο έχει χώρο  εργασίας Χ=130mm, Y=45mm, Z=80mm.

Το βήμα του κάθε άξονα είναι 1mm/περιστροφή, ενώ το μοτέρ της κεφαλής είναι έως 22000 rpm.

mf70

 

H-Bridge

Η H-bridge και το λογικό κύκλωμα που  μετατρέπει τους παλμούς στα pin, dir  και step του  controller, σε σημα οδηγησης των βηματηκών κινητήρων είναι της εταιρίας CNC-PLUS.DE και επιλέχτηκε με βάση τα χαρακτηριστικά των κινητήρων για κίνηση σε 3 άξονες.
(παρόλο που το κιτ ηταν παραγγελία αποδείχθηκε οτι ο μετασχηματιστής ήταν μικρός για την κατασκευή και αλλαχθηκε με μεγαλύτερο)

H-bridge

 

Διασύνδεση με PC η uC

Για τη διασύνδεση απευθείας με τον υπολογιστή μέσω της παράλληλης θύρας ή με uC η H-bridge χρησιμοποίει  το εξής PinOut:

LPT port

•Pin 2: DirX
•Pin 3: StepX
•Pin 4: DirY
•Pin 5: StepY
•Pin 6: DirZ
•Pin 7: StepZ
•Pin 10: EndZ
•Pin 12: EndY
•Pin 13: EndX

Περισσότερα για την λειτουργιά της παράλληλης θύρας των υπολογιστών. (link)

 

 

Βηματικοί κινητήρες

Οι βηματικοί κινητήρες είναι της εταιρίας Sanyo-Denki και έχουν τα εξής χαρακτηριστικά:

•Μέγεθος NEMA23
•Ροπή συγκράτησης 1,65Nm
•Ρεύμα 2,5A (bipolar)
•Τάση 65V (MAX)

Περισσότερα για τον τρόπο λειτουργίας των βηματικών κινητήρων. (link)

 

 

-FT232- Μετατροπή USB σε UART (σειριακή)

•Ακόμη χρησιμοποιήθηκε ένα module μετατροπής USB-UART για τη σύνδεση του uC με USB.
•Το FT232 εκτός της μετατροπής από USB σε UART έχει και 4 GPIO (General Purpose I/O) όπου χρησιμοποιούνται για το handshake με τον ελεγκτή.
•Για την χρήση του FT232 με αυτόν τον τρόπο απαιτείται η χρήση Driver και βιβλιοθηκών DLL που δίνονται από τον κατασκευαστή.

Μικροελεγκτής

•Ο επεξεργαστής που χρησιμοποιήθηκε είναι της οικογένειας 8051 και συγκεκριμένα ο 89C51AC2
•H γλώσσα προγραμματισμού είναι assembly.
•Ενώ μπορεί να χρησιμοποιηθεί για την εκτέλεση G-κώδικα και χωρίς τη χρήση υπολογιστή (είναι αυτόνομος)

                                             

-SOFTWARE-

Λογισμικο

 

Κάνοντας ευθείες με τον αλγόριθμο Bresenham mid-point line


•Μια ευθεία αποτελείται από ένα σύνολο σημείων μεταξύ 2 ακριανών σημείων.
•Τα σημεία αυτά δεν έχουν εμβαδό, εντούτοις, δημιουργείτε ένα πρόβλημα κατά τη σχεδίαση καθώς θα πρέπει να υπολογίζουμε προσεγγιστικά κάθε φορά το ποιο κοντινό ,διακριτό, στην ευθεία σημείο.
•Το σημείο αυτό στην ορολογία των υπολογιστών λέγεται pixel και δεν είναι απείρως μικρό.
•Επίσης περιορίζεται σε κάποιες διακριτές θέσεις

Αλγόριθμος υπολογισμού ευθείας

Είναι πολύ απλό να σχεδιάσουμε μια ευθεία υπολογίζοντας τα σημεία που απαιτούνται γι’αυτό χρησιμοποιώντας πράξεις κινητής υποδιαστολής.

void draw_line(int x1, int y1, int x2, int y2)
{
int dx = x2 – x1; 
int dy = y2 – y1; 
float m = dy/dx; 
for (int x = x1; x < x2; x++) 

int y = m*x + y1 + 0.5;
putpixel(x, y); 
}
}

Ο προηγούμενος αλγόριθμος βασίζεται στην παραδοχή ότι:

•Κλίση ευθείας δεν είναι άπειρη
•x1 < x2
•y1 < y2

Το πρόβλημα!

•Τότε ποιο είναι το πρόβλημα..?
•Το πρόβλημα του αλγορίθμου είναι η ταχύτητα.
•Οι πράξεις κινητής υποδιαστολής απαιτούν μεγάλη επεξεργαστική ισχύ ή ύπαρξη ειδικού hardware (FPU Floating Point Unit, DSP, κτλ)
•Ο αλγόριθμος Bresenham δίνει την λύση.

Ο αλγόριθμος Bresenham


•Ο αλγόριθμος Bresenham/Mid-point όχι μόνο βρίσκει ακριβώς τα διακριτά σημεία (pixels) αλλά το κάνει χρησιμοποιώντας μόνο πράξεις με ακέραιους και συγκεκριμένα μόνο πρόσθεση και μετατόπιση.
•Πράξεις που εκτελούνται ιδιαίτερα γρήγορα από τους επεξεργαστές

Ας πούμε ότι θέλουμε να σχεδιάσουμε μια ευθεία μεταξύ δυο σημείων και ας υποθέσουμε επίσης:

• ότι η κλίση της ευθείας είναι 0<m<1
•Και ότι Χ1<Χ2

slope image

Εξίσωση ευθείας

line equation

Μπορεί να αποδειχτεί ότι για οποιοδήποτε σημείο πάνω από την γραμμή η εξίσωση γίνεται μικρότερη του 0, ενώ για οποιοδήποτε σημείο κάτω της ευθείας γίνεται μεγαλύτερη.

Έτσι αν ορίσουμε την εξίσωση:

F(x,y)=2*dy*x – 2*dx*y + 2*dx*B

Τότε για κάθε σημείο (x,y) που αναπαριστά ένα μέσο σημείο επιλέγετε το διπλανό ή διαγώνιο σημείο ανάλογα με το αν F(x,y)>0 ή F(x,y)<0

line equation 2

Για το πρώτο μέσο σημείο (x1+1,y1+1/2) μπορούμε να υπολογίσουμε από την F(x,y) αν το επόμενο σημείο θα είναι το (χ1+1, y1) ή (χ1+1,y1+1).

line equation 3

 

Ονομάζουμε την τιμή αυτή: «αρχική μεταβλητή απόφασης»

D=2*dy-dx

Τώρα για το επόμενο μέσο σημείο έχουμε:

F(x1+2, y1+1/2) ή F(x1+2,y1+1) ανάλογα με την τιμή της μεταβλητής απόφασης

Ας υπολογίσουμε την διαφορά μεταξύ δυο διαδοχικών μέσον σημείων.

Παρατηρήσαμε ότι για την εύρεση του επόμενου διακριτού σημείου που βρίσκεται πιο κοντά στην πραγματική ευθεία απαιτείται μόνο ο υπολογισμός των τιμών incE, incNE, D, ο οποίος μπορεί να γίνει μόνο μια φορά στην αρχή και έπειτα απλά να προστίθεται.

 

Γενίκευση


•Ο προηγούμενος αλγόριθμος στην προηγούμενη απόδειξη βασίζεται στο γεγονός ότι η ευθεία είναι <45ο και ότι x1<x2, y1<y2. βρισκόμαστε δηλαδή στο πρώτο οκταμόριο.
•Για να γενικεύσουμε για όλες τις ευθείες αρκεί να χρησιμοποιήσουμε τη συμμετρία.

increment by axis

πηγή: wikipedia -> bresenham line algorithm

Βέβαια η υλοποίηση του αλγόριθμου για CNC παρουσιάζει διαφορές καθώς το CNC είναι ένα σύστημα που περιέχει έναν όρο ολοκλήρωσης. Σε αντίθεση με έναν υπολογιστή όπου μπορούμε να πάμε σε οποιοδήποτε pixel της οθόνης άμεσα, στο CNC πρέπει να περάσουμε από ΟΛΑ τα ενδιάμεσα σημεία, μεταξύ των δυο ακριανών.

Επίσης οι ρουτίνες που χρησιμοποιούνται από την κατασκευή περιέχουν πληροφορία και για τον τρίτο άξονα (ύψος) κάνοντας έτσι τρισδιάστατη παρεμβολή.

 

Κύκλος με τον αλγόριθμο Bresenham


•Όπως και στη ευθεία θα επιλέξουμε ένα οκταμόριο του κύκλου και θα βρούμε μια μεταβλητή απόφασης ενώ στην συνέχεια θα γενικεύσουμε για όλα τα οκταμόρια.

circle plot

Έστω (xi, yi) επελέγη. Επόμενο βήμα (xi+1, yi) ή (xi+1, yi-1)

Μεταβλητή απόφασης:
ei=d1-d2 όπου
d1=Yi^2 – Y^2 και d2=Y^2-(Y1-1)^2

Αν ei>0 επιλέγεται το (xi+1,yi-1)

Διαφορετικά      » »     (xi+1, yi)

Επειδή για x=xi+1 ισχύει y^2=r^2-(xi+1)^2 έχουμε:

•Με την ίδια μεθοδολογία αποδεικνύουμε και τον αλγόριθμο για την αντίστροφη φορά.
•Στη συνέχεια κάνουμε γενίκευση με τον ίδιο ακριβώς τρόπο που κάνουμε και για την ευθεία.

 

-VeNC-


Καρπός της έρευνας είναι το πρόγραμμα VeNC. Το VeNC (από το Visual Enhanced (C)NC) είναι ένα πρόγραμμα γραμμένο σε γλώσσα C/C++, ενώ η τελική του έκδοση περιλαμβάνει συνεργασία με εξωτερικό hardware το όποιο επιτρέπει μεγαλύτερες ταχύτητες και μεγαλύτερη αξιοπιστία.

Το VeNC σχεδιάστηκε με γνώμονα την ευκολία χρήσης από τον αρχάριο χρήστη με βελτιώσεις σε επίπεδο γραφικού περιβάλλοντος που επιτρέπει και στον πιο αρχάριο χρήστη να το χρησιμοποιήσει και να κάνει προτυποποίηση κομματιών και κώδικα G.

Μερικά Χαρακτηριστικά της κατασκεύης


•Οπτικός προγραμματισμός εργαλειομηχανών CNC σύμφωνα με το πρωτόκολλο RS-274D.
•Δυνατότητα χρήσης CNC χωρίς την ανάγκη χρήσης ούτε μιας εντολής G-Code, κάνοντας το έτσι ιδανικό για άτομα που δεν γνωρίζουν την γλωσσά προγραμματισμού των CNC (G-Code)
•Κίνηση σε πραγματικό χρόνο κάνοντας χρήση συσκευών αλληλεπίδρασης, ποντίκι, πληκτρολόγιο, ακόμη και ασύρματα μέσω κινητού τηλεφώνου (και Bluetooth).
•Ευρύ πεδίο διασύνδεσης. Απευθείας έλεγχος μέσω της παράλληλης θύρας (LPT), απευθείας έλεγχος με USB, μέσω σειριακής θύρας (RS-232) χρησιμοποιώντας εξωτερικό ελεγκτή με ανάδραση (προτείνεται). Επίσης είναι δυνατός και ο έλεγχος μέσω δικτύου και tcp/ip.
•Προσομοίωση της διαδικασίας κοπής σε γρήγορο και πραγματικό χρόνο.
•Επεξεργασία G-κώδικα και εύκολη δημιουργία εντολών μέσω του G-Liner.

VeNC main

Κεντρική οθόνη του προγράμματος (κάντε κλίκ για μεγένθυση)

 

Venc_about

Σχετικά με το πρόγραμμα(κάντε κλίκ για μεγένθυση)

 

 

Διασύνδεση


•Το VeNC μπορεί να συνδεθεί απευθείας στην παράλληλη θύρα(LPT) του υπολογιστή
•Με εξομοίωση (emulation) της LPT μέσω USB
•Χρησιμοποιώντας τη σειριακή (RS-232)
•Χρησιμοποιώντας εξωτερικό ελεγκτή (και USB) (*προτείνεται)

 

-Επίλογος-

Αποτέλεσμα της εργασίας είναι η επιπλέον εξοικείωση με τα CNC μηχανήματα καθώς και με τον τρόπο τον οποίο δουλεύουν.

Ο κλάδος των CNC είναι ένας κλάδος που γνωρίζει ραγδαία αύξηση στην Ελλάδα και λόγο της συνεχόμενης πτώσης των τιμών τους και αύξηση των δυνατοτήτων τους γίνονται όλο και πιο προσιτά σε μικρότερες επιχειρήσεις επιτρέποντας τες να γίνουν πολύ πιο αποδοτικές και πολύ πιο ποιοτικές στα παραγόμενα προϊόντα τους. Άρα και πιο ανταγωνίστηκες και πιο καινοτόμες με τα ειδή της κατεργασίας. Το CNC είναι το μέλλον όλων των εργαλειομηχανών αλλά και όλων των διεργασιών που απαιτούν αριθμητικό έλεγχο και όχι μονό για κατεργασία υλικών αλλά για οποιαδήποτε διεργασία απαιτεί γρήγορο, αξιόπιστο και με μεγάλες ταχύτητες έλεγχο σε όλους τους τομείς της βιομηχανίας.

-Τέλος-

 

You must login first to make comments.