Conecting GBRL to ARDUINO UNO Untuk Grbl v0.9 dengan spindle variabel PWM ENABLED: (CATATAN: Z-batas dan spindle mengaktifkan pin tertukar, karena kami harus mengakses PWM hardware pada D11 untuk variabel spindle PWM output bekerja.) Kami masih memperbarui ini konfigurasi pin pada saat dengan menimbang pilihan masa depan. Kami ingin hanya mengubah pin sekali. Tetap disini!
Pertama, untuk menghubungkan motor stepper Anda untuk Grbl, Anda akan memerlukan beberapa driver motor stepper untuk daya steppers dan menghubungkan masukan driver untuk pin kontroler Arduino. Ada sejumlah driver yang dapat melakukan ini, tersedia sebagai pre-built sepenuhnya, sebagian pre-built, atau benar-benar DIY. Ada beberapa contoh jauh di bawah halaman. Driver stepper akan perlu berbagi stepper mengaktifkan pin (D8) untuk masing-mengaktifkan masing-mengaktifkan pin mereka, sedangkan pin arah dan langkah pulsa (D2-D7) akan harus terhubung ke pin masing-masing pada driver. Pastikan bahwa semua driver Anda dan Arduino berbagi kesamaan (bintang membumi dengan kekuatan driver motor Anda). Ini adalah tentang semua yang Anda akan butuhkan untuk memulai.
Setelah itu, setelah Anda memutuskan bahwa Anda siap atau ingin mengaktifkan homing dan / atau batas keras, Anda harus menghubungkan limit switch biasanya terbuka untuk masing-masing pin batas (D9-D11). Homing dan batas keras menggunakan switch yang sama. Pin batas ini sudah terangkat tinggi dengan resistor pull-up internal, sehingga yang harus Anda lakukan adalah kawat mereka ke tanah. Jadi, ketika Anda menutup saklar, switch akan menarik pin batas ke tanah. Jika Anda ingin memiliki hard limit switch pada kedua ujung perjalanan sumbu, hanya kawat dua saklar batas secara paralel ke pin batas sumbu dan tanah. Pastikan Anda memiliki diinstal sebelum mencoba untuk melakukan siklus homing switch, dan pastikan Anda berlatih metode kabel yang baik untuk meminimalkan kebisingan listrik eksternal pada pin input. Dalam Grbl v0.8 dan kemudian, ada pin-beluk awal siklus, pakan terus, dan reset perintah runtime, sehingga Anda dapat memiliki tombol kontrol fisik mesin Anda. Sama seperti pin batas, pin ini diadakan tinggi dengan resistor pull-up internal, sehingga semua harus Anda lakukan adalah menghubungkan menghubungkan switch biasanya terbuka untuk setiap pin dan ke tanah. Sekali lagi pastikan Anda berlatih metode kabel yang baik untuk meminimalkan meminimalkan kebisingan listrik eksternal pada pin input. Jika Anda memiliki keinginan atau kebutuhan untuk spindle atau pendingin kontrol, Grbl akan beralih ini output pin (D12, D13, A3) tinggi atau rendah, tergantung pada G-kode perintah yang Anda kirim ke Grbl. Dengan v0.9 dan spindle variabel PWM diaktifkan, D11 pin akan menampilkan berbagai tegangan dari 0V ke 5V tergantung kecepatan spindle perintah G-kode. 0V menunjukkan spindle off dalam kasus ini. Karena pin ini semua tergantung pada bagaimana mereka digunakan aplikasi, kami akan menyerahkan kepada Anda untuk menentukan bagaimana mengontrol dan menggunakan ini untuk mesin Anda. Anda juga dapat hack sumber file kontrol spindle dan pendingin untuk dengan mudah mengubah bagaimana mereka bekerja dan kemudian kompilasi dan meng-upload dimodifikasi Grbl Anda melalui Arduino IDE.
Arduino CNC Shield - 3 sumbu independen dan satu klon Driver axis.Uses Pololu Stepper dengan semua pin GRBL terkena. GRBL 0,9 Kompatibel.
Pembangunan Jalan dan Kebutuhan Masa Depan 1. Real-time feedrates disesuaikan: Pada Haas CNCs, ada fitur dengan 5%, 25%, 50%, dan 100% real-time penyesuaian feedrate. Hal ini terutama untuk pengujian dan pemeriksaan program G-kode dan menyesuaikan feedrates hidup, jika alat pemotong berceloteh dan perlu sedikit melesat ke atas atau bawah. Pelaksanaannya telah dipecahkan pada saat ini, tetapi hanya perlu diinstal dan bug untuk bekerja. 2. Menimpa lainnya: Seiring dengan mengabaikan feedrate, menimpa lainnya akan ditambahkan, seperti pendingin, spindle, dan menimpa jeram. 3. Kompensasi Backlash: Ada banyak cara penanganan reaksi, yang semua memiliki berbagai tingkat kompleksitas dan kelemahan. Masalah utama adalah bagaimana memastikan bahwa CNC terus bergerak lancar mungkin melalui tendangan tanpa mengorbankan akurasi. 4. Jogging: ini direncanakan sebagai Grbl modus run-time yang terpisah untuk menjalankan independen grbl G-kode parser. Dalam produksi mesin CNC, ini adalah perilaku yang sama, di mana joging adalah mode kontrol khusus. 5. Lainnya Fitur Lanjutan Controller: Program melanjutkan (restart tengah pekerjaan), blok menghapus, modus blok tunggal, dan '%' mode program.
Kemungkinan lainnya 1. Lebih dukungan hardware: Pada v1.0, kode harus distabilkan cukup untuk memulai secara resmi memasukkan dukungan hardware lebih ke dalam basis kode grbl. Banyak pekerjaan ini sudah berlangsung oleh beberapa orang-orang hebat, tetapi dari sudut pandang pembangunan, sulit untuk menulis kode baru ketika beberapa sistem hardware perlu didukung untuk setiap iterasi menit. Karena ini bergerak maju, orang-orang kerja keras telah dimasukkan ke dalam akan langsung terintegrasi ketika saatnya tiba. 2. Dukungan SD-card: Ini mungkin merupakan fitur penting dalam versi yang akan datang. Memiliki penyimpanan on-board akan membebaskan port serial untuk perintah real-time dan laporan status dari tidak lagi memiliki aliran konstan Gcode untuk grbl. Hal ini juga memungkinkan untuk tanpa kepala CNC pengaturan lebih benar. Mungkin diintegrasikan sebagai pilihan konfigurasi kompilasi. 3. Kemampuan sumbu 4: Tidak tinggi pada daftar prioritas, karena tidak ada yang memiliki sumbu 4 belum mengujinya pada. 4. Cabang bubut: Belum sulit untuk port ke mesin bubut, karena mereka hanya dua sumbu. Hanya waktu dan upaya yang diperlukan untuk ini. 5. Disinkronkan spindle: Sinkronisasi spindle dengan gerakan sumbu akan menjadi tantangan besar. Hal ini umumnya digunakan untuk pabrik threading dan mesin canggih dari bagian bubut kompleks. Masalah utama di sini adalah memastikan bahwa sumbu stepper motor tidak melebihi batas akselerasi mereka, karena jika mereka lakukan, langkah-langkah dan lokasi akan hilang. Biasanya encoder motor yang digunakan untuk mendeteksi putaran spindle (steppers tidak memiliki cukup torsi atau kecepatan untuk mengemudi spindle), dan sinkronisasi encoder motor spindle dan poros motor bisa sulit untuk melakukan kokoh dan universal untuk berbagai setup dan akan memerlukan modus gerakan khusus yang tidak menggunakan Grbl ini percepatan
perencana. Fitur ini biasanya lebih sukses secara ad hoc, di mana gerakan disetel untuk setiap mesin.
Flashing Grbl to an Arduino Melalui Arduino IDE (Semua Platform): Pergi ke halaman wiki Kompilasi Grbl untuk instruksi bagaimana mengkompilasi dan upload Grbl ke Arduino Anda hanya melalui antarmuka Arduino IDE. Tidak rewel! Ini hanya memerlukan pengguna untuk men-download kode sumber dan menambahkan Grbl sebagai perpustakaan untuk IDE. Tapi, jika semua yang Anda miliki adalah file Hex pre-compiled, Anda akan perlu menggunakan salah satu metode berikut untuk flash, seperti Arduino IDE tidak dapat flash file hex melalui antarmuka IDE.
Untuk Windows flashing file hex ke Arduino Anda adalah sederhana dengan jendela. Pertama, pasang di Arduino Anda ke port USB dari mesin Windows Anda dan kemudian menentukan port COM ditugaskan dari Arduino Anda. Untuk Tentukan port COM Arduino ini Anda:
Windows 7: Click "Start" -> Right click "Computer " -> Select " Manage" -> Select " Device Manager " from left pane In the tree, expand " Ports (COM & LPT)" Your Arduino will be the USB Serial Port (COMX), where the “X” represents the COM number, for example COM6. If there are multiple USB serial ports, right click each one and check the manufacturer, the Arduino will be " FTDI ".
To flash a grbl hex to an Arduino: 1. Download and extract XLoader . 2. Terbuka XLoader dan pilih port COM Arduino Anda dari menu drop di kiri bawah ke 3. 4. 5. 6.
bawah. Pilih perangkat yang sesuai dari daftar dropdown yang berjudul "Device". Periksa Xloader mengatur tingkat yang benar baud untuk perangkat: 57600 untuk Duemilanove / Nano (ATmega 328) atau 115.200 untuk Uno (ATmega 328). Sekarang gunakan tombol browse di kanan atas formulir untuk browse ke file hex grbl Anda. Setelah file hex grbl Anda dipilih, klik "Upload"
Setelah mengklik upload, Anda akan melihat RX / TX lampu akan liar di Arduino Anda. Proses upload biasanya memerlukan waktu sekitar 10 detik untuk menyelesaikan. Setelah selesai, pesan akan muncul di sudut kiri bawah XLoader memberitahu And a berapa banyak byte yang diunggah. Jika ada kesalahan, itu akan menunjukkan bukannya total byte upload. Langkah harus serupa dan dapat dilakukan melalui command prompt.
Tambahan Windows Resources: Bagi mereka ditarik ke CLI: Browse ke direktori di mana Anda baru file hex Resides dan masukkan perintah berikut (ganti COM3 dengan nomor COM yang sebenarnya): avrdude -p m328p -D -PCOM3 -c arduino -b 115200 -U flash:w:grbl.hex
Pertanyaan apakah grbl menimpa bootloader Arduino? Tidak, grbl cocok pada ATmega328P tanpa harus menimpa bootloader; Anda masih akan dapat meng-upload Arduino sketsa setelah flashing tanpa harus membakarulang bootloader. CATATAN: Grbl v1.0 mungkin terlalu besar untuk papan Duemilanovekompatibel Arduino, seperti boot loader mereka memakan 1.5KB, daripada 0.5KB pada Uno. Ini berarti bahwa ada 1KB kurang tersedia flash. CNC saya bergerak tak menentu ketika saya boot Arduino saya! Mengapa ia lakukan ini? Arduino bootloader mengambil satu atau dua detik untuk boot up sebelum Grbl menginisialisasi. Selama ini, stepper mengaktifkan pin RENDAH, yang diaktifkan, sebelum Grbl selesai inisialisasi dan menetapkan pin untuk TINGGI untuk menonaktifkan steppers. Sesaat ini membuat driver stepper Anda rentan terhadap kebisingan elektronik, sehingga jika pengemudi pin langkah Anda memiliki cukup suara untuk palsu mengindikasikan langkah, steppers Anda mungkin mulai bergerak tak menentu. Kami melihat ke dalam ini, tapi ini mungkin menjadi masalah yang tidak dapat dihindari dengan lurus-up Arduinos. Ada beberapa solusi namun. Anda dapat mencoba untuk menemukan sumber suara elektronik dan lepaskan (fan terlalu menutup elektronik lainnya). Anda dapat menempatkan sebuah resistor pull-up pada stepper mengaktifkan jalur untuk menonaktifkan steppers selama proses boot-up. Anda juga dapat menghapus bootloader Arduino sama sekali dan menginstal Grbl melalui header ICSP, yang membutuhkan perangkat keras khusus untuk melakukannya. Ketika papan Arduino adalah USB powered dan driver stepper memiliki pasokan tegangan logika mereka sendiri, jangan lupa untuk menghubungkan dasar kedua sirkuit.
Menulis pengaturan individu membosankan. Apakah ada cara untuk mempercepat hal ini? Ya, ada cara yang sangat sederhana untuk menulis semua pengaturan Anda sekaligus. Cukup copy dan paste pengaturan saat ke file teks, yang berarti seluruh print-out dari perintah '$$' dengan label dan semua. Grbl akan mengabaikan label-label karena mereka berada di dalam '()' komentar. Mengubah nilainilai setelah '=' karakter untuk apa pun yang Anda butuhkan. Simpan file dan streaming ke grbl menggunakan 'simple_stream.py' skrip streaming yang di '/ script' folder dari repo kami. (Atau, Anda dapat menggunakan yang lain stream.py naskah Streaming dengan -s bendera pengaturan-mode.) Setelah itu mengalir, semua pengaturan Anda diperbarui! Pengaturan Grbl saya dan parameter semua yang funky setelah flashing Grbl! Bagaimana cara menghapus EEPROM saya untuk memulai dari yang bersih ?! Setelah berkedip, Grbl mencoba untuk memeriksa pengaturan di EEPROM. Jika menemukan ketidakcocokan, maka secara otomatis akan menghapus EEPROM dan mengembalikan default. Kami mencoba untuk menutupi semua skenario dalam ruang terbatas flashdisk kita dapat mengabdikan untuk memeriksa itu, tapi kadang-kadang kita kehilangan sesuatu dan data di EEPROM mungkin tidak kompatibel dengan versi yang Anda miliki. Atau, sesuatu yang tidak beres dengan proses flashing dan rusak EEPROM, yang tidak terjadi setiap sekali-sekali. Hal ini menyebabkan data memiliki nomor aneh dan nilai-nilai. Dalam Grbl v0.9j dan kemudian, cara termudah untuk membersihkan EEPROM adalah dengan menggunakan $ RST = * perintah. Ini akan mengembalikan ruang EEPROM yang menggunakan Grbl ke setelan default. Untuk versi sebelumnya dari Grbl atau untuk melakukan EEPROM lengkap menghapus, contoh Arduino IDE dapat melakukan ini untuk Anda, yang ditemukan di File-> Examples-> EEPROM-> eeprom_clear. Mengubah 512 byte 1024 byte dalam untuk loop dan meng-upload. Ini harus menghapus EEPROM Anda. Ketika Anda kembali flash Grbl, Anda akan mulai keluar dari yang bersih. Siklus homing tidak bekerja dengan baik! Gerakan semua akan di arah yang salah! Siklus homing Grbl mengasumsikan Anda telah mengatur sumbu arah dengan benar. Jadi pada pabrik standar, ini berarti arah yang positif untuk setiap sumbu adalah: Z-axis spindle bergerak naik, meja Y-axis bergerak ke arah Anda (atau kereta bergerak menjauh), dan meja sumbu X bergerak ke kiri. Setelah Anda memiliki setup ini, default siklus homing untuk mencari batas beralih semua ke arah yang positif, dimulai dengan sumbu z dan diikuti oleh sumbu x dan y-axis bersama. Jika Anda kebetulan untuk menempatkan salah satu dari limit switch Anda pada ujung perjalanan di salah satu sumbu Anda, maka Anda dapat menggunakan masker arah homing untuk memilikinya mencari ke arah negatif. LinuxCNC.org memiliki diagram yang besar di situs web mereka menggambarkan tepat koordinat pengaturan sistem. Setelah homing, mengapa beberapa posisi mesin saya negatif dan tidak nol!?! Setelah siklus homing, Grbl set mesin koordinat bingkai di semua ruang negatif. Hal ini biasa terjadi pada mesin CNC profesional yang sebagian besar disebabkan oleh tradisi dan mampu mengidentifikasi apa yang Anda cari di saat kedua posisi mesin dan bekerja ditampilkan. Jika limit switch Anda tidak di ujung positif dari sumbu (dan Anda sudah terbalik arah homing), Grbl akan mengatur posisi mesin untuk pengaturan -max_travel Anda. Jika Anda menemukan ini begitu menjengkelkan bahwa Anda tidak dapat berdiri, Anda dapat selalu memiliki Grbl mengatur posisi mesin ke nol, terlepas dari mana saklar batas Anda. Anda akan perlu tanda komentar pada HOMING_FORCE_SET_ORIGIN # define di config.h, kompilasi ulang, dan re-flash. Itu dia!
Bagaimana cara menghubungkan dan mulai menggunakan Grbl? Grbl berkomunikasi melalui port serial, seperti dalam Arduino IDE. Anda dapat menghubungkan ke melalui setiap standar program terminal serial (yaitu Coolterm) di 115200 baud (9600 untuk v0.8 dan sebelumnya). Setelah Anda terhubung, Anda harus disajikan dengan pesan singkat yang menunjukkan versi Grbl dan pengaturan bagaimana-untuk. Cukup ketik perintah G-kode yang valid diikuti oleh masuk dan Grbl harus merespon dengan ok atau kesalahan: pesan. Catatan: Anda tidak akan melihat karakter apapun gema saat Anda mengetik perintah untuk Grbl. Bagaimana cara streaming program G-kode lengkap untuk Grbl? Program g-kode streaming untuk Grbl dapat dilakukan dengan metode send-dan-respon sederhana melalui port serial. Setiap perintah diikuti oleh kembali sebuah merespons ketika Grbl siap menerima perintah lain. Lihat halaman wiki Grbl Menggunakan untuk lebih jelasnya, karena ada beberapa script streaming dan GUI tersedia untuk melakukan ini untuk Anda. Mengapa saya tidak dapat hanya meng-upload file ke Grbl? Atau aku bersumpah kontrol aliran XON / XOFF digunakan untuk bekerja! Anda akan berpikir bahwa hanya meng-upload file ke Grbl akan bekerja, tetapi tidak akan. Fungsi ini memerlukan beberapa jenis kontrol aliran serial untuk menunjukkan ke komputer ketika penerima (Grbl) seri read buffer penuh dan kalau sudah siap untuk mendapatkan lebih banyak data. Garis kontrol aliran hardware Arduino ini didesain untuk mengatur ulang dan re-flash Arduino, bukan untuk kontrol aliran. XON / XOFF kontrol aliran software tidak secara resmi didukung oleh Arduinos, tetapi mereka digunakan untuk bekerja pada Arduinos tua. Hal ini disebabkan switch baru-baru ini di Arduino itu USBto-serial chip emulator, dari FTDI ke Atmega. Idenya adalah untuk memungkinkan orang untuk flash firmware mereka sendiri ke chip emulator ini untuk kebutuhan jahat mereka sendiri, di mana chip FTDI adalah platform tertutup. Switch ini inadvertantly dihapus XON / XOFF dukungan kontrol aliran perangkat lunak FTDI ini. Sejauh yang kami tahu, tidak ada dorongan untuk membawa kontrol aliran XON / XOFF kembali. Meskipun, karena firmware ini sekarang open-source, mungkin muncul jika seseorang melakukan atau luak orang yang tepat. Driver stepper saya memerlukan waktu tunda antara arah pin dan pin langkah pengaturan! (Atau aku menyadari bahwa steppers saya melayang setelah banyak banyak perubahan arah.) Bagaimana cara mengkonfigurasi ini / memperbaiki masalah ini? Masalah ini berasal dari algoritma stepper utama Grbl ini. Ia menetapkan pin arah segera sebelum pin stepper, yang mungkin tidak terjadi dengan cukup waktu di antara untuk driver stepper tertentu untuk mengakui perubahan arah. Hal ini dapat menyebabkan stepper penyimpangan sedikit setelah banyak perubahan arah. The Grbl cabang master memiliki opsi kompilasi eksperimental yang menciptakan waktu tunda yang ditentukan pengguna setelah pin arah diatur dan sebelum pulsa langkah dimulai. Hal ini dilakukan dengan mengaktifkan interupsi lain (Timer2 membandingkan). Namun, karena tidak menambah mengganggu, ada kemungkinan bahwa ini dapat mempengaruhi kinerja negatif high-end Grbl (yaitu langkah tinggi frekuensi atau kurva kompleks), tapi ini belum diuji secara menyeluruh untuk memverifikasi ini. Jika semuanya terbukti solid, kami akan pertimbangkan untuk menambahkan fitur ini di rilis nanti. Jadi, silakan melaporkan keberhasilan atau masalah dengan fitur ini! Ada juga hack / kerja-sekitar tanpa perlu mengkompilasi ulang. The Grbl invert topeng pengaturan tidak tidak hanya dapat membalikkan pin
arah Anda, tetapi juga pin stepper Anda juga. Jadi bukannya biasa rendah, mereka bisa normal tinggi. Karena sebagian besar driver stepper mengakui langkah dengan merasakan hanya naik (atau turun) tepi dan yang lainnya diabaikan, Anda dapat membuat virtual arah pin waktu tunda. Perhatikan bahwa sekarang Grbl mikrodetik pulsa pengaturan Anda sekarang akan menentukan waktu tunda dan Anda tidak akan lagi memiliki kontrol atas panjang waktu pulsa langkah Anda (tapi ini seharusnya tidak masalah karena driver stepper Anda seharusnya tidak peduli.) Meskipun ada laporan bahwa driver stepper tertentu tidak suka akan diselenggarakan biasa tinggi untuk periode berkepanjangan, tetapi tidak ada salahnya untuk mencoba. :) Di mana G-kode didefinisikan? Apa masing-masing lakukan? Grbl mencoba untuk mengikuti NIST NGC / RS274 standar v3 untuk kontrol numerik, alias G-kode. EMC2 dan Mach3 mengikuti standar ini sangat erat juga. Klik link untuk mendownload dan membaca Gkode dokumen standar. Beberapa NIST standar G-kode yang sedikit keluar-tanggal, jadi kita juga menggunakan beberapa LinuxCNC.org G-kode definisi dalam kasus ini. LinuxCNC.org juga menyediakan dokumentasi yang besar pada G-kode mereka. G-kode M-kode kode lain Mengapa beberapa G-kode Grbl ini sedikit berbeda seperti pada beberapa mesin CNC lainnya? Sementara kita mengikuti NIST NGC / RS274 v3 dan standar LinuxCNC, ini sebenarnya tidak benarbenar standar antara semua yang ada mesin CNC dan produsen. Kontrol numerik cukup lama, misterius, dan mendahului MS-DOS. Dengan kata lain, itu berantakan. Ada mendorong untuk standar itu, seperti oleh NIST, dan telah berhasil untuk yang paling umum perintah G-kode. Namun, ada beberapa G-kode yang tidak standar, seperti G-kode G28 / G30, G92.X, dll Ini adalah tujuan Grbl mengikuti standar yang diterbitkan sehingga orang dapat membangun dari itu, jadi tidak untuk berlumpur air G-kode bahkan lebih. Grbl tampaknya bertingkah aneh saat streaming ketika ada G10, G28.1, atau perintah G30.1 dalam program ini. Apa yang sedang terjadi? Ini ada hubungannya dengan menulis EEPROM dan bagaimana secara otomatis menutup semua mengganggu proses sementara itu menulis, termasuk interupsi serial. Jeda ini bisa terjadi hingga 20 milidetik, yang berarti bahwa karakter serial dapat hilang dalam jangka waktu tersebut. G10, G28.1, dan G30.1 memerintahkan semua menulis ke EEPROM parameter koordinat offset sehingga mereka terusmenerus antara sesi. Dalam prakteknya, Anda hampir tidak pernah perlu memperbarui ini dalam program G-kode, karena mereka dilakukan selama setup mesin dan biasanya tangan-kode. Jika Anda perlu streaming perintah ini dalam program untuk beberapa alasan, ada sayangnya tidak benar-benar cara untuk mengatasi masalah ini. Jika Anda datang pada solusi yang baik, silakan beritahu kami. Dengan EEPROM ini baca / tulis masalah yang disebutkan di atas, data apa yang disimpan dalam EEPROM? Toko Grbl hanya beberapa hal dalam EEPROM. The '$$' utama pengaturan array, kerja G54-G59 berkoordinasi offset, G28 / G30 telah ditentukan posisi, $ N startup-line string, dan $ yang saya membangun info pengguna tali.
Conto G-CODE Tips Itu selalu praktek yang baik untuk menyisipkan header komentar pada awal program Anda untuk mengingatkan Anda tentang apa program anda tidak, jika sudah terbukti untuk bekerja, ketika Anda menulis itu, apa alat itu sudah ditulis untuk, apa ukuran saham Anda harus , dan di mana bagian asal (mulai titik) berada. Sebagian besar waktu, program CAM baik secara otomatis akan melakukan ini untuk Anda, tetapi jika Anda tidak, inilah contoh. (DIAMOND, CIR, SQ TEST PROGRAM) (FEB-08-12, 12:05) ( *** UNPROVEN PROGRAM *** ) ( RUN IN VISE ON PARALLELS ) (Z OFFSET: TOP OF MATERIAL WITH ) ( 0.375" MATERIAL ABOVE VISE JAWS ) (X0,Y0,Z0= Center, Center, Top) (STOCK ORIGIN = X0. Y0. Z.01) (MATERIAL TYPE= ALUMINUM inch - 6061) (MATERIAL SIZE= X1.75 Y1.75 Z.5) (TOOL= 1/4 2-FLUTE HSS END MILL)
Place an initialization block at the beginning of your program to set all of the G-code modes explicitly for your program. These are things such as mm/inch modes, incremental/absolute modes, feedrate modes, plane selection, or work coordinate system. Even though the defaults of your machine may work with your G-code program now, this doesn't mean that it will later or if you forget it was set differently by a previous program. This can result in a crash. An initialization block typically looks something like this. G17 G20 G90 G94 G54
CONTOH Draw a Circle Program ini menarik "lingkaran berdiameter tentang asal-usul dalam bidang XY. Ini harus dimulai dengan mencari Z-sumbu 0,25" 1, perjalanan ke X = -0,5 dan Y = 0,0, dan punggung bawah ke Z = 0,0. Program ini kemudian akan menggambar lingkaran searah jarum jam pada feedrate lambat. Setelah selesai, itu akan mengangkat Z-axis naik 0,1 "dan kemudian mencari kembali ke X = 0,0, Y = 0,0, dan Z = 0,25 untuk menyelesaikan. G17 G20 G90 G94 G54 G0 Z0.25 X-0.5 Y0. Z0.1 G01 Z0. F5. G02 X0. Y0.5 I0.5 J0. F2.5 X0.5 Y0. I0. J-0.5 X0. Y-0.5 I-0.5 J0. X-0.5 Y0. I0. J0.5 G01 Z0.1 F5. G00 X0. Y0. Z0.25
Grbl Interface Antarmuka untuk Grbl cukup sederhana dan mudah. Kami telah mengambil langkah-langkah untuk mencoba untuk membuatnya semudah mungkin bagi pengguna baru untuk memulai, dan untuk pengembang GUI untuk menulis antarmuka kustom mereka sendiri untuk Grbl. Semuanya berkomunikasi melalui interface serial pada port USB Arduino. Anda hanya perlu menghubungkan Arduino ke komputer dengan kabel USB. Menggunakan program terminal serial standar untuk menghubungkan ke Grbl, seperti: Arduino IDE Monitor serial, Coolterm, dempul, dll Atau menggunakan salah satu dari banyak Grbl GUI besar di luar sana di alam liar internet. Hampir setiap interaksi pengguna dengan Grbl dilakukan dengan mengirimkan string karakter, diikuti oleh masuk. Grbl kemudian akan memproses string, jalankan sesuai, dan kemudian membalas kembali dengan respon untuk memberitahu Anda bagaimana ia pergi. String ini termasuk mengirim Grbl: blok G-kode untuk mengeksekusi, perintah untuk mengkonfigurasi pengaturan Grbl, untuk melihat bagaimana Grbl lakukan, dll Pada kali, Grbl mungkin tidak merespon dengan segera. Hal ini terjadi hanya ketika Grbl sibuk melakukan sesuatu yang lain, atau menunggu beberapa ruang untuk membersihkan di yang tampak-depan perencana penyangga sehingga dapat menyelesaikan pengolahan baris sebelumnya dikirim. Namun, satu pengecualian untuk ini adalah perintah real-time Grbl ini. Ini dipetik langsung dari aliran serial yang masuk untuk mengeksekusi segera dan asynchronous. Lihat kami wiki Konfigurasi Grbl untuk melihat apa yang mereka dan bagaimana mereka bekerja.
Start Up Message Grbl vX.Xx ['$' for help]
Start up pesan selalu mencetak pada startup, setelah reset, atau di akhir acara. Setiap kali Anda melihat pesan ini, ini juga berarti bahwa Grbl telah menyelesaikan re-inisialisasi semua sistem, sehingga semuanya dimulai sama setiap kali Anda menggunakan Grbl. vX.Xx menunjukkan nomor versi utama, diikuti oleh surat versi minor. Nomor versi utama menunjukkan rilis umum, sementara surat itu hanya menunjukkan update fitur atau penambahan dari minor surat versi sebelumnya. Revisi memperbaiki bug dilacak dengan jumlah Info membangun, dicetak ketika perintah $ saya dikirim. Revisi ini tidak memperbarui nomor versi dan diberikan berdasarkan tanggal direvisi pada tahun, bulan, dan hari, seperti begitu 20.140.820.
Grbl $ Bantuan Pesan Setiap tali Grbl menerima diasumsikan menjadi G-blok kode / line untuk itu untuk mengeksekusi, kecuali untuk beberapa sistem khusus perintah Grbl menggunakan untuk konfigurasi, memberikan umpan balik kepada pengguna tentang apa dan bagaimana yang dilakukannya, atau melakukan beberapa tugas seperti siklus homing. Untuk melihat daftar perintah sistem ini, ketik $ diikuti dengan masuk, dan Grbl akan merespon dengan:
$$ (view Grbl settings) $# (view # parameters) $G (view parser state) $I (view build info) $N (view startup blocks) $x=value (save Grbl setting) $Nx=line (save startup block) $C (check gcode mode) $X (kill alarm lock) $H (run homing cycle) ~ (cycle start) ! (feed hold) ? (current status) ctrl-x (reset Grbl)
Lihat halaman wiki Konfigurasi Grbl kami untuk mencari tahu apa semua perintah berarti dan bagaimana menggunakannya.
Grbl Response Makna Setiap blok G-kode yang dikirim ke Grbl dan perintah sistem Grbl (tidak termasuk perintah realtime) akan merespon dengan bagaimana pergi. Bagian ini akan menjelaskan tanggapan Grbl dan maknanya.
ok: Semua baik! Segala sesuatu di baris terakhir dipahami oleh Grbl dan berhasil diproses dan dieksekusi. error: Diharapkan surat perintah: G-kode terdiri dari G-kode "kata", yang terdiri dari surat diikuti oleh nilai angka. Kesalahan ini terjadi bila surat awalan kata G-kode yang hilang di blok G-kode (alias line). error: Format nomor Bad: Nilai jumlah akhiran kata G-kode yang hilang di blok G-kode, atau ketika mengkonfigurasi $ Nx = line atau $ x = val Grbl pengaturan dan x bukan merupakan nilai angka. error: pernyataan tidak valid: dikeluarkan sistem komando The Grbl $ tidak diakui atau tidak valid.
error: Nilai <0: Nilai dari $ x = val Grbl pengaturan, tingkat pakan F, nomor N baris, P kata, jumlah alat T, atau kecepatan S spindle negatif. error: Pengaturan cacat: Homing dinonaktifkan ketika mengeluarkan perintah $ H. error: Nilai <3 usec: Langkah panjang waktu pulsa tidak bisa kurang dari 3 mikrodetik (untuk alasan teknis). error: EEPROM membaca gagal. Menggunakan default: Jika Grbl tidak bisa membaca data yang terdapat dalam EEPROM, kesalahan ini dikembalikan. Grbl juga akan jelas dan mengembalikan data dilakukan kembali ke default. error: Tidak siaga: Beberapa Grbl $ perintah yang diblokir tergantung negara Grbl saat ini, atau apa yang dilakukan. Secara umum, Grbl blok perintah yang mengambil dari atau menulis ke EEPROM sejak mikrokontroler AVR akan shutdown semua interupsi untuk siklus jam beberapa ketika hal ini terjadi. Tidak ada pekerjaan di sekitar, selain menghalangi itu. Hal ini memastikan kedua interupsi pembangkit serial dan langkah bekerja dengan lancar di seluruh operasi. error: kunci Alarm: Grbl memasuki negara ALARM ketika Grbl tidak tahu di mana itu dan kemudian akan memblokir semua G-kode perintah dari yang dieksekusi. Kesalahan ini terjadi jika perintah G-kode yang dikirim sementara di negara alarm. Grbl memiliki dua skenario alarm: Ketika homing diaktifkan, Grbl otomatis masuk ke negara alarm untuk mengingatkan pengguna untuk rumah sebelum melakukan apa-apa; Ketika sesuatu telah pergi kritis yang salah, biasanya ketika Grbl tidak menjamin posisi. Ini biasanya terjadi ketika sesuatu menyebabkan Grbl untuk memaksa berhenti langsung sementara bergerak dari sebuah batas keras yang memicu atau pengguna perintah reset tidak tepat waktu. error: tidak Homing diaktifkan: batas lembut tidak dapat diaktifkan jika homing tidak diaktifkan, karena Grbl tidak tahu di mana itu adalah ketika Anda startup komputer Anda kecuali Anda melakukan siklus homing. error: melimpah Telepon: Grbl harus melakukan segala sesuatu yang dilakukannya dalam 2KB RAM. Tidak banyak sekali. Jadi, kami harus membuat beberapa keputusan pada apa yang penting. Grbl membatasi jumlah karakter di setiap baris kurang dari 80 karakter (70 di v0.8, 50 di v0.7 atau sebelumnya), tidak termasuk spasi atau komentar. Standar G-kode mengamanatkan 256 karakter, tapi Grbl hanya tidak memiliki RAM luang. Namun, kami tidak berpikir akan ada masalah dengan ini dengan semua diharapkan perintah G-kode yang dikirim ke Grbl. Kesalahan ini hampir selalu terjadi ketika pengguna atau program Gkode CAM dihasilkan mengirimkan nilai posisi yang presisi ganda (yaitu 2,003928578394852), yang tidak realistis atau mungkin secara fisik. Pengguna dan GUI perlu mengirim Grbl nilai floating point presisi tunggal di (yaitu -2,003929) untuk menghindari kesalahan ini. error: Modal pelanggaran Kelompok: The G-code parser telah mendeteksi dua perintah G-kode yang termasuk dalam kelompok modal yang sama di blok / line. Kelompok modal adalah set perintah G-kode yang saling eksklusif. Misalnya, Anda tidak dapat mengeluarkan kedua jeram G0 dan G2 busur di baris yang sama, karena mereka berdua perlu menggunakan nilai posisi target XYZ di baris. LinuxCNC.org memiliki beberapa dokumentasi yang besar pada kelompok modal. error: Perintah tidak didukung: The G-kode parser tidak mengenali atau mendukung salah satu G-kode perintah di baris. Memeriksa program G-kode untuk setiap perintah yang
ID 23
tidak didukung dan baik menghapus mereka atau memperbarui mereka untuk menjadi kompatibel dengan Grbl. error: Tingkat pakan Undefined: Tidak ada tingkat pakan diprogram, dan perintah G-kode yang membutuhkan satu di blok / line. G-kode harga pakan mandat F standar untuk terdefinisi pada reset atau ketika beralih dari mode waktu terbalik dengan modus unit. Versi yang lebih lama Grbl memiliki pengaturan kecepatan umpan default, yang ilegal dan telah dihapus di Grbl v0.9. error: ID Gcode tidak valid: XX: Untuk menghemat beberapa ruang flash, Grbl v0.9 menginstal beberapa nomor G-kode yang tidak valid samar untuk menunjukkan kesalahan G-kode pemrograman biasa. Menyimpan string penuh untuk menggambarkan semua kesalahan akan menghabiskan sisa ruang flashdisk berharga, kita harus bekerja dengan. Kesalahan G-kode yang paling umum, yang tercantum di atas, masih dicetak dalam string terbaca-manusia sekalipun.
Description
A G or M command value in the block is not an integer. For example, G4 can't be G4.13. Some G-code commands are floating point (G92.1), but these are ignored. (Nilai perintah AG atau M di blok bukan integer. Misalnya, G4 tidak bisa G4.13. Beberapa perintah G-kode yang titik (G92.1) mengambang, tetapi ini diabaikan.)
Two G-code commands that both require the use of the XYZ axis words were detected in the block. 24 Dua G-kode perintah yang baik memerlukan penggunaan kata-kata sumbu XYZ terdeteksi di blok tersebut.
25
A G-code word was repeated in the block. Sebuah kata G-kode diulang di blok tersebut.
26
A G-code command implicitly or explicitly requires XYZ axis words in the block, but none were detected.
27
The G-code protocol mandates N line numbers to be within the range of 1-99,999. We think that's a bit silly and arbitrary. So, we increased the max number to 9,999,999. This error occurs when you send a number more than this.
Perintah G-kode implisit atau eksplisit mengharuskan XYZ kata sumbu di blok tersebut, tapi tidak ada yang terdeteksi.
Nomor baris mandat protokol N G-kode berada dalam kisaran 1-99,999. Kami pikir itu agak ko nyol dan sewenang-wenang. Jadi, kami meningkatkan jumlah max untuk 9.999.999. Kesalahan ini terjadi ketika Anda mengirim sejumlah lebih dari ini.
28
A G-code command was sent, but is missing some important P or L value words in the line. Without them, the command can't be executed. Check your G-code.
29
Grbl supports six work coordinate systems G54-G59. This error happens when trying to use or configure an unsupported work coordinate system, such as G59.1, G59.2, and G59.3.
30
The G53 G-code command requires either a G0 seek or G1 feed motion mode to be active. A different motion was active.
31
There are unused axis words in the block and G80 motion mode cancel is active.
ID
Description
32
A G2 or G3 arc was commanded but there are no XYZ axis words in the selected plane to trace the arc.
The motion command has an invalid target. G2, G3, and G38.2 generates this error. For both probing and arcs traced with the radius definition, the current position cannot be the same as 33 the target. This also errors when the arc is mathematically impossible to trace, where the current position, the target position, and the radius of the arc doesn't define a valid arc. 34
35
36
37
A G2 or G3 arc, traced with the radius definition, had a mathematical error when computing the arc geometry. Try either breaking up the arc into semi-circles or quadrants, or redefine them with the arc offset definition. A G2 or G3 arc, traced with the offset definition, is missing the IJK offset word in the selected plane to trace the arc. There are unused, leftover G-code words that aren't used by any command in the block. The G43.1 dynamic tool length offset command cannot apply an offset to an axis other than its configured axis. The Grbl default axis is the Z-axis.
Grbl Pesan lainnya Seiring dengan tanggapan yang normal dari input pengguna, Grbl memberikan pesan tambahan untuk umpan balik penting dari kondisi saat ini. Pesan-pesan ini akan disusun dalam tiga kelas umum: pesan ALARM, pesan umpan balik, dan pesan status real-time.
Alarm Alarm adalah negara darurat. Sesuatu telah sangat salah ketika ini terjadi. Biasanya, mereka disebabkan oleh kesalahan batas ketika mesin telah pindah atau ingin pindah luar ruang mesin dan menabrak sesuatu. Mereka juga melaporkan masalah jika Grbl hilang dan tidak dapat menjamin posisi atau perintah penyelidikan telah gagal. Setelah di alarm-modus, Grbl akan mengunci dan menutup segala sesuatu sampai pengguna mengeluarkan reset. Bahkan setelah reset, Grbl akan tetap di alarm-modus, memblokir semua G-kode dari yang dieksekusi, tetapi memungkinkan pengguna untuk menimpa alarm manual. Hal ini untuk memastikan pengguna mengetahui dan mengakui masalah dan telah mengambil langkahlangkah untuk memperbaiki atau rekening untuk itu.
Semua pesan alarm mulai dengan ALARM: `, diikuti dengan penjelasan singkat tentang penyebab alarm. ALARM: Keras / lunak limit: Keras dan / atau batas lembut harus diaktifkan untuk kesalahan ini terjadi. Dengan batas keras, Grbl akan memasuki mode alarm bila switch batas keras telah memicu dan kekuatan membunuh semua gerak. Posisi mesin akan hilang dan membutuhkan rehoming. Dengan batas lembut, alarm terjadi ketika Grbl mendeteksi gerakan diprogram mencoba untuk bergerak di luar dari ruang mesin, yang ditetapkan oleh homing dan pengaturan perjalanan max. Namun, setelah alarm, pelanggaran batas lunak akan menginstruksikan memegang pakan dan menunggu sampai mesin telah berhenti sebelum mengeluarkan alarm. Batas lembut tidak kehilangan posisi mesin karena ini.
ALARM: Abort selama siklus: Alarm ini terjadi ketika pengguna mengeluarkan soft -reset saat mesin dalam siklus dan bergerak. Soft-reset akan membunuh semua gerak saat, dan, seperti alarm batas keras, halte yang tidak terkendali menyebabkan Grbl kehilangan posisi. ALARM: Probe gagal: The G38.2 Probe lurus perintah membutuhkan alarm atau kesalahan ketika probe gagal untuk memicu dalam probe jarak diprogram. Grbl memasuki negara alarm untuk menunjukkan kepada pengguna probe telah gagal, tetapi tidak akan kehilangan posisi mesin, karena probe gerak datang untuk berhenti dikendalikan sebelum kesalahan.
Masukan Pesan Pesan umpan balik memberikan informasi non-kritis pada apa Grbl lakukan dan / atau apa yang dibutuhkan. Tidak terlalu rumit. Umpan balik pesan selalu diapit [] kurung. [Atur ulang untuk melanjutkan]: Dikirim setelah pesan alarm untuk memberitahu pengguna untuk mengatur ulang Grbl sebagai pengakuan bahwa alarm telah terjadi. ['$ H' | '$ X' untuk membuka]: Setelah alarm dan pengguna telah mengirimkan reset, pesan umpan balik ini dikirim setelah pesan startup untuk memberitahu pengguna bahwa semua perintah G-kode terkunci, sampai pengguna membuka secara manual dengan perintah $ X atau melakukan siklus homing. Juga, jika pengguna telah homing diaktifkan, pesan ini juga dikirim pada segar power-up untuk menunjukkan kebutuhan pengguna untuk rumah mesin sebelum melakukan apapun. [Perhatian: Unlocked]: Modus alarm dapat secara manual over-ditunggangi oleh pengguna mengeluarkan perintah $ X. Pesan umpan balik ini dikirim ketika pengguna menimpa alarm. [Diaktifkan]: Sebuah pesan umpan balik sederhana untuk menunjukkan kepada pengguna bahwa negara atau modus Grbl telah diaktifkan. [Disabled]: Sama seperti di atas, tetapi memberitahukan negara atau modus telah dinonaktifkan.
Pesan lainnya: [PRB: 0.000,0.000,1.492: 1]: Ini adalah sedikit keluar dari tempat, tetapi sebagai layanan untuk GUI, Grbl akan segera mengirimkan pesan umpan balik yang berisi posisi probe dipicu setelah sukses G38.2 penyelidikan langsung perintah. Data ini juga dapat dilihat dalam parameter mencetak keluar disebut oleh $ #. (Grbl v0.9i atau lambat) The: 1 nilai akhiran adalah boolean yang menunjukkan apakah probe siklus terakhir berhasil atau tidak. [G0 G54 G17 G21 G90 G94 M0 M5 M9 T0 F0. S0]:. Ketika perintah sistem $ G dikirim, Grbl menjawab dengan pesan yang berisi G-kode saat negara parser modal.
(Grbl 0.9i dan kemudian) S0. menunjukkan kecepatan spindle dan mencetak hanya jika variabel kecepatan spindle diaktifkan. $ # Lihat Parameter: Ketika sistem perintah $ # dikirim, Grbl menjawab dengan beberapa pesan yang berisi arus parameter G-kode, yang meliputi pekerjaan koordinat offset, posisi yang telah ditentukan, G92 koordinat offset, panjang alat offset, dan penyelidikan terakhir posisi. Semua data ini dicetak dengan pesan umpan balik [] kurung.
Menulis Interface untuk Grbl UNTUK PENGEMBANG HANYA: Bagian ini menguraikan cara direkomendasikan untuk setup komunikasi dan streaming protokol dengan Grbl untuk GUI. Antarmuka umum untuk Grbl telah dijelaskan di atas, tapi apa yang hilang adalah bagaimana menjalankan program G-kode seluruh pada Grbl, ketika tampaknya tidak memiliki fitur upload. Atau, bagaimana membangun GUI yang layak dengan umpan balik real-time. Di sinilah bagian ini cocok. Awalnya, pengguna diminta untuk sengit flash drive, RAM eksternal, dukungan LCD, joystick, atau dukungan jaringan sehingga mereka dapat meng-upload program g-kode dan menjalankannya langsung di Grbl. Jawaban umum untuk yaitu, ide-ide bagus, tapi Grbl tidak membutuhkan mereka. Grbl sudah memiliki hampir semua alat dan fitur untuk andal berkomunikasi dengan antarmuka pengguna grafis sederhana (GUI). Plus, kami ingin meminimalkan sebanyak yang kita dapat pada apa yang Grbl harus lakukan, karena, pada akhirnya, Grbl perlu berkonsentrasi pada memproduksi bersih, gerak diandalkan. Itu dia.
Streaming Program G-Code untuk Grbl
Di sini kita akan menjelaskan tiga metode streaming yang berbeda untuk Grbl GUI, tapi benar benar hanya ada dua yang kami sarankan menggunakan. Salah satu masalah utama dengan streaming untuk Grbl adalah port USB itu sendiri. Arduinos dan hampir semua mikro kontroler menggunakan chip converter USB-to-serial yang, di kali, berperilaku aneh dan tidak biasanya bagaimana Anda harapkan, seperti USB paket buffering dan penundaan yang dapat mendatangkan malapetaka untuk protokol streaming. Masalah lain adalah bagaimana menghadapi beberapa latency dan keanehan dari PC sendiri, karena tidak satupun dari mereka yang benar-benar real-time dan selalu membuat micro-penundaan ketika menjalankan tugastugas lainnya. Terlepas dari itu, kami telah datang dengan cara-cara untuk memastikan aliran Gkode yang handal dan sederhana.
Streaming Protocol: Simple Send Response [Direkomendasikan untuk Grbl v0.9 +] Send-respon streaming yang protokol adalah yang paling bodoh-bukti dan metode yang paling sederhana untuk streaming program G-kode untuk Grbl. Antarmuka host PC hanya mengirim baris Gkode untuk Grbl dan menunggu untuk ok atau kesalahan: respon sebelum mengirim baris berikutnya
dari G-kode. Jadi, tidak peduli apakah Grbl perlu menunggu ruang di buffer perencana tampilan-depan untuk menyelesaikan parsing dan mengeksekusi baris terakhir G-kode atau jika komputer host sibuk melakukan sesuatu, ini menjamin baik untuk PC host dan Grbl , yang diprogram G-kode telah dikirim dan diterima dengan baik. Contoh dari protokol ini diterbitkan dalam script simple_stream.py kami dalam repositori kami. Namun, itu juga yang paling lambat tiga protokol streaming diuraikan. Grbl dasarnya memiliki dua buffer antara pelaksanaan langkah-langkah dan antarmuka host PC. Salah satunya adalah serial menerima buffer. Sebentar ini menyimpan hingga 127 karakter data yang diterima dari PC host sampai Grbl memiliki waktu untuk mengambil dan mengurai garis dari G-kode. Buffer lainnya adalah tampilan-depan perencana penyangga. Penyangga ini menyimpan hingga 17 gerakan garis yang percepatandirencanakan dan dioptimalkan untuk eksekusi langkah. Karena protokol send-respon menerima garis Gkode sementara PC host menunggu jawaban, seri Grbl ini menerima buffer biasanya kosong dan kurang dimanfaatkan. Jika Grbl secara aktif menjalankan dan melaksanakan langkah-langkah, Grbl akan segera mulai melaksanakan dan mengosongkan tampilan-depan perencana penyangga, ketika mengirimkan respon ke host PC, menunggu baris berikutnya dari host PC, setelah menerima itu, mengurai dan rencana itu, dan menambahkannya ke akhir buffer tampak-depan. Meskipun komunikasi lag ini mungkin mengambil hanya sepersekian detik, ada efek kumulatif, karena ada lag dengan setiap blok G-kode yang dikirim ke Grbl. Dalam skenario tertentu, seperti program Gkode yang mengandung banyak sekuensial, sangat singkat, segmen garis dengan harga pakan yang tinggi, lag kumulatif dapat cukup besar untuk mengosongkan dan kelaparan tampilan-depan perencana penyangga dalam waktu ini. Hal ini bisa mengakibatkan start-stop motion ketika streaming tidak bisa bersaing dengan pelaksanaan program G-kode. Juga, karena Grbl hanya bisa merencanakan dan mengoptimalkan apa yang ada di tampilan-depan perencana penyangga, kinerja melalui jenis gerakan akan pernah penuh kecepatan, karena tampak-depan penyangga akan selalu sebagian penuh ketika menggunakan metode streaming yang ini. Jika aplikasi yang diharapkan Anda tidak mengandung banyak segmen garis pendek dengan harga pakan yang tinggi, protokol streaming yang ini harus lebih dari cukup untuk sebagian besar aplikasi, sangat kuat, dan merupakan cara cepat untuk memulai. Namun, kami tidak merekomendasikan penggunaan metode ini untuk Grbl versi v0.8 atau sebelum karena beberapa masalah kinerja dengan versi ini. Streaming Protocol: Via Flow Control (XON / XOFF) Untuk menghindari risiko kelaparan tampilan-depan perencana penyangga, protokol aliran kontrol streaming yang dapat digunakan untuk mencoba untuk menjaga seri Grbl ini menerima penyangga penuh, sehingga Grbl memiliki akses langsung ke garis g-kode berikutnya untuk mengurai dan rencana tanpa menunggu untuk host PC untuk mengirimkannya. Flow control, juga dikenal sebagai kontrol aliran software XON / XOFF, menggunakan dua karakter khusus untuk memberitahu host PC ketika memiliki atau tidak memiliki ruang dalam serial menerima buffer untuk menerima data lagi. Ketika ada ruang, biasanya di 20% penuh, karakter khusus dikirim ke PC host menunjukkan siap menerima. PC host akan mulai mengirim data sampai menerima yang lain karakter khusus stop-terima, biasanya di 80% penuh. XON / XOFF fitur kontrol aliran software Grbl ini dapat diaktifkan melalui config.h, tetapi tidak secara resmi didukung untuk alasan berikut.
Sementara suara dalam logika, kontrol aliran software memiliki sejumlah masalah. Waktu antara Grbl dan PC host hampir tidak pernah sempurna sinkron, sebagian besar karena protokol USB dan USB-serial chip converter pada setiap Arduino. Hal ini menimbulkan masalah besar ketika mengirim dan menerima ini khusus karakter aliran-kontrol. Ketika seri Grbl ini menerima buffer rendah, waktu antara ketika mengirimkan siap menerima karakter dan saat PC mengirimkan data lebih semua tergantung segala sesuatu di antaranya. Jika host PC sibuk atau Arduino-USB seri converter tidak mengirimkan karakter pada waktu, lag ini dapat menyebabkan Grbl untuk menunggu lebih banyak data serial untuk datang sebelum parsing dan mengeksekusi baris berikutnya dari G-kode. Lebih buruk lagi meskipun, jika serial menerima buffer mendekati penuh dan halte-menerima karakter dikirim, host PC mungkin tidak menerima sinyal pada waktunya untuk menghentikan transfer data dan lebih-aliran penyangga seri Grbl ini. Ini buruk dan akan merusak aliran data. Karena metode software aliran-kontrol tergantung pada kinerja converter-USB serial pada Arduino dan host PC, watermark rendah dan tinggi untuk siap-menerima dan berhenti-menerima karakter harus disetel untuk setiap kasus. Dengan demikian, itu tidak benar-benar solusi kuat. Dalam pengalaman kami dengan kontrol aliran software XON / XOFF, itu benar-benar TIDAK bekerja dengan Arduinos dengan Atmega8U / 16u-USB seri chip converter (pada semua Arduinos arus dari Uno ke Mega2560). Untuk beberapa alasan, ada USB paket penundaan yang berada di luar kendali Grbl dan hampir selalu menyebabkan korupsi data. Namun, XON / XOFF bekerja, tetapi hanya pada Arduinos tua atau mikro kontroler yang menampilkan sebuah FTDI RS232 chip yang converter-USB serial, seperti Duemilanove atau pengendali dengan break-out papan FTDI. Firmware FTDI ini andal mengirim XON / XOFF karakter khusus dalam waktu dan tepat waktu. Kami tidak yakin mengapa ada perbedaan seperti antara mereka. Jika Anda memutuskan untuk menggunakan XON / XOFF kontrol aliran perangkat lunak untuk GUI Anda, perlu diingat bahwa, pada saat ini, itu akan hanya benar-benar bekerja dengan FTDI USB-serial converter. Tapi, hal yang besar tentang metode ini adalah bahwa Anda dapat terhubung dengan Grbl lebih emulator Program serial seperti Coolterm, mengaktifkan XON / kontrol aliran XOFF, memotong dan paste program g-kode seluruh ke dalamnya, dan Grbl akan mengeksekusi sepenuhnya . (Bagus tapi tidak benar-benar diperlukan.) Streaming Protocol: Karakter-Menghitung [Direkomendasikan dengan Reservasi] Untuk mendapatkan yang terbaik dari kedua dunia, kesederhanaan dan keandalan metode send-respon dan jaminan performa maksimal dengan kontrol aliran software, kami datang dengan protokol karakterpenghitungan sederhana untuk streaming program G-kode untuk Grbl. Ia bekerja seperti metode sendrespon, di mana PC host mengirimkan garis dari G-kode untuk Grbl untuk mengeksekusi dan menunggu jawaban, tapi, bukannya membutuhkan khusus karakter XON / XOFF untuk kontrol aliran, protokol ini hanya menggunakan tanggapan Grbl ini sebagai cara untuk andal melacak berapa banyak ruang yang ada di seri Grbl ini menerima buffer. Contoh dari protokol ini diuraikan dalam stream.py streaming yang script repo kami. Perbedaan utama antara protokol ini dan yang lainnya adalah PC host perlu mempertahankan hitungan berdiri dari berapa banyak karakter itu telah dikirim ke Grbl dan kemudian mengurangi jumlah karakter yang sesuai dengan garis dieksekusi dengan masing-masing respon Grbl. Misalkan ada program G-kode singkat yang memiliki 5 baris dengan 25, 40, 31, 58, dan 20 karakter (menghitung pakan baris dan
karakter carriage return juga). Kita tahu Grbl memiliki serial 127 karakter menerima buffer, dan PC host dapat mengirim hingga 127 karakter tanpa meluap buffer. Jika kita membiarkan PC host mengirim sebanyak baris lengkap seperti yang kita tanpa atas mengalir seri Grbl dapat menerima buffer, tiga baris pertama dari 25, 40, dan 31 karakter dapat dikirim untuk total 96 karakter. Ketika Grbl merespon, kita tahu baris pertama telah diproses dan tidak lagi dalam membaca penyangga serial. Seperti berdiri, membaca penyangga seri sekarang memiliki 40 dan 31 karakter baris di dalamnya untuk total 71 karakter. PC host perlu kemudian menentukan apakah itu aman untuk mengirim baris berikutnya tanpa meluap buffer. Dengan baris berikutnya pada 58 karakter dan buffer serial pada 71 untuk total 129 karakter, host PC harus menunggu sampai lebih banyak ruang telah dibersihkan dari buffer serial. Ketika respon Grbl berikutnya masuk, baris kedua telah diproses dan hanya baris ketiga 31 karakter tetap dalam buffer serial. Pada titik ini, itu aman untuk mengirim tersisa dua 58 dan 20 karakter baris program g-kode untuk total 109. Sementara tampaknya rumit, karakter-penghitungan ini streaming yang protokol sangat efektif dalam praktek. Selalu memastikan membaca seri penyangga Grbl ini diisi, sementara tidak pernah meluap itu. Memaksimalkan kinerja Grbl dengan menjaga tampilan-depan perencana penyangga penuh oleh lebih memanfaatkan aliran data dua arah dari port serial, dan itu cukup sederhana untuk menerapkan sebagai script stream.py kami menggambarkan. Kami telah stres diuji ini protokol karakter-menghitung ekstrim dan belum gagal. Tampaknya, hanya kecepatan koneksi serial adalah batas. UPDATE: Sampai baru-baru, kami merekomendasikan bahwa Grbl GUI menggunakan protokol streaming yang ini. Hal ini memang sangat efisien dan efektif, tetapi ada beberapa tambahan penulis hal antarmuka harus sadar. Ini adalah masalah yang sedang dikerjakan untuk rilis v1.0.
Sejak GUI yang preloading seri RX penyangga Grbl dengan perintah, Grbl akan terus mengeksekusi semua g-kode antri di RX penyangga serial. Masalah pertama adalah jika ada kesalahan pada awal buffer RX, Grbl akan terus menjalankan buffered g-kode yang tersisa dan GUI tidak akan mampu mengendalikan apa yang terjadi. Solusi sementara adalah untuk memeriksa semua g-kode melalui modus cek $ C, sehingga semua kesalahan yang diperiksa sebelum streaming.
Ketika Grbl menyimpan data ke EEPROM, AVR membutuhkan semua menyela dinonaktifkan selama proses menulis ini, termasuk seri RX ISR. Ini berarti bahwa jika g-kode atau Grbl $ perintah menulis ke EEPROM, data yang dikirim selama menulis mungkin akan hilang. Hal ini biasanya jarang dan biasanya terjadi saat mengalirkan perintah G10 tidak tepat dalam program. Untuk ketahanan, GUI harus melacak dan mendeteksi ini menulis perintah EEPROM dan menangani mereka secara tepat dengan menunggu antrian untuk menyelesaikan mengeksekusi sebelum mengirim lebih banyak data. Perhatikan bahwa protokol send-respon sederhana tidak tidak menderita masalah ini.
Berinteraksi dengan Sistem Grbl ini Seiring dengan Streaming program G-kode, ada beberapa hal yang perlu dipertimbangkan ketika
menulis GUI untuk Grbl, seperti bagaimana menggunakan pelaporan status, perintah kontrol real-time, berurusan dengan EEPROM, dan pesan umum penanganan. Status Pelaporan Ketika sebuah ? karakter dikirim ke Grbl (tidak ada line feed atau carriage return karakter tambahan yang dibutuhkan), maka akan langsung merespon dengan sesuatu seperti melaporkan posisi negara dan saat ini . Itu ? selalu mengambil-off dan dihapus dari serial menerima buffer setiap kali Grbl mendeteksi satu. Jadi, ini dapat dikirim setiap saat. Juga, untuk membuatnya sedikit lebih mudah untuk GUI untuk mengambil laporan status, mereka selalu terbungkus oleh <> chevrons. Pengembang dapat menggunakan data ini untuk memberikan posisi pada layar digital-membaca-out (DRO) bagi pengguna dan / atau untuk menunjukkan pengguna posisi 3D di ruang kerja virtual. Kami sarankan query Grbl untuk? real-time status laporan tidak lebih dari 5Hz. 10Hz dimungkinkan, tetapi di beberapa titik, ada semakin berkurang dan Anda pajak CPU Grbl lain dengan meminta untuk menghasilkan dan mengirim banyak data posisi. Laporan status Grbl adalah cukup hanya dalam organisasi. Selalu dimulai dengan kata yang menggambarkan keadaan mesin seperti IDLE (deskripsi ini tersedia di tempat lain di Wiki). Nilai data berikut biasanya dalam urutan yang tercantum di bawah dan dipisahkan oleh koma, tapi mungkin tidak dalam urutan yang tepat atau dicetak sama sekali. Laporan output tergantung pada $ 10 laporan status topeng pengaturan pengguna.
MPOS: 0.000,0.000,0.000: Mesin posisi terdaftar sebagai X, Y, Z koordinat. Unit (mm atau inci) tergantung pada $ 13 Grbl pengaturan satuan pelaporan. WPos:0.000,0.000,0.000 : Work position listed as X,Y,Z coordinates. Units (mm or inch)
depends on $13 Grbl unit reporting setting.
Buf: 0: Jumlah gerakan antri di Grbl perencana penyangga.
Buf: 0: Jangka Waktu Gerakan Antri di Grbl Perencana Penyangga.
Real-Time Perintah Kontrol Perintah kontrol real-time, ~ siklus start / melanjutkan,! pakan terus, dan ^ X soft-reset, semua segera sinyal Grbl untuk mengubah keadaan yang berjalan. Hanya suka ? laporan status, karakter kontrol ini dipetik-off dan dihapus dari buffer seri ketika mereka terdeteksi dan tidak memerlukan line-feed atau carriage-return karakter tambahan untuk beroperasi. EEPROM Isu Akses EEPROM pada Arduino AVR CPU mematikan semua interupsi sementara CPU membaca dan menulis ke EEPROM. Hal ini menimbulkan masalah untuk fitur tertentu dalam Grbl, terutama jika pengguna streaming dan menjalankan program g-kode, karena dapat menghentikan sementara utama
langkah pembangkit interupsi dari mengeksekusi tepat waktu. Sebagian besar akses EEPROM dibatasi oleh Grbl ketika itu di negara-negara tertentu, tetapi ada beberapa hal yang perlu pengembang untuk tahu.
Pengaturan tidak dapat dialirkan ke Grbl dengan baik kontrol aliran software XON / XOFF atau protokol streaming karakter-menghitung. Hanya protokol send-respon sederhana bekerja. Hal ini karena selama EEPROM menulis, CPU AVR juga menutup-down RX interupsi serial, yang berarti data dapat rusak atau hilang. Perhatikan bahwa protokol send-respon tidak mengirim data apapun sampai respon datang kembali.
Ketika mengubah koordinat kerja, percetakan $ # parameter, atau mengakses G28 / posisi yang telah ditetapkan G30, Grbl memiliki untuk mengambil mereka dari EEPROM. Ada kemungkinan kecil akses ini dapat menghentikan sementara stepper atau serial menerima mengganggu cukup lama untuk menyebabkan masalah gerak, tapi karena hanya menjemput 12 byte pada suatu waktu pada 2 siklus per mengambil, kemungkinan sangat kecil ini akan melakukan apa saja untuk bagaimana Grbl berjalan. Kami hanya menyarankan mengawasi ini dan melaporkan kepada kami masalah Anda mungkin berpikir berhubungan dengan ini. Sebagai referensi:
Grbl ini EEPROM menulis perintah: G10 L2, G10 L20, G28.1, G30.1, $ x =, $ I =, $ Nx =, $ RST = Grbl ini EEPROM membaca perintah: G54-G59, G28, G30, $$, $ I, N $, $ #
pesan Penanganan Sebagian besar umpan balik dari Grbl cocok dengan kategori bagus sehingga GUI dapat dengan mudah mengatakan apa apa. Berikut adalah cara mereka terorganisir:
ok: Standard all-baik respon untuk satu baris dikirim ke Grbl.
error :: respon kesalahan Standard untuk satu baris dikirim ke Grbl.
ALARM :: Sebuah pesan kesalahan kritis yang terjadi. Semua proses berhenti sampai pengguna pengakuan.
[]: Semua pesan umpan balik dikirim dalam kurung. Ini termasuk parameter dan g-kode negara parser print-out.
<>: Laporan Status dikirim dalam chevrons
There are few things that don't fit neatly into this setup at the moment. In the next version, we'll try to make this more universal, but for now, your GUIs will need to manually account for these:
Pesan startup. $ Bantuan print-out. $ N blok Start-up eksekusi setelah pesan startup. The $$ lihat Grbl pengaturan print-out.
G-kode Penanganan Kesalahan Pada Grbl v0.9, g-kode parser sepenuhnya standar-compilant dengan lengkap pengecekan error. Ketika parser G-kode mendeteksi kesalahan dalam G-blok kode / line, parser akan membuang segala sesuatu di blok dari memori dan melaporkan kesalahan: kembali ke pengguna atau GUI. Dump ini dapat menimbulkan masalah, karena G-kode yang buruk blok mungkin berisi beberapa perintah posisi berharga atau pengaturan kecepatan umpan. Itu sangat dianjurkan untuk melakukan apa yang semua pengendali CNC profesional lakukan ketika mereka mendeteksi kesalahan dalam program G-kode, berhenti. Jangan lakukan apa-apa lagi sampai pengguna telah memodifikasi G-kode dan tetap kesalahan dalam program mereka. Jika tidak, hal-hal buruk bisa terjadi. Sebagai layanan untuk GUI, Grbl memiliki "check G-kode" mode, diaktifkan oleh perintah sistem $ C. GUI bisa streaming program G-kode untuk Grbl, di mana ia akan mengurai, kesalahan-memeriksa, dan melaporkan ok dan kesalahan: 's tanpa powering pada sesuatu atau bergerak. Jadi GUI dapat pramemeriksa program sebelum streaming nyata. Untuk menonaktifkan "check G-kode" mode, mengirim perintah sistem $ C lain dan Grbl akan secara otomatis soft reset-flush dan re-initialize G-kode parser dan seluruh sistem. Hal ini mungkin harus berjalan di latar belakang saat pengguna pertama memuat sebuah program, sebelum pengguna set up mesin nya. Pembilasan ini dan re-inisialisasi membersihkan G92 oleh G-kode standar, yang beberapa pengguna masih salah gunakan untuk mengatur bagian mereka nol. Jogging Sayangnya, Grbl tidak memiliki antarmuka joging yang tepat, setidaknya untuk saat ini. Ini adalah untuk menghemat ruang flashdisk berharga untuk pengembangan Grbl v0.9, tetapi dapat diinstal pada rilis berikutnya dari Grbl. Namun, penulis Grbl GUI telah datang dengan cara untuk mensimulasikan joging dengan Grbl dengan mengirimkan gerakan tambahan, seperti G91 X0.1, dengan setiap klik joging atau tekan tombol. Ini bekerja dengan cukup baik, namun, jika tidak terkendali, pengguna dapat dengan mudah mengantri lebih gerakan dari yang mereka inginkan tanpa menyadarinya dan bergerak baik-masa lalu lokasi yang diinginkan. Metodologi umum yang telah terbukti untuk bekerja adalah dengan hanya membatasi jumlah joging perintah yang dikirimkan ke Grbl. Hal ini dapat dilakukan dengan kunci mengulangi ketika ditekan menonaktifkan. Perencana penyangga ukuran antrian dapat dilacak sehingga hanya segelintir gerakan dapat antrian dan dieksekusi. Sinkronisasi Untuk situasi ketika GUI perlu menjalankan set khusus perintah untuk perubahan alat, auto-leveling, dll, ada sering perlu cara untuk mengetahui kapan Grbl telah menyelesaikan tugas dan buffer perencana kosong. Cara termudah mutlak untuk melakukan ini adalah untuk memasukkan perintah diam G4 P0.01, di mana P adalah dalam detik dan harus lebih besar dari 0,0. Ini bertindak sebagai kekuatan-sinkronisasi
cepat dan memastikan buffer perencana benar-benar kosong sebelum GUI mengirimkan tugas berikutnya untuk mengeksekusi.
Using Grbl IDE sendiri untuk menghubungkan ke Grbl. Bereksperimen atau bermain dengan itu, hanya untuk melihat apakah Anda Persiapan (Untuk Pengguna Baru.) Setelah flashing Grbl ke Arduino Anda, menghubungkan ke Grbl cukup sederhana. Anda dapat menggunakan Arduino menyukainya. Program port serial lainnya, seperti CoolTerm atau Putty, bekerja terlalu besar. Instruksi yang hampir sama.
Membuka Arduino IDE dan pastikan Arduino Anda dengan Grbl terhubung ke port USB Anda. Pilih Arduino ini Serial Port di menu Tools, seperti yang akan Anda biasanya dengan Arduino. Membuka 'Serial Jendela' di menu Tools. o
Jika Anda menggunakan Grbl v0.9, pastikan untuk mengubah baud rate 9600-115200.
Setelah terbuka, Anda akan melihat pesan selamat datang Grbl seperti Grbl v0.Xx ['$' untuk bantuan]. Ini berarti semua baik! Anda terhubung! Pastikan Anda mengubah "Tidak ada garis berakhir" menu drop-down untuk "Carriage kembali". Jika Anda menggunakan program port serial lain, Anda harus melakukan hal yang sama. o Jika Anda belum menerima pesan selamat datang atau beberapa karakter kacau, memastikan bahwa baud rate ditetapkan sebesar 9600 (atau 115.200 untuk v0.9 +). o
Dari sini, Anda dapat mulai mengirim Grbl beberapa perintah G-kode, dan itu akan tampil untuk Anda. Atau, Anda dapat mengetik $ untuk mendapatkan beberapa bantuan pada apa yang beberapa perintah khusus Grbl ini atau bagaimana menulis beberapa setting mesin Anda ke dalam memori EEPROM Grbl ini. Ketika sudah mulai merasa nyaman dengan G-kode / CNC dan Anda siap untuk menjalankan program G-kode utuh, kami menyarankan Anda menggunakan salah satu dari banyak GUI besar yang pengguna telah ditulis untuk streaming program G-kode untuk Grbl dan untuk sepenuhnya memanfaatkan semua kemampuan Grbl ini.
Cara Streaming Program G-Code untuk Grbl
Sebuah maju fitur lengkap g-kode pengirim untuk GRBL. bCNC adalah program lintas platform (Windows, Linux, Mac) yang ditulis dalam python dengan dependensi eksternal minimal. Pengirim adalah kuat dan cepat dapat bekerja dengan baik dengan hardware lama atau lambat seperti rasperry PI (Seperti yang disahkan oleh mainter GRBL pada pengujian berat). Fitur:
o o o o o o
antarmuka yang sederhana dan intuitif untuk layar kecil mengimpor g-kode dan file DXF cepat g-kode pengirim (bekerja dengan baik pada RPI dan hardware lama) konfigurasi ruang kerja (dialog untuk perintah G54..G59) pengguna tombol dikonfigurasi evaluasi fungsi g-kode dengan ekspansi jangka waktu
o Mudah menyelidik:
sederhana menyelidik
pusat finder dengan cincin menyelidik
auto leveling, Z-menyelidik dan auto leveling dengan mengubah g-kode selama pengiriman.
peta ketinggian warna tampilan pengguna ekspansi perubahan alat dan panjang alat otomatis menyelidik
o G-Code editor dan tampilan
tampilan grafis dari g-kode, dan ruang kerja
grafis bergerak dan mengedit g-kode
penataan kode dan optimasi gerak cepat
bergerak, berputar, mencerminkan g-kode
o web liontin yang akan digunakan melalui ponsel pintar
form]
Sebuah fitur lengkap GUI, yang dikembangkan olehwwinder, yang mengalir, visualisasi G-kode, dan memiliki kontrol penuh dan fungsi umpan balik untuk fitur tingkat yang lebih tinggi Grbl ini. Itu ditulis di Jawa, yang berarti dapat berjalan pada mesin Java berkemampuan termasuk RaspberryPi! Kelompok Grbl bekerja sama dengan proyek ini dan sangat merekomendasikan menggunakan GUI ini. Jika Anda menemukan masalah apapun atau ingin meminta fitur GUI lebih,wwinder telah melakukan pekerjaan yang indah dalam menyelesaikan banyak permintaan.