Điều khiển tay máy ba bậc tự do dùng thị giác máy tính

Chương 1: Cở sở lý thuyết 4

1.1 Lý thuyết PLC S7-200 4

1.1.1 Giới thiệu PLC S7-200 4

1.1.2 Bộ nhớ PLC S7-200 6

1.1.3 Bộ điều rộng xung (PTO/PWM) 7

1.1.4 Bộ đếm xung tốc độ cao 11

1.2 Tổng quan về Robot 18

1.2.1 Lịch sử phát triển 18

1.2.2 Hệ thống Robot 20

1.2.3 Phân loại Robot 20

1.2.4 Các khái niệm cơ bản 22

1.3 Khảo sát tay máy 3 bậc tự do 29

1.3.1 Quy tắc Denavit-Hartenberg 29

1.3.2 Động học và động lực học thuận 30

1.3.3 Động học ngược 39

1.4 Ứng dụng MATLAB 41

1.4.1 Xử lý ảnh trong MATLAB 41

1.4.2 OPC Toolbox 50

1.5 Sơ lược các bộ truyền động 55

1.5.1 Bộ truyền động bánh răng thẳng 55

1.5.2 Bộ truyền động bánh vít 56

1.6 Động cơ DC 57

1.6.1 Cấu tạo 57

1.6.2 Nguyên tắc hoạt động 58

1.6.3 Các phương pháp điều khiển 58

1.7 Rotary Encoder 59

1.7.1 Cấu tạo 59

1.7.2 Nguyên tắc hoạt động 60

1.8 Van khí nén 61

1.9 Xi lanh khí nén 62

Chương 2: Thiết kế và thi công phần cứng 63

2.1 Thiết kế mạch 63

2.1.1 Mạch nguồn 63

2.1.2 Mạch chuyển đổi áp 64

2.1.3 Mạch công suất 64

2.1.4 Mạch đảo chiều động cơ 65

2.1.5 Mạch lấy tín hiệu xung Encoder 65

2.1.6 Relay đóng mở van khí 66

2.2 Thông số khâu, khớp của tay máy 68

2.2.1 Thông số khâu 68

2.2.2 Góc ban đầu 68

2.2.3 Thông số encoder 68

2.2.4 Cách tính xung từ góc của khớp 68

2.3 Thi công 69

2.3.1 Mạch điều khiển 69

2.3.2 Hộp điều khiển 70

2.3.3 Không gian làm việc 70

2.3.4 Tay máy 71

Chương 3: Xây dựng phần mềm 72

3.1 Lưu đồ giải thuật cho toàn hệ thống 72

3.2 Lưu đồ giải thuật cho xử lý ảnh 73

3.3 Lưu đồ giải thuật cho chương trình PLC 74

3.3.1 Lưu đồ giải thuật cho chương trình chính 74

3.3.2 Lưu đồ giải thuật cho chương trình con 75

3.4 Giao diện điều khiển bằng MATLAB 77

PHẦN C: ĐÁNH GIÁ VÀ KẾT LUẬN 78

Phụ lục 80

Tài liệu tham khảo 110

 

