Bối cảnh và vấn đề nghiên cứu

Trong xu thế phát triển của khoa học kỹ thuật và tự động hóa công nghiệp, việc thay thế các công đoạn kiểm tra thủ công bằng hệ thống tự động giúp tăng năng suất lao động, đảm bảo an toàn và nâng cao độ chính xác trong kiểm soát chất lượng sản phẩm. Đề tài "Ứng dụng công nghệ xử lý ảnh trong kiểm tra, phân loại sản phẩm lỗi bề mặt" được thực hiện bởi nhóm sinh viên Ngô Quý Hiệp và Nguyễn Hữu Hiếu dưới sự hướng dẫn của giảng viên Hoàng Quốc Tuân tại Khoa Cơ khí - Chuyên ngành Cơ điện tử, Trường Đại học Sư phạm Kỹ thuật Hưng Yên (tháng 11 năm 2022).

Nghiên cứu tập trung giải quyết bài toán tự động hóa dây chuyền cấp phôi, nhận diện sản phẩm lỗi bề mặt bằng thị giác máy tính, phân loại phôi lỗi bằng cơ cấu chấp hành khí nén và lưu trữ phôi đạt tiêu chuẩn bằng cánh tay robot công nghiệp.

Văn bản xác định rõ 5 mục tiêu nghiên cứu cụ thể:

  1. Nghiên cứu, phân tích đặc điểm của động cơ DC băng tải, xylanh khí nén, robot ABB.
  2. Nghiên cứu, phân tích đặc điểm của camera, làm quen với ngôn ngữ lập trình Python cũng như các công cụ hỗ trợ trong thư viện OpenCV.
  3. Nghiên cứu, tìm hiểu cách lập trình điều khiển cho robot ABB đến các vị trí lập trình sẵn và truyền thông gửi, nhận tín hiệu từ PLC.
  4. Nghiên cứu, phân tích đặc điểm cảm biến.
  5. Nghiên cứu, phân tích phương pháp điều khiển, giao tiếp Modbus TCP/IP giữa PLC và Python thông qua máy tính.

Nhiệm vụ nghiên cứu bao gồm:

  • Nghiên cứu phương pháp tìm, vẽ biên dạng bằng OpenCV với ngôn ngữ lập trình Python.
  • Nghiên cứu phương pháp xây dựng chương trình điều khiển cho hệ thống phân loại phôi.
  • Nghiên cứu, điều khiển, vận hành trạm phân loại phôi tự động.

Đối tượng và phạm vi nghiên cứu:

  • Khách thể nghiên cứu: Lắp đặt, vận hành, mô phỏng điều khiển mô hình phân loại sản phẩm theo hình dạng lỗi bề mặt sử dụng OpenCV.
  • Đối tượng nghiên cứu: Hệ thống băng tải vận chuyển sản phẩm, hệ thống camera công nghiệp Cognex, quy trình điều khiển tích hợp.
  • Phạm vi nghiên cứu: Khảo sát các phần tử trong mô hình phân loại; nhận dạng hình dạng sản phẩm lỗi qua OpenCV trên máy tính; lập trình Python truyền tín hiệu điều khiển tới PLC Siemens S7-1200 và cánh tay robot ABB IRB 120 trong không gian xưởng thực hành.

Cơ sở lý thuyết và phương pháp

Khóa luận dựa trên nền tảng lý thuyết xử lý ảnh số, lý thuyết điều khiển tự động và mạng truyền thông công nghiệp:

Khung lý thuyết và mô hình xử lý ảnh

Quy trình xử lý ảnh được xây dựng qua 5 bước tiêu chuẩn:

  • Thu nhận ảnh (Image Acquisition): Chuyển đổi tín hiệu quang học thành tín hiệu số thông qua cảm biến CCD với các tham số về độ phân giải, tốc độ khung hình và độ sâu bit.
  • Tiền xử lý (Image Processing): Nâng cao chất lượng ảnh, cải thiện độ tương phản và khử nhiễu bằng các bộ lọc tuyến tính (lọc trung bình, lọc thông thấp) hoặc lọc phi tuyến (lọc trung vị, lọc ngoài).
  • Phân đoạn ảnh (Segmentation): Tách đối tượng khảo sát khỏi nền thông qua phân ngưỡng mức xám trên mô hình biểu diễn Raster (với quan hệ 4 lân cận và 8 lân cận) và các phép toán hàm ảnh $f(x,y)$.
  • Biểu diễn và trích chọn đặc trưng: Mô tả đối tượng dưới dạng biên hoặc vùng hoàn chỉnh; sử dụng các phép toán hình thái học (Morphology) gồm phép giãn (Dilation) và phép co (Erosion).
  • Phát hiện biên và toán tử logic: Áp dụng thuật toán tách biên Canny (kết hợp bộ lọc Gauss, kỹ thuật non-maximal suppression và phân ngưỡng kép $T_1$, $T_2$), phương pháp đạo hàm bậc một Gradient (toán tử Sobel, Prewitt, Roberts) cùng các toán tử bitwise (AND, OR, NOT, XOR) để xử lý dữ liệu ma trận ảnh nhị phân.

