CẢI TIẾN THIẾT KẾ THI CÔNG VÀ ĐIỀU KHIỂN MÁY PHAY CNC 3 TRỤC, động học MẠCH máy CNC MACH 3, kết cấu THIẾT KẾ THI CÔNG VÀ ĐIỀU KHIỂN MÁY PHAY CNC 3 TRỤC, quy trình sản xuất THIẾT KẾ THI CÔNG VÀ ĐIỀU KHIỂN MÁY PHAY CNC 3 TRỤC
TRƯỜNG ĐẠI HỌC SƯ PHẠM KỸ THUẬT TP.HỒ CHÍ MINH
KHOA CƠ KHÍ CHẾ TẠO MÁY
BỘ MÔN CƠ ĐIỆN TỬ
ĐỒ ÁN TỐT NGHIỆP
THIẾT KẾ, THI CÔNG VÀ ĐIỀU KHIỂN MÁY PHAY CNC 3 TRỤC
TP. HỒ CHÍ MINH, tháng 8 năm 2013
NHIỆM VỤ ĐỒ ÁN TỐT NGHIỆP
Tìm hiểu công nghệ CAD/CAM/CNC, cấu tạo và nguyên tắc hoạt động máy CNC.
Nghiên cứu phương pháp đọc và xử lý bản thiết kế.
Thiết kế phần cơ khí máy CNC phù hợp với gia công vật liệu mẫu.
Thiết kế và thi công mạch điện tử điều khiển trung tâm và phần công suất.
Tìm hiểu vi xử lý điều khiển vị trí LM629 và vi điều khiển ATMEGA32.
Nghiên cứu các giải thuật nội suy đường thẳng, nội suy đường tròn. Đọc và xử lý file G-Code.
LỜI CẢM ƠN
Luận văn tốt nghiệp là cơ hội qúy báu để sinh viên nghiên cứu ứng dụng kiến thức tích lũy trong quá trình học tập tại trường. Đó là kết quả của sự nỗ lực không ngừng của nhóm cùng với sự hướng dẫn của thầy cô, sự giúp đỡ ủng hộ của gia đình và bạn bè trong suốt những năm tháng qua.
Xin tỏ lòng cảm ơn sâu sắc tới thầy hướng dẫn , người luôn có những góp ý và giúp đỡ thiết thực để nhóm thực hiện luận văn này.
Nhóm sinh viên thực hiện chân thành cảm ơn thầy Nguyễn Ngọc Phương đã hỗ trợ thiết bị rất kịp thời trong quá trình chế tạo máy.
Xin cảm ơn các thầy cô trong khoa cơ khí chế tạo máy đã góp ý chỉ dẫn nhiệt tình mỗi khi nhóm gặp khó khăn.
Cảm ơn tập thể lớp Cơ Điện Tử khóa 2009 đã gắn bó và động viên nhóm trong suốt thời gian qua, tạo điều kiện cho nhóm hoàn thành tốt luận văn.
Cuối cùng, nếu không có sự ủng hộ của gia đình thì luận văn này đã không thể hoàn thành. Xin cảm ơn Ba Mẹ thân yêu.
Nhóm sinh viên thực hiện
TÓM TẮT ĐỀ TÀI
Đề tài “Thiết kế, thi công và điều khiển máy phay CNC 3 trục” nhằm góp phần tự động hóa quá trình sản xuất. Khi hoạt động, toàn bộ quy trình thiết kế thông số hình học và gia công được thực hiện trên máy tính kết hợp với phần mềm AutoCad. Phần cơ khí và điện tử công suất được thiết kế để thực hiện gia công tốt với vật liệu mẫu là mica. Bộ điều khiển trung tâm dùng bộ xử lý điều khiển vị trí LM629 giao tiếp với vi điều khiển ATmega32. Kết hợp với khả năng tính toán nội suy và xử lý mạnh của máy tính, bộ điều khiển có thể gia công các chi tiết có biên dạng 2D phức tạp, với giao diện điều khiển trực quan từ máy tính
ABSTRACT
The “Design and control a 3-axes CNC milling machine” thesis makes the manufacturing process automatically. In operating, all the geometric designing and processing are executed easily by computer which is integrated an AutoCad software. The mechanic construction and power electronic block are compatibly designed to handle with mica sample. The central controller uses the Precision motion controller LM629 interfaced with a 8-bit microcontroller Atmega32 host. In combination to the powerful interpolation processing and calculation capable of computer, the machine can cut in complex 2D profile and all the process could be supervised by a visual interface in computer.
MỤC LỤC
TRANG BÌA………..…………………………………………………………………..i
NHIỆM VỤ ĐỒ ÁN TỐT NGHIỆP. ii
NHẬN XÉT CỦA GIÁO VIÊN HƯỚNG DẪN.. iii
NHẬN XÉT CỦA GIÁO VIÊN PHẢN BIỆN.. iv
TÓM TẮT ĐỀ TÀI vi
ABSTRACT.. vii
MỤC LỤC.. viii
DANH MỤC HÌNH VẼ.. xii
DANH MỤC BẢNG BIỂU.. xxi
CHƯƠNG 1
GIỚI THIỆU.. 2
1.1 Đặt vấn đề. 2
1.2 Mục tiêu nghiên cứu. 2
1.3 Đối tượng nghiên cứu. 2
1.4 Giới hạn đề tài 3
CHƯƠNG 2
TỔNG QUAN VỀ CÔNG NGHỆ CAD/CAM - CNC.. 4
2.1 Tổng quan về CAD/CAM... 4
2.2 Tổng quan về máy công cụ điều khiển bằng chương trình số (máy CNC). 6
2.2.1 Lịch sử phát triển của máy CNC.. 6
2.2.2 Đặc trưng cơ bản của máy CNC.. 8
2.2.3 Mô hình khái quát của một máy CNC.. 10
2.2.4 Hệ trục tọa độ trên máy CNC.. 12
CHƯƠNG 3
ĐỌC VÀ XỬ LÝ BẢN THIẾT KẾ.. 14
3.1 Về định dạng file DXF và cách trình bày các dữ liệu đường thẳng, đường tròn và cung tròn trong file DXF. 14
3.1.1 Định dạng DXF. 14
3.1.2 Cách tổ chức dữ liệu của file DXF. 15
3.2 Phương pháp đọc dữ liệu đường thẳng, đường tròn và các cung tròn trong file DXF bằng Visual Basic 20
3.2.1 Lấy dữ liệu đường thẳng. 21
3.2.2 Lấy dữ liệu đường tròn. 23
3.2.3 Lấy dữ liệu cung tròn. 24
3.3 Cách sắp xếp dữ liệu trong file DXF, để hình thành đường chạy dao trong điều khiển máy CNC 25
3.4 Vẽ các đối tượng lên Form.. 35
3.4.1 Vẽ đường thẳng. 36
3.4.2 Vẽ cung tròn. 37
3.4.3 Vẽ đường tròn. 37
3.5 Tạo và lưu file G-Code. 38
CHƯƠNG 4
GIỚI THIỆU THUẬT TOÁN ĐIỀU KHIỂN PID.. 43
4.1 Giới thiệu bộ điều khiển PID.. 43
4.1.1 Khâu P. 43
4.1.2 Khâu I 45
4.1.3 Khâu D.. 46
4.1.4 Tổng hợp ba khâu – Bộ điều khiển PID.. 47
4.1.5 Rời rạc hóa bộ điều khiển PID: 48
4.2 Thiết kế bộ điều khiển PID.. 49
4.2.1 Sử dụng hàm quá độ của đối tượng. 49
4.2.2 Sử dụng các giá trị tới hạn thu được từ thực nghiệm.. 51
CHƯƠNG 5
GIỚI THIỆU VI XỬ LÝ ĐIỀU KHIỂN TRUNG TÂM... 53
5.1 Vi xử lý điều khiển vị trí LM629. 53
5.1.1 Giới thiệu. 53
5.1.2 Mô tả các chân LM629N - 6. 54
5.1.3 Nguyên lý hoạt động. 54
5.1.4 Tập lệnh. 63
5.2 Vi điều khiển ATMEGA 32. 77
5.2.1 Đặc điểm.. 77
5.2.2 Các chức năng ATMEGA 32 sử dụng trong đồ án. 79
5.2.3 Giao tiếp SPI 85
5.2.4 Chuẩn RS-232. 88
CHƯƠNG 6
THIẾT KẾ MÁY CNC.. 90
6.1 Các phương án xây dựng mô hình máy CNC.. 90
6.1.1 Các phương án di chuyển của trục tọa độ. 90
6.1.2 Lựa chọn phương án tối ưu. 92
6.2 Lựa chọn cơ cấu truyền động. 93
6.2.1 Vít me đai ốc thường. 93
6.2.2 Vít me đai ốc bi 94
6.2.3 Bánh răng, đai răng. 96
6.3 Lựa chọn cơ cấu dẫn hướng các trục. 98
6.3.1 Dẫn hướng bằng thanh trượt 98
6.3.2 Dẫn hướng bằng rãnh mang cá. 99
6.4 Các loại động cơ được sử dụng. 100
6.4.1 Động cơ bước. 100
6.4.2 Động cơ Servo DC.. 101
6.5 Kết cấu chung của máy CNC. 103
6.5.1 Phần cố định. 104
6.5.2 Phần di chuyển dọc theo trục Z. 109
6.5.3 Phần di chuyển dọc theo trục X. 110
6.5.4 Phần di chuyển dọc theo trục Y.. 110
6.6 Tính toán các thông số bộ truyền. 110
6.6.1 Tính toán bộ truyền trục Z.. 110
6.6.2 Tính toán bộ truyền trục X,Y.. 112
CHƯƠNG 7
THIẾT KẾ MẠCH ĐIỆN TỬ.. 114
7.1 Tổng quan về mạch điều khiển. 114
7.2 Khối điều khiển trục X, Y.. 115
7.2.1 Tổng quan. 115
7.2.2 Chức năng. 116
7.2.3 Hoạt động. 116
7.2.4 Mạch nguyên lý. 116
7.3 Khối điều khiển trục Z.. 120
7.3.1 Tổng quan. 120
7.3.2 Chức năng. 120
7.3.3 Hoạt động. 120
7.3.4 Mạch nguyên lý. 121
7.4 Khối điều khiển động cơ chính. 122
7.4.1 Cấu tạo. 122
7.4.2 Chức năng. 122
7.4.3 Hoạt động. 122
7.4.4 Mạch nguyên lý. 122
7.5 Khối nguồn cung cấp cho toàn mạch. 123
CHƯƠNG 8
PHẦN MỀM ĐIỀU KHIỂN.. 124
8.1 Sự phân chia nhiệm vụ của phần mềm máy tính, vi điều khiển và IC LM629 trong hệ thống máy 124
8.1.1 Phần mềm máy tính. 124
8.1.2 Vi điều khiển chủ (master). 124
8.1.3 Vi điều khiển tớ. 124
8.1.4 IC LM629. 124
8.2 Phần mềm máy tính. 124
8.2.1 Nhiệm vụ chung. 124
8.2.2 Chuẩn bị dữ liệu nội suy cho quá trình gia công (Import Gcode file). 125
8.2.3 Các nút điều khiển khác. 129
8.2.4 Các ô hiển thị trạng thái máy. 131
8.3 Phần mềm của vi điều khiển chủ. 132
8.3.1 Nhiệm vụ chính. 132
8.3.2 Chức năng điều khiển quá trình gia công. 132
8.3.3 Chức năng di chuyển bàn máy bằng tay (Jog). 133
8.3.4 Chức năng điều khiển trục chính. 134
8.3.5 Chức năng điều khiển trở về vị trí Home. 134
8.3.6 Chức năng đặt chuẩn lập trình. 134
8.3.7 Chức năng dừng chương trình gia công. 135
8.4 Phần mềm của vi điều khiển tớ. 135
CHƯƠNG 9
KẾT QUẢ THỰC HIỆN.. 136
CHƯƠNG 10
KẾT LUẬN.. 143
10.1 Kết luận. 143
10.2 Kiến nghị 143
10.3 Hướng phát triển. 143
PHỤ LỤC.. 145
DANH MỤC HÌNH VẼ
Hình 2.1 Hệ thống CIM... 5
Hình 2.2 Máy phay CNC đơn giản. 7
Hình 2.3 Máy phay CNC hiện đại 8
Hình 2.4 Các sản phẩm làm từ máy CNC.. 9
Hình 2.5 Mô hình khái quát máy CNC.. 10
Hình 2.6 Hệ trục tọa độ Descarte. 12
Hình 2.7 Hệ trục tọa độ trong máy tiện và máy phay. 12
Hình 3.1 Lưu đồ nhập file DXF. 20
Hình 3.2 Lưu đồ sắp xếp dữ liệu và tạo file G Code. 26
Hình 3.3 Lưu đồ tìm và sắp xếp nhóm kết quả có nhiều đối tượng nhất 28
Hình 3.4 Lưu đồ tìm tất cả các nhóm gồm 2k đối tượng riêng lẻ nối tiếp với nhau. 29
Hình 3.5 Mô phỏng sắp xếp file DXF. 36
Hình 3.6 Giao diện thiết lập thông số công nghệ. 38
Hình 3.7 Lệnh G2 (G3)…R… có 2 nghiệm tọa độ tâm.. 40
Hình 3.8 Lệnh G2 (G3)…I…J… có 1 nghiệm tâm duy nhất 40
Hình 3.9 Minh họa xuất file G-Code. 41
Hình 4.1 Sơ đồ hệ thống điều khiển dùng PID.. 43
Hình 4.2 Đáp ứng của khâu P. 44
Hình 4.3 Đáp ứng quá độ của khâu I và khâu PI 45
Hình 4.4 – Đáp ứng của khâu D và PD.. 46
Hình 4.5 Đáp ứng của khâu P, PI và PID.. 47
Hình 4.6 Sơ đồ khối PID.. 48
Hình 4.7 Xác định tham số cho mô hình xấp xỉ bậc nhất có trễ. 50
Hình 4.8 Mô hình điều khiển với KPcrit 52
Hình 4.9 Xác định hệ số khuếch đại tới hạn. 52
Hình 5.1 Sơ đồ khối của LM629. 53
Hình 5.2 Hồi tiếp vị trí 55
Hình 5.3 Profile hình thang điển hình. 56
Hình 5.4 Mạch ghép với LM629 để quan sát đáp ứng quá độ trên dao động ký. 59
Hình 5.5 Đáp ứng quá độ của hệ với bộ tham số 1. 59
Hình 5.6 Đáp ứng quá độ của hệ với bộ tham số 2. 60
Hình 5.7 Đáp ứng quá độ của hệ với bộ tham số 3. 60
Hình 5.8 Hoạt động đọc byte trạng thái 61
Hình 5.9 Hoạt động ghi byte lệnh. 61
Hình 5.10 Hoạt động đọc dữ liệu. 61
Hình 5.11 Hoạt động ghi dữ liệu. 62
Hình 5.12 Ngõ ra PWM của LM629 với tần số hoạt động 8 MHz. 62
Hình 5.13 Sơ đồ khối cấu trúc Atmega32. 78
Hình 5.17 Sơ đồ khối của Timer/Counter0. 80
Hình 5.18 Giản đồ thời gian của chế độ PWM... 81
Hình 5.19 Sơ đồ khối của timer/counter1. 83
Hình 5.20 Sơ đồ khối của timer/counter2. 84
Hình 5.21 Giản đồ thời gian của chế độ CTC.. 85
Hình 5.22 Sơ đồ giao tiếp 1 master, 1 slave. 85
Hình 5.23 Sơ đồ ATMEGA 32 giao tiếp với nhiều Slave. 86
Hình 5.24 Sơ đồ truyền SPI 87
Hình 5.25 Trình tự truyền SPI 87
Hình 5.26 Các mức Logic của cổng RS232. 88
Hình 5.27 Sơ đồ chân cổng COM máy tính. 89
Hình 6.1 Phương án phôi cố định. 90
Hình 6.2 Phương án phôi dịch chuyển trên trục Y.. 91
Hình 6.3 Phương án phôi dịch chuyển trên hai trục X, Y.. 92
Hình 6.4 Truyền động vít me đai ốc thường. 94
Hình 6.5 Bộ truyền vít me – đai ốc bi có rãnh hồi bi dạng ống. 94
Hình 6.6 Bộ truyền vit me – đai ốc bi với rãnh hồi bi theo lỗ khoan trên đai ốc và rãnh hồi bi giữa 2 vòng ren kế tiếp. 95
Hình 6.7 Thông số hình học của đai răng. 96
Hình 6.8 Sự ăn khớp của đai răng. 97
Hình 6.9 Các loại biên dạng đai răng: 97
Hình 6.10 Dẫn hướng bằng thanh trượt 98
Hình 6.11 Dẫn hướng bằng rãnh mang cá. 99
Hình 6.12 Cấu tạo bên trong của động cơ bước đơn cực. 100
Hình 6.13 Hình dáng bên ngoài của động cơ bước. 101
Hình 6.14 Động cơ trục chính. 101
Hình 6.15 Bản vẽ phối cảnh máy phay CNC 3 trục. 103
Hình 6.17 Hình chiếu phần 1. 105
Hình 6.18 Hình chiếu phần 2. 106
Hình 6.19 Hình chiếu phần 3. 107
Hình 6.20 Hình chiếu phần 4. 108
Hình 6.21 Phần di chuyển dọc trục Z.. 109
Hình 6.22 Phần di chuyển dọc trục X.. 110
Hình 6.23 Phần di chuyển dọc trục Y.. 110
Hình 6.24 Truyền động bánh đai - dây đai răng + vít me đai ốc bi 111
Hình 6.25 Bộ truyền trục X, Y.. 112
Hình 7.1 Sơ đồ tổng quan của mạch điều khiển. 114
Hình 7.2 Khối điều khiển trục X, Y.. 115
Hình 7.3 Mạch ATmega32 điều khiển trục XYZ.. 116
Hình 7.4 Mạch điều khiển trục X dùng LM629. 117
Hình 7.5 Mạch điều khiển trục Y dùng LM629. 117
Hình 7.6 Mạch dao động thạch anh. 118
Hình 7.7 Sơ đồ nguyên lý mạch cầu H.. 118
Hình 7.8 Cấu trúc bên trong của LMD18200. 119
Hình 7.9 Tổng quan điều khiển động cơ bước. 120
Hình 7.10 Dây nối động cơ bước. 121
Hình 7.11 Một pha mạch điều khiển động cơ bước. 121
Hình 7.12 Sơ đồ tổng quan. 122
Hình 7.13 Mạch ATMEGA 32 điều khiển trục chính. 122
Hình 7.14 Sơ đồ mạch nguồn công suất 123
Hình 8.1 Giao diện chương trình điều khiển máy phay CNC.. 129
Hình 9.1 Mô hình máy phay CNC sau thi công. 136
Các thông số công nghệ của máy. 137
Hình 9.2 Mạch điều khiển máy phay CNC.. 137
Hình 9.4 Phần mềm đọc file DXF và tạo file G-code. 138
Hình 9.5 Giao diện nhập thông số công nghệ. 139
Hình 9.6 Đáp ứng quá độ của vận tốc trục chính. 139
Hình 9.7 Đáp ứng quá độ của vận tốc trục chính. 140
Hình 9.8 Sản phẩm CD.. 140
Hình 9.9 Sản phẩm SL.. 141
Hình 9.10 Sản phẩm VLC.. 141
Hình 9.11 Sản phẩm đường tròn. 142
DANH MỤC BẢNG BIỂU
Bảng 4.1 Tính toán thông số bộ điều khiển. 51
Bảng 4.2 Thông số bộ điều khiển theo thực nghiệm.. 52
Bảng 5.1 Thông số cơ bản của LM629. 55
Bảng 5.2 Danh sách tập lệnh. 63
Bảng 5.3 Mặt nạ ngắt của LM629. 65
Bảng 5.4 Các bit xác định tham số bộ lọc. 67
Bảng 5.5 Bảng tra thời gian lấy mẫu khâu vi phân. 67
Bảng 5.6 Các bit quy định quỹ đạo chuyển động. 69
Bảng 5.7 Byte trạng thái 71
Bảng 5.8 Thanh ghi tín hiệu. 72
Bảng 5.9 Mô tả các chân cổng COM máy tính. 89
Bảng 6.1 Thông số vít me các trục X,Y,Z.. 96
Bảng 6.2 Thông số kỹ thuật động cơ trục chính. 101
Bảng 6.3 Thông số vật lý của động cơ trục chính. 102
Bảng 6.4 Mô tả dây encoder động cơ trục chính. 103
Bảng 7.1 Trình tự điều khiển động cơ bước. 120
NỘI DUNG CHÍNH
CHƯƠNG 1
GIỚI THIỆU
1.1 Đặt vấn đề
Ngành cơ khí nước ta trong những năm qua tuy đã có bước phát triển đáng kể nhưng vẫn còn khoảng cách khá xa so với các nước tiên tiến, đặc biệt là ở lĩnh vực cơ khí chính xác. Ngoài việc đầu tư nghiên cứu có trọng điểm, ngành cơ khí cần đi tắt đón đầu, nhanh chóng nắm bắt công nghệ tiên tiến để tiết kiệm thời gian và chi phí nghiên cứu. Công nghệ CAD/CAM/CNC là một trong những hướng đi đó.
Trên thế giới, công nghệ CAD/CAM/CNC phát triển mạnh từ 20 năm cuối thế kỷ 20, nhưng chỉ bắt đầu phổ biến ở nước ta trong khoảng 10 năm trở lại đây. Việc phải phụ thuộc hoàn toàn vào sản phẩm nhập ngoại với giá thành còn rất cao khiến tỉ lệ ứng dụng công nghệ này còn thấp, chưa đạt hiệu quả kinh tế như mong đợi. Vì vậy nghiên cứu chế tạo máy CNC thương hiệu Việt là vấn đề vô cùng cần thiết và đã thu hút nhiều công trình nghiên cứu. Từ những điều kiện khách quan và sự đam mê công nghệ CAD/CAM/CNC, nhóm sinh viên đã quyết định thực hiện đề tài “Thiết kế điều khiển máy phay CNC 3 trục”. Hi vọng rằng đây sẽ là tài liệu bổ ích góp phần thúc đẩy hơn nữa việc tìm hiểu ứng dụng công nghệ CAD/CAM/CNC vào thực tiễn.
1.2 Mục tiêu nghiên cứu
Mục tiêu của đề tài là nghiên cứu cơ sở lý thuyết và thiết kế, thi công phần kết cấu cơ khí, mạch điện tử và phần mềm điều khiển nhằm tạo ra máy phay CNC 3 trục có khả năng gia công các biên dạng 2D phức tạp, được thiết kế từ máy tính, trên các vật liệu tương đối mềm như mica, nhựa...
1.3 Đối tượng nghiên cứu
Tìm hiểu công nghệ CAD/CAM/CNC, cấu tạo và nguyên tắc hoạt động máy CNC.
Nghiên cứu phương pháp đọc và xử lý bản thiết kế.
Nghiên cứu thiết kế phần cơ khí máy CNC.
Nghiên cứu vi xử lý điều khiển vị trí LM629 và vi điều khiển ATMEGA32. Thiết kế và thi công mạch điện tử.
Nghiên cứu các giải thuật nội suy đường thẳng, nội suy đường tròn. Đọc và xử lý file G-Code.
1.4 Giới hạn đề tài
Máy CNC là sản phẩm phức tạp đòi hỏi sự kết hợp của nhiều ngành kỹ thuật cao: cơ khí - điện tử - điều khiển - tin học. Ở góc độ đồ án tốt nghiệp đại học và những hạn chế về thời gian và kinh phí, nhóm sinh viên đề xuất thực hiện đề tài ở các nội dung sau:
·Thiết kế thi công hệ cơ khí tương đối vững chắc phù hợp với gia công vật liệu mẫu là mica.
·Thiết kế mạch điện tử điều khiển trung tâm và khối công suất điều khiển động cơ.
·Lập trình đọc và xử lý bản vẽ theo hướng tối ưu thời gian gia công và thực hiện gia công theo biên dạng 2D gồm đường tròn và đường thẳng.
·Lập trình vi điều khiển AVR kết hợp vi xử lý điều khiển vị trí LM629.
·Thiết kế chương trình điều khiển giám sát hệ thống qua máy tính.
CHƯƠNG 2
TỔNG QUAN VỀ CÔNG NGHỆ CAD/CAM - CNC
2.1 Tổng quan về CAD/CAM
Những năm cuối thế kỷ 20, công nghệ CAD/CAM đã trở thành một lĩnh vực đột phá trong thiết kế, chế tạo và sản xuất sản phẩm công nghiệp. CAD (Computer Aided Design) là thiết kế trợ giúp bằng máy tính. CAM (Computer Aided Manufacture) là sản xuất với sự trợ giúp của máy tính. Hai lĩnh vực này ghép nối với nhau đã trở thành một loại hình công nghệ cao, một lĩnh vực khoa học tổng hợp của sự liên ngành Cơ khí - Tin học - Điện tử - Tự động hóa. Cùng với sự phát triển của khoa học máy tính, CAD/CAM đã được nhận thức và chấp nhận nhanh chóng trong công nghiệp (công nghiệp dệt - may, công nghiệp nhựa, công nghiệp cơ khí chế tạo...) vì nó là hạt nhân chính để sáng tạo và sản xuất sản phẩm, để tăng năng suất lao động, giảm cường độ lao động và tự động hóa quá trình sản xuất, nâng cao độ chính xác chi tiết và đạt hiệu quả kinh tế cao.
Công việc chuẩn bị sản xuất có vai trò vô cùng quan trọng trong việc hình thành bất kỳ một sản phẩm cơ khí nào. Công việc này bao gồm các khâu chuẩn bị thiết kế (thiết kế kết cấu sản phẩm, các bản vẽ lắp chung của sản phẩm, các cụm máy...), chuẩn bị công nghệ (đảm bảo tính năng công nghệ của kết cấu, thiết lập quy trình công nghệ), thiết kế và chế tạo các trang bị công nghệ và dụng cụ phụ... kế hoạch hóa quá trình sản xuất và chế tạo sản phẩm trong thời gian ấn định.
Ngày nay, khoa học kỹ thuật phát triển như vũ bão đòi hỏi người kỹ sư phải không ngừng nâng cao lượng thông tin trong tất cả các khâu của quá trình chuẩn bị sản xuất. Theo các nhà khoa học đã phân tích thì tình hình thiết kế hiện nay cho thấy 90% khối lượng thời gian thiết kế là để tra cứu số liệu cần thiết cho việc tính toán, chỉ có 10% thời gian giành cho lao động sáng tạo và quyết định. Cho nên khoảng 90% khối lượng công việc trên có thể thực hiện bằng máy tính điện tử hoặc máy vẽ tự động. Việc làm này vừa chính xác hơn, vừa chất lượng hơn.
Trong sản xuất hàng loạt nhỏ, do đặc điểm là số lượng chi tiết trong loạt nhỏ, số chủng loại lại nhiều cho nên khối lượng thời gian chuẩn bị cho sản xuất rất lớn, mà dạng sản xuất này hiện đang chiếm ưu thế trong nền kinh tế thị trường hiện nay. Tất cả điều đó phải đòi hỏi tạo ra phương pháp thiết kế mới nhờ máy tính điện tử.
CAD/CAM là một lĩnh vực nghiên cứu nhằm tạo ra các hệ thống tự động thiết kế và chế tạo. Nó dùng máy tính điện tử để thực hiện một chức năng nhất định để thiết kế và chế tạo sản phẩm. Tự động hóa chế tạo là dùng máy tính điện tử để kế hoạch hóa, điều khiển quá trình sản xuất, điều khiển quá trình cắt gọt kim loại và kiểm tra nguyên công gia công.
CAD/CAM kết nối với nhau tạo ra mối quan hệ mật thiết giữa hai dạng hoạt động là thiết kế và chế tạo mà lâu nay người ta coi là khác nhau và không phục thuộc vào nhau. Tự động hóa thiết kế là dùng các hệ thống và phương tiện tính toán giúp người kỹ sư để thiết kế mô phỏng, phân tích và tối ưu hóa giải pháp thiết kế. Phương tiện bao gồm máy tính điện tử, các máy vẽ, máy in, thiết bị đục lỗ băng...; phương tiện lập trình bao gồm chương trình máy, cho phép đảm bảo giao tiếp với máy vẽ và các chương trình ứng dụng để thực hiện chức năng thiết kế.
Ví dụ: Chương trình ứng dụng có thể là chương trình phân tích lực và ứng suất trong kết cấu, chương trình tính toán đặc tính động lực học của máy hoặc chương trình gia công chi tiết trên máy điều khiển theo chương trình số NC hay CNC.
Mỗi một hãng, viện nghiên cứu hoặc cơ sở sản xuất có những tập hợp chương trình ứng dụng khác nhau tuỳ thuộc vào điều kiện sản xuất...
Hệ thống CAD/CAM là một sản phẩm của CIM (Computer Integrated Manufacturing). Hệ thống này được quản lý và điều hành dựa trên cơ sở dữ liệu trung tâm, hệ thống còn được dùng để lập kế hoạch, biểu đồ, đưa ra các chỉ dẫn và thông tin đảm bảo mục đích kế hoạch sản xuất của nhà máy… Mô hình hệ thống như sau:
Hình 2.1 Hệ thống CIM
CAD: Computer Aided Design Thiết kế với sự trợ giúp của MTĐT
CAE: Computer Aided Engineering Phân tích kỹ thuật với sự trợ giúp của MTĐT
CAPP: Computer Aided Process Planning Lập kế hoạch chế tạo với sự trợ giúp của MTĐT
CAM: omputer Aided Manufacturing Chế tạo với sự trợ giúp của MTĐT
CNC: omputer Numerical Control Máy công cụ điều khiển bằng chương trình số
CAQ: omputer Aided Quality Control Kiểm tra chất lượng với sự trợ giúp của MTĐT
MRPII: Manufacturing Resources Planning Hoạch định nguồn lực sản xuất
PP: Production Planning Lập kế hoạch sản xuất2.2 Tổng quan về máy công cụ điều khiển bằng chương trình số (máy CNC)
Ở các máy cắt thông thường, việc điều khiển các chuyển động cũng như thay đổi vận tốc của các bộ phận máy đều được thực hiện bằng tay. Với cách điều khiển này, thời gian phụ khá lớn, nên không thể nâng cao năng suất lao động.
Để giảm thời gian phụ, cần thiết tiến hành tự động hóa quá trình điều khiển. Trong sản xuất hàng khối, hàng loạt lớn, từ lâu người ta dùng phương pháp gia công tự động với việc tự động hóa quá trình điều khiển bằng các vấu tỳ, bằng mẫu chép hình, bằng cam trên trục phân phối... Đặc điểm của các loại máy tự động này là rút ngắn được thời gian phụ, nhưng thời gian chuẩn bị sản xuất quá dài (như thời gian thiết kế và chế tạo cam, thời gian điều chỉnh máy...).
Nhược điểm này là không đáng kể nếu như sản xuất với khối lượng lớn. Trái lại, với lượng sản xuất nhỏ, mặt hàng thay đổi thường xuyên, loại máy tự động này trở nên không kinh tế. Do đó cần phải tìm ra phương pháp điều khiển mới. Yêu cầu này được thực hiện với việc điều khiển theo chương trình số.
Đặc điểm quan trọng của việc tự động hóa quá trình gia công trên các máy CNC là đảm bảo cho máy có tính vạn năng cao. Điều đó cho phép gia công nhiều loại chi tiết, phù hợp với dạng sản xuất hàng loạt nhỏ và hàng loạt vừa, mà trên 70% sản phẩm của ngành chế tạo máy được chế tạo trong điều kiện đó.
Máy công cụ điều khiển bằng chương trình số - viết tắt là máy NC (Numerical Control) là máy tự động điều khiển (vài hoạt động hoặc toàn bộ hoạt động), trong đó các hành động điều khiển được sản sinh trên cơ sở cung cấp các dữ liệu ở dạng lệnh. Các lệnh hợp thành chương trình làm việc. Chương trình làm việc này được ghi lên một cơ cấu mang chương trình dưới dạng MÃ SỐ. Cơ cấu mang chương trình có thể là băng đột lỗ, băng từ, hoặc chính bộ nhớ máy tính.
Các thế hệ đầu, máy NC còn sử dụng các cáp logic trong hệ thống. Phương pháp điều khiển theo điểm và đoạn thẳng tức là không có quan hệ hàm số giữa các chuyển động theo tọa độ. Việc điều khiển còn mang tính "cứng" nên chương trình đơn giản và cũng chỉ gia công được những chi tiết đơn giản như gia công lỗ, gia công các đường thẳng song song với các chuyển động mà máy có.
Các thế hệ sau, trong hệ thống điều khiển của máy NC đã được cài đặt các cụm vi tính, các bộ vi xử lý và việc điều khiển lúc này phần lớn hoặc hoàn toàn "mềm". Phương pháp điều khiển theo đường biên, tức là có mối quan hệ hàm số giữa các chuyển động theo hướng các tọa độ. Các máy NC này được gọi là CNC (Computer Numerical Control). Chương trình được soạn thảo tỉ mỉ hơn và có thể gia công được những chi tiết có hình dáng rất phức tạp. Hiện nay các máy CNC đã được dùng phổ biến.
2.2.1 Lịch sử phát triển của máy CNC
Năm 1947, John Parsons nảy ra ý tưởng áp dụng điều khiển tự động vào quá trình chế tạo cánh quạt máy bay trực thăng ở Mỹ. Trước đó, việc gia công và kiểm tra biên dạng của cánh quạt phải dùng các mẫu chép hình, sử dụng dưỡng, do đó rất lâu và không kinh tế. Ý định dùng bìa xuyên lỗ để doa các lỗ bằng cách cho tín hiệu để điều khiển hai bàn dao, đã giúp Parsons phát triển hệ thống Digital của ông
Với kết quả này, năm 1949, ông ký hợp đồng với USAF (US Air Force) nhằm chế tạo một loại máy cắt theo biên dạng tự động. Parsons yêu cầu trợ giúp để sử dụng phòng thí nghiệm điều khiển tự động của Viện Công Nghệ Massachusetts (M.I.T.), nơi được chính phủ Mỹ tài trợ để chế tạo một loại máy phay 3 tọa độ điều khiển bằng chương trình số.
Sau 5 năm nghiên cứu, J. Parsons đã hoàn chỉnh hệ thống điều khiển máy phay và lần đầu tiên trong năm 1954, M.I.T. đã sử dụng tên gọi "Máy NC".
Hình 2.2 Máy phay CNC đơn giản
Trong những năm 60, thời gian đã chín mùi cho việc phát triển và ứng dụng các máy NC. Rất nhiều thành viên của ngành công nghiệp hàng không Mỹ đã nhanh chóng ứng dụng, phát triển và đã sản sinh ra thế hệ máy mới (CNC) cho phép phay các biên dạng phức tạp, tạo hình với hai, ba hoặc bốn và năm trục (ba tịnh tiến và hai quay).
Các nước châu Âu và Nhật Bản phát triển có chậm hơn một vài năm, nhưng cũng có những đặc điểm riêng, chẳng những về mặt kỹ thuật, mà cả về kết cấu như kết cấu trục chính, cơ cấu chứa dao, hệ thống cấp dao...
Hình 2.3 Máy phay CNC hiện đại
Từ đó đến nay, hàng loạt máy CNC ra đời với đủ chủng loại và phát triển không ngừng. Sự phát triển đó dựa vào thành tựu của các ngành: máy tính điện tử, điện tử công nghiệp và điều khiển tự động... Nhất là trong thập niên 90, máy CNC đã đổi mới nhanh chóng chưa từng có trong lĩnh vực tự động.
2.2.2 Đặc trưng cơ bản của máy CNC
a. Tính năng tự động cao
Máy CNC có năng suất cắt gọt cao và giảm được tối đa thời gian phụ, do mức độ tự động được nâng cao vượt bậc. Tùy từng mức độ tự động, máy CNC có thể thực hiện cùng một lúc nhiều chuyển động khác nhau, có thể tự động thay dao, hiệu chỉnh sai số dao cụ, tự động kiểm tra kích thước chi tiết và qua đó tự động hiệu chỉnh sai lệch vị trí tương đối giữa dao và chi tiết, tự động tưới nguội, tự động hút phoi ra khỏi khu vực cắt…
b. Tính năng linh hoạt cao
·Chương trình có thể thay đổi dễ dàng và nhanh chóng, thích ứng với các loại chi tiết khác nhau. Do đó rút ngắn được thời gian phụ và thời gian chuẩn bị sản xuất, tạo điều kiện thuận lợi cho việc tự động hóa sản xuất hàng loạt nhỏ.
·Bất cứ lúc nào cũng có thể sản xuất nhanh chóng những chi tiết đã có chương trình. Vì thế, không cần phải sản xuất chi tiết dự trữ, mà chỉ giữ lấy chương trình của chi tiết đó.
Máy CNC gia công được những chi tiết nhỏ, vừa, phản ứng một cách linh hoạt khi nhiệm vụ công nghệ thay đổi và điều quan trọng nhất là việc lập trình gia công có thể thực hiện ngoài máy, trong các văn phòng có sự hỗ trợ của kỹ thuật tin học thông qua các thiết bị vi tính, vi xử lý...
c. Tính năng tập trung nguyên công
Đa số các máy CNC có thể thực hiện số lượng lớn các nguyên công khác nhau mà không cần thay đổi vị trí gá đặt của chi tiết. Từ khả năng tập trung các nguyên công, các máy CNC đã được phát triển thành các trung tâm gia công CNC.
d. Tính năng chính xác, đảm bảo chất lượng cao
·Giảm được hư hỏng do sai sót của con người. Đồng thời cũng giảm được cường độ chú ý của con người khi làm việc.
·Có khả năng gia công chính xác hàng loạt. Độ chính xác lặp lại, đặc trưng cho mức độ ổn định trong suốt quá trình gia công là điểm ưu việt tuyệt đối của máy CNC.
·Máy CNC với hệ thống điều khiển khép kín có khả năng gia công được những chi tiết chính xác cả về hình dáng đến kích thước. Những đặc điểm này thuận tiện cho việc lắp lẫn giảm khả năng tổn thất phôi liệu ở mức thấp nhất.
e. Gia công biên dạng phức tạp
Máy CNC là máy duy nhất có thể gia công chính xác và nhanh các chi tiết có hình dáng phức tạp như các bề mặt 3 chiều.
Hình 2.4 Các sản phẩm làm từ máy CNC
f. Tính năng hiệu quả kinh tế và kỹ thuật cao
·Cải thiện tuổi bền dao nhờ điều kiện cắt tối ưu. Tiết kiệm dụng cụ cắt gọt, đồ gá và các phụ tùng khác.
·Giảm phế phẩm.
·Tiết kiệm tiền thuê mướn lao động do không cần yêu cầu kỹ năng nghề nghiệp nhưng năng suất gia công cao hơn.
·Sử dụng lại chương trình gia công.
·Giảm thời gian sản xuất.
·Thời gian sử dụng máy nhiều hơn nhờ vào giảm thời gian dừng máy.
·Giảm thời gian kiểm tra vì máy CNC sản xuất chi tiết chất lượng đồng nhất.
·CNC có thể thay đổi nhanh chóng từ việc gia công loại chi tiết này sang loại khác với thời gian chuẩn bị thấp nhất.
Tuy nhiên máy CNC không phải không có những hạn chế. Dưới đây là một số hạn chế:
·Sự đầu tư ban đầu cao: Nhược điểm lớn nhất trong việc sử dụng máy CNC là tiền vốn đầu tư ban đầu cao cùng với chi phí lắp đặt.
·Yêu cầu bảo dưỡng cao: Máy CNC là thiết bị kỹ thuật cao và hệ thống cơ khí, điện của nó rất phức tạp. Để máy gia công được chính xác cần thường xuyên bảo dưỡng. Người bảo dưỡng phải tinh thông cả về cơ và điện.
·Hiệu quả thấp với những chi tiết đơn giản.
2.2.3 Mô hình khái quát của một máy CNC
Hình 2.5 Mô hình khái quát máy CNC
Máy gồm hai phần chính:
a. Phần điều khiển:
Gồm chương trình điều khiển và các cơ cấu điều khiển.
Chương trình điều khiển: Là tập hợp các tín hiệu (gọi là lệnh) để điều khiển máy, được mã hóa dưới dạng chữ cái, số và môt số ký hiệu khác như dấu cộng, trừ, dấu chấm, gạch nghiêng... Chương trình này được ghi lên cơ cấu mang chương trình dưới dạng mã số (cụ thể là mã thập - nhị phân như băng đục lỗ, mã nhị phân như bộ nhớ của máy tính).
Các cơ cấu điều khiển: Nhận tín hiệu từ cơ cấu đọc chương trình, thực hiện các phép biến đổi cần thiết để có được tín hiệu phù hợp với điều kiện hoạt động của cơ cấu chấp hành, đồng thời kiểm tra sự hoạt động của chúng thông qua các tín hiệu được gửi về từ các cảm biến liên hệ ngược. Bao gồm các cơ cấu đọc, cơ cấu giải mã, cơ cấu chuyển đổi, bộ xử lý tín hiệu, cơ cấu nội suy, cơ cấu so sánh, cơ cấu khuyếch đại, cơ cấu đo hành trình, cơ cấu đo vận tốc, bộ nhớ và các thiết bị xuất nhập tín hiệu.
Đây là thiết bị điện - điện tử rất phức tạp, đóng vai trò cốt yếu trong hệ thống điều khiển của máy NC. Việc tìm hiểu nguyên lý cấu tạo của các thiết bị này đòi hỏi có kiến thức từ các giáo trình chuyên ngành khác, cho nên ở đây chỉ giới thiệu khái quát.
b. Phần chấp hành:
Gồm máy cắt kim loại và một số cơ cấu phục vụ vấn đề tự động hóa như các cơ cấu tay máy, ổ chứa dao, bôi trơn, tưới trơn, hút thổi phoi, cấp phôi...
Cũng như các loại máy cắt kim loại khác, đây là bộ phận trực tiếp tham gia cắt gọt kim loại để tạo hình chi tiết. Tùy theo khả năng công nghệ của loại máy mà có các bộ phận: Hộp tốc độ, hộp chạy dao, thân máy, sống trượt, bàn máy, trục chính, ổ chứa dao, các tay máy...
Kết cấu từng bộ phận chính chủ yếu như máy vạn năng thông thường, nhưng có một vài khác biệt nhỏ để đảm bảo quá trình điều khiển tự động được ổn định, chính xác, năng suất và đặc biệt là mở rộng khả năng công nghệ của máy.
Hộp tốc độ: Phạm vi điều chỉnh tốc độ lớn, thường là truyền động vô cấp, trong đó sử dụng các ly hợp điện từ để thay đổi tốc độ được dễ dàng.
Hộp chạy dao: Có nguồn dẫn động riêng, thường là các động cơ bước. Trong xích truyền động, sử dụng các phương pháp khử khe hở của các bộ truyền như vít me - đai ốc bi...
Thân máy cứng vững, kết cấu hợp lý để dễ thải phoi, tưới trơn, dễ thay dao tự động. Nhiều máy có ổ chứa dao, tay máy thay dao tự động, có thiết bị tự động hiệu chỉnh khi dao bị mòn...
Trong các máy CNC có thể sử dụng các dạng điều khiển thích nghi khác nhau bảo đảm một hoặc nhiều thông số tối ưu như các thành phần lực cắt, nhiệt độ cắt, độ bóng bề mặt, chế độ cắt tối ưu, độ ồn, độ rung...
2.2.4 Hệ trục tọa độ trên máy CNC
Theo tiêu chuẩn ISO, các chuyển động cắt gọt khi gia công chi tiết trên máy CNC phải nằm trong một hệ trục tọa độ Descarte theo nguyên tắc bàn tay phải. Trong đó có ba chuyển động tịnh tiến theo các trục và ba chuyển động quay theo các trục tương ứng.
Hình 2.6 Hệ trục tọa độ Descarte
Trục Z tương ứng với phương trục chính của máy CNC, chiều dương là chiều làm tăng khoảng cách giữa dao và chi tiết gia công. Chiều quay dương cùng chiều kim đồng hồ (nhìn từ gốc tọa độ).
Trục X tương ứng chuyển động tịnh tiến lớn nhất của máy CNC. Ví dụ trên máy phay là chuyển động chạy dao dọc, trên máy tiện là chuyển động chạy dao ngang. Chiều dương là chiều làm tăng khoảng cách giữa dao và chi tiết.
Trục Y hình thành với hai trục trên trong hệ trục tọa độ. Ví dụ trên máy phay chính là chuyển động chạy dao ngang của bàn máy, trên máy tiện không có trục này.
Lưu ý khi xét hệ trục tọa độ của máy CNC phải coi như chi tiết đứng yên, còn dao chuyển động theo các phương của hệ trục tọa độ.
Hình 2.7 Hệ trục tọa độ trong máy tiện và máy phay
Hệ trục tọa độ của máy CNC được đặt vào các loại chuẩn cơ bản sau:
M (Machine Point): Chuẩn máy. Máy sẽ đo lường từ vị trí này đến các vị trí khác khi làm việc. Không thể thay đổi.
R (Reference Point): Chuẩn quy chiếu của máy, dùng để đóng kín không gian làm việc của máy. Không thể thay đổi.
T (Tool Offset): Chuẩn dao. Để xác định vị trí dao cắt sau khi đã lắp dao vào ổ dao. Không thể thay đổi.
W (Work Point): Chuẩn chi tiết. Dùng làm gốc của hệ tọa độ làm việc trong quá trình gia công. Có thể thay đổi theo ý muốn của người thiết kế. Chuẩn này chính là chuẩn công nghệ vì vậy phải được chọn trong không gian làm việc của máy.
P (Program Point): Chuẩn thảo chương. Dùng làm gốc của hệ tọa độ trong quá trình soạn thảo chương trình. Có thể thay đổi theo ý muốn của người lập trình. Chuẩn này nên trùng với chuẩn thiết kế trên bản vẽ chi tiết.
CHƯƠNG 3
ĐỌC VÀ XỬ LÝ BẢN THIẾT KẾ
Mục tiêu của phần này là trình bày cách đọc dữ liệu từ một file DXF của một bản vẽ 2D trong mặt phẳng Oxy, sắp xếp các dữ liệu này thành các đường gia công hợp lý và xuất ra file theo ngôn ngữ G-Code để điều khiển máy CNC gia công. Đường tâm dao khi gia công là các đường (đường thẳng, cung tròn, đường tròn) trong bản vẽ AutoCad theo file DXF với các thông số công nghệ (tốc độ cắt, tốc độ trục chính, chiều sâu cắt…) được nhập bởi người dùng.
Giải thuật tham khảo từ các tài liệu trong và ngoài nước khá phức tạp và không hoàn toàn phù hợp với yêu cầu đồ án nên nhóm thực hiện mạnh dạn đưa ra giải thuật sắp xếp của riêng mình.
3.1 Về định dạng file DXF và cách trình bày các dữ liệu đường thẳng, đường tròn và cung tròn trong file DXF
3.1.1 Định dạng DXF
DXF (Drawing Interchange Format hoặc Drawing Exchange Format) là một định dạng file dữ liệu CAD được phát triển bởi Autodesk để cho phép trao đổi dữ liệu giữa AutoCad và một chương trình khác.
DXF được giới thiệu lần đầu tiên vào tháng 12 năm 1982, là một phần của AutoCad 1.0 với dự định cung cấp một kiểu định dạng nhằm biểu diễn dữ liệu của file AutoCad. DXF kể từ phiên bản AutoCad Release 10 (tháng 10 năm 1988) trở đi đã hỗ trợ cả hai dạng file DXF là dưới dạng nhị phân và dưới dạng mã ASCII. Các phiên bản trước đó chỉ hỗ trợ dạng file DXF dưới dạng mã ASCII.
Cấu trúc: file DXF dưới dạng mã ASCII có thể được đọc trực quan bởi một chương trình soạn thảo văn bản (như Notepad, Wordpad hay Microsoft Word…). Một file DXF về cơ bản có các thành phần sau:
·Phần khai báo (HEADER): Giới thiệu những thông tin chung về bản vẽ, mỗi thông số chứa đựng một tên gọi khác nhau và một giá trị tương ứng.
·Phần lớp (CLASSES): Chứa đựng thông tin về các lớp ứng dụng cụ thể, xuất hiện trong các phần BLOCKS, ENTITIES và OBJECTS. Nói chung, nó không cung cấp thông tin cho việc trao đổi dữ liệu với chương trình khác.
·Phần bảng (TABLES): phần này chứa các phần:
Bảng địa chỉ ứng dụng (APPID)
Bảng ghi khối (BLOCK_RECORD)
Bảng kiểu kích thước (DIMSTYPE)
Bảng lớp (LAYER)
Bảng kiểu đường thẳng (LTYPE)
Bảng kiểu chữ (STYPE)
Bảng hệ tọa độ của người dùng (UCS)
Bảng nhìn (VIEW)
Bảng khai báo, thiết lập hiển thị (VPORT)
Phần khối (BLOCKS)
Phần thực thể (ENTITIES)
Phần vật thể (OBJECTS)
Phần ảnh nhìn (THUMBNAILIMAGE)
Phần kết thúc file (END OF FILE)
Trên thực tế, file DXF là định dạng file miêu tả đầy đủ các thông số, các định dạng kiểu đường thẳng, đường tròn, lớp, kích thước… của một bản vẽ AutoCad dưới dạng văn bản hoặc dạng số nhị phân để các phần mềm ứng dụng khác có thể khai thác các dữ liệu đó phục vụ những mục đích khác nhau.
3.1.2 Cách tổ chức dữ liệu của file DXF
Bản vẽ kỹ thuật là một ngôn ngữ ngắn gọn súc tích và chi tiết mà việc biểu diễn nó bằng một ngôn ngữ khác như văn bản là rất khó khăn, do đó một file DXF là rất dài và nhiều các ký hiệu, ký tự, con số, các biến… Ví dụ, file DXF chỉ biểu diễn một đường thẳng đơn giản từ điểm (0,0,0) tới điểm (100,100,0) có chiều dài file DXF lên tới 2463 dòng lệnh. Ở giới hạn đề tài này, mục tiêu là đọc bản vẽ AutoCad 2D dưới dạng DXF, xuất thành file G-Code dưới dạng file văn bản để phục vụ điều khiển máy CNC di chuyển tâm dao theo các đường đó. Dữ liệu cần khai thác chủ yếu là các đường thẳng (LINE), cung tròn (ARC) và đường tròn (CIRCLE) trong bản vẽ. Phần chứa các giá trị này là phần thực thể (ENTITIES) trong bản vẽ. Đó là đoạn file nằm giữa từ khóa ENTITIES và từ khóa ENDSEC kế tiếp phía sau nó trong file DXF.
Dữ liệu quan trọng của đường thẳng trong file DXF là tọa độ điểm đầu và tọa độ điểm cuối của đường thẳng. Thứ tự đầu cuối là thứ tự khi vẽ trên AutoCad, ta xác định điểm nào trước, điểm nào sau. Cung tròn được biểu diễn bằng tọa độ tâm đường tròn, bán kính đường tròn, góc chắn cung thứ nhất, góc chắn cung thứ hai (trong đó các góc chắn cung được tính bằng độ, so với đường nằm ngang (trục x) và chiều dương là chiều ngược chiều kim đồng hồ). Các cung đều được biểu diễn theo chiều ngược chiều kim đồng hồ không phụ thuộc vào chiều khi vẽ trên AutoCad. Dữ liệu đường tròn được biểu diễn với tâm đường tròn và bán kính đường tròn.
Cụ thể, đường tọa độ các đường thẳng được xác định như sau:
a. Đường thẳng
Sau đây là một ví dụ đường thẳng từ tọa độ (0,0,0) tới tọa độ (100,100,0):
LINE /1
5
89
330
1F
100
AcDbEntity
8
0
100
AcDbLine /2
10 /3
0.0 /4
20 /5
0.0 /6
30 /7
0.0 /8
11 /9
100.0 /10
21 /11
100.0 /12
31 /13
0.0 /14
0
Lưu ý rằng các số từ 1 tới 14 được biểu diễn đằng sau dấu “/” ở ví dụ này và cả các ví dụ sau là ghi chú của người viết nhằm trình bày rõ ràng hơn trong khi diễn giải chứ không phải là ký hiệu có trong file DXF.
Mỗi đường thẳng sẽ được biểu diễn phía sau một từ khóa “LINE” (dòng /1).
Có nhiều thông số song điều ta quan tâm ở đây là tọa độ điểm đầu, điểm cuối của đường thẳng. Các tọa độ này được biểu diễn sau từ khóa “AcDbLine” (dòng /2). Sau đó, tọa độ x của điểm thứ nhất được ký hiệu bằng chữ số “10” (dòng /3), và giá trị của nó được biểu diễn ngay dòng sau đó (dòng /4), trong ví dụ là “0.0”; tương tự với tọa độ y của điểm đầu được ký hiệu bằng chữ số “20” (dòng /5) và giá trị của nó được thể hiện ngay dòng sau đó (dòng /6), ở đây là “0.0”. Tương tự với tọa độ z với ký hiệu “30” (dòng /7) và giá trị “0.0” (dòng /8).
Tọa độ x, y, z của điểm thứ hai của đường thẳng được ký hiệu là “11” (dòng /9), “21” (dòng /11) và “31” (dòng /13) và giá trị của nó được biểu diễn ngay sau dòng dưới của ký hiệu. Ở ví dụ trên là “100.0” (dòng /10), “100.0” (dòng /12) và “0.0” (dòng /14).
b. Đường tròn
Đây là một đoạn file DXF biểu diễn một đường tròn có tọa độ tâm là (50,50,0) với bán kính là 25.
CIRCLE /1
5
89
330
1F
100
AcDbEntity
8
0
100
AcDbCircle /2
10 /3
50.0 /4
20 /5
50.0 /6
30 /7
0.0 /8
40 /9
25.0 /10
0
Mỗi đường tròn sẽ được biểu diễn phía sau một từ khóa “CIRCLE” (dòng /1). Các thông số của đường tròn mà ta quan tâm bao gồm tọa độ tâm đường tròn và bán kính biểu diễn sau từ khóa “AcDbCircle” (dòng /2).
Sau đó, tọa độ x của tâm đường tròn được ký hiệu bằng chữ số “10” (dòng /3), và giá trị của nó được biểu diễn ngay dòng sau đó (dòng /4), trong ví dụ là “50.0”.
Tương tự với tọa độ y của tâm đường tròn được ký hiệu bằng chữ số “20” (dòng /5) và giá trị của nó được thể hiện ngay dòng sau đó (dòng /6), ở đây là “50.0”.
Tọa độ z của tâm đường tròn với ký hiệu “30” (dòng /7) và giá trị “0.0” (dòng /8). Cuối cùng là bán kính của đường tròn với ký hiệu “40” (dòng /9) và giá trị được biểu diễn ở dòng tiếp theo (dòng /10) và với ví dụ là “25.0”.
c. Cung tròn
Đây là một đoạn file DXF biểu diễn một cung tròn có tọa độ tâm là (60,40,0) với bán kính là 30 với góc chắn cung 1 là 24 độ và góc chắn cung 2 là 92 độ.
ARC /1
5
AC
330
2
100
AcDbEntity
8
0
100
AcDbCircle /2
10 /3
60.0 /4
20 /5
40.0 /6
30 /7
0.0 /8
40 /9
30.00000000000001 /10
100
AcDbArc /11
50 /12
24.00000000000002 /13
51 /14
91.99999999999997 /15
0
Mỗi cung tròn sẽ được biểu diễn phía sau một từ khóa “ARC” (dòng /1). Các thông số của đường tròn tạo cung mà ta quan tâm bao gồm tọa độ tâm đường tròn và bán kính biểu diễn sau từ khóa “AcDbCircle” (dòng /2). Sau đó, tọa độ x, y, z và R của tâm đường tròn được ký hiệu bằng chữ số “10” (dòng /3), “20” (dòng /5), “30” (dòng /7) và “40” (dòng /9) và các giá trị của nó được thể hiện ngay mỗi dòng sau đó (/4, /6, /8, /10) giống như phần biểu diễn đường tròn đã trình bày ở trên.
Các góc chắn cung được biểu diễn sau từ khóa “AcDbArc” (dòng /11). Góc chắn cung thứ nhất được ký hiệu là “50” (dòng /12) và giá trị được biểu hiện ở dòng phía dưới (dòng /13), ở đây là “24.00000000000002”. Góc chắn cung thứ hai được ký hiệu là “51” (dòng /14) và giá trị được biểu hiện ở dòng phía dưới (dòng /15), ở đây là “91.99999999999997”, các giá trị của góc chắn cung ở đây khi vẽ bên AutoCad là 24 và 92 độ, tuy nhiên khi xuất file DXF, các giá trị này là “24.00000000000002” và “91.99999999999997” gần đúng với các giá trị trên. Nguyên nhân tại sao giá trị của các góc chắn cung thường có một sai số nhỏ so với khi vẽ trên AutoCad, dù người viết đã có đọc qua các tài liệu nhưng cũng không có được một câu trả lời chính xác. Tuy nhiên các sai số trên là rất nhỏ, hoàn toàn chấp nhận được trong quá trình tính toán và hiển thị.
3.2 Phương pháp đọc dữ liệu đường thẳng, đường tròn và các cung tròn trong file DXF bằng Visual Basic
Với việc nắm được cách bố trí các dữ liệu trong file DXF như đã trình bày ở trên thì việc lập trình xử lý văn bản để lấy các dữ liệu của các đường thẳng, đường tròn và cung tròn là hoàn toàn khả thi vì người viết sử dụng ngôn ngữ lập trình Visual Basic hỗ trợ các hàm xử lý văn bản khá mạnh. Ở đây, nhóm sẽ trình bày một vài đoạn chương trình cốt lõi của phần mềm nhằm minh họa cụ thể ý tưởng. Chi tiết toàn bộ chương trình có thể được tham khảo ở phần phụ lục.
START |
Đọc file .DXF |
Lấy đoạn dữ liệu cần thiết |
Tính số đối tượng hình học |
Khai báo biến |
Đọc dữ liệu vào biến |
Đọc hết |
END |
YES |
NO |
Hình 3.1 Lưu đồ nhập file DXF
Đầu tiên khai báo các kiểu dữ liệu người dùng cho điểm, đường thẳng, đường tròn và cung tròn để quản lý dữ liệu. Tiếp theo đọc file DXF vào một biến văn bản (String) và lọc và lấy đoạn văn bản cần thiết chứa dữ liệu (từ từ khóa “ENTITIES” đến từ khóa “ENDSEC” tiếp theo ngay sau nó) lưu vào một biến văn bản (string).
Việc khai báo kích thước các mảng biến dữ liệu dùng cho chương trình có thể thực hiện bằng cách ước lượng một số lượng các biến cần dùng thỏa mãn được yêu cầu của toàn bộ chương trình trong quá trình hoạt động, khai báo và sử dụng. Tuy nhiên cách này tồn tại nhược điểm. Nếu người dùng chạy chương trình với dữ liệu nhỏ hơn kích thước biến đã khai báo thì chương trình vẫn chiếm chừng ấy các ô nhớ trong tài nguyên máy dẫn đến lãng phí và tốn nhiều thời gian. Ngược lại, nếu dữ liệu lớn hơn kích thước biến mà chúng ta đã khai báo thì chương trình tất nhiên sẽ bị lỗi. Như vậy, cách tốt nhất là tính toán số lượng các biến cần dùng và sau đó khai báo và sử dụng đúng số biến cần thiết: khai báo các mảng có kích thước chưa xác định, sau đó tính toán và khai báo lại kích thước các mảng cho phù hợp. Do đó cần thực hiện đếm số đường thẳng, cung tròn và đường tròn trong file DXF để tính toán khai báo và sử dụng biến. Nguyên tắc đếm là đếm các từ khóa “LINE”, “ARC”, “CIRCLE” trong đoạn văn bản cần thiết (nằm giữa từ khóa “ENTITIES” và “ENDSEC” ngay phía sau nó như đã nói ở trên). Sau đó, khai báo lại kích thước các mảng dữ liệu (bằng lệnh redim). Cách thực hiện: lần lượt lấy dữ liệu tất cả các đường thẳng, sau đó là các cung tròn và cuối cùng là đường tròn.
3.2.1 Lấy dữ liệu đường thẳng
Tìm vị trí của từ khóa “LINE” trong đoạn văn bản.
Tại vị trí của từ khóa “LINE” vừa tìm được, tìm tiếp từ khóa “AcDbLine” ngay sau từ khóa “LINE” đó.
Từ vị trí từ khóa “AcDbLine”, ta bỏ qua 15 ký tự bao gồm 8 ký tự của từ khóa “AcDbLine” và 2 ký tự của xuống hàng (Carriage feed (ASCII 13) và Line feed (ASCII 10)), 3 ký tự của dòng chữ “10” và 2 ký tự xuống hàng. Tại vị trí này, ta tiến hành đọc giá trị cho X của điểm thứ nhất bằng cách lấy nguyên một chuỗi ký tự cho tới gặp ký tự “Carriage feed” (ASCII 13), rồi sau đó dùng hàm “Val” để biến chuỗi ký tự này thành giá trị số.
Sau đó, từ vị trí cuối của chuỗi giá trị của X ta tiếp tục bỏ qua 7 ký tự (gồm 2 ký tự xuống hàng, 3 ký tự của chuỗi “20” và thêm 2 ký tự xuống hàng nữa) để lấy tiếp giá trị Y của điểm thứ nhất.
Từ vị trí cuối của chuỗi giá trị của Y, ta bỏ qua 17 ký tự, gồm 2 ký tự xuống hàng, 5 ký tự của dòng chữ “030” và xuống hàng, 5 ký tự của dòng “0.0” ( ở đây do bản vẽ là 2D trong mặt phẳng Oxy nên giá trị Z luôn bằng “0.0”) và xuống hàng cùng với 5 ký tự của dòng “30” và xuống hàng, để lấy tiếp giá trị X của điểm thứ hai (dòng /15).
Tương tự từ cuối chuỗi giá trị của X, ta bỏ qua 7 ký tự và lấy tiếp giá trị Y của điểm thứ hai (dòng /16).
LINE /tìm vị trí từ khóa “LINE”
5
26
330
2
100
AcDbEntity
8
0
100
AcDbLine / từ từ khóa “LINE” tìm tiếp vị trí từ khóa “AcDbLine”
10
0.0 / từ vị trí từ khóa “AcDbLine”, bỏ qua 15 ký tự để lấy giá trị X1
20
0.0 / từ vị trí cuối của chuỗi X1, bỏ qua 7 ký tự để lấy giá trị Y1
30
0.0
11
100.0 / từ vị trí cuối của chuỗi Y1, bỏ qua 17 ký tự để lấy giá trị X2
21
50.0 / từ vị trí cuối của chuỗi X2, bỏ qua 7 ký tự để lấy giá trị Y2
31
0.0
0
3.2.2 Lấy dữ liệu đường tròn
Tìm vị trí của từ khóa “CIRCLE” trong đoạn văn bản.
Tại vị trí của từ khóa “CIRCLE” vừa tìm được, tìm tiếp từ khóa “AcDbCircle” ngay sau từ khóa “CIRCLE” đó.
Từ vị trí từ khóa “AcDbCircle”, ta bỏ qua 17 ký tự để lấy giá trị X của tâm đường tròn.
Từ vị trí cuối của chuỗi giá trị X của tâm đường tròn, bỏ qua 7 ký tự để lấy tiếp giá trị Y của tâm đường tròn.
Ngay tại vị trí cuối chuỗi giá trị Y, bỏ qua 17 ký tự (bỏ qua cả tọa độ Z của tâm đường tròn, bản vẽ 2D nên Z luôn bằng 0.0) và lấy giá trị bán kính của đường tròn.
CIRCLE / tìm vị trí của từ khóa “CIRCLE”
5
26
330
2
100
AcDbEntity
8
0
100
AcDbCircle / Tìm vị trí từ khóa “AcDbCircle”
10
21.73299335730562 / Bỏ qua 17 ký tự, lấy giá trị X của tâm đường tròn
20
14.52612932206388 / Bỏ qua 5 ký tự để lấy giá trị Y của tâm đường tròn
30
0.0 / Bản vẽ 2D, giá trị Z của tâm dao luôn bằng 0.0
40
50.0 / Bỏ qua 17 ký tự để lấy giá trị của bán kính
0
Với ý tưởng như trên, hoàn toàn có thể viết được chương trình trong Visual Basic để lấy dữ liệu vào giống như đối với đường thẳng (nên không trình bày ở đây).
3.2.3 Lấy dữ liệu cung tròn
ARC / Tìm vị trí từ khóa “ARC”
5
26
330
2
100
AcDbEntity
8
0
100
AcDbCircle / Từ vị trí từ khóa “ARC”, tìm vị trí từ khóa “AcDbCircle”
10 /Đường tròn sinh cung được lấy như đối với đường tròn
50.0
20
0.0
30
0.0
40
50.0
100
AcDbArc / Tìm vị trí từ khóa “AcDbArc”
50
0.0 / Bỏ qua 14 ký tự để lấy giá trị góc chắn cung thứ nhất
51
180.0 / Bỏ qua 5 ký tự để lấy giá trị góc chắn cung thứ hai
0
Cách lấy dữ liệu như sau:
Tìm vị trí của từ khóa “ARC” trong đoạn văn bản.
Tại vị trí của từ khóa “ARC” vừa tìm được, tìm tiếp từ khóa “AcDbCircle” ngay sau từ khóa “ARC” đó.
Việc tìm giá trị của đường tròn sinh ra cung là hoàn toàn tương tự như đối với đường tròn đã trình bày ở trên.
Giá trị của góc chắn cung được tìm như sau:
Từ vị trí cuối của chuỗi giá trị bán kính đường tròn, ta tìm vị trí từ khóa “AcDbArc”.
Tại vị trí của từ khóa “AcDbArc” tìm được, ta bỏ qua 14 ký tự để lấy giá trị góc chắn cung thứ nhất.
Tại vị trí cuối chuỗi giá trị góc chắn cung thứ nhất, bỏ qua 5 ký tự để lấy giá trị góc chắn cung thứ hai.
Như vậy, với việc nắm rõ cách sắp xếp dữ liệu trong file DXF và một chương trình xử lý văn bản đơn giản như ý tưởng đã trình bày ở trên, ta hoàn toàn có thể lấy được các thông số đầy đủ để xác định các đối tượng hình học nhằm phục vụ cho mục đích của mình.
3.3 Cách sắp xếp dữ liệu trong file DXF, để hình thành đường chạy dao trong điều khiển máy CNC
Trên thực tế, các đường thẳng, thứ tự dữ liệu cung tròn và đường tròn cũng như các đối tượng khác trong file DXF được xuất theo thứ tự thao tác vẽ trên AutoCad. Các đối tượng này là riêng lẻ ngẫu nhiên do người dùng và các cung tròn luôn được biểu diễn theo một chiều duy nhất là chiều ngược chiều kim đồng hồ, do đó không thể sử dụng trực tiếp thứ tự này làm thứ tự điều khiển quỹ đạo tâm dao. Vậy ta cần phải sắp xếp một cách khoa học và hợp lý các đường này thành một nhóm các đường liên tục nhau để gia công liên tục (ở giới hạn đồ án là chiều sâu cắt không thay đổi trong quá trình gia công) và xác định thứ tự gia công theo hướng tối ưu thời gian gia công, nâng cao hiệu quả sử dụng.
Trong phạm vi đồ án này sẽ thống nhất ý nghĩa các thuật ngữ sau đây để tiện cho việc trình bày và theo dõi.
·Đối tượng riêng lẻ: là các đường thẳng hay cung tròn (không bao gồm đường tròn đọc từ file DXF, có điểm đầu điểm cuối và được đại diện bằng một con số).
·Nhóm trung gian: là một tập hợp các đối tượng riêng lẻ nối tiếp nhau. Nhóm trung gian có điểm đầu và điểm cuối và các giá trị các đối tượng riêng lẻ cùng cách sắp xếp. Nhóm trung gian được hình thành trong quá trình tính toán và sắp xếp.
·Nhóm kết quả: là nhóm trung gian tối ưu nhất được lựa chọn. Giá trị và thứ tự các đối tượng trong nhóm trở thành thứ tự gia công trong file G-Code.
Mục tiêu của thuật toán:
(1) |
Nhập thông số công nghệ |
START |
Thành lập tập hợp tất cả đối tượng chưa sắp xếp |
Sắp xếp, tìm nhóm kết quả có nhiều đối tượng nhất |
Sắp xếp hết các đối tượng |
Tính khoảng cách |
Lựa chọn nhóm kết quả sẽ gia công trước |
Tạo G Code cho nhóm kết quả đó |
Hết các nhóm kết quả |
END |
YES |
NO |
NO |
YES |
Hình 3.2 Lưu đồ sắp xếp dữ liệu và tạo file G Code
·Từ tập hợp các đối tượng riêng lẻ đã được đọc từ file DXF sắp xếp thành các nhóm trung gian cho tới khi hình thành được nhóm trung gian có số đối tượng riêng lẻ là nhiều nhất, lựa chọn làm nhóm kết quả.
·Tiếp tục như trên cho tới khi không còn nhóm riêng lẻ nào trong tập hợp (có thể sẽ có nhiều nhóm kết quả chỉ chứa một đối tượng riêng lẻ).
·Trong tập hợp các nhóm kết quả đã tìm được, tính toán khoảng cách và sắp xếp các nhóm một cách hợp lý để tạo thành trình tự gia công.
·Như vậy điều cốt yếu trong mục tiêu là sắp xếp các đối tượng riêng lẻ thành các nhóm kết quả sao cho mối nhóm kết quả chứa nhiều nhất các đối tượng riêng lẻ.
Với yêu cầu như trên, giải thuật đơn giản nhất là:
Từ các tập hợp các đối tượng riêng lẻ, kiểm tra, sắp xếp để hình thành các nhóm trung gian có chứa 2 đối tượng riêng lẻ nối tiếp nhau.
Từ tập hợp các đối tượng riêng lẻ và các nhóm trung gian có 2 đối tượng riêng lẻ, kiểm tra, sắp xếp để hình thành các nhóm trung gian gồm 3 đối tượng riêng lẻ.
…………
Từ tập hợp các đối tượng riêng lẻ và các nhóm trung gian gồm k-1 đối tượng riêng lẻ, kiểm tra, sắp xếp để hình thành các nhóm trung gian gồm k đối tượng riêng lẻ.
Các bước cứ tiếp tục như trên cho tới khi không thể thành lập một nhóm trung gian gồm n đối tượng riêng lẻ nào lớn hơn được nữa, khi đó chúng ta sẽ có được một tập hợp gồm các nhóm trung gian chứa nhiều đối tượng riêng lẻ nhất (lúc này là n-1 đối tượng).
Sau đó là các bước lựa chọn ngẫu nhiên một trong các nhóm trung gian này để lấy một nhóm kết quả.
Loại bỏ các đối tượng riêng lẻ đã có trong nhóm kết quả và lặp lại các bước tìm kiếm như trên với các đối tượng riêng lẻ còn lại cho tới hết.
Dễ thấy rằng giải thuật như trên là dễ hiểu, dễ triển khai. Song, đây là một giải thuật không tốt, bởi vì các nhược điểm sau:
Đòi hỏi quá nhiều các bước tính toán, sắp xếp. Với một file mà đường gia công chứa nhiều đối tượng riêng nhất là n đường, thì cần n-1 bước tính toán, sắp xếp thành các nhóm trung gian, với n lớn thì các bước tính toán cũng nhiều.
Thêm vào đó, do số lượng các phép tính toán và sắp xếp nhiều nên dẫn tới số lượng các nhóm trung gian phát sinh trong quá trình tính toán, sắp xếp cũng sẽ rất lớn (sử dụng nhiều biến).
Giải thuật nhóm thực hiện khắc phục được các nhược điểm trên.
Hình 3.3 Lưu đồ tìm và sắp xếp nhóm kết quả có nhiều đối tượng nhất
Thao tác 1:
Tính toán, sắp xếp tạo ra các nhóm trung gian gồm 2^k (gọi là các nhóm trung gian bậc k) các đối tượng riêng lẻ nối tiếp nhau với:
k là số nguyên không âm (k = 0,1,2….)
và k <= log2 (số đối tượng riêng lẻ lớn nhất nối tiếp nhau)
Trong đó, k là số nguyên không âm (k = 0,1,2….)và k <= log2 (số đối tượng riêng lẻ lớn nhất nối tiếp nhau).
Nói cách khác là sắp xếp tạo ra các nhóm trung gian gồm 2^k (k = 0,1,2….) các đối tượng riêng lẻ nối tiếp nhau lớn nhất có thể được, từ tập hợp các đối tượng riêng lẻ.
Cách làm:Hình 3.4 Lưu đồ tìm tất cả các nhóm gồm 2k đối tượng riêng lẻ
nối tiếp với nhau
............................................................................
Hình 8.1 Giao diện chương trình điều khiển máy phay CNC
a. Điều khiển Jog bàn máy (các nút +X, -X, +Y, -Y, +Z, -Z và các lựa chọn)
Điều khiển chạy Jog bàn máy là thao tác cần thiết khi người dùng muốn điều khiển bằng tay sự di chuyển của bàn máy, đặc biệt là trong thao tác đặt chuẩn thảo chương cho máy.
Để thuận tiện cho việc điều khiển, máy có hai chế độ chạy Jog là chạy liên tục (Continuous) và chạy theo bước (Step). Chạy liên tục là khi người dùng nhấn nút di chuyển một trục thì trục đó di chuyển cho tới khi người dùng thả nút nhấn ra (hoặc là chạm công tắc hành trình của trục). Chạy liên tục thường được áp dụng trong trường hợp quãng đường chạy xa, chưa đòi hỏi nhiều về độ chính xác di chuyển. Ở chế độ chạy liên tục có 4 cấp tốc độ khác nhau để người dùng có thể lựa chọn (4 nút lựa chọn Jog rate). Di chuyển Jog theo bước là thao tác chạy Jog theo từng bước. Khi người dùng nhấn một nút di chuyển trục thì trục đó sẽ di chuyển một đoạn có độ dài xác định trước (trừ khi nhấn nút Stop hoặc trục chạm công tắc hành trình). Có 4 mức độ dài của bước để lựa chọn (4 nút lựa chọn Jog rate). Di chuyển theo bước thường được dùng trong điều kiện đoạn đường di chuyển là ngắn và đòi hỏi độ chính xác cao.
Khi nhấn nút di chuyển Jog bàn máy, máy tính sẽ xác định loại di chuyển (liên tục hay bước) và cấp tốc độ (hoặc cấp bước di chuyển của bàn máy) và trục sẽ di chuyển. Sau đó máy tính gửi các lệnh điều khiển xuống cho vi điều khiển thông qua cổng COM. Vi điều khiển nhận lệnh và dữ liệu để điều khiển bàn máy di chuyển phù hợp. Đối với kiểu di chuyển là di chuyển theo bước thì khi di chuyển đủ một độ dài (đã xác định từ trước) thì trục đang di chuyển sẽ dừng lại. Đối với kiểu di chuyển là liên tục thì khi người dùng nhả phím nhấn điều khiển trên giao diện ra, máy tính sẽ gửi xuống một lệnh yêu cầu trục dừng lại.
b. Điều khiển trục chính (các nút SPNDL CW, SPNDL CCW và SPNDL STOP)
Các nút này thực hiện điều khiển bằng tay trục chính của máy
Tốc độ được đặt vào ô Set Speed
Có ba nút điều khiển trục chính là quay cùng chiều kim đồng hồ, quay ngược chiều kim đồng hồ và dừng trục chính.
Khi nhấn nút điều khiển thì máy tính sẽ gửi lệnh và dữ liệu xuống vi điều khiển chủ. Vi điều khiển chủ sẽ gửi lệnh và dữ liệu qua vi điều khiển tớ thông qua đường truyền SPI. Vi điều khiển tớ nhận lệnh này và tiến hành điều khiển động cơ trục chính.
c. Điều khiển Home cho bàn máy (nút Home)
Vị trí Home là một vị trí quan trọng của máy. Vị trí này được sử dụng để làm căn cứ tính toán vị trí các trục trong toàn bộ chương trình, do đó việc xác định Home là một yêu cầu khá quan trọng. Khi nhấn nút Home trên giao diện điều khiển thì máy tính sẽ gửi một lệnh xuống vi điều khiển và vi điều khiển thực hiện quá trình trở về vị trí Home. Trong quá trình di chuyển, máy tính sẽ hiển thị các cử hành trình và báo Home khi bàn máy đã trở về vị trí Home xong.
Trở về Home là một thao tác bắt buộc trước khi đặt chuẩn thảo chương cho máy và thực hiện chương trình gia công.
d. Đặt chuẩn thảo chương cho máy (nút Set P-Point)
Chuẩn thảo chương là chuẩn mà người dùng sử dụng để lập trình cho chương trình gia công của máy. Đó là gốc tọa độ của tất cả các tọa độ trong chương trình gia công. Chuẩn thảo chương được đặt tùy theo chương trình và vị trí gá đặt phôi trên máy.
Bắt buộc phải trở về Home trước khi thực hiện cài chuẩn thảo chương lần đầu tiên cho máy.
Khi đặt chuẩn thảo chương thì máy tính yêu cầu vi điều khiển chủ đọc vị trí thực của các trục x, y, z. Giá trị này sẽ được lưu vào máy tính để thực hiện bù tọa độ và hiển thị.
Cài đặt chuẩn thảo chương là yêu cầu bắt buộc trước khi Import một file Gcode để gia công.
e. Bắt đầu thực hiện chương trình gia công (nút Start)
Sau khi quá trình chuẩn bị dữ liệu nội suy kết thúc. Nút Start được nhấn thì máy tính sẽ gửi lệnh đầu tiên xuống vi điều khiển và bắt đầu thực hiện chương trình gia công. Các nút điều khiển bằng tay như điều khiển Jog, điều khiển trục chính và các nút Home, Set P-Point đều bị khóa. Chỉ có nút Stop là được phép tác động để dừng chương trình nếu cần thiết. Khi vi điều khiển thực hiện nạp xong một lệnh, nó sẽ yêu cầu máy tính gửi một lệnh mới xuống. Quá trình được thực hiện liên tục cho tới khi kết thúc chương trình hoặc nút Stop được nhấn.
f. Dừng máy (nút Stop)
Khi nút này được nhấn, máy thực hiện các thao tác sau: dừng trục chính, dừng chương trình gia công. Các nút điều khiển bằng tay như điều khiển Jog, điều khiển trục chính và các nút Home, Set P-Point bị khóa trong lúc chạy chương trình gia công sẽ được mở khóa để người dùng có thể điều khiển máy bằng tay.
8.2.4 Các ô hiển thị trạng thái máy
Các ô hiển thị bao gồm hiển thị vị trí của các trục máy, vị trí các trục được tính tương đối so với chuẩn thảo chương (trường hợp chưa đặt chuẩn thảo chương thì mặc định chuẩn thảo chương trùng với vị trí Home, tức là lúc đó vị trí hiển thị cũng chính là vị trí tuyệt đối của các trục). Đơn vị của vị trí bàn máy được hiển thị tính bằng mm.
Các ô hiển thị tốc độ di chuyển của bàn máy. Do máy là máy 2D nên chia thành tốc độ bàn máy tính theo trục x,y và theo trục z. Đơn vị tốc độ di chuyển các trục bàn máy được hiển thị tính bằng mm/phút.
Các ô hiển thị trạng thái các công tắc hành trình. Nếu các công tắc hành trình giới hạn các trục bị tác động thì trạng thái của nó sẽ được hiển thị lên trên giao diện, di chuyển theo trục và chiều đó sẽ bị khóa. Khi bàn máy trở về vị trí Home thì trạng thái của nó sẽ được hiển thị lên trên giao diện.
Các ô hiển thị trạng thái trục chính bao gồm vận tốc trục chính và chiều quay trục chính (cùng hoặc ngược chiều kim đồng hồ hay đang dừng). Đơn vị tốc độ di chuyển trục chính được hiển thị tính bằng vòng/ phút.
8.3 Phần mềm của vi điều khiển chủ
8.3.1 Nhiệm vụ chính
Giao tiếp với máy tính thông qua cổng COM: nhận lệnh và dữ liệu từ máy tính, thu thập dữ liệu để gửi lên máy tính nhằm phục vụ tính toán và hiển thị.
Giao tiếp và điều khiển 2 IC LM629 thông qua 8 chân dữ liệu và các chân chức năng (PS, CS, RD, WR…) để điều khiển vị trí và tốc độ hai trục x,y.
Điều khiển động cơ bước trục z
Giao tiếp và điều khiển với vi điều khiển tớ thông qua đường truyền SPI gián tiếp điều khiển động cơ trục chính.
Giám sát các công tắc hành trình, điều khiển dừng động cơ trong trường hợp chạm công tắc hành trình.
Như đã trình bày ở trên, vi điều khiển chủ thực sự là trung tâm điều khiển của máy. Do thực hiện nhiều chức năng cộng với việc sử dụng các ngắt trong quá trình thực thi (ngắt thì không biết trước lúc nào sẽ xảy ra) nên việc trình bày lưu đồ điều khiển chung cho toàn bộ phần mềm của vi điều khiển là hết sức khó khăn. Để dễ trình bày và theo dõi, nhóm sẽ trình bày theo từng chức năng riêng biệt:
Khởi đầu chương trình, vi điều khiển chủ sẽ tiến hành Reset IC LM629, xóa tất cả các cờ ngắt và cài đặt mặt nạ ngắt cho phù hợp (chỉ cho phép IC LM629 ngắt vi điều khiển chủ khi hoàn thành quỹ đạo (trajectory completed)) và cài đặt thông số PID thích hợp.
Khi có một dữ liệu từ cổng COM do máy tính gửi xuống thì vi điều khiển sẽ đáp ứng như một ngắt (ngắt do cổng nối tiếp) và thực hiện các chương trình phục vụ ngắt (tùy thuộc vào lệnh, hay dữ liệu nhận được).
IC LM629 ngắt vi điều khiển chính bằng các chân ngắt ngoài: ngắt ngoài 0 (trục y) và ngắt ngoài 1 (trục x).
Vi điều khiển dùng ngắt Timer1 để tạo tần số dịch bước để điều khiển động cơ bước quay.
Dùng vòng quét trong chương trình chính để kiểm tra các công tắc hành trình.
Việc giao tiếp với vi điều khiển tớ là do vi điều khiển chủ hoàn toàn quyết định về thời điểm.Vi điều khiển tớ không cần ngắt vi điều khiển chủ.
8.3.2 Chức năng điều khiển quá trình gia công
Khi người dùng nhấn nút Start trên giao diện (sau khi đã Import một file Gcode vào) thì máy tính gửi một lệnh báo hiệu quá trình gia công bắt đầu.
Vi điều khiển nhận được lệnh này sẽ thực hiện cài đặt các thông số ban đầu và thiết lập giá trị các biến cho phù hợp để bắt đầu quy trình gia công. Sau đó vi điều khiển gửi lệnh yêu cầu máy tính gửi lệnh mới.
Từ lệnh thứ hai trở đi là các lệnh của file Gcode (đã được biến đổi hay nội suy cho phù hợp). Nguyên tắc vi điều khiển nạp và thực thi một lệnh từ máy tính gửi xuống được thực hiện theo trình tự như sau:
· Trong khi lệnh đã nạp trước đó đang thực thi thì lệnh mới được nạp xuống.
· Khi lệnh cũ được thực thi xong thì tiến hành thực thi lệnh vừa nạp.
· Sau đó, vi điều khiển yêu cầu máy tính gửi lệnh tiếp theo.
· Máy tính gửi và vi điều khiển nạp lệnh tiếp theo, lệnh này sẽ chờ cho lệnh trước đó hoàn tất mới thực thi.
· Quá trình cứ như vậy lặp lại cho tới khi gặp lệnh kết thúc chương trình hoặc khi người dùng nhấn nút Stop.
Cụ thể, khi vi điều khiển nhận được vị trí và vận tốc mới của IC LM629 do máy tính gửi xuống, vi điều khiển sẽ nạp vị trí, vận tốc và gia tốc (gia tốc được tính toán dựa trên vận tốc) vào IC LM629. Lệnh nạp này (Load trajectory) chỉ đưa các thông số trên (vị trí, vận tốc, gia tốc) vào bộ đệm của IC LM629, nó không thay đổi quỹ đạo của lệnh di chuyển đang thực thi.
Khi cả hai trục x và y đều hoàn thành quỹ đạo cũ thì vi điều khiển sẽ cho hai trục di chuyển cùng một lúc. Khi này, các thông số đã được nạp phía trước đó mới thực sự được thực thi. Đồng thời, vi điều khiển gửi thông điệp lên máy tính yêu cầu máy tính gửi lệnh tiếp theo xuống. Cách nạp lệnh trước như trên đảm bảo cho máy hoạt động liên tục, không bị gián đoạn do việc phải chờ hoàn tất việc truyền thông, nạp lệnh.
Tương tự như đối với trục x,y các dữ liệu của trục z và các thao tác khác cũng được nạp trước vào các biến phù hợp, sao cho không ảnh hưởng tới lệnh đang thực thi. Khi hoàn thành lệnh đang thực thi thì ngay lập tức thực thi lệnh đã nạp. Đồng thời yêu cầu gửi lệnh khác xuống để nạp trước.
8.3.3 Chức năng di chuyển bàn máy bằng tay (Jog)
Khi người dùng nhấn nút điều khiển di chuyển bàn máy trên máy tính, máy tính sẽ gửi một lệnh xuống vi điều khiển. Vi điều khiển nhận lệnh sẽ xác định loại di chuyển (liên tục hay bước), cấp tốc độ (hoặc giá trị bước di chuyển) và trục di chuyển. Sau đó, vi điều khiển sẽ tiến hành thao tác di chuyển như sau:
a. Nếu trục di chuyển là trục x hoặc y
Nếu kiểu di chuyển là liên tục thì chọn kiểu điều khiển cho IC LM629 là điều khiển vận tốc. Nếu kiểu di chuyển là kiểu bước thì chọn kiểu điều khiển cho IC LM629 là điều khiển vị trí.
Xác định vận tốc và vị trí điều khiển sẽ nạp vào IC LM629.
Nạp dữ liệu vị trí và vận tốc (nếu là điều khiển theo bước) hoặc chọn chiều quay và nạp dữ liệu về vận tốc (nếu là điều khiển theo kiểu liên tục) và tiến hành di chuyển trục.
Khi đạt tới vị trí thì trục sẽ dừng (kiểu di chuyển theo bước) hoặc khi người dùng thả nút điều khiển trên giao diện, máy tính sẽ gửi lệnh dừng xuống vi điều khiển, vi điều khiển điều khiển LM629 dừng trục
b. Nếu trục di chuyển là trục z
Động cơ bước trục z cần phải cung cấp số bước và tốc độ di chuyển.
Nếu kiểu di chuyển là liên tục thì ta cho số bước di chuyển của động cơ là lớn (lớn hơn hành trình di chuyển của trục z) để động cơ thực hiện di chuyển. Khi người dùng thả nút điều khiển trên giao diện, máy tính sẽ gửi xuống một lệnh. Vi điều khiển nhận lệnh sẽ cho dừng động cơ.
Nếu kiểu di chuyển là bước thì ta nạp số bước sẽ dịch chuyển, tốc độ và cho trục z di chuyển. Khi trục z di chuyển đủ số bước đã đặt ở trên thì sẽ dừng lại.
8.3.4 Chức năng điều khiển trục chính
Lệnh điều khiển trục chính được thực hiện khi người sử dụng điều khiển bằng tay hoặc là vi điều khiển nhận lệnh của máy tính trong giai đoạn đang thực thi chương trình gia công (Các lệnh S… M3, M4, M5).
Khi nhận lệnh từ máy tính, vi điều khiển chủ sẽ truyền dữ liệu và lệnh cho vi điều khiển tớ. Chức năng điều khiển trục chính do vi điều khiển tớ hoàn toàn đảm nhận.
8.3.5 Chức năng điều khiển trở về vị trí Home
Khi nhận được lệnh di chuyển về Home từ máy tính. Vi điều khiển sẽ điều khiển động cơ bước di chuyển lên phía trên với tốc độ cao nhất, cho tới khi chạm công tắc hành trình ở phía trên trục z (giống như cách thực hiện chạy Jog ở trục z với tốc độ cao nhất).
Khi trục z chạm công tắc hành trình trên thì hai trục x, y cùng nhau di chuyển theo chiều tọa độ âm với vận tốc lớn nhất, cho tới khi chạm công tắc hành trình cuối mỗi trục thì dừng lại.
Khi cả hai trục đều đã chạm công tắc hành trình thì ta che mặt nạ ngắt cho IC LM629 cho phép ngắt khi mà có xung Index (ba pha A, B, Z của encoder động cơ đều ở mức thấp). Sau đó nạp vận tốc thấp cho hai trục. Tiến hành quay cả hai trục về chiều dương.
Khi trục nào xảy ra ngắt do xung Index thì vi điều khiển sẽ thực hiện lệnh dừng trục đó lại. Và xác định đây chính là điểm Home của trục.
Khi cả hai trục đều hoàn thành việc xác định Home thì vi điều khiển gửi một bức thông điệp lên máy tính để máy tính biết việc trở về Home đã hoàn tất nhằm hiển thị lên giao diện và cho phép (Enable) nút chức năng Set P-Point.
Việc xác định điểm Home như cách trên (dựa vào xung Index) có độ chính xác và tin tưởng cao (không phụ thuộc vào công tắc hành trình).
8.3.6 Chức năng đặt chuẩn lập trình
Khi nhận lệnh đặt chuẩn lập trình cho máy thì vi điều khiển chủ tiến hành đọc vị trí thực của bàn máy (Sử dụng lệnh RDRP đối với IC LM629).
Sau đó dữ liệu này được biến thành chuỗi ký tự cùng với các ký tự mã hóa để gửi lên máy tính. Máy tính nhận dữ liệu này sẽ lưu lại và dùng dữ liệu này để tính toán và hiển thị.
8.3.7 Chức năng dừng chương trình gia công
Nhận được lệnh này, vi điều khiển sẽ truyền lệnh dừng trục chính qua vi điều khiển tớ thông qua đường truyền SPI.
Nạp lệnh dừng hai trục X,Y
Dừng động cơ bước trục Z
Dừng chương trình gia công, quá trình di chuyển Jog, hay quá trình trở về điểm Home (nói chung là tất cả các quy trình đang diễn ra) bằng các cài đặt lại các biến, các trạng thái phù hợp.
8.4 Phần mềm của vi điều khiển tớ
Như đã trình bày ở trên, vi điều khiển tớ nhận được lệnh và dữ liệu từ vi điều khiển chủ thông qua đường truyền SPI, và điều khiển vận tốc động cơ trục chính bằng thuật toán PID số.
Trong khi vi điều khiển chủ thực hiện rất nhiều các nhiệm vụ thì vi điều khiển tớ chỉ thực thi có một nhiệm vụ duy nhất là điều khiển tốc độ động cơ trục chính. Điều này có vẻ không hợp lý. Nhưng trên thực tế đó là một sự phân chia hợp lý. Bởi vì khi thực hiện điều khiển vận tốc trục chính thì vi điều khiển tớ phải tuân thủ vòng thời gian lấy mẫu để tính toán PID thường xuyên và liên tục, do đó sẽ không đảm bảo được vấn đề thời gian thực trong các tác vụ khác.
Thời gian lấy mẫu để tính toán PID là 12ms.
Sử dụng thuật toán PID số để điều khiển tốc độ động cơ DC có rất nhiều tài liệu. Đây là một chức năng nhỏ trong hệ thống. Do đó, trong tài liệu này nhóm sẽ không trình bày cụ thể.
CHƯƠNG 9
KẾT QUẢ THỰC HIỆN
Sau một thời gian nghiên cứu, nhóm thực hiện đồ án đã đạt được một số kết quả nhất định. Sau đây là một số hình ảnh về những kết quả mà nhóm đã đạt được:
Hình 9.1 Mô hình máy phay CNC sau thi công
Các thông số công nghệ của máy
Do việc đo lường độ chính xác tuyệt đối của máy rất phức tạp vì phụ thuộc nhiều yếu tố như độ rung động, nhiệt độ, vật liệu gia công… nên nhóm chỉ đưa ra các thông số tương đối dựa trên lý thuyêt tính toán của cơ hệ và của hệ điều khiển.
Độ chính xác khi gia công đương tròn: R(1- cos(0.1/2R))
Trục XY:
Độ chính xác khi di chuyển trục X,Y : 0.000166 mm
Tốc độ tối đa: 233 mm/ph
Trục Z
Độ chính xác khi di chuyển : 0.00375 mm (Chế độ Half step)
Tốc độ tối đa: 225 mm/ph
Hình 9.2 Mạch điều khiển máy phay CNC
Hình 9.3 Giao diện điều khiển chính
Hình 9.4 Phần mềm đọc file DXF và tạo file G-code
Hình 9.5 Giao diện nhập thông số công nghệ
Hình 9.6 Đáp ứng quá độ của vận tốc trục chín
Hình 9.7 Đáp ứng quá độ của vận tốc trục chính
Hình 9.8 Sản phẩm C
Hình 9.9 Sản phẩm SL
Hình 9.10 Sản phẩm VLC
Hình 9.11 Sản phẩm đường tròn
CHƯƠNG 10
KẾT LUẬN
10.1 Kết luận
Đồ án tốt nghiệp thực sự là cơ hội rất tốt để sinh viên áp dụng toàn bộ những kiến thức kỹ năng được học trong trường vào giải quyết vấn đề thực tiễn kỹ thuật. Đây là bước chuẩn bị quan trọng cho quá trình làm việc của sinh viên sau khi ra trường.
Trong quá trình thực hiện đồ án, nhóm thực hiện đã luôn làm việc với mức cố gắng cao nhất để hoàn thành mục tiêu nhiệm vụ đề ra. Những kết quả đạt được đã thể hiện sự nỗ lực không ngừng của nhóm. Tuy nhiên, trong điều kiện còn nhiều hạn chế về kiến thức, thiết bị, thời gian thực hiện… đồ án không thể tránh khỏi những sai sót. Rất mong sự góp ý của Thầy Cô và các bạn để đồ án ngày càng hoàn thiện.
10.2 Kiến nghị
Đề tài là một hướng nghiên cứu mới. Với mong muốn tiếp tục phát triển đề tài hơn nữa và tạo điều kiện thuận lợi cho các sinh viên khóa sau, nhóm thực hiện kiến nghị bộ môn Cơ Điện Tử có định hướng tiếp tục phát triển đề tài. Rất mong nhà trường hỗ trợ sinh viên hơn nữa trong quá trình thi công đề tài.
10.3 Hướng phát triển
Sau thời gian nghiên cứu và thi công, đề tài đã đạt mục tiêu đề ra và mở ra nhiều hướng nghiên cứu sâu hơn. Tuy hoàn thành nhưng đề tài vẫn còn nhiều khả năng phát triển để ngày càng hoàn thiện hơn. Theo đó, nhóm thực hiện đề xuất một số vấn đề sau:
·Nâng cao độ cứng vững của hệ thống cơ khí.
·Nâng cao tốc độ động cơ trục chính và trục X,Y và bộ truyền tương ứng để tăng độ phân giải. Kết hợp sử dụng cầu H rời để đảm bảo công suất khi gia công các vật liệu có độ cứng cao.
·Dùng động cơ DC servo cho trục Z tạo vòng điều khiển kín tăng độ chính xác gia công.
·Điều khiển momen, hoàn thiện thuật toán điều khiển để có thể gia công với biên dạng 2,5D hoặc 3D.
·Tích hợp các mạch điều khiển trên một mạch duy nhất, tăng khả năng chống nhiễu và thẩm mĩ cao.
TÀI LIỆU THAM KHẢO
[1] Nguyễn Ngọc Đào, CAD/CAM–CNC, Trường ĐH SPKT Tp.HCM, 2006.
[2] Nguyễn Ngọc Đào (chủ trì), Thiết kế, chế tạo mô hình máy phay CNC điều khiển hệ kín, Đề tài NCKH cấp bộ, 2002.
[3] Lê Hiếu Giang, Nguyễn Trường Thịnh, Máy điều khiển chương trình số, Trường ĐH SPKT Tp.HCM, 2005.
[4] Bùi Quý Lực, Hệ thống điều khiển số trong công nghiệp, NXB Khoa học kỹ thuật, 2006.
[5] Đỗ Xuân Thụ, Kỹ thuật điện tử, NXB Giáo dục, 2005.
[6] Nguyễn Thế Hùng, Điều khiển tự động, Trường ĐH SPKT Tp.HCM, 2006.
[7] Huỳnh Thái Hoàng, Nguyễn Thị Phương Hà, Lý thuyết điều khiển tự động, NXB ĐHQG Tp.HCM, 2005.
[8] Hồ Phước Lộc, Phạm Sỹ Phú, Thiết kế và thi công bộ điều khiển bàn máy, Trường ĐH SPKT Tp.HCM, 2008.
[9] Autodesk, DXF Reference, 2003.
[10] National Semiconductor, Datasheet LM628/LM629 Precision Motion Controller, 2003.
[11] National Semiconductor Application Note 706, LM628/LM629 User Guide, 1993.
[12] National Semiconductor Application Note 693, LM628 Programming Guide, 1999.
[13] National Semiconductor Application Note 868, Interfacing the HPC and LM629 for Motion Control, 1993.
[14] Atmel Corperation, ATmega32 Datasheet, 2006.
[15] Atmel Corperation Application Note AVR042, Hardware Design consideration, 2008.
[16] Dassault Systemes, Solidworks User Manual, 2008.