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

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

                                             

-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.