Phương pháp nghiên cứu

  • Phương pháp nghiên cứu lý thuyết: Thu thập, phân tích tài liệu chuyên ngành về kỹ thuật thị giác máy tính, thuật toán OpenCV, tập lệnh lập trình PLC Siemens S7-1200, ngôn ngữ điều khiển robot RAPID và giao thức Modbus TCP/IP.
  • Phương pháp nghiên cứu thực nghiệm: Thiết kế mô hình 3D trên phần mềm Autodesk Inventor và RobotStudio; gia công, lắp ráp phần cứng trạm cấp phôi; đấu nối mạch điện, khí nén; cài đặt phần mềm và kiểm thử vận hành đồng bộ hệ thống thực tế tại xưởng.

Thiết kế và triển khai

Hệ thống thực nghiệm được xây dựng dưới dạng một dây chuyền tự động khép kín tích hợp cơ - điện - quang:

Thông số kỹ thuật của các thiết bị chính

Hạng mục thiết bị Model / Thông số chi tiết Chức năng trong hệ thống
Camera công nghiệp Cognex In-Sight 5110-01 + Lens 25mm, cảm biến CCD 1/3-inch, $640 \times 480$ pixels, 60 fps, 256 mức xám (8-bit), Flash 128MB, RAM 256MB, chuẩn IP67, nguồn 24VDC Thu nhận hình ảnh phôi khi đi qua vùng kiểm tra
Bộ điều khiển PLC Siemens S7-1200 CPU 1212C DC/DC/DC (6ES7212-1AE40-0XB0), 8 DI / 6 DO, 2 ngõ ra Analog, bộ nhớ làm việc 75 kB, bộ nhớ nạp 2MB Điều khiển trung tâm toàn bộ cơ cấu chấp hành và giao tiếp dữ liệu
Module mở rộng SM 1223 Digital I/O (6ES7223-1BH32-0XB0 / 6ES7223-1QH32-0XB0), 8 DI / 8 DO Mở rộng cổng vào/ra số phục vụ kết nối tín hiệu liên trạm
Robot công nghiệp ABB IRB 120 (6 bậc tự do), bộ điều khiển IRC5, phần mềm mô phỏng RobotStudio Gắp và xếp phôi đạt tiêu chuẩn từ cuối băng tải vào khay chứa
Cảm biến quang Omron E3Z-D61 2M (nguồn 12-24VDC, phản xạ khuếch tán, khoảng cách 100mm, đáp ứng 1ms) và E18-D80NK (nguồn 5VDC, khoảng cách 3-8cm) Phát hiện phôi tại vị trí chụp ảnh và các vị trí chuyển tiếp trên băng tải
Băng tải & Khí nén 2 băng tải ($600 \times 60 \times 100$ mm); Xi lanh đơn đẩy phôi 1A, 2A (bore 16mm, hành trình 50mm); Xi lanh kép 3A (bore 10mm, hành trình 70mm, áp suất 1.5 MPa) Cấp phôi từ ống chứa, vận chuyển và đẩy phôi lỗi bề mặt vào khay phế phẩm

Cấu hình truyền thông Modbus TCP/IP

Hệ thống sử dụng mô hình truyền thông Client - Server công nghiệp qua cổng Ethernet (Port 502):

  • Phía máy tính (Python): Sử dụng thư viện pymodbus thông qua ModbusTcpClient, kết nối tới địa chỉ IP của PLC (192.168.1.1 hoặc cấu hình liên kết 192.168.1.3), sử dụng hàm client.write_register() để ghi trạng thái phôi lỗi/đạt và client.read_holding_registers() để đọc dữ liệu thanh ghi.
  • Phía PLC Siemens: Cấu hình khối hàm chức năng MB_SERVER (FC1 MB_TCP/IP) kết hợp khối dữ liệu Data_MB_TCP/IP, chuyển dữ liệu đọc được từ các thanh ghi sang vùng nhớ đệm MW bằng lệnh MOVE.

