PHƯƠNG PHÁP BIÊN DỊCH CÁC TẬP TIN DỮ LIỆU<br />
GIA CÔNG TRÊN NGÔN NGỮ APT CỦA MÔĐUN<br />
PRO/MANUFACTURING SANG CÁC TẬP TIN TRÊN<br />
NGÔN NGỮ G-CODE ĐIỀU KHIỂN MÁY TIỆN CNC<br />
FANUC T SERIES Oi-S<br />
CONVERTING THE MANUFACTURING DATA FILES OF APT LANGUAGE<br />
IN PRO/MANUFACTURING INTO THOSE OF G-CODE LANGUAGE<br />
CONTROLLING THE CNC TURNING MACHINE FANUC T SERIES Oi-S<br />
<br />
<br />
<br />
LÊ CUNG – BÙI MINH HIỂN<br />
Trường Đại học Bách khoa, Đại học Đà Nẵng<br />
<br />
<br />
TÓM TẮT<br />
Bài báo giới thiệu phương pháp xây dựng trình biên dịch các tập tin dữ liệu gia công trên ngôn<br />
ngữ APT của môđun Pro/MANUFACTURING trong phần mềm Pro/ENGINEER thành các tập<br />
tin trên ngôn ngữ G-Code điều khiển các thao tác gia công trên máy tiện CNC T Series Oi-S<br />
của hãng FANUC tại phòng thí nghiệm Sản xuất tự động (CRePA), chương trình đào tạo Kỹ<br />
sư chất lượng cao PFIEV, trường Đại học Bách khoa, Đại học Đà Nẵng.<br />
<br />
ABSTRACT<br />
This article presents the method to buid up the software to convert the manufacturing data files<br />
of APT (Automatically Programmed Tools) in Pro/MANUFACTURING module into those on<br />
ISO language controlling the operations of the CNC FANUC T Series Oi-S turning machine<br />
installed in the Laboratory CRePA of the Excellent Engineer Formation Program (PFIEV) in<br />
Danang Polytechnical University.<br />
<br />
<br />
<br />
1. Đặt vấn đề<br />
Hiện nay, trên địa bàn miền Trung và trong cả nước được trang bị ngày càng nhiều các<br />
máy tiện điều khiển theo chương trình số CNC (Computer Numerical Control). Các máy tiện<br />
CNC cho phép gia công các chi tiết máy có hình dáng tương đối phức tạp với độ chính xác và<br />
năng suất cao, đặc biệt được dùng trong gia công các chi tiết tròn xoay hay các biên dạng cam<br />
thùng... Thông thường việc lập trình gia công thực hiện một cách tự động nhờ các phần mềm<br />
CAD/CAM như PRO/ENGINEER, CATIA, MASTERCAM, HYPERMILL… Các phần mềm<br />
này có thể xuất ra các tệp tin dữ liệu gia công theo ngôn ngữ APT và theo G-Code.<br />
Mođun Pro/MANUFACTURING của phần mềm Pro/ENGINEER, một trong những<br />
phần mềm CAD-CAM chuyên dụng và khá phổ biến hiện nay, cho phép thiết lập trình tự<br />
nguyên công và các bước gia công, chọn dao cụ, chế độ cắt, chọn lựa các đường chạy dao phù<br />
hợp…, đồng thời cho phép mô phỏng quá trình gia công trên máy tiện CNC ảo trên giao diện<br />
sử dụng của nó. Sau đó môđun Pro/NC xuất ra các tệp tin dữ liệu gia công theo ngôn ngữ<br />
APT. Các tệp tin này không thể điều khiển các thao tác trên máy tiện CNC.<br />
Bên cạnh đó, môđun G-Post của Pro/ MANUFACTURING cũng cho phép xuất ra các<br />
tệp tin dữ liệu gia công theo ngôn ngữ G-Code trực tiếp điều khiển các chuyển động gia công<br />
trên máy tiện CNC. Tuy nhiên các tệp tin G-Code nói trên có nhiều đoạn chưa tương thích với<br />
ngôn ngữ điều khiển các máy tiện CNC cụ thể, đặc biệt là phần chuẩn bị gia công, thay dao và<br />
một số mã lệnh đặc biệt của từng máy. Người vận hành máy phải tốn nhiều thời gian, công sức<br />
và dễ nhầm lẫn để chỉnh sửa một số đoạn chương trình trước khi chạy máy, nhất là đối với<br />
chương trình gia công các chi tiết phức tạp. Bên cạnh đó, việc chỉnh sửa chương trình cần sự<br />
trợ giúp của các kỹ thuật viên chuyên về lập trình gia công trên máy CNC.<br />
Do vậy, để giải quyết triệt để các khó khăn khi lập trình gia công cho các máy tiện CNC,<br />
cần thiết phải xây dựng một trình biên dịch từ ngôn ngữ APT sang ngôn ngữ G-Code hoàn<br />
toàn tương thích với các máy tiện CNC hiện có. Đây cũng chính là mục tiêu nghiên cứu của<br />
bài báo này.<br />
<br />
2. Nguyên tắc và phương pháp xây dựng trình biên dịch<br />
Để xây dựng phương pháp và thuật toán cho trình biên dịch, trước hết cần tiến hành<br />
phân tích cấu trúc mã lệnh của các tập tin theo ngôn ngữ APT do Pro/NC tạo ra và của các tập<br />
tin theo ngôn ngữ G-Code dùng để điều khiển các thao tác gia công trên máy tiện CNC T<br />
Series Oi-S của hãng FANUC.<br />
2.1. Cấu trúc mã lệnh APT và G-Code – Nguyên tắc biên dịch<br />
Việc phân tích và so sánh cấu trúc của tất cả các câu lệnh APT và G-Code ISO đối với<br />
máy tiện cho thấy về cơ bản cấu trúc các câu lệnh trong hai ngôn ngữ có các đặc điểm chung<br />
như sau :<br />
Với ngôn ngữ APT, câu lệnh có cấu trúc như sau:<br />
Tên lệnh + “/” + Các tham số liên quan<br />
Các tham số được phân biệt với nhau bằng dấu phẩy “,”.<br />
Với ngôn ngữ G-Code, câu lệnh đơn giản hơn nhiều, nhưng cũng có những điểm tương<br />
đồng với câu lệnh trong APT. Cấu trúc cơ bản của câu lệnh G-Code như sau:<br />
Tên lệnh_Các tham số liên quan<br />
Các tham số liên quan thường được đứng trước bằng một chữ cái mô tả nội dung tham<br />
số và được phân biệt với nhau bằng các dấu cách.<br />
Chính từ điểm chung này, bài báo đề xuất phương pháp biên dịch như sau:<br />
Đọc dữ liệu từ tập tin nguồn, sử dụng một mảng chuỗi kí tự để chứa từng dòng lệnh của tập<br />
tin nguồn.<br />
Phân tích mỗi câu lệnh APT thành hai thành phần: “tên lệnh” và “tham số” của câu lệnh.<br />
Thay thế “tên lệnh” APT bằng “tên lệnh” tương ứng của G-Code, đồng thời dựa trên các<br />
tham số của câu lệnh APT, chuyển đổi, bổ sung, chọn lọc hay tính toán lại các tham số sao<br />
cho phù hợp với câu lệnh G-Code nhưng vẫn không làm thay đổi nội dung và ý nghĩa của<br />
câu lệnh đó.<br />
2.2. Biên dịch câu lệnh từ APT sang G-Code cho máy tiện FANUC<br />
Để minh họa, phần này giới thiệu phương pháp biên dịch một vài câu lệnh từ ngôn ngữ<br />
APT sang ngôn ngữ G-Code.<br />
o Lệnh thay dao (sử dụng khi tiện trên máy tiện, khi gia công lỗ trên máy tiện hay trung<br />
tâm tiện/phay)<br />
APT: Việc thay dao trong ngôn ngữ APT được mô tả bằng lệnh:<br />
TURRET / n, XAXIS, x, ZAXIS, z, OSETNO, o<br />
Trong đó: TURRET : tên lệnh, mô tả việc thay dao; n: số hiệu dao; XAXIS: mô tả chiều<br />
dài dao theo trục X; x: chiều dài trục dao theo trục X, tham số tùy chọn (được mô tả bằng<br />
tham số GAUGE_X_LENGTH khi thiết lập các tham số của dao); ZAXIS: mô tả chiều dài<br />
dao theo trục Z; z: chiều dài trục dao theo trục Z, tham số tùy chọn (được mô tả bằng tham số<br />
GAUGE_Z_LENGTH khi thiết lập các tham số của dao); OSETNO: mô tả độ hiệu chỉnh<br />
dụng cụ; o : số hiệu độ hiệu chỉnh dụng cụ.<br />
G-Code : Việc chọn dụng cụ trong ngôn ngữ G-Code theo cú pháp của máy tiện<br />
FANUC được mô tả bằng lệnh:<br />
Tvar1var2<br />
Trong đó : T: tên lệnh, mô tả việc chọn dụng cụ; var1: số hiệu dụng cụ; var2: số hiệu<br />
độ hiệu chỉnh dụng cụ.<br />
Với câu lệnh đơn giản như trên, chỉ cần thay thế tên lệnh TURRET trong APT bằng tên<br />
lên T trong G-Code, đọc, chọn lọc các tham số của câu lệnh APT và gán vào câu lệnh tương<br />
ứng trong ngôn ngữ G-Code.<br />
Câu lệnh APT :<br />
TURRET / 1, XAXIS, 10.00000, ZAXIS, 10.00000, OSETNO, 2<br />
SPINDL / RPM, 800.000000, CLW<br />
COOLNT / ON<br />
Câu lệnh G-Code (theo cú pháp của máy tiện Fanuc)<br />
N3 T0102 G97<br />
N4 G96 S800 M3<br />
N5 M7<br />
Tuy nhiên, trong nhiều trường hợp, một câu lệnh APT lại được mô tả bởi một tập hợp<br />
các câu lệnh G-Code hoặc một tập hợp các câu lệnh APT được mô tả bằng một câu lệnh hay<br />
một tập hợp các câu lệnh G-Code. Ví dụ lệnh chạy dao nhanh, lệnh tiện ren…, trong các<br />
trường hợp này việc biên dịch phức tạp hơn nhiều.<br />
o Lệnh tiện ren<br />
APT: Lệnh tiện ren một đầu mối, thực hiện ăn dao một hay nhiều lần khi cắt, được thể<br />
hiện trong APT bằng tập hợp các lệnh sau:<br />
OP / THREAD, TURN, DEPTH, totdepth, TPI, thread_feed, CUTS, c, FINCUT, n,<br />
CUTANG, a<br />
GOTO Xvarx1 Y vary1 Zvarz1<br />
GOTO Xvarx2 Y vayx2 Zvarz3<br />
OP / THREAD, NOMORE<br />
Trong đó: OP: tên lệnh, mô tả tiện ren; THREAD: mô tả tiện ren; DEPTH: mô tả chiều<br />
cao ren; totdepth : chiều cao ren; TPI /MMPR/IPR: mô tả đơn vị bước ren (TPI : số ren trên<br />
một inch, MMRP : mm/vòng, IPR: inch/vòng); CUTS: mô tả số lần cắt để đạt được chiều cao<br />
ren; c: số lần cắt; CUTANG: mô tả góc đặt dụng cụ cắt; a: góc đặt dụng cụ cắt so với đường<br />
tâm trục chính; các lệnh GOTO mô tả đường bao ngoài của ren và các vị trí ban đầu và cuối<br />
cùng của dao khi cắt ren; OP / THREAD, NOMORE : lệnh kết thúc tiện ren.<br />
G-Code: Lệnh tiện ren trụ hay nón một đầu mối, bước không đổi theo cú pháp của máy<br />
tiện FANUC:<br />
G32 Xvarx Yvary Zvarz Fvarf<br />
Trong đó: G32 : tên lệnh, mô tả việc tiện ren; Xvarx, Yvary, Zvarz: mô tả tọa độ vị trí<br />
ban đầu và vị trí cuối cùng của dao khi dao chạy dọc theo chiều dài chi tiết tiện; Fvarf : mô tả<br />
lượng chạy tiến dao khi cắt ren [mm/vòng]. Mặc khác, cũng cần lưu ý rằng trong chương trình<br />
G-Code bên cạnh lệnh G32, còn có các lệnh chạy dao nhanh mô tả quá trình tiến và lùi dao về<br />
khoảng cách an toàn khi tiện, kể cả mô tả đường chạy dao cho các lần ăn dao khác nhau.<br />
Trong trường hợp này, việc biên dịch tương đối phức tạp. Trước hết cần thay thế tên<br />
lệnh OP trong APT bằng tên lệnh G32 trong G-Code, đồng thời dựa trên các tham số của câu<br />
lệnh APT để tính toán lượng ăn dao theo chiều cao ren cho mỗi lần cắt, số lần ăn dao, tọa độ<br />
các vị trí đến của dao cho nhiều lần ăn dao…, sau đó tiến hành biên dịch thành các lệnh chạy<br />
dao nhanh tương ứng trong G-Code để mô tả đường chạy dao khi tiện ren.<br />
Nhóm lệnh APT mô tả tiện ren trên máy tiện:<br />
RAPID<br />
GOTO / 60.0000000000, 0.0000000000, 93.000000000<br />
FEDRAT / 4.000000, MMPM<br />
OP / THREAD , TURN, DEPTH, 2.453720, MMPR, 4.000000, CUTS, 2, FINCUT, 1,$<br />
CUTANG, 180.000000<br />
GOTO / 30.0000000000, 0.0000000000, 93.0000000000<br />
GOTO / 30.0000000000, 0.0000000000, 18.5000000000<br />
OP / THREAD, NOMORE<br />
<br />
Nhóm lệnh tương ứng trong G-Code :<br />
G0 X57.546 Z93<br />
G32 X57.546 Z18.5 F4<br />
G0 X120 Z18.5<br />
G0 X120 Z93<br />
G0 X55.092 Z93<br />
G32 X55.092 Z18.5 F4<br />
G0 X120 Z18.5<br />
N9 G0 X120 Z93<br />
<br />
Ngoài ra, trong khi biên dịch chương trình, còn phải bổ sung một số câu lệnh khởi tạo<br />
ban đầu khi gia công như về điểm chuẩn trước khi thay dao…, các câu lệnh dừng trục chính,<br />
lùi dao về điểm chuẩn của máy, dừng chương trình… Việc khởi tạo kích thước phôi ban đầu<br />
khi gia công cho máy tiện cũng được giải quyết.<br />
<br />
3. Kết quả và bình luận<br />
Trên cơ sở nguyên tắc và phương pháp biên dịch nêu trên, chúng tôi tiến hành biên dịch<br />
tất cả các câu lệnh của APT sang các câu lệnh của ngôn ngữ G-Code, xây dựng môđun<br />
Turning Machine cho trình biên dịch CNC/CMM-Translater. Trình biên dịch nói trên được<br />
viết trên ngôn ngữ Visual Basic. Tập tin dữ liệu nguồn APT có định dạng là *.ncl và tập tin<br />
đích theo ngôn ngữ G-Code có định dạng file text (*.txt).<br />
Hình 1, hình 2, hình 3 trình bày một phần giao diện của mođun Turning Machine của<br />
trình biên dịch CNC/CMM-Translater và tệp tin đã được biên dịch thành ngôn ngữ G-Code.<br />
<br />
<br />
<br />
<br />
Hình 1. Giao diện mođun Turning Hình 2. Giao diện mođun Turning<br />
Machine của CNC/CMM- Machine và chương trình đã biên<br />
TRANSLATER dịch sang ngôn ngữ G-Code<br />
<br />
<br />
Để kiểm nghiệm chương<br />
trình biên dịch, chúng tôi tiến hành<br />
thiết kế hàng loạt các chi tiết trên<br />
Pro/ENGINEER, biên dịch chương<br />
trình gia công từ ngôn ngữ APT<br />
của môđun<br />
Pro/MANUFACTURING sang<br />
ngôn ngữ G-Code bằng môđun<br />
Turning Machine và tiến hành gia<br />
công thử nghiệm trên máy tiện<br />
CNC FANUC T Series Oi-S của<br />
phòng thí nghiệm Sản xuất tự động<br />
CRePA, chương trình đào tạo Kỹ<br />
sư Chất lượng cao PFIEV. Các kết Hình 3. Khởi tạo kích thước phôi tiện<br />
quả thử nghiệm đã khẳng định tính<br />
chính xác của phần mềm biên<br />
dịch. Người vận hành máy không phải chỉnh sửa một câu lệnh nào trong chương trình gia công<br />
theo G-Code đã được biên dịch, ngoài việc định điểm chuẩn cho máy.<br />
Hình 4 giới thiệu một vài chi tiết được gia công thử nghiệm trên máy tiện CNC<br />
FANUC T Series Oi-S.<br />
<br />
4. Kết luận<br />
Môđun Turning Machine của phần mềm CNC/CMM-Translater dùng để biên dịch các<br />
tệp tin dữ liệu gia công APT do phần mềm Pro/ENGINEER tạo ra. Các tệp tin dữ liệu G-Code<br />
đã được biên dịch điều khiển chính xác các thao tác gia công trên máy tiện FANUC sau khi<br />
định điểm chuẩn cho máy. Hoàn toàn không có một lỗi biên dịch nào và người vận hành<br />
không cần phải chỉnh sửa chương trình gia công trước khi chạy máy.<br />
Hình 4. Một vài chi tiết gia công thử nghiệm trên máy tiện FANUC<br />
<br />
Môđun Turning Machine góp phần giải quyết các khó khăn khi soạn thảo chương trình<br />
gia công chi tiết, nhất là đối với các chi tiết có hình dạng phức tạp có chương trình gia công<br />
quá dài. Có thể hiệu chỉnh môđun Turning Machine để biên dịch các chương trình gia công do<br />
Pro/MANUFACTURING xuất ra cho tất cả các loại máy tiện CNC hiện đang được sử dụng<br />
trong nước.<br />
<br />
<br />
TÀI LIỆU THAM KHẢO<br />
<br />
<br />
<br />
[1] Pro/ENGINEER Wildfire Tutorials on Pro/ENGINEER Software.<br />
<br />
[2] Visual Basic Tutorials on Visual Basic Software.<br />
<br />
[3] Trịnh Thành Nhân - Hướng dẫn thực hành và tự học Pro/ENGINEER căn bản và nâng<br />
cao - Nhà xuất bản Thống kê thành phố Hồ Chí Minh 2004.<br />
<br />
[4] FANUC Series Oi-TB, Operator’s Manual, ACE Designers Ltd.<br />
<br />
[5] Lê Cung – Nguyễn Đình Sơn - Phương pháp xây dựng trình biên dịch các files dữ liệu<br />
đo DMIS của môđun PRO/CMM trên PRO/ENGINEER sang các files ngôn ngữ<br />
GEOPAK-WIN - Tạp chí Khoa học và Công nghệ 6 trường Đại học, số 55/2006, Hà<br />
Nội 2006.<br />