doc111 trang | Chia sẻ: lethao | Lượt xem: 2270 | Lượt tải: 2download
Bạn đang xem trước 20 trang tài liệu Điều khiển tay máy ba bậc tự do dùng thị giác máy tính, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
cho mức độ đậm nhạt của màu sắc. V: Value – đặc trưng cho cường độ ánh sáng. Hình 1.24:Mô hình màu HSV Hình 1.25: Mô hình màu YCbCr. Hình 1.26:Mô hình màu YIQ. 1.4.1.3 Cơ bản về xử lý ảnh bằng MATLAB: Đọc một ảnh đồ họa - Hàm imread đọc một ảnh dưới các định dạng file được hỗ trợ trong Matlab. Các file ảnh sử dụng 8 bit, hoặc 16 bit để chứa giá trị của pixel . Khi chúng được đọc file ảnh 8 bit vào bộ nhớ, Matlab chứa chúng dưới dạng uint8. Với các file ảnh 16 bit dữ liệu như PNG và TIFF, Matlab chứa chúng dưới dạng uint16. Đoạn mã sau sẽ đọc một ảnh RGB vào không gian làm việc của MATLAB lưu trong biến RGB: RGB=imread(‘rices.jpg’); - Hàm imread sẽ nhận ra định dạng file để sử dụng từ tên file. Ta cũng có thể chỉ ra định dạng file như một tham số trong hàm imread. MATLAB trợ giúp rất nhiều định dạng đồ hoạ thông dụng chẳng hạn : BMP , GIF , JPEG , PNG , TIFF … Hiển thị ảnh: * Dùng hàm imview Để hiển thị một ảnh ta có thể dùng hàm imview hiển thị ảnh nằm trong Workspace của Matlab. Ví dụ: ricesfig = inread(‘rices.jpg’); % Đọc ảnh vào imview (ricesfig) Hàm imview chỉ hiện thị ảnh nằm trong thư mục làm việc của Matlab hoặc đường dẫn. Nếu dùng hàm imview mà không chỉ ra thông số nào thì nó sẽ mở ra hộp thoại cho ta chọn file cần hiện thị. * Dùng hàm imshow Nếu ta chỉ ra một file mà chứa nhiều ảnh, hàm imview chỉ hiển thị ảnh đầu tiên trong file đó. Để xem tất cả các ảnh trong file, sử dụng hàm imread để nhập mỗi ảnh vào trong không gian làm việc của Matlab sau đó gọi hàm imview nhiều lần để hiển thị mỗi ảnh riêng biệt. Ta có thể sử dụng hàm imshow thay cho imview. Ta sử dụng imshow để hiển thị một ảnh đã được nhập vào trong không gian làm việc. Ví dụ : ricesfig = inread(‘rices.jpg’); % Đọc ảnh vào imshow (ricesfig) Ta cũng có thể chỉ ra tên của file ảnh như một tham số truyền vào cho hàm như sau : imshow (‘rices.jpg’) Khi sử dụng cấu trúc này thì dữ liệu ảnh không được nhập vào trong không gian làm việc. Tuy nhiên ,ta có thể mang ảnh vào trong không gian làm việc bằng cách sử dụng hàm getimage. Hàm này sẽ nhận dữ liệu ảnh từ handle của một đối tượng ảnh hiện tại. Chẳng hạn : ricefig = getimage; Lúc này ảnh sẽ được gán vào biến ricefig Các hàm chuyển đổi kiểu ảnh: Các hàm sau đây được sử dụng trong việc convert ảnh : dither: Tạo một ảnh nhị phân từ một ảnh cường độ đen trắng VD: BW = dither(I) % Với I là một ảnh đen trắng. Tạo một ảnh chỉ số từ một ảnh RGB Vd: X = dither(RGB,MAP) % Ảnh chỉ số MAP không hơn 65536 màu. - gray2ind: Tạo một ảnh chỉ số từ một ảnh cường độ đen trắng. Vd: I = imread('cameraman.tif'); [X, map] = gray2ind(I, 16); figure, imshow(X, map); - grayslice: Tạo một ảnh chỉ số từ một ảnh cường độ đen trắng bằng cách đặt ngưỡng. Vd: I = imread('snowflakes.png'); X = grayslice(I,16); figure, imshow(I), figure, imshow(X,jet(16)) - im2bw: Tạo một ảnh nhị phân từ một ảnh cường độ , ảnh chỉ số hay ảnh RGB bằng cách đặt ngưỡng ánh sáng. Vd: BW = im2bw(X,map,0.4); % Ngưỡng 0.4 figure, imshow(X,map), figure, imshow(BW)% Hiển thị - ind2gray: Tạo một ảnh cường độ đen trắng từ một ảnh chỉ số. Vd: I = ind2gray(X,map); figure, imshow(X,map), figure, imshow(I); - ind2rgb: Tạo một ảnh RGB từ một ảnh chỉ số. - mat2gray: Tạo một ảnh cường độ đen trắng từ dữ liệu trong một ma trận bằng cách lấy tỉ lệ giữ liệu. Vd: I = imread('rice.png'); J = filter2(fspecial('sobel'), I); K = mat2gray(J); figure, imshow(I), figure, imshow(K) - rgb2gray: Tạo một ảnh cường độ đen trắng từ một ảnh RGB. Vd: I = imread('board.tif'); J = rgb2gray(I); figure, imshow(I), figure, imshow(J); - rgb2ind: Tạo một ảnh chỉ số từ một ảnh RGB. Vd: RGB = imread('peppers.png'); [X,map] = rgb2ind(RGB,128); figure, imshow(X,map) Hàm lấy biên : khoanh vùng biên vật như những lỗ trống trên nền ảnh. - B = Bwboundaries(BW). Vd: I = imread('rice.png'); BW = im2bw(I, graythresh(I)); [B,L] = bwboundaries(BW,'noholes'); imshow(label2rgb(L, @jet, [.5 .5 .5])) hold on for k = 1:length(B) boundary = B{k}; plot(boundary(:,2), boundary(:,1), 'w', 'LineWidth', 2) end 1.4.1.4 Hệ thống toạ độ: Một ảnh được cấu tạo từ ma trận các điểm ảnh. Các điểm ảnh trong một ảnh được sắp xếp có trật tự riêng. Do đó vị trí của một điểm ảnh cũng sẽ có tọa độ riêng trong ảnh đó. Trong Matlab thì có hai hệ tọa độ là tọa độ pixel và tọa độ không gian. * Tọa độ pixel Phương pháp thuận tiện nhất cho việc biểu diễn vị trí trong một ảnh là sử dụng tọa độ pixel. Trong hệ tọa độ này, ảnh được xem như một lưới của các phần tử riêng biệt được đánh thứ tự từ trên xuống dưới và từ trái sang phải của khung ảnh. Với toạ độ pixel, thành phần đầu tiên r ( hàng ) được tăng từ khi đi từ trên xuống dưới trong khi c ( cột ) được tăng khi đi từ trái sang phải. Hệ toạ độ pixel là giá trị nguyên và khoảng giữa 1 và chiều dài của hàng hay cột. Có một tương ứng giữa tọa độ pixel và tọa độ Matlab sử dụng để mô tả ma trận. Sự tương ứng này tạo một quan hệ gữa ma trận dữ liệu ảnh và cách ảnh được hiển thị. Chẳng hạn, dữ liệu cho pixel trên hàng thứ 10, cột thứ 2 được lưu trữ tại phần từ (10,2) của ma trận . * Tọa độ không gian Trong hệ toạ độ pixel, một pixel được xử lý như một đơn vị riêng rẽ được phân biệt duy nhất bởi một cặp tọa độ chẳng hạn (10,2). Trong tọa độ không gian, vị trí trong một ảnh được định vị trên một mặt phẳng và chúng được mô tả bằng một cặp x và y ( không phải r và c như toạ độ pixel ) . Hệ tọa độ không gian này gần tương ứng với hệ toạ độ pixel trong một chừng mực nào đó. Trong tọa độ pixel, góc trên trái của một ảnh là (1,1 ) trong khi trong tọa độ không gian, vị trí này mặc định là (0.5,0.5 ). Sự khác nhau này là do hệ tọa độ pixel là rời rạc trong khi tọa độ không gian là liên tục. Góc trên trái luôn là (1,1 ) trong hệ pixel, nhưng ta có thể chỉ ra một điểm gốc không chính quy cho hệ tọa độ không gian. Tọa độ pixel được đại diện bởi một cặp (r,c ) trong khi tọa độ không gian được biểu diễn bởi (x,y). Khi cú pháp cho một hàm sử dụng r và c, nó tham chiếu đến hệ tọa độ pixel. Khi cú pháp sử dụng x, y nó đang ngầm định sử dụng hệ tọa độ không gian . Theo mặc định, tọa độ không gian của một ảnh tương ứng với tọa độ pixel. Chẳng hạn, điểm giữa của pixel tại (10,3) có một toạ độ không gian là x=3, y=10. Sự tương ứng này làm đơn giản nhiều hàm trong toolbox. Một vài hàm ban đầu làm việc với toạ độ không gian hơn là toạ độ pixel nhưng khi ta đang sử dụng toạ độ không gian theo mặc định, ta có thể chỉ ra vị trí trong toạ độ pixel. 3.1.5 Phân tích ảnh: Trong kỹ thuật phân tích ảnh thì có rất nhiều bước khác nhau, nhưng với yêu cầu của luận văn chúng tôi xin trình bày hai bước cơ bản trong khâu phân tích một ảnh. Đó là: phát hiện cạnh ( Edge Detection) và tìm biên của vật ( Boundary Tracing). * Phát hiện cạnh: Matlab hỗ trợ hàm Edge để phát hiện các cạnh trong một ảnh mà tương ứng với vùng biên của các đối tượng. Để tìm cạnh, hàm này tìm các vị trí trong ảnh có giá trị cường độ thay đổi rất nhanh sử dụng một trong những tiêu chuẩn sau : - Các vị trí mà tích phân đầu của cường độ lớn hơn biên độ của một số ngưỡng nào đó Các vị trí mà tích phân thứ hai của cường độ giao với 0 Hàm edge cung cấp một số bộ ước lượng tích phân, mỗi cái ứng dụng một trong các định nghĩa trên. Với một số bộ ước lượng này, ta có thể chỉ ra các thao tác có nhạy với cạnh nằm nganh, nằm dọc hoặc cả hai hay không. Hàm trả về một ảnh nhị phân chứa giá trị 1 tại nơi cạnh được tìm thấy và 0 ở các chỗ khác. - Phương pháp phát hiện cạnh mạnh nhất mà hàm edge cung cấp là phương pháp Canny . Phương pháp này khác với các phương pháp khắc ở chỗ nó sử dụng hai giá trị ngưỡng khác nhau (để phát hiện cạnh mạnh hay yếu ) và bao gồm các cạnh yếu ở ảnh ra chỉ nếu chúng được kết nối với các cạnh khoẻ ( strong edges ) . - Ví dụ sau minh hoạ phát hiện cạnh bằng phương pháp Canny: Ảnh gốc Ảnh sau phát hiện cạnh - Ví dụ sau minh họa phát hiện cạnh bằng phương pháp Sobel: * Tìm vết của biên ( Boundary Tracing ) - Toolbox cung cấp hai hàm ta có thể sử dụng để tìm biên của các đối tượng trong một ảnh : + Hàm bwtraceboundary Hàm bwboundaries: * Tìm biên: Hàm bwtraceboundary trả lại toạ độ hàng và cột của tất cả các pixel trên biên của một đối tượng trong ảnh. Ta phải chỉ ra vị trí của một pixel biên trên đối tượng như là điểm bắt đầu của việc tìm vết. 1.4.2 OPC Toolbox của MATLAB 1.4.2.1 Sơ lược OPC Toolbox: Phần mềm OPC Toolbox là một phần mềm mở rộng khả năng trong môi trường MATLAB và SIMULINK. Sử dụng những hàm và khối trong Toolbox chúng ta có thể thu được dữ liệu liệu trực tiếp từ OPC vào MATLAB và SIMULINK, và khi dữ liệu trực tiếp từ MATLAB vào OPC Server. OPC Toolbox có khả năng liên kết trực tiếp với các phần mềm OPC server bằng OPC Data Access Standard. Sử dụng OPC Toolbox chúng ta có thể ghi dữ liệu từ OPC Data Access Server vào đĩa hoặc bộ nhớ. Toolbox cung cấp những cách để thu dữ liệu vào workspace và chúng ta có thể phân tích hoặc sử dụng chúng. Chúng ta có thể tăng cường những ứng dụng với Toolbox với việc sử dụng hàm callback như: bắt đầu nhận sự kiện, khai báo sự kiện, thay đổi sự kiện… MATLAB OPC Toolbox M – file funtions OPC Toolbox Engine OPC Data Access Server Computer OPC Server COM/DCOM OPC Data Access COM/DCOM Network Quan hệ giữa OPC Toolbox Object với OPC Server 1.4.2.2 Sử dụng OPC Toolbox: Để có thể sử dụng OPC Toolbox cần phải cài đặt OPC Foundation Core Compornents. Sau khi cài đặt có thể sử dụng các tool trong OPC Toolbox. Khởi động OPC Toolbox ta chạy chương trình MATLAB vào Start \Toolboxs\OPC\OPC. Sau khi chạy OPC Toolbox ta được cửa sổ như trên. Ta cần phải tạo Host để liên kết với OPC Server. Khi tạo host thì mặc định tên host đầu tiên là lcallhost. Chương trình sẽ tự động liệt kê những OPC server trên máy. Trong hình trên em sử dụng phần mềm OPC Server là PC Access để liên kết với PLC S7 – 200. Để tạo Matlab OPC Client chúng ta cần phải chọn Server, sau đó click chuột phải vào menu Create Client. Kết quả như hình dưới đây: Để tương tác với PLC thông qua các biến, trước hết ta phải tạo trong PC Access các biến cần sử dụng. Sau đó OPC Toolbox sẽ liên kết các biến đó thông qua PC Access. Các biến đã được Add vào Client thì có thể truy cập với bit nhớ, ô nhớ hay thanh ghi trong PLC. Ta có thể ghi, đọc hoặc thu thập dữ liệu thông qua các biến đó. Tuy nhiên thông thường các chương trình điều khiển bằng MATLAB đều có giao diện để giao tiếp dễ dàng. Các giao diện này có thể tạo bằng M – file hoặc GUI của MATLAB. Do vậy ta vẫn có thể sử dụng OPC Toolbox thông qua các hàm đặc trưng, các biến trong MATLAB điều có thể tương tác với các biến trong OPC Toolbox. Việc này giúp cho việc tạo giao diện điều khiển thiết bị dùng PLC bằng MTALAB trở nên dễ dàng. Các hàm cơ bản của OPC Toolbox : * Tạo một Object kết nối với Server Object name = opcda( ‘locallhost’, ‘OPC Client Name’) VD: da = opcda(‘locallhost’, ‘S7200.OPCServer’) * Kết nối với Server: Connect( Object name) VD: Connect(da) * Ngừng kết nối với server: Disconnect( Object name) VD: Disconnect( da) * Tạo một nhóm để quản lý các biến: grp1 =addgroup( Object name) VD: grp1 =addgroup(da) * Tạo biến trong một nhóm : Tên biến = additm( Group name, ‘biến truy cập trên Server’) VD: itm1 = additm(grp1,McroWin.s7200.Start) * Xóa một Object: Delete ( object name) VD: Delete ( da) * Lưu một Object vào Workspace của Matlab: Save myopc “Oblect name” * Tải lên một Object: Load myopc * Ghi dữ liệu vào một biến: Write ( tên biến, giá trị của biến) * Đọc dữ liệu một biến: Read ( tên biến) * Ghi dữ liệu vào một biến: Writeasync ( tên biến, giá trị của biến) * Đọc dữ liệu bất đồng bộ một biến: Readasync ( tên biến) 1.5 Sơ lược các bộ truyền động: 1.5.1 Bộ truyền động bánh răng: 1.5.1.1 Công dụng: Bộ truyền bánh răng thẳng dùng để truyền chuyển động quay giữa hai trục song song. Qua bộ truyền bánh răng thẳng momen quay của trục tác động sẽ được tăng lên hoặc giảm xuống tùy thuộc vào tỷ số truyền của bánh răng. Hình 1.27: Bộ truyền động bánh răng. 1.5.1.2 Ưu điểm – Nhược điểm: Ưu điểm: - Kích thước nhỏ, khả năng tải lớn. - Tỷ số truyền không đổi do hiện tượng trơn trợt. - Hiệu suất cao có thể đạt 0,97 đến 0,99. - Làm việc với vận tốc lớn. - Tuổi thọ cao. Nhược điểm: - Chế tạo tương đối phức tạp. - Đòi hỏi độ chính xác cao. - Phát ra nhiều tiếng ồn khi hoạt động. 1.5.1.3 Tỷ số truyền: Trong hệ thống truyền động dùng bánh răng thì tỷ số truyền của bộ bánh răng là quan trọng nhất vì nó quyết định đến tốc độ quay, momen quay của bánh răng thứ cấp. Sau đây là công thức tính tỷ số truyền: Trong đó: n1,n2 là tốc độ của bánh răng 1 và 2. z1,z2 là số răng của bánh răng 1 và 2. 1.5.2 Bộ truyền động trục vít bánh vít: 1.5.2.1 Công dụng: Bộ truyền trục vít – bánh vít gọi tắt là bộ truyền trục vít được xếp vào loại răng và vít. Bộ truyền trục vít dùng để truyền chuyển động và công suất cho hai trục chéo nhau. Thông thường hai trục lệch nhau 900. Đặc điểm quan trọng là bộ truyền trục vít có khả năng tự hãm. Bánh vít Trục vít Hình 1.28: Bộ truyền động trục vít – bánh vít. Phân loại trục vít theo dạng mặt chia có hai loại: trục vít trụ ( mặt chia trục vít là mặt trụ) và trục vít Globoid (mặt chia lõm). Phân loại theo trục ren thì chia thành 3 loại: trục vít Archimede, trục vít Convolute và trục vít thân khai. Đối với bộ truyền trục vít truyền động thì số mối ren z = 1,2,4. Số mối ren càng ít thì khả năng tự hãm càng cao. 1.5.2.2 Ưu điểm – Nhược điểm: Ưu điểm: tỷ số truyền lớn, làm việc êm, không ồn, có khả năng tự hãm và có chính xác động học cao. Nhược điểm: - Hiệu suất thấp, sinh nhiệt nhiều do vận tốc trược lớn. - Vật liệu chế tạo bánh vít làm bằng kim loại màu nên đắt tiền. - Phát ra nhiều tiếng ồn khi hoạt động. 1.5..2.3 Tỷ số truyền: Khi trục vít quay một vòng thì bánh vít sẽ quay một góc bằng z1 lần của góc 2π/z2. Để bánh vít quay một vòng thì trục vít phải quay 2π/(2πz1/z2) = z2/z1 vòng, nên: Với: z1: số đầu mối của trục vít. z2 : số răng của bánh vít. 1.6 Động cơ DC: 1.6.1 Cấu tạo: Động cơ DC là động cơ điện hoạt động với dòng điện một chiều. Động cơ điện DC ứng dụng rộng rãi trong đời sống cũng như công nghiệp bởi lý do dễ điều khiển, hiệu suất cao, “momen” lớn. Trong công nghiệp, động cơ điện một chiều được sử dụng ở những nơi yêu cầu “momen” mở máy lớn hoặc yêu cầu thay đổi tốc độ trong phạm vi rộng. Hình 1.29: Động cơ DC Một động cơ DC có 6 phần cơ bản: 1. Phần ứng hay Rotor (Armature). 2. Cổ góp (Commutat). 3. Nam châm tạo từ trường hay Stator (field magnet). 4. Chổi than (Brushes). 5. Trục motor (Axle). 6. Bộ phận cung cấp dòng điện DC. 1.6.2 Nguyên tắc hoạt động: Hình dưới mô tả nguyên tắc hoạt động của động cơ DC. Dòng điện chạy qua khung dây sinh ra từ trường. Theo nguyên tắc bàn tay trái lực từ làm cho khung dây quay một góc 900. Khi roto quay được một góc 900 thì lực từ không còn tác dụng là “momen” quay nữa, nhưng do quán tính làm cho roto quay thêm một góc nhỏ nữa. Roto liên tục và đúng chiều là do bộ cổ góp điện sẽ làm chuyển mạch dòng điện sau mỗi vị trí ứng với 1/2 chu kỳ. Trong các máy điện một chiều lớn, người ta có nhiều cuộn dây nối ra nhiều phiến góp khác nhau trên cổ góp. Nhờ vậy dòng điện và lực quay được liên tục và hầu như không bị thay đổi theo các vị trí khác nhau của Roto. Hình 1.29: Nguyên lý hoạt động của đông cơ DC 1.6.3 Các phương pháp điều khiển: Có nhiều cácnh để điều khiển tốc độ động cơ DC như bằng phương pháp thay đổi điện áp, thay đổi từ thông hoặc phương pháp điều chỉnh độ rộng xung (PWM). Trong cánh tay máy thì chúng em chọn phương pháp điều khiển bằng cách thay đổi độ rộng xung. Chọn phương pháp này vì chúng dễ thực hiện, mạch cấu tạo đơn giản. Vhi Vlo b a t Hình 1.30: Điều khiển động cơ bằng PWM Khi tỷ lệ thời gian "on" trên thời gian "off" thay đổi sẽ làm thay đổi điện áp trung bình (VAVG). Tỷ lệ phần trăm thời gian "on" trong một chu kỳ chuyển mạch nhân với điện áp cấp nguồn sẽ cho điện áp trung bình đặt vào động cơ. Như vậy với điện áp nguồn cung cấp là 100V, và tỷ lệ thời gian ON là 25% thì điện áp trung bình là 25V. VAV thay đổi từ VL đến VH tùy theo các độ rộng Ton và Toff 1.7 Rotary Encoder: 1.7.1 Cấu tạo: Một Encoder thông thường gồm 1 hay nhiều bộ phát và thu nhận ánh sáng. Phần thu thường là photodiotde hoặc phototransistor, một đĩa chắn quang có khoét lỗ gắn trên trục quay đặt giữa bộ phát và thu, thông thường trục quay này sẽ được gắn với trục quay của đối tượng cần đo tốc độ. Encoder thường có các dây sau: – Dây cấp nguồn cho encoder, thường là +5V DC. – Dây nối đất (GND). – Dây pha A – tín hiệu ra theo độ phân giải. – Dây pha B – tín hiệu ra theo độ phân giải. Hai pha A và B lệch pha nhau 1 góc 90 độ. Do đó có thể xác định chiều quay của Encoder thông sự trễ sớm pha của hai pha lẫn nhau Hình 1.31: Cấu tạo cơ bản của Encoder. 1.7.2 Nguyên tắc hoạt động: Nguyên tắc hoạt động của Encoder dựa vào tín hiệu có hoặc không của ánh sáng tại phần thu (phototransistor). Khi Encoder quay, ánh sáng luân phiên chiếu qua các rãnh trên đĩa Encoder. Khi ánh sáng qua rãnh, phototransistor được tích cực, khi đến vị trí bị chắn ánh sáng phototransistor thụ động trở lại. Quá trình này tạo ra xung tại chân ra của phototransistor. Xung này chưa vuông, người ta phải thông qua mạch nắn tạo ra xung vuông như ý muốn. Hai pha A và B đặt lệch nhau 90 độ. Khi quay theo chiều này thì pha A sớm pha hơn pha B. Nhưng khi quay chiều ngược lại thì pha B sớm hơn pha A. Thông qua sự sớm và trễ pha ta có thể xác định chiều quay của Enocder. A B 900 * Trường hợp quay thuận: pha B sớm pha hơn pha A A B *Trường hợp quay nghịch: pha A sớm pha hơn pha B A B 1.8 Van khí nén: Van khí nén dùng trong tay máy có nhiệm vụ thay đổi dòng khí vào xi lanh của tay kẹp. Van sử dụng là van đảo chiều. Có nhiều loại van đảo chiều như: van 2/2, van 3/2, van 4/2, van 5/2, 4/3, van 5/3. Tuy nhiên do cơ cấu xi lanh tay kẹp đơn giản nên chúng em dùng van đảo chiều 5/2. Trong loại van này thì cửa P là cửa cung cấp năng lượng, cửa A lắp vào bên trái của cơ cấu chấp hành, cửa B lắp vào bên phải của cơ cấu chấp hành. Cửa T và cửa R là cửa xả năng lượng. Khi con trược van di chuyển qua cửa phải, cửa P thông với cửa A, cửa B thông với cửa T. Khi con trược di chuyển qua cửa trái, cửa P thông với cửa B, cửa A thông với cửa R. Hình 1.32 : Cấu tạo van đảo chiều 5/2. Hình 1.33: Van đảo chiều trong thực tế. 1.9 Xi lanh khí nén: Xi lanh dùng trong tay kẹp là loại xi lanh 2 chiều. Cấu tạo của xi lanh 2 chiều được thể hiện như hình dưới: Hình 1.34: Cấu tạo và nguyên tắc hoạt động của xi lanh hai chiều. Nguyên tắc hoạt động của xi lanh 2 chiều: - Không cho khí vào xi lanh thì pitton có thể ở vị trí bất kỳ. - Khí vào 1 ra 2: pitton bị đẩy ra. - Khí vào 2 ra 1: pitton bị đẩy vào. Hình1.10 : Xi lanh 2 chiều trong thực tế CHƯƠNG 2: THIẾT KẾ VÀ THI CÔNG PHẦN CỨNG 2.1 Thiết kế mạch: 2.1.1 Mạch nguồn: Khối nguồn phải đáp ứng các yêu cầu sau: - 5V cấp cho encoder hoạt động với điện áp DC ổn định. - 12V cấp cho việc khiển relay và bộ phận kích dẫn FET(IRF540) để khiển motor hoạt động. - 24V cấp nguồn cho PLC và cấp cho động cơ, van khí. Sơ đồ nguyên lí của khối nguồn: Hình 2.1: Sơ đồ nguyên lý mạch nguồn. Trong đó: J1 là ngõ vào 24V (DC). J2, J3 là các ngõ ra. J2 là ngõ ra áp 12V và 24V. J3 là ngõ ra áp 12V và 5V(VCC). 2.1.2 Mạch chuyển đổi điện áp : PLC hoạt động ở điện áp 24V DC nhưng mạch công suất hoạt động ở 12V DC và Encoder đọc tín hiệu xung hoạt động ở 5V DC. DO vậy để giao tiếp giữa chúng với nhau cần phải có mạch chuyển áp. Linh kiện cơ bản của mạch là Opto quang. Sơ đồ nguyên lí: Hình 2.2 : Sơ đồ mạch chuyển áp. 2.1.3 Mạch công suất: Hình 2.3: Sơ đồ mạch công suất. Đây là một phần mạch công suất tiếp nhận tín hiệu từ PLC để khiển motor. Có thể hoạt động theo ON/OFF hoặc điều xung. Đảo chiều động cơ nhờ role. Chế độ ON/OFF: khi PLC cấp 24V ở PWM1 thì opto dẫn làm cho P1 là 12Và D468 dẫnà tín hiệu IRF1 là 12V làm cho IRF540 dẫn và ngõ ra motor có áp là 24V. 24V 0 Ton Toff T Chế độ điều xung: xung ngõ ra PLC đưa vào tín hiệu PWM1: Xung ngõ ra ở tín hiệu P1: 12V 0 Xung ngõ ra ở motor: 24V 0 2.1.4 Mạch đảo chiều động cơ: Cấu tạo bên trong của ULN 2803: ULN2803 được cấu tạo bên trong giống như một transistor NPN darlington có Emiter nối GND, Colector là ngõ ra, và Base là ngõ vào. Chỉ có tác dụng đảo mức 1 thành 0. Còn muốn đảo mức 0 thành 1 thì phải có điện trở kéo lên bên ngoài. Hình 2.4: Cấu tạo ULN 2803 Khi PLC cấp 24V vào tín hiệu ROLE1, opto sẽ dẫnà tín hiệu RL1 là 12V, qua ULN2803 đảo thành 0V, làm role dẫn, và điện áp của động cơ sẽ được đảo ngược à động cơ đảo chiều. 2.1.5 Mạch lấy tín hiệu xung từ encoder đưa vào PLC: Sơ đồ mạch: Hình 2.5: Sơ đồ mạch lấy tín hiệu xung Encoder. Vì encoder có áp sử dụng là 5V, nên ngõ ra là tín hiệu xung 5V. Ta dùng opto để chuyển tín hiệu xung 5V của encoder thành tín hiệu xung 24V cấp cho PLC. Khi xung encoder mức 0(0V) làm cho opto dẫn, và tín hiệu EN1 ngõ ra là 24V, và ngược lại khi xung encoder mức 1(5V) thì opto không dẫn, EN1 sẽ là 0V. EN1 là tín hiệu đưa vào PLC. 2.1.6 Relay đóng mở van khí: Công tắc van khí sử dụng áp là 24V. Nên ta dùng một role để khiển. Khi role đóng tác động van khí và tay kẹp sẽ gắp vật, còn khi role không dẫn tác động van khí và tay kẹp sẽ nhả vật. Tóm tắt kết nối phần cứng: Kết nối từ PLC đến encoder, mạch công suất: J2, J3, J5, J6 là các jumper 4 kết nối tới các encoder. Và J7 là ngõ ra sau khi chuyển đổi tín hiệu xung 5V của encoder thành 24V nhờ opto và đưa vào PLC theo các chân: I0.0, I0.1 cho HSC0 encoder của khâu đế I0.3, I0.4 cho HSC4 encoder của khâu 1 I0.6, I0.7 cho HSC1 encoder của khâu 2 I1.2, I1.3 cho HSC2 encoder của khâu 3( mở rộng cho cánh tay 4 khâu). J4 là jumper 10 kết nối tới ngõ ra của PLC. Lần lượt là: PWM1 chân Q0.0 PWM2 chân Q0.1 PWM3 chân Q0.2 PWM4 chân Q0.3 ROLE1 chân Q0.4 ROLE2 chân Q0.5 ROLE3 chân Q0.6 ROLE4 chân Q0.7 VAN chân Q1.0 J8 là jumper 10 kết nối tới mạch công suất để khiển motor và van khí. 2.2 Thông số khâu, khớp của tay máy 2.2.1 Thông số tay máy: Khâu 1: L1 = 12.5 cm Khâu 2: L2 = 20 cm Khâu 3: L3 = 33 cm 2.2.2 Góc ban đầu của các khâu: Góc 1 : 0 độ Góc 2 : 178 độ Góc 3 : 27 độ 2.2.3 Thông số xung encoder của các khớp: Encoder khớp 1 : 200 xung Encoder khớp 2 : 100 xung Encoder khớp 3 : 100 xung 2.2.4 Cách tính xung từ các góc của khớp: Vì PLC sử dụng đếm counter ở chế độ 4x nên encoder 200 xung sẽ trở thành encoder 800 xung. Ta có: 800 xung ứng với 360 độ. Nên khi có góc thì ứng với số xung là: số xung = Tương tự với encoder 100 xung thì: số xung = 2.3 Thi công: 2.3.1 Mạch điều khiển: Hình 2.6: Layout mạch điều khiển. Hình 2.7: Mạch điều khiển. 2.3.2 Hộp điều khiển: Hình 2.7:Hộp điều khiển. 2.3.3 Không gian làm việc: Hình 2.8 : Không gian làm việc của tay máy. 2.3.4 Tay máy: Hình 2.9 : Hình tay máy. CHƯƠNG 3: XÂY DỰNG PHẦN MỀM. 3.1 Lưu đồ giải thuật cho toàn hệ thống: START Xác định tâm của vật cần gắp. Xác định tọa độ của vật trong hệ quy chiếu. Giải động học ngược Truyền dữ liệu cho PLC Thực hiện gắp vật Thực hiện đặt vật Trở về vị trí ban đầu END 3.2 Lưu đồ giải thuật cho xử lý ảnh: START Lấy ảnh từ Camera Chuyển từ ảnh màu sang ảnh xám Loại bỏ những điểm trắng nhỏ Chuyển từ ảnh xám sang ảnh nhị phân Lấp đầy lỗ trống Lấy biên vật. Lấy tâm vật dựa vào biên đã xác định. RUN = 1? END Y N Hiển thị kết quả. Chương trình xử lý ảnh dùng để tìm tâm vật cần gắp, từ đó lấy tọa độ tâm của vật cần gắp trong khung ảnh. Sau khi lấy tọa độ tâm vật ta chuyển tọa độ đó thành tọa độ so với tay máy. 3.3 Lưu đồ giải thuật cho chương trình PLC: 3.3.1 Lưu đồ giải thuật cho chương trình chính: START KHỞI TẠO COUNTER KHỞI TẠO ĐIỂU XUNG NẠP GIÁ TRỊ BAN ĐẦU CHO BIẾN,BIT LOAD GIÁ TRỊ ĐIỀU XUNG LẤY GIÁ TRỊ COUNTER CHUYỂN ĐỔI CÁC GIÁ TRỊ START=1? Y N MANUAL=0? Y N ĐIỀU KHIỂN BẰNG TAY END CONTROL=10? Y RESET COUNTER CONTROL=11? N Y VITRI_BANDAU N CHẠY GẮP VẬT 3.3.2 Lưu đồ giải thuật cho chương trình con 3.3.2.1 Chương trình con quay về vị trí ban đầu: START CÔNG TẮC 1=1? + - TẮT MOTOR1, ROLE1 BẬT MOTOR1, ROLE1 CÔNG TẮC 2=1? + - TẮT MOTOR2, ROLE2 BẬT MOTOR2, ROLE2 CÔNG TẮC 3=1? + - TẮT MOTOR3, ROLE3 BẬT MOTOR3, ROLE3 END 3.3.2.2 Chương trình con khởi tạo Motor: START KHỞI TẠO ĐIỀU XUNG Q0.0 KHỞI TẠO ĐIỀU XUNG Q0.1 END 3.3.2.3 Chương trình con Reset các Byte sử dụng: START END CHO CÁC BYTE LƯU GIÁ TRỊ HSC =0. CHO CÁC BYTE LƯU GIÁ TRỊ GẮP VẬT CỦA KHÂU 1,2,3 =0. CHO CÁC BYTE LƯU GIÁ TRỊ ĐẬT VẬT CỦA KHÂU 1,2,3 =0. CHO CÁC BYTE LƯU GIÁ TRỊ NĂNG =0. CHO CÁC BYTE LƯU GIÁ TRỊ ĐIỀU KHIỂN =0. 3.3.2.4 Chương trình con reset Counter: START END KHỞI TẠO LẠI COUNTER 1 (ĐẾM ENCODER KHÂU 3) KHỞI TẠO LẠI COUNTER 4 (ĐẾM ENCODER KHÂU 2) KHỞI TẠO LẠI COUNTER 0 (ĐẾM ENCODER KHÂU 1) 3.3.2.5 Chư

Các file đính kèm theo tài liệu này:

  • docluan van_TRO_SI.doc
  • docMỤC LỤC.doc