Kết nối I/O giữa PLC và Robot ABB IRB 120

Chân Module I/O trạm phôi Chân Module I/O Robot Địa chỉ tín hiệu Robot Chức năng điều khiển
Chân 1 Chân P2.17 Chân 0V Nối chung nguồn 0V giữa hai hệ thống
Chân 2 Chân P3.4 DI03 Tín hiệu dừng robot (Stop)
Chân 3 Chân P3.5 DI04 Tín hiệu khởi động robot gắp phôi (Start)
Chân 4 Chân P3.6 DI05 Tín hiệu tiếp tục chu trình (Resume)

Nội dung chính theo từng chương

Chương 1: Mở đầu

Chương này nêu rõ tính cấp thiết của việc áp dụng khoa học kỹ thuật tự động hóa vào sản xuất công nghiệp nhằm thay thế sức lao động con người. Tác giả xác lập 5 mục tiêu nghiên cứu cụ thể, 3 nội dung trọng tâm, đối tượng, phương pháp và phạm vi nghiên cứu thực nghiệm. Đồng thời, chương 1 phân tích ý nghĩa lý luận về mặt phân tích cấu tạo, nguyên lý cơ điện tử và ý nghĩa thực tiễn phục vụ giảng dạy, nghiên cứu hệ thống xử lý ảnh.

Chương 2: Tổng quan về xử lý ảnh

Chương 2 trình bày toàn diện cơ sở lý thuyết về xử lý ảnh số. Nội dung bao gồm lịch sử phát triển, các bước xử lý ảnh (thu nhận, tiền xử lý, phân đoạn, biểu diễn, nhận dạng), cấu trúc biểu diễn ảnh ma trận Raster và Vector. Tác giả đi sâu vào các kỹ thuật toán học:

  • Khái niệm điểm ảnh, thang xám 8-bit ($0 - 255$), ảnh màu RGB, ảnh Highcolor 16-bit và Truecolor 24-bit.
  • Các giải pháp lọc nhiễu tuyến tính (lọc trung bình) và phi tuyến (lọc trung vị, lọc ngoài dựa trên so sánh sai lệch trung bình 8 điểm lân cận).
  • Các toán tử phát hiện biên bậc một (Gradient, Sobel, Prewitt, Roberts), bậc hai (Laplace) và giải thuật Canny.
  • Các phép toán hình thái học Dilation, Erosion và 4 toán tử bitwise cơ bản (AND, OR, NOT, XOR) phục vụ tách biên dạng.

Chương 3: Tổng quan về hệ thống thực nghiệm

Chương 3 trình bày chi tiết kết cấu cơ khí, bố trí mặt bằng trạm và thông số thiết bị phần cứng. Tác giả lập bảng danh mục 18 chi tiết/cơ cấu trên trạm cấp và phân loại phôi, xây dựng mô hình 3D trên Autodesk Inventor và RobotStudio. Các thông số kỹ thuật điện, quang, khí nén của Camera Cognex In-Sight 5110-01, cảm biến quang Omron E3Z-D61, cảm biến E18-D80NK, PLC S7-1200 CPU 1212C DC/DC/DC, module mở rộng SM 1223, cơ cấu xi lanh khí nén và Robot ABB IRB 120 6 bậc tự do đều được mô tả chi tiết kèm sơ đồ đấu nối dây phần cứng và hệ thống khí nén.

Chương 4: Thiết lập truyền thông và lập trình

Chương 4 tập trung vào giải pháp phần mềm và tích hợp hệ thống:

  1. Truyền thông Modbus TCP/IP: So sánh các chuẩn Modbus RTU, Modbus ASCII, Modbus TCP/IP; hướng dẫn từng bước cấu hình thư viện pymodbus trên Python và hàm MB_SERVER trên phần mềm TIA Portal.
  2. Quy trình xử lý ảnh 5 bước bằng Python OpenCV:
    • Bước 1: Đọc và nhị phân hóa ảnh nền (ảnh băng tải không chứa phôi).
    • Bước 2: Đọc và nhị phân hóa ảnh chụp phôi khi hệ thống vận hành.
    • Bước 3: Hợp nhất ảnh nền và ảnh chứa phôi bằng toán tử XOR để triệt tiêu các chi tiết trùng khớp (mặt băng tải, thanh dẫn hướng).
    • Bước 4: Làm mịn và loại bỏ nhiễu trên ảnh kết quả.
    • Bước 5: Tìm và vẽ đường bao (Contours) để nhận dạng khuyết tật bề mặt sản phẩm.
  3. Lập trình điều khiển: Xây dựng lưu đồ thuật toán điều khiển toàn hệ thống trên TIA Portal cho PLC S7-1200 và cấu hình chương trình điều khiển quỹ đạo gắp/xếp phôi cho Robot ABB IRB 120 theo tín hiệu I/O nhận từ PLC.

