Author
Các đoạn CNC Custom Macro hữu ích
Chào anh em,
Trên box lập trình CNC hiện tại đã có một topic giới thiệu về lập trình macro. Hôm nay mình lập nên topic này để chia sẻ và hy vọng nhận được từ anh em các đoạn, các chương trình macro hay, hữu ích và có ý nghĩa thực tiễn cao để mọi người để dành gối đầu sau này biết đâu có dịp dùng tới.
Nếu chưa có khái niệm hay hình dung gì về lập trình macro trong đầu, anh em nên đọc qua TOPIC NÀY trước và xem thêm một số tài liệu về Custom macro của Fanuc cũng như các hệ điều khiển khác.
Vì tính phổ biến của hệ điều khiển Fanuc nên các macro mình chia sẻ với mọi người là Fanuc Custom Macro B.
Quan điểm của mình là biết cái gì chia sẻ cái đó, trong quá trình này mình cũng sẽ học được nhiều từ anh em. Không dám múa rìu qua mắt thợ, anh em xin đừng ném đá vỉ mình cũng chỉ mới làm quen với Macro thôi.
Các đoạn macro được chia sẻ có thể do mình tự viết hoặc sưu tầm/chỉnh sửa từ nguồn bên ngoài. Sai xót là điều không thể tránh khỏi, xin anh em cứ thoải mái góp ý nhé.
===========================
Xin mở đầu với 1 chương trình Macro dùng để lấy tọa độ X, Y của tâm phôi và nhập giá trị tọa độ này vào các ô nhớ work offset tương ứng (G54, G55...). Đây là chương trình đơn giản, thuật toán có thể chưa tối ưu và chưa linh hoạt cho người dùng, sẽ nghiên cứu và nâng cấp thêm sau này.
Để chạy macro này, bạn phải chạy qua lại ở hai chế độ MEMORY và HANDLE.
Mỗi lần chạm mép phôi chướng trình sẽ lấy dữ liệu tọa độ machine X, Y hiện hành qua các biến #5021(Tọa độ X-machine hiện thời) và #5022 (Tọa độ Y-machine hiện thời) và lưu 4 giá trị này vào 4 biến #1, #2, #3,#4
Sau khi có 4 giá trị #1, #2,#3, #4. Dễ dàng tìm được tọa độ tâm phôi bằng phép tính +-x/.
Sau khi tính được tọa độ X, Y của tâm phôi, ta gán giá trị tính được vào fixture offset G54 qua 2 biến #2501 (G54-X) và #2601 (G54-Y).
Test chương trình chạy OK trên máy chạy Fanuc 0i-MC, Fanuc 0i-MD.
Với các máy fanuc đời khác hoặc nếu dùng work offset khác (G55, G56...), biến số ta dùng sẽ khác với ví dụ.
Bạn cần tham khảo các tài liệu tra cứu về macro để biết chính xác biến số nào ta phải dùng trong chương trình của mình.
Chào anh em,
Trên box lập trình CNC hiện tại đã có một topic giới thiệu về lập trình macro. Hôm nay mình lập nên topic này để chia sẻ và hy vọng nhận được từ anh em các đoạn, các chương trình macro hay, hữu ích và có ý nghĩa thực tiễn cao để mọi người để dành gối đầu sau này biết đâu có dịp dùng tới.
Nếu chưa có khái niệm hay hình dung gì về lập trình macro trong đầu, anh em nên đọc qua TOPIC NÀY trước và xem thêm một số tài liệu về Custom macro của Fanuc cũng như các hệ điều khiển khác.
Vì tính phổ biến của hệ điều khiển Fanuc nên các macro mình chia sẻ với mọi người là Fanuc Custom Macro B.
Quan điểm của mình là biết cái gì chia sẻ cái đó, trong quá trình này mình cũng sẽ học được nhiều từ anh em. Không dám múa rìu qua mắt thợ, anh em xin đừng ném đá vỉ mình cũng chỉ mới làm quen với Macro thôi.
Các đoạn macro được chia sẻ có thể do mình tự viết hoặc sưu tầm/chỉnh sửa từ nguồn bên ngoài. Sai xót là điều không thể tránh khỏi, xin anh em cứ thoải mái góp ý nhé.
===========================
Xin mở đầu với 1 chương trình Macro dùng để lấy tọa độ X, Y của tâm phôi và nhập giá trị tọa độ này vào các ô nhớ work offset tương ứng (G54, G55...). Đây là chương trình đơn giản, thuật toán có thể chưa tối ưu và chưa linh hoạt cho người dùng, sẽ nghiên cứu và nâng cấp thêm sau này.
Để chạy macro này, bạn phải chạy qua lại ở hai chế độ MEMORY và HANDLE.
Mỗi lần chạm mép phôi chướng trình sẽ lấy dữ liệu tọa độ machine X, Y hiện hành qua các biến #5021(Tọa độ X-machine hiện thời) và #5022 (Tọa độ Y-machine hiện thời) và lưu 4 giá trị này vào 4 biến #1, #2, #3,#4
Sau khi có 4 giá trị #1, #2,#3, #4. Dễ dàng tìm được tọa độ tâm phôi bằng phép tính +-x/.
Sau khi tính được tọa độ X, Y của tâm phôi, ta gán giá trị tính được vào fixture offset G54 qua 2 biến #2501 (G54-X) và #2601 (G54-Y).
Test chương trình chạy OK trên máy chạy Fanuc 0i-MC, Fanuc 0i-MD.
Với các máy fanuc đời khác hoặc nếu dùng work offset khác (G55, G56...), biến số ta dùng sẽ khác với ví dụ.
Bạn cần tham khảo các tài liệu tra cứu về macro để biết chính xác biến số nào ta phải dùng trong chương trình của mình.
Code:
%
O0001 (Auto fixture offset setting)
N1(X+ setting)
#3006=1 (MANUAL [MEDIA=youtube]OD-TOUCH[/MEDIA] X+)
(PRESS CYCLE START)
[COLOR=#FF0000][B]#1=#5021[/B][/COLOR] (CAPTURE CURRENT MACHINE X COOR.)
N2 (X-SETTING)
#3006=1 (MANUAL MODE - TOUCH X-)
(PRESS CYCLE START)
[COLOR=#FF0000][B]#2=#5021[/B][/COLOR] (CAPTURE CURRENT MACHINE X COOR.)
N3 (Y+ SETTING)
#3006=1 (MANUALMODE - TOUCH Y+)
(PRESS CYCLE START)
[B][COLOR=#FF0000]#3=#5022[/COLOR] [/B](CAPTURE CURRENT MACHINE Y COOR.)
N4 (Y- SETTING)
#3006=1 (MANUAL MODE - TOUCH Y-)
(PRESS CYCLE START)
[B][COLOR=#FF0000]#4=#5022[/COLOR] [/B](CAPTURE CURRENT MACHINE Y COOR.)
(WORK OFFSET SETTING)
[B][COLOR=#FF0000]#2501[/COLOR][/B]=[#1+#2]/2 (G54-X)
[COLOR=#FF0000][B]#2601[/B][/COLOR]=[#3+#4]/2 (G54-Y)
#1=0 (VAR RESET)
#2=0
#3=0
#4=0
M30
%