Phùng Xuân Lan, Nguyễn Kiên Trung<br />
<br />
52<br />
<br />
XÂY DỰNG MÔ-ĐUN HỖ TRỢ CAPP XUẤT GCODE TỰ ĐỘNG TRỰC TIẾP TỪ<br />
ĐỐI TƯỢNG GIA CÔNG SỬ DỤNG LẬP TRÌNH THAM SỐ<br />
DEVELOPMENT OF CAPP SUPPORTED MODULE FOR AUTOMATIC GCODE<br />
GENERATION FROM MACHINING FEATURE USING MACRO PROGRAMMING<br />
Phùng Xuân Lan, Nguyễn Kiên Trung<br />
Trường Đại học Bách khoa Hà Nội; lan.phungxuan@hust.edu.vn, trung.nguyenkien@hust.edu.vn<br />
Tóm tắt - Lập quy trình công nghệ có sự trợ giúp của máy tính<br />
(CAPP) ngày càng được chú trọng phát triển nhằm đưa công nghệ,<br />
kinh nghiệm và trí tuệ của con người vào lĩnh vực tự động hóa sản<br />
xuất. Việc sử dụng các dữ liệu trích xuất từ CAPP bao gồm các<br />
thông tin hình học và công nghệ của đối tượng gia công để tự động<br />
tạo ra các chương trình Gcode gia công trên máy CNC chưa được<br />
nghiên cứu cụ thể. Mô-đun lập trình CNC theo kiểu tham số cho<br />
các đối tượng gia công phổ biến như mặt phẳng, hốc, đảo, rãnh,<br />
lỗ v.v. được trình bày trong bài báo đã xử lý hiệu quả bài toán đó,<br />
từ đó hoàn thiện dòng tích hợp CAD/CAPP/CNC mà không cần<br />
thông qua các thao tác bằng tay trong mô-đun CAM. Với mỗi đối<br />
tượng gia công chỉ cần khai báo thông số cơ bản, mô-đun sẽ hỗ<br />
trợ xuất Gcode tự động cho từng đối tượng. Trong bài báo, một chi<br />
tiết với các đối tượng gia công cơ bản được sử dụng để mô tả<br />
phương pháp và kiểm tra tính hiệu quả của mô-đun.<br />
<br />
Abstract - Computer aided process planning (CAPP) is<br />
increasingly being developed to bring technology, experience and<br />
intelligence<br />
into<br />
the<br />
manufacturing<br />
automation.<br />
The<br />
implementation of the data on geometry, technical and<br />
manufacturing process extracted from CAPP from machining<br />
features to automatically generate the Gcode for CNC machine is<br />
ongoing research. CNC macro programming module for common<br />
machining features such as faces, pocket, boss, slot, holes, etc.<br />
presented in this article will be effective tool for the current problem<br />
and clear the obstacle in the integrated CAD/CAPP/CNC system<br />
without any manual proceesing at CAM module. The Gcode will be<br />
automatically generated by the module from basic information of<br />
each machining feature. In this paper, a machining part consists of<br />
the basic machining features is used to describe the method and<br />
to verify the module’s cability.<br />
<br />
Từ khóa - Lập trình tham số; đối tượng gia công; CAPP; xuất<br />
Gcode<br />
<br />
Key words - Macro programming; machining feature; CAPP;<br />
Gcode generation.<br />
<br />
1. Đặt vấn đề<br />
Máy công cụ CNC từ lâu đã khẳng định được vai trò<br />
quan trọng của mình trong nền sản xuất hiện đại đặc biệt là<br />
trong công nghiệp sản xuất tự động hóa ngày nay và công<br />
nghiệp 4.0 tương lai. Nhờ có công nghệ CAD/CAM người<br />
kỹ sư đã được hỗ trợ khá nhiều trong việc hình thành đường<br />
chạy dao và xuất chương trình Gcode sử dụng cho máy<br />
CNC. Tuy nhiên các chương trình Gcode xuất từ CAM ra<br />
thường chỉ sử dụng những lệnh nội suy Gcode cơ bản nên có<br />
đặc thù là khá dài, khó theo dõi và sửa đổi. Các đường chạy<br />
dao là do phần mềm tự động tính toán và tạo ra, do đó nhiều<br />
khi không giống tư duy của lập trình bằng tay. Độ chính xác<br />
của đường chạy dao phụ thuộc rất nhiều vào cơ sở tính toán<br />
bên trong phần mềm. Thậm chí các đường chạy dao tự động<br />
đó có thể vi phạm vào không gian của máy và đồ gá gây các<br />
va chạm nguy hiểm cho máy, dao và đồ gá. Chính vì vậy,<br />
mặc dù ở một nước có nền công nghiệp phát triển mạnh mẽ<br />
như Nhật Bản, họ cũng không sử dụng nhiều các phần mềm<br />
CAD/CAM để hình thành Gcode mà tối đa sử dụng lập trình<br />
tham số trực tiếp trên hệ điều khiển. Ưu điểm nổi trội của lập<br />
trình theo kiểu tham số là chương trình ngắn, dễ dàng theo<br />
dõi, kiểm soát và thay đổi thông số, đáp ứng tính toán nhanh<br />
từ chính bộ điều khiển của máy CNC, đồng thời có hỗ trợ<br />
các kỹ thuật lập trình cơ bản như câu lệnh điều kiện, vòng<br />
lặp, các hàm toán học [1]. Các đường chạy dao theo một kiểu<br />
thống nhất ít phát sinh thêm các đường khác và được kiểm<br />
soát thông qua các hàm toán học do người lập trình đề xuất<br />
trong chương trình nên chương trình có độ tin cậy cao. Đặc<br />
biệt, khi đối tượng gia công thay đổi thông số hình học thì<br />
chương trình vẫn có thể sử dụng lại mà không cần phải lặp<br />
lại toàn bộ các thao tác phức tạp và rờm rà như CAM. Trong<br />
dòng tích hợp CAD/CAPP, mô hình chi tiết 3D sẽ được nhận<br />
dạng và hình thành quy trình công nghệ một cách tự động<br />
<br />
thông qua các thuật toán nhận dạng, lựa chọn và tối ưu. Đầu<br />
ra của CAPP sẽ là một danh sách các đối tượng gia công với<br />
đầy đủ các thông tin hình học và công nghệ bao gồm các lựa<br />
chọn máy, dao và chế độ cắt [2]. Những thông tin đầu vào<br />
này sẽ là cơ sở để hình thành chương trình gia công CNC<br />
cho từng đối tượng. Mỗi đối tượng gia công trên một chi tiết<br />
sẽ có tương ứng một chương trình gia công theo kiểu tham<br />
số (chương trình con). Chương trình chính sẽ có nhiệm vụ<br />
gọi các chương trình con theo đúng thứ tự gia công để gia<br />
công hoàn thiện chi tiết. Khi thay đổi thông tin tạo hình của<br />
đối tượng gia công, chỉ cần cung cấp bộ thông số khác cho<br />
các tham số thì đường chạy dao sẽ thay đổi theo. Dựa vào<br />
ưu điểm này của lập trình CNC theo kiểu tham số, nhóm<br />
nghiên cứu đã thiết lập một bộ các lệnh/hàm mới cho phép<br />
nhận thông số đầu ra của CAPP để trực tiếp tạo ra chương<br />
trình gia công cho từng đối tượng gia công và cho cả chi tiết.<br />
Từ đó, dòng tích hợp tự động CAD/CAPP/CNC dễ dàng<br />
được thiết lập với hiệu quả cao mà không cần thiết phải<br />
thông qua mô-đun CAM.<br />
2. Lập trình CNC theo tham số<br />
Bản chất của lập trình theo tham số là việc sử dụng<br />
các biến hay thông số trong quá trình lập trình kết hợp với<br />
việc gọi chương trình con nên rất phù hợp với việc thiết<br />
lập các chương trình gia công theo từng nhóm đối tượng<br />
gia công khác nhau. Khi đối tượng gia công thay đổi thì<br />
chỉ việc thay đổi giá trị của các tham số là đường chạy<br />
dao sẽ thay đổi, trong khi cấu trúc của chương trình vẫn<br />
giữ nguyên. Đăc điểm này rất phù hợp cho các chi tiết tiêu<br />
chuẩn có hình dáng cơ bản còn kích thước khác nhau ví<br />
dụ như ổ đỡ, vòng bi, bánh răng, trục, v.v. Hiện nay,<br />
Fanuc là một trong những hệ điều khiển sử dụng rộng rãi<br />
nhất trong thực tế. Tùy từng các phiên bản của hệ điều<br />
<br />
ISSN 1859-1531 - TẠP CHÍ KHOA HỌC VÀ CÔNG NGHỆ ĐẠI HỌC ĐÀ NẴNG, VOL. 17, NO. 1.1, 2019<br />
<br />
khiển Fanuc mà năng lực lập trình theo tham số cũng khác<br />
nhau. Bài báo này xây dựng các chương trình CNC theo<br />
tham số trên phiên bản hệ điều khiển là Fanuc21 và<br />
Fanuc31. Một số điểm chung của hai hệ điều khiển này là<br />
đều cho phép khai báo và sử dụng hiệu quả các tham số.<br />
Một tham số được đặt tên theo cấu trúc “#” tiếp theo sau<br />
là một số ví dụ #10 = 100 là gán giá trị 100 cho tham số<br />
#10. Tùy phạm vi của con số này mà nó có thể là biến<br />
toàn cục, biến cục bộ hay biến hệ thống [3]. Giới hạn của<br />
biến và các hàm toán học tương ứng tùy thuộc vào từng<br />
hệ điều khiển. Bảng 1 mô tả sự khác nhau của hai hệ<br />
Fanuc21 và Fanuc31 khi sử dụng lập trình tham số. Hệ<br />
điều khiển Fanuc31 có nhiều hàm hơn cho phép lập trình<br />
đơn giản và ngắn gọn hơn. Hệ điều khiển Fanuc21 không<br />
có vòng lặp khi đó có thể sử dụng chương trình con và số<br />
lần gọi chương trình con để thay thế. Fanuc21 cũng không<br />
có lệnh G65 cho phép gán giá trị cho các tham số trong<br />
chương trình con như Fanuc31.<br />
<br />
53<br />
<br />
kết giữa CAD và CAPP với nhiệm vụ cơ bản là tách biệt<br />
các đối tượng, trích xuất các thông tin hình học và yêu cầu<br />
kỹ thuật của từng đối tượng, đồng thời nhận dạng các đối<br />
tượng gia công cơ bản. Hình 2 mô tả các loại đối tượng gia<br />
công 2.5D cơ bản có thể nhận diện và xử lý trong mô-đun<br />
này. Mô-đun 2 (CAPP) xử lý các dữ liệu đã trích xuất trong<br />
mô-đun 1. Nó thực hiện một loạt các nhiệm vụ cơ bản của<br />
thiết kế quy trình công nghệ là nhận dạng phương pháp gia<br />
công, lựa chọn thiết bị, chế độ cắt và thiết lập thứ tự nguyên<br />
công trên cơ sở các ràng buộc công nghệ. Mô-đun cuối<br />
cùng (CAPP-CNC) trong dòng tích hợp này chính là môđun chuyển đổi Gcode với nhiệm vụ là thiết lập cầu nối<br />
giữa CAPP và CNC. Nó bao gồm các hàm chuyển đổi<br />
Gcode trực tiếp từ các đối tượng gia công.<br />
Vật liệu gia công<br />
<br />
Mô hình CAD 3D với đầy đủ<br />
yêu cầu kỹ thuật<br />
<br />
Dạng sản xuất<br />
ĐẦU VÀO<br />
Phương pháp chế tạo<br />
phôi và xử lý nhiệt<br />
<br />
Bảng 1. So sánh đặc điểm của hai hệ Fanuc21 và Fanuc31<br />
trong lập trình tham số<br />
STT<br />
<br />
Khả năng<br />
<br />
1<br />
<br />
Phép toán<br />
<br />
2<br />
<br />
Các hàm<br />
toán học<br />
<br />
Fanuc21<br />
+, -, *, /<br />
<br />
+, -, *, /<br />
<br />
Không có<br />
<br />
SIN, COS, TAN,<br />
ATAN, ASIN, ACOS<br />
ABS, SQRT, EXP,<br />
ROUND, FIX, FUP<br />
EQ, NE, GT, LT, GE,<br />
LE<br />
AND, OR, XOR<br />
<br />
2<br />
<br />
Phép logic<br />
<br />
EQ (=), NE (),<br />
GT(>), LT(