Chương 5: Kết luận và kiến nghị

Chương tổng kết các kết quả đạt được sau quá trình thiết kế, chế tạo và thử nghiệm mô hình; đồng thời nêu rõ các điểm còn hạn chế của hệ thống trong điều kiện vận hành thực tế.

Kết quả và đóng góp

Kết quả chính đạt được

  • Hoàn thiện hệ thống phần cứng: Thiết kế và lắp ráp hoàn chỉnh mô hình cơ khí trạm cấp phôi, 2 băng tải kích thước $600 \times 60 \times 100$ mm, hệ thống cơ cấu chấp hành khí nén, hệ thống cảm biến quang học, tủ điện điều khiển PLC S7-1200 và tích hợp trạm cánh tay robot ABB IRB 120 6 bậc tự do.
  • Xây dựng giải thuật xử lý ảnh hiệu quả: Ứng dụng thành công thuật toán kết hợp nhị phân hóa, phép toán bitwise XOR giữa ảnh nền và ảnh chứa phôi cùng kỹ thuật lọc nhiễu, tìm đường bao (Contours) trong OpenCV để phát hiện chính xác các khuyết tật bề mặt của sản phẩm.
  • Thiết lập mạng truyền thông công nghiệp: Kết nối thành công giao thức Modbus TCP/IP (Port 502) giữa môi trường Python trên máy tính và PLC Siemens S7-1200 với tốc độ truyền nhận dữ liệu ổn định, không bị xung đột tín hiệu.
  • Vận hành liên động khép kín: Hệ thống thực hiện chu trình tự động liên tục: Cấp phôi bằng xi lanh 1A $\rightarrow$ Cảm biến Omron kích hoạt Camera Cognex chụp ảnh $\rightarrow$ Python xử lý và phân loại lỗi $\rightarrow$ PLC kích hoạt xi lanh 2A gạt phôi lỗi vào khay chứa $\rightarrow$ Phôi đạt tiêu chuẩn chuyển đến cuối băng tải 2 được Robot ABB gắp và xếp vào khay chứa quy định.

Giải pháp và đóng góp của đề tài

  • Đề xuất giải pháp kết hợp linh hoạt giữa phần mềm mã nguồn mở (Python OpenCV) với các thiết bị điều khiển công nghiệp tiêu chuẩn (PLC S7-1200, Robot ABB), giúp giảm chi phí bản quyền phần mềm thị giác chuyên dụng trong các ứng dụng kiểm tra chất lượng.
  • Xây dựng tài liệu kỹ thuật chi tiết về sơ đồ đấu nối I/O, cấu hình truyền thông Modbus TCP/IP giữa PC và PLC Siemens, cung cấp mô hình trực quan phục vụ công tác giảng dạy và thực hành chuyên ngành Cơ điện tử và Tự động hóa.

Hạn chế và hướng nghiên cứu tiếp

Dựa trên nội dung tổng kết của đồ án, các hạn chế và hướng phát triển được xác định:

  • Hạn chế kỹ thuật: Độ ổn định của thuật toán xử lý ảnh còn phụ thuộc vào điều kiện chiếu sáng của môi trường xung quanh; việc nhận diện mới tập trung vào các lỗi biến dạng hình học bề mặt rõ rệt; hệ thống mới thử nghiệm ở quy mô mô hình thực hành với tốc độ cấp phôi và tải trọng định mức giới hạn.
  • Hướng nghiên cứu tiếp: Bổ sung hệ thống chiếu sáng công nghiệp chuyên dụng (vòm sáng, đèn vòng) để ổn định chất lượng ảnh thu nhận; mở rộng thuật toán sang các mô hình trí tuệ nhân tạo/học sâu nhằm phát hiện đa dạng các dạng lỗi bề mặt phức tạp hơn; tối ưu hóa thời gian chu kỳ của cánh tay robot và nâng cao tốc độ xử lý của dây chuyền.

Giá trị tham khảo

Đồ án là tài liệu tham khảo hữu ích cho:

  • Sinh viên và học viên: Thuộc các ngành Cơ điện tử, Kỹ thuật Điều khiển và Tự động hóa, Kỹ thuật Robot, Công nghệ Kỹ thuật Điện - Điện tử có nhu cầu nghiên cứu về tích hợp hệ thống và ứng dụng thị giác máy tính trong sản xuất.
  • Kỹ sư và giảng viên: Cần tài liệu hướng dẫn thực hành về cấu hình giao thức Modbus TCP/IP giữa Python và PLC Siemens S7-1200 qua phần mềm TIA Portal, phương pháp đấu nối I/O với tủ điều khiển Robot ABB IRC5, cũng như giải thuật tách phôi bằng phép toán bitwise XOR trên OpenCV.

Câu hỏi thường gặp

1. Giao thức nào được sử dụng để truyền dữ liệu giữa chương trình xử lý ảnh Python và PLC S7-1200?

Hệ thống sử dụng giao thức truyền thông Modbus TCP/IP qua cổng mạng Ethernet tiêu chuẩn (Port 502). Chương trình Python đóng vai trò là Modbus Client (sử dụng thư viện pymodbus), còn PLC Siemens S7-1200 đóng vai trò là Modbus Server (sử dụng khối hàm MB_SERVER trong TIA Portal).

2. Thuật toán xử lý ảnh loại bỏ chi tiết thanh dẫn hướng và băng tải bằng phương pháp nào?

Chương trình thực hiện nhị phân hóa ảnh nền (chỉ có băng tải) và ảnh chụp khi có phôi, sau đó áp dụng toán tử bitwise XOR (cv2.bitwise_xor). Phép toán này giữ lại phần khác biệt duy nhất là sản phẩm và khuyết tật, đồng thời triệt tiêu toàn bộ các chi tiết tĩnh trùng lặp như mặt băng tải và thanh dẫn hướng.

3. Thông số kỹ thuật chính của Camera công nghiệp Cognex In-Sight 5110-01 trong đồ án là gì?

Camera Cognex In-Sight 5110-01 sử dụng cảm biến 1/3-inch CCD, độ phân giải $640 \times 480$ pixel, tốc độ chụp 60 khung hình/giây (fps), độ sâu bit 256 mức xám (8-bit/pixel), tốc độ màn trập điện tử từ $16,\mu\text{s}$ đến $1000,\text{ms}$, bộ nhớ flash 128MB, bộ nhớ xử lý ảnh 256MB và đạt tiêu chuẩn bảo vệ IP67.

4. Tín hiệu điều khiển giữa PLC Siemens S7-1200 và cánh tay Robot ABB IRB 120 được đấu nối qua các chân I/O nào?

Tín hiệu I/O được kết nối qua module mở rộng: Chân 1 nối chung nguồn 0V (P2.17); Chân 2 nối vào địa chỉ DI03 của robot (tín hiệu Stop); Chân 3 nối vào địa chỉ DI04 của robot (tín hiệu Start chu trình gắp); Chân 4 nối vào địa chỉ DI05 của robot (tín hiệu Resume tiếp tục chu trình).

5. Chu trình phân loại phôi lỗi và phôi đạt trên dây chuyền diễn ra như thế nào?

Khi phôi đi qua cảm biến quang Omron E3Z-D61, camera Cognex chụp ảnh và gửi về máy tính. Python phân tích ảnh; nếu phôi bị lỗi bề mặt, tín hiệu gửi qua Modbus TCP/IP yêu cầu PLC kích hoạt xi lanh 2A gạt phôi vào khay phôi lỗi. Nếu phôi đạt tiêu chuẩn, phôi tiếp tục chạy đến cuối băng tải 2, kích hoạt cảm biến để PLC gửi tín hiệu DI04 gọi cánh tay Robot ABB IRB 120 tới gắp và xếp vào khay lưu trữ phôi đạt.

Kết luận

Đồ án tốt nghiệp "Ứng dụng công nghệ xử lý ảnh trong kiểm tra, phân loại sản phẩm lỗi bề mặt" đã thiết kế, chế tạo và tích hợp thành công mô hình dây chuyền tự động hóa cơ điện tử hoàn chỉnh. Nghiên cứu giải quyết tốt bài toán liên kết truyền thông công nghiệp Modbus TCP/IP giữa phần mềm thị giác máy tính OpenCV trên nền tảng Python và bộ điều khiển lập trình PLC Siemens S7-1200 cùng cánh tay robot ABB IRB 120. Kết quả thực nghiệm tại xưởng chứng minh tính khả thi của giải pháp trong việc kiểm soát chất lượng sản phẩm tự động, cung cấp tư liệu kỹ thuật có giá trị ứng dụng cao cho đào tạo và nghiên cứu chuyên ngành.