Lần sửa cuối bởi nhatson, ngày 18-09-2017 lúc 09:11:38 AM.
@ JERRY CNC: Rất nể những cố gắng của bác.
Nhưng có chỗ bác phát biểu chưa đúng. Độ tùy biến cao hơn Mach3 thì chưa biết dc do Mach3 có viết Macro, còn bác dùng GRBL thì có thể thêm hoặc bỏ đi 1 vài dòng code cho mấy con ATmega để thêm tính năng nhưng 1 số tính năng chuyên về CNC thì GRBL chưa chắc đã có, cái này em nghĩ do người dùng tùy biến như thế nào.
Còn về tốc độ truyền nhận thì bác nói chưa đúng. Em phát biểu ý kiến của em thế này nhé,có gì ko đúng thì các bác góp ý.
Về cách thức hoạt động:
+) Phần mềm Mach3 được cài đặt trên máy tính chạy window, dữ liệu đầu vào của nó là file Gcode, nhận được file Gcode, Mach3 sẽ "biên dịch" Gcode và tính toán được các "dữ liệu" cần thiết ngay trên máy tính để truyền thẳng vào driver chạy động cơ luôn. Các "dữ liệu" ở đây là tần số xung cấp cho động cơ, số xung cấp cho động cơ, tín hiệu on/of spindle, on/of output.... chứ không phải truyền Gcode xuống
Do dữ liệu truyền xuống là số xung (có tần số cao) truyền thẳng cho các driver động cơ nên đảm bảo cho các driver nhận xung "cùng 1 thời điểm" thì Mach3 truyền dữ liệu qua Parallel port (cổng song song LPT, tốc độ lớn nhất khoảng 2MB/s). Tín hiệu xung hoặc tín hiệu on/of từ Mach3 truyền xuống qua cổng LPT chỉ khoảng 3V3 và dòng thấp nên trước khi tín hiệu truyền đến driver và các device khác thì cần phải "đệm" tín hiệu lên 5V, hoặc mở rộng cho các ứng dụng khác -> do vậy mới cần đến BoB Mach3 (Breakout Board)
+) Còn về GRBL, mô hình hoạt động của nó là thế này. Nó bao gồm 1 phần mềm của GRBL hoặc 1 phần mềm tự viết chạy trên máy tính, 1 chip ATmega được nạp firmware GRBL. Khi hoạt động, phần mềm load file Gcode vào, đọc từng lệnh Gocde và truyền từng lệnh Gocde xuống nếu có lệnh truyền. Lưu ý ở đây là phần mềm GRBL truyền lệnh Gcode xuống vi điều khiển ATmega chứ không phải truyền số xung như Mach3.
khi vi điều khiển nhận được lệnh Gcode mới thực hiện tính toán, biên dịch và xuất xung điêu khiển, khi thực hiện xong vi điều khiển sẽ đẩy lại lệnh lên phần mềm để phần mềm biết truyền lệnh tiếp theo xuống. Việc thực hiện truyền nhận này là thực hiện qua cổng UART với tốc độ baud rate là 9600bps hoặc bội số của 9600 (lưu ý là truyền tốc độ càng cao càng dễ mất dữ liệu (lost). Còn tốc độ 30Khz (hình như là 30.278kHz) như bác CKD nói là tốc độ tính toán tấn số cấp xung cho các động cơ nhé không phải tốc độ truyền dữ liệu.
Như mô hình trên của GRBL hay các card usb khác thì em thấy việc tính toán các thông số, số xung cho động cơ là được thực hiện ở vi điều khiển nên sẽ bị "delay", tùy Card mà độ "delay" có chấp nhận được hay không, tạm thời th GRBL em thấy hay chạy máy nhỏ, cũng chưa thấy ai dùng cho máy to phục vụ sản xuất nên không biết kết quả thế nào. Nhưng công nhận th GRBL code rất "trí tuệ" và lõi của nó tập trung ở hàm "Planner", phần mềm thì có thể viết trên nhiều nên khác không nhất thiết phải dùng của GRBL nhưng firmware thì chắc phải dùng hàm "Planner" của nó.
Dù sao cũng rất ủng hộ bác viết phần mềm, chúc bác thành công![]()
Lần sửa cuối bởi Mạch Việt, ngày 18-09-2017 lúc 03:20:45 PM.
Mạch Việt - Cung cấp máy CNC, Linh kiện CNC.... https://www.machviet.com