TỔNG QUAN
Đặt vấn đề
Tìm lỗi bề mặt là một vấn đề quan trọng trong nhiều ngành công nghiệp hiện nay, bao gồm sản phẩm như vải, thép, gỗ, đá hoa cương và khảo cổ học Việc phát hiện lỗi một cách chính xác và nhanh chóng yêu cầu phân tích kết cấu ảnh và các lớp màu một cách tối ưu, đồng thời cần xử lý dữ liệu trong thời gian thực với ít nhiễu nhất có thể Nghiên cứu các phương pháp kiểm tra và đánh giá lỗi bề mặt trong dây chuyền sản xuất tự động là rất cần thiết, tuy nhiên, hiện tại vẫn chủ yếu dựa vào các phương pháp truyền thống do con người thực hiện Với sự phát triển của công nghệ, việc kiểm tra và đánh giá chất lượng sản phẩm cần được thực hiện chính xác và nhanh chóng, đặc biệt trong môi trường có nhiều nhiễu Do đó, việc áp dụng hệ thống quan sát tự động để phân loại sản phẩm trên băng tải là một ứng dụng quan trọng trong công nghiệp.
Trước xu hướng hiện nay, chúng tôi đã chọn đề tài “Mô hình phát hiện lỗi trên bề mặt gạch men ứng dụng xử lý ảnh” cho đồ án tốt nghiệp của mình Đồ án tốt nghiệp sẽ được trình bày qua nhiều chương, bắt đầu với Chương 1: Tổng quan.
Hình 1- 1 : Máy phát hiện lỗi trên gạch men
Mục tiêu giới hạn đề tài
Mục tiêu của nghiên cứu này là phát triển một thuật toán tự động phát hiện các lỗi cơ bản trên viên gạch, như vết nứt và mẻ cạnh, nhằm nâng cao hiệu quả về thời gian và năng suất Dù thuật toán có khả năng phát hiện các lỗi đơn giản, nhưng vẫn chưa thể nhận diện được các lỗi phức tạp hơn Do hạn chế về kiến thức và năng lực, thuật toán xử lý ảnh hiện tại chưa được tối ưu, dẫn đến yêu cầu phần cứng cần phải đáp ứng đủ tiêu chuẩn cho việc xử lý ảnh hiệu quả.
Phương pháp, phương tiện nghiên cứu
Trong quá trình thực hiện đề tài, chúng tôi đã áp dụng nhiều phương pháp nghiên cứu, bao gồm việc khảo sát tài liệu trong và ngoài nước, tìm hiểu ứng dụng của MATLAB trong xử lý ảnh, và thử nghiệm các phương pháp khả thi.
Phương pháp dùng camera để phát hiện lỗi trên gạch cũng được một số nhà máy gạch men lớn sử dụng rộng rãi.
Ý nghĩa thực tiễn của đề tài
Trong các nhà máy gạch men lớn hiện nay, việc phát hiện lỗi và kiểm tra chất lượng sản phẩm trở thành một yếu tố quan trọng Do đó, việc áp dụng hệ thống phát hiện lỗi tự động là cần thiết để giảm thiểu nguồn nhân lực, đồng thời nâng cao hiệu suất và độ chính xác trong quy trình sản xuất.
CƠ SỞ LÝ THUYẾT
Thị giác máy tính
Trước đây, chất lượng gạch men tại nhà máy thường được kiểm tra bằng phương pháp thủ công, dựa vào giám sát của con người và các công cụ đo đạc đơn giản Các cảm biến điện tử chỉ có khả năng xác định kích thước và độ cong vênh của gạch, nhưng không đủ để phát hiện các khuyết tật khác như vết nứt, lõm men, đốm hay lỗ kim trên bề mặt gạch men.
Với sự phát triển của công nghệ thông tin, các phần mềm và thuật toán xử lý ảnh đã được nghiên cứu và phát triển, cho phép phân tích và xử lý hình ảnh dựa trên các đặc trưng của đối tượng tương tự như hệ thống thị giác của con người Điều này đã nâng cao tính tự động hóa trong lĩnh vực giám sát, đặc biệt là trong hệ thống kiểm tra chất lượng sản phẩm thông qua kỹ thuật nhận dạng đặc trưng, màu sắc và hình dáng Tất cả những tiến bộ này được xây dựng trên nền tảng của thị giác máy tính.
Trong đồ án này, chúng tôi áp dụng thuật toán thị giác máy tính để phát hiện các khuyết tật trên bề mặt gạch men và xác định kích thước của từng viên gạch.
Lĩnh vực ứng dụng của thị giác máy tính rất đa dạng, bao gồm nhận dạng chữ, nhận biết hành vi, nhận dạng khuôn mặt, điều khiển robot và ước tính quỹ đạo di chuyển Đây là những công cụ quan trọng cho trí tuệ nhân tạo Các phần được áp dụng trong đồ án này chỉ là một phần nhỏ trong tổng thể của thị giác máy tính.
Ngưỡng và các bộ lọc
Việc áp dụng ngưỡng và bộ lọc là phương pháp quan trọng trong việc cải thiện chất lượng ảnh trong giai đoạn tiền xử lý Ngưỡng (Threshold) là khái niệm quen thuộc trong xử lý ảnh, dùng để phân loại các đối tượng thành những vùng riêng biệt dựa trên giá trị đã xác định.
Hình 2- 1: Ví dụ về ảnh hưởng của việc đặt ngưỡng (a) là ảnh gôc, (b) là ảnh với ngưỡng 0.7, (c) là ảnh với ngưỡng 0.4
Trong luận văn này, ngưỡng được sử dụng để nhị phân hóa ảnh, biến ảnh xám thành ảnh nhị phân chỉ chứa giá trị 0 và 1 Giá trị 0 đại diện cho các điểm đen trên ảnh, trong khi giá trị 1 đại diện cho các điểm trắng Công thức nhị phân hóa ảnh là gán giá trị 0 cho tất cả các điểm có giá trị nhỏ hơn ngưỡng T đã định trước và gán giá trị 255 cho các điểm có giá trị lớn hơn ngưỡng T đó Vấn đề chính là việc lựa chọn ngưỡng T phù hợp.
Để tạo ra ảnh nhị phân đúng như mong muốn, cần xác định ngưỡng T để làm nổi bật các vùng đối tượng và nền Tuy nhiên, việc xác định giá trị T không hề đơn giản, vì nó phụ thuộc vào điều kiện chiếu sáng khác nhau trong từng môi trường, dẫn đến mỗi môi trường có giá trị T riêng biệt.
Các phương pháp xác định khuyết tật trên bề mặt gạch men
Trong nghiên cứu và phát triển, yếu tố chính xác và thực hiện nhanh chóng theo thời gian thực là yêu cầu hàng đầu Do đó, cần có sự phối hợp chặt chẽ giữa hai lĩnh vực để đảm bảo hiệu quả tối ưu trong quá trình này.
Xử lý ảnh (Image Processing) và Thị giác máy tính (Computer Vision)
Có nhiều phương pháp và cách tiếp cận để nhận biết khuyết tật trên bề mặt sản phẩm, bao gồm máy học và phát hiện biên cho ảnh đa mức xám.
2.3.1 Nhận biết theo phương pháp học máy (machine learning)
Các phương pháp này dựa trên việc sử dụng các hình mẫu của đối tượng để trích xuất đặc trưng Để thực hiện điều này, cần tiến hành huấn luyện bằng cách sử dụng thống kê hoặc các thuật toán học máy với một lượng mẫu ảnh đủ lớn, bao gồm cả ảnh có đối tượng và không có đối tượng.
Một số phương pháp thuộc nhóm này:
- Phương pháp mạng Nơ-ron nhân tạo
Nhóm phương pháp này được xây dựng dựa trên việc huấn luyện để tạo ra mô hình đối tượng sản phẩm từ tập dữ liệu dương (ảnh có chứa hình đối tượng) và tập dữ liệu âm (ảnh không chứa hình đối tượng) Điều này cho phép so sánh trực tiếp các đặc điểm hình học của một kiểu sản phẩm điển hình.
Nhược điểm của phương pháp này là đòi hỏi phải luôn có sẵn cơ sở dữ liệu hình ảnh sản phẩm rất lớn
2.3.2 Nhận biết theo phương pháp phát hiện biên trên ảnh đa mức xám 2.3.2.1 Các phương pháp tách biên trong xử lý ảnh
Biên trong hình ảnh được định nghĩa là đường bao hoặc đường viền phân cách các khu vực có đặc điểm khác biệt, thường dựa trên sự thay đổi đột ngột về cấp xám Thông tin từ biên đóng vai trò quan trọng trong phân tích và nhận diện hình ảnh Quá trình phát triển biên bao gồm việc sử dụng hàm mịn để nâng cao chất lượng ảnh và phát hiện biên, giúp cải thiện độ chính xác trong việc xử lý thông tin hình ảnh.
Có nhiều phương pháp để phát hiện cơ bản, nhưng hầu hết trong số đó có thể chia thành hai loại:
Phương pháp phát hiện biên trực tiếp là kỹ thuật tìm biên dựa vào sự biến thiên của giá trị độ sáng (cấp xám) trong ảnh, chủ yếu sử dụng đạo hàm Phương pháp này có thể được chia thành hai loại khác nhau.
Phương pháp Gradient là kỹ thuật ước lượng độ lớn gradient thông qua việc áp dụng bộ lọc hàm mịn, nhằm xác định vị trí của biên trong ảnh Cụ thể, phương pháp này thực hiện dò biên cục bộ bằng cách tìm kiếm các cực đại và cực tiểu thông qua đạo hàm bậc nhất của hình ảnh.
Phương pháp Laplace sử dụng đạo hàm bậc hai của tín hiệu để xác định biên độ cực đại, khi đạo hàm bậc hai bằng 0 Trong ngắn hạn, phương pháp này tìm kiếm toán tử chéo không tại đạo hàm bậc hai của ảnh nhằm phát hiện các biên.
Phương pháp phát hiện biên gián tiếp liên quan đến việc phân chia ảnh thành các vùng, với ranh giới giữa các vùng được gọi là biên Kỹ thuật dò biên và phân vùng ảnh là hai vấn đề đối ngẫu, trong đó dò biên hỗ trợ phân lớp đối tượng, và khi hoàn thành phân lớp, ảnh cũng được phân vùng Ngược lại, khi ảnh đã được phân vùng thành các đối tượng, quá trình này cho phép phát hiện biên một cách hiệu quả.
2.3.4 Nhận biết theo phương pháp so khớp mẫu (Template Matching)
Template Matching là một kỹ thuật phân loại đối tượng dựa vào sự tương đồng giữa đối tượng cần phân loại và mẫu đã cho Phương pháp này thực hiện so sánh giữa ảnh gạch chuẩn và ảnh gạch mẫu để xác định sự khác biệt Trong nghiên cứu này, các lỗi được phát hiện thông qua việc trừ ảnh xám của gạch chuẩn với ảnh xám của gạch lỗi Mỗi ảnh xám cung cấp thông tin cần thiết để phân tích và nhận diện các sai sót.
Khi thực hiện phép trừ giữa hai ảnh xám, chúng ta đang xử lý hai ma trận số với các giá trị là mức xám của các pixel Các pixel có cùng mức xám sẽ cho kết quả bằng 0, dẫn đến việc loại bỏ các chi tiết giống nhau, trong khi các chi tiết khác biệt sẽ hiện ra, giúp phát hiện lỗi Tuy nhiên, để thực hiện phép trừ này, hai ảnh phải có cùng kích thước và các pixel tương ứng cần phải có cùng mức xám và vị trí tọa độ; nếu không, kết quả sẽ không chính xác.
Trong thực tế, việc đảm bảo các điều kiện về vị trí của các chi tiết giống nhau là không khả thi, vì mỗi viên gạch trên băng tải đều có tư thế khác nhau và không thể trùng khớp hoàn toàn Chỉ cần một pixel bị lệch cũng có thể dẫn đến sai số trong kết quả Do đó, cần sử dụng thuật toán image registration để căn chỉnh ảnh lỗi với ảnh chuẩn, sử dụng các điểm đặc trưng SURF (Speed Up Robust Features) Các điểm đặc trưng này là những điểm không thay đổi khi ảnh bị xoay hoặc thay đổi kích thước SURF là một phương pháp phát hiện và mô tả các điểm quan tâm với tính bất biến về tỷ lệ và góc xoay, nhanh hơn so với các phương pháp trước đây, đồng thời cải thiện khả năng tính toán và so sánh.
SURF đạt được kết quả ấn tượng nhờ vào việc tích hợp hình ảnh với nhiều nếp cuộn, dựa trên thế mạnh của các bộ phát hiện và mô tả hàng đầu Phương pháp ma trận Hessian được sử dụng để đo đạc cho bộ phát hiện, trong khi phương pháp phân phối hỗ trợ cho các bộ mô tả Việc đơn giản hóa các phương pháp này giúp tạo ra kết quả thiết yếu và kết nối các phát hiện với mô tả mới một cách hiệu quả.
Các bước thực hiện image registration:
Bước 1: Chuyển đổi ảnh chuẩn và lỗi thành ảnh xám (Hình 2-2)
Bước 2: Tìm ra các điểm đặc trưng của cả 2 ảnh (Hình 2-3)
Hình 2-3 Đồ án tốt nghiệp Chương 2: Cơ sở lý thuyết
Bước 3: Đối chiếu các điểm đặc trưng của 2 ảnh với nhau để tìm ra các cặp trùng khớp (Hình 2-4)
Bước 4: Từ các điểm đặc trưng trùng khớp tìm được, tính toán ra ma trận chuyển đổi
Ma trận chuyển đổi [4] là một ma trận có dạng :
T -as tx as ac ty
Hệ số tỉ lệ của hai ảnh được ký hiệu là a, trong khi c đại diện cho cos của góc xoay và s là sin của góc xoay Ngoài ra, tx và ty là các giá trị thể hiện sự dịch chuyển theo trục x và trục y.
Bước 5 : Xoay và dịch chuyển ảnh lỗi theo ma trận chuyển đổi x' y'
-as tx as ac ty
Trong đó x, y là tọa độ của 1 pixcel trong ảnh x’, y’ là tọa độ mới của pixcel đó sau khi chuyển đổi Đồ án tốt nghiệp Chương 2: Cơ sở lý thuyết
Bảng 2-1: Bảng thống kế số lượng thiết bị
PLC (Điều khiển Logic Có thể Lập trình) là thiết bị cho phép thực hiện các thuật toán điều khiển logic một cách linh hoạt thông qua ngôn ngữ lập trình Với khả năng thay đổi thuật toán điều khiển dễ dàng, PLC trở thành bộ điều khiển số nhỏ gọn, đồng thời có khả năng trao đổi thông tin với các thiết bị khác như PLC khác hoặc máy tính.
Giới thiệu phần mềm
2.5.1.1 Xử lý ảnh trong Matlab
Matlab là phần mềm do công ty MathWorks phát triển, cung cấp môi trường tính toán số và lập trình mạnh mẽ Phần mềm này cho phép người dùng thực hiện các phép toán với ma trận, vẽ đồ thị hàm số và biểu đồ thông tin, thực hiện thuật toán, tạo giao diện người dùng, và liên kết với nhiều ngôn ngữ lập trình khác Matlab được ứng dụng rộng rãi trong các lĩnh vực kỹ thuật và kinh tế, cho thấy tính linh hoạt và hiệu quả của nó trong xử lý dữ liệu Hiện tại, Matlab đang được cộng đồng không ngừng phát triển và cải tiến Phần mềm này bao gồm 5 phần chính.
The Development Environment is a comprehensive suite of tools designed to facilitate the use of MATLAB functions and files It encompasses essential components such as the MATLAB desktop, Command Window, command history, editor, debugger, and browsers for accessing help Additionally, it includes the workspace, file management, and the search path, all of which enhance the user experience and streamline workflow in MATLAB.
- MATLAB Mathematical Function Library: tập hợp các hàm toán học như sum, sine, số học, v.v
- MATLAB Language (scritp): ngôn ngữ lập trình bậc cao
- Graphics: các công cụ giúp hiễn thị dữ liệu dưới dạng đồ thị Ngoài ra nó còn cho phép xây dựng giao diện đồ họa
Matlab cung cấp nhiều gói công cụ cho các lĩnh vực kỹ thuật như hệ thống điện, xử lý tín hiệu, kỹ thuật sinh học, vũ trụ, và điều khiển tự động Trong số đó, công cụ Image Processing Toolbox và Computer Vision đặc biệt hỗ trợ việc xử lý ảnh và phát triển thuật toán một cách đơn giản và thuận tiện Bên cạnh đó, còn có nhiều ứng dụng và thuật toán khác được cá nhân và tổ chức phát triển, với tùy chọn miễn phí hoặc tính phí.
2.5.1.2 Công cụ thu nhận ảnh từ camera (Image Acquisition toolbox)
Công cụ thu nhận ảnh từ camera trong MATLAB cho phép chụp hình ảnh từ các camera kết nối với máy tính, đóng vai trò quan trọng trong nghiên cứu và ứng dụng công nghệ hình ảnh.
Hình 2-22: Giao diện Image Acquisition toolbox
Khi không sử dụng giao diện, bạn có thể chụp ảnh bằng các câu lệnh sau: khởi tạo camera với ID 1 và định dạng ảnh RGB kích thước 960x720 bằng lệnh v = videoinput('winvideo',1,'RGB24_960x720'); Để theo dõi hình ảnh trực tiếp từ camera, sử dụng lệnh preview(v); Để chụp ảnh tại thời điểm hiện tại, bạn chỉ cần dùng lệnh getsnapshot(v);.
Reset lại imaq toolbox, xóa kết nối các camera
2.5.1.3 Điều chỉnh thông số Camera Đây là bước quan trọng và cần thiết để loại bỏ tất cả các yếu tố tự động trong camera Để thực hiện điều chỉnh thông số, sau khi đã khởi tạo camera, ta cần tạo ra một biến lưu giữ các thông số của camera đó bằng câu lệnh getselectedsource Vd: v = videoinput('winvideo',1,'RGB24_960x720'); q=getselectedsource(v);
Trong đồ án tốt nghiệp, camera được điều chỉnh với các thuộc tính như độ sáng, tương phản, tiêu cự, cân bằng trắng và độ phơi sáng Các thiết lập cụ thể bao gồm: tắt chức năng bù sáng ngược (BacklightCompensation = 'off'), chế độ tương phản (Contrast2), chế độ phơi sáng thủ công (ExposureMode='manual'), độ sáng (Brightness0), chế độ lấy nét thủ công (FocusMode='manual'), tiêu cự (Focus=0), độ phơi sáng (-7), mức độ tăng cường (Gain%5), chế độ cân bằng trắng thủ công (WhiteBalanceMode='manual'), cân bằng trắng (WhiteBalanceW65) và tốc độ khung hình (FrameRate = '30.0000').
2.5.1.4 Lập trình GUIDE trong Matlab
Giao diện người dùng GUI (Graphical User Interface) trong Matlab cho phép thực hiện các lệnh thông qua menu và nút nhấn, tương tự như các ngôn ngữ lập trình như Visual Basic và Visual C++ Việc lập trình GUI có thể được thực hiện thông qua công cụ GUIDE (GUI Development Environment) hoặc bằng cách soạn thảo một File-M.
Khởi động giao diện GUIDE: trong cửa sổ Command của Matlab, gõ lệnh “guide” thì cửa sổ GUIDE Quick Start như sau hiện ra:
Hình 2- 23: Tạo chương trình GUIDE
Create New GUI: tạo hộp thoại GUI mới theo một trong các loại sau: Đồ án tốt nghiệp Chương 2: Cơ sở lý thuyết
- Blank GUI (Default): Bắt đầu tạo hộp thoại GUI trống
- GUI with Uicontrols: Hộp thoại GUI với một vài Uicontrol như button…
- GUI with Axes and Menu: Hộp thoại GUI với một Uicontrol Axes và button, các Menu để hiển thị đồ thị
- Modal Question Dialog: Hộp thoại đặt câu hỏi Yes, No
Open Existing GUI: mở một Project có sẵn
Hình 2- 24: Giao diện lập trình GUI
Giao diện có các công cụ điều khiển như sau:
- Push Button: Là một nút nhấn
- Toggle Button: Là một nút bật giống như Push Button nhưng có hiển thị trạng thái thay đổi mỗi khi nhấn nút
- Radio Button: Nút nhỏ hình tròn để chọn lựa
- Check Box: Là hộp kiểm tra cho phép đưa vào các chọn lựa khi bấm chuột vào nó
- Edit Text: Là hộp văn bảng đưa chuỗi ký tự vào đó
- Static Text: Dòng văn bảng dùng để đặt nhãn, tiêu đề, hướng dẫn
- Pop-up Menu: Menu sổ xuống trình bày một bảng các chọn lựa khi nhấp chuột vào
- List Box: Gồm một bảng các mục có thể chọn lựa
- Slider: Thanh trượt dùng để đưa giá trị vào trong một vùng giới hạn Đồ án tốt nghiệp Chương 2: Cơ sở lý thuyết
- Run (Ctr+T): Nhấn vào để chạy chương trình mà ta đã viết
Lưới và Thước: Sử dụng để cấu hình lưới trong giao diện, giúp biến giao diện thành một ma trận các ô vuông nhỏ Việc điều chỉnh giá trị này cho phép người dùng tự do thả các điều khiển ở vị trí mong muốn, tạo nên sự hài hòa và thẩm mỹ cho giao diện.
- Menu Editor: Trình bày để tạo Menu cho điều khiển
- Tab Order Editor: Sắp xếp Tab Order là thứ tự khi ta nhấn phím Tab
- Gui Options: lựa chọn cho giao diện GUI
Sau khi lưu, sẽ có 2 file xuất hiện:
- TÊN.fig: file này chứa giao diện của chương trình
- TÊN.m: file này chứa code có liên quan đến giao diện chương trình như các hàm khởi tạo, các hàm callback…
Thay đổi thuộc tính điều khiển:
Nhấp đúp chuột vào component để thay đồi các thuộc tính:
- Tag: dùng đề đặt tên cho component
- BackgroundColor: màu nền của component
- ForegroundColor: màu chữ trên component Đồ án tốt nghiệp Chương 2: Cơ sở lý thuyết
Hàm callback là thành phần quan trọng nhất của component, vì nó được gọi bởi File-M khi có tác động vào component Để soạn thảo hàm callback, người dùng cần nhấp chuột phải vào component mong muốn trong cửa sổ layout, sau đó chọn View callbacks/callback để truy cập màn hình soạn thảo Lưu ý rằng các dòng lệnh sẽ được viết sau dòng “function tên component_callback (hobject, eventdata, handles).
2.5.2 Phần mềm PLC S7-200 STEP7-MICROWIN Đây chính là ngôn ngữ lập trình Ladder cho PLC S7-200
Biểu tượng của chương trình:
Hình 2- 26 Biểu tượng của chương trình MicroWIN
Khởi tạo một file mới: File/New/(Ctrl/N)
Giao diện chương trình khi làm việc được hiển thị như hinh 2-27
Hình 2-27: Giao diện chương trình PLC Đồ án tốt nghiệp Chương 2: Cơ sở lý thuyết
- Tiến hành khai báo địa chỉ và đặt tên cho các biến như hình sau:
Hình 2-28: Khai báo các biến trong chương trình PLC
Là phần mềm dùng để kết nối giữa PLC S7-200 và Matlab
PC Access có thể báo trạng thái liên kết giữa PLC và Matlab
- Nếu Good thì liên kết thành công
- Nếu Bad thì liên kết chưa thành công
Lưu ý: Cần phải khai báo tất cả các biến trong chương trình PLC thì chương trình PC Access mới tạo Item
OPC (OLE for Process Control) là một chuẩn an toàn và đáng tin cậy cho việc trao đổi dữ liệu trong tự động hóa và các ngành công nghiệp Phần mềm OPC Toolbox mở rộng khả năng tương tác trong MATLAB, cho phép người dùng sử dụng các hàm và khối chức năng để trao đổi dữ liệu trực tiếp giữa OPC Server và MATLAB OPC Toolbox có khả năng kết nối trực tiếp với các phần mềm OPC Server thông qua Data Access Standard.
Trong đề tài này, PC Access đóng vai trò như một OPC Server còn OPC Toolbox là một OPC Client Đồ án tốt nghiệp Chương 2: Cơ sở lý thuyết
Chúng ta có thể nâng cao các ứng dụng trong Toolbox bằng cách sử dụng hàm callback, cho phép bắt đầu, khai báo và thay đổi các sự kiện một cách hiệu quả.
Hình 2-29: Quan hệ giữa OPC Toolbox Object với OPC Server
PLC S7-200
2.6.1 Các phương pháp lập trình với S7-200 Đối với PLC S7-200 có ba phương pháp lập trình cơ bản đó là:
- Lập trình theo phương pháp hình thang (Ladder logic_LAD)
- Phương pháp liệt kê câu lệnh (statement list_ STL)
- Phương pháp khối hàm (Function Block Diagram_FBD)
Khi sử dụng ngôn ngữ lập trình LAD, thiết bị lập trình có khả năng tự động chuyển đổi sang các chương trình theo kiểu STL hoặc FBD Tuy nhiên, không phải tất cả các chương trình viết bằng ngôn ngữ STL đều có thể chuyển đổi sang ngôn ngữ LAD.
Trong đề tài tốt nghiệp này sẽ trình bày phương pháp lập trình LADER (LAD)
LAD, hay ngôn ngữ lập trình bằng đồ họa, là một công cụ lập trình sử dụng các thành phần cơ bản tương ứng với bảng mạch rơle Những phần tử này được dùng để biểu diễn các lệnh logic, giúp dễ dàng trong việc thiết kế và lập trình hệ thống điều khiển.
- Tiếp điểm có hai loại: Thường hở:
Hộp (box) là một thành phần quan trọng trong hệ thống, thực hiện các hàm khác nhau khi nhận tín hiệu Các loại hộp bao gồm hộp bộ định thời, hộp bộ đếm, hộp di chuyển dữ liệu, hộp hàm toán học và hộp trong truyền thông mạng, mỗi loại đều có chức năng riêng biệt và đóng góp vào hiệu suất tổng thể của hệ thống.
Mạng LAD là mạch kết nối các phần tử như cuộn dây và hộp, yêu cầu phải được mắc đúng chiều để hoạt động hiệu quả Nguồn điện có hai đường chính: bên trái là dây nóng và bên phải là dây trung tính, tuy nhiên dây trung tính không được hiển thị trên giao diện lập trình Để mạch hoạt động, các phần tử cần được mắc đúng chiều và đảm bảo kín mạch.
2.6.2 Các lệnh lập trình cho PLC S7 200
Tập lệnh vào/ra xử lý bit
Dạng lệnh Mô tả chức năng lệnh
Tiếp điểm thường đóng sẽ đóng khi có giá trị logic bit bằng 0, và sẽ mở khi có giá trị logic bằng 1
Tiếp điểm thường hở sẽ được đóng nếu giá trị logic bằng
1 và sẽ hở nếu giá trị logic bằng 0
Toán hạng: Bit: I, Q, M, SM, T, C, V(n) Đồ án tốt nghiệp Chương 2: Cơ sở lý thuyết
Lệnh về timer như TON, TONR, TOFF
Khai báo Timer số hiệu xxx kiểu TON giúp tạo thời gian trễ bắt đầu từ khi tín hiệu đầu vào IN được kích hoạt Khi giá trị đếm tức thời đạt hoặc vượt qua giá trị đã thiết lập, T-bit sẽ được đặt thành 1.
2.6.3 Bộ đếm xung tốc độ cao (High Speed Counter) Để đọc xung tốc độ cao (HSC) ta cần phải thực hiện các bước cho việc định dạng Wizard:
Tiếp điểm thường hở sẽ đóng tức thời khi giá trị bit bằng
1 và sẽ mở tức thời nếu giá trị logic bằng 0
Tiếp điểm đảo trạng thái của dòng cung cấp Nếu dòng cung cấp có tiếp điểm đảo thì nó ngắt mạch, và ngược lại
Lệnh nhận biết trạng thái chuyển từ 0 lên 1 trong một chu kỳ quét cho phép thông mạch, trong khi lệnh nhận biết sự chuyển từ 1 xuống 0 cũng đảm bảo thông mạch trong chu kỳ quét.
Cuộn dây ở đầu ra sẽ được kích thích khi có dòng điều khiển đi ra
Dùng để đóng một mảng gồm n tiếp điểm kể từ giá trị ban đầu bit
Toán hạng: Bit: I, Q, M, SM, T, C, V, IB, QB, MB,
SMB,VB,AC,*VD,*AC,Const Dùng để ngắt một mảng gồm n tiếp điểm kể từ giá trị ban đầu bit
Toán hạng: Bit: I, Q, M, SM, T, C, V, IB, QB, MB,
SMB, VB, AC, *VD, *AC, Const Đồ án tốt nghiệp Chương 2: Cơ sở lý thuyết
Hình 2-30: Thiết lập High Speed Counter (1)
Chọn Wizard đọc xung tốc độ cao High Speed Counter:
Hình 2-31: Thiết lập High Speed Counter (2)
Chọn Mode đọc xung tốc độ cao và loại Counter nao (ở đây chọn HSC0 và Mode 0) Đồ án tốt nghiệp Chương 2: Cơ sở lý thuyết
Hình 2- 32: Thiết lập High Speed Counter (3)
Tùy thuộc vào nhu cầu sử dụng, người dùng có thể lựa chọn từ 12 chế độ đọc xung tốc độ cao khác nhau.
Hình 2-33: Mô tả chế độ đếm và các loại HSC
Trong luận văn này, vì đồ án không quá phức tạp nên nhóm chọn MODE
0 để điếm xung tăng hoặc giảm, không có Bit Reset và không có Bit Start
Cách tính tốc độ động cơ dựa vào xung Encoder: Độ phân giải của Encoder là 600 xung/vòng (a)
Gọi x là số xung đếm được trong 1 giây (b)
Từ (a), (b) ta có tốc độ động cơ = 𝑥
600× 60(vòng/phút) Đồ án tốt nghiệp Chương 2: Cơ sở lý thuyết
Kết nối PLC với Matlab [1]
2.7.1 Các bước tạo PC ACCESS
Trong đồ án này, nhóm thực hiện trên phần mềm V1.0 PC Access
Hình 2- 34: Giao diện phần mềm V1.0 PC Access
Để nhập các biến từ PLC vào PC Access, hãy mở chương trình PC Access mới, chọn File/Import Symbols và chọn file PLC đã được lập trình trước đó.
Hình 2- 35 Đưa các biến từ chương trình PLC vào PC Access
Sau khi hoàn tất việc nhập dữ liệu, hãy lưu file trước khi thực hiện các thao tác tiếp theo Tiếp theo, mở USER 1 và chọn các Item ở mục số 1 Nhấn nút số 2 để đưa chúng xuống test client, và hình ảnh ở mục 3 sẽ xuất hiện Để thiết lập kết nối với PLC, hãy nhấn nút số 4.
Hình 2- 36: Đưa các biến vào Test Client
Sau khi kết nối thành công, vị trí thứ 5 sẽ hiển thị chữ “Good” và vị trí thứ 6 sẽ chạy liên tục Nếu vẫn hiển thị “Bad”, cần kiểm tra các item đã tạo Khi kết nối hoàn tất, vị trí thứ 7 sẽ hiển thị giá trị của PLC được truyền lên và nhận xuống cho Matlab.
Hình 2- 37: Kết quả tạo liên kết trên PC Access
2.7.2 Các bước tạo liên kết Matlab
Mở một OPC Toolbox trong chương trình Matlab Giao diện hiện ra như hình 2-38 Đồ án tốt nghiệp Chương 2: Cơ sở lý thuyết
Hình 2- 38: Giao diện OPC Tool
Để kết nối với OPC Server, bạn cần tạo một Host bằng cách nhấn vào menu "Add host" Tên host mặc định sẽ là "localhost" Chương trình sẽ tự động liệt kê các OPC Server có trên máy, giúp bạn dễ dàng thiết lập kết nối với S7.
200, để tạo Matlab OPC Client chúng ta cần phải chọn Server, sau đó nhấp chuột phải vào Menu Create Client
Hình 2-39: Tạo Host trong OPC Tool để liên kết với OPC Server Đồ án tốt nghiệp Chương 2: Cơ sở lý thuyết
Sau khi tạo Client xong, chúng ta nhấp chuột chọn “Connect” Sau khi kết nối thành công thì giao diện sẽ hiển thị chữ “Connect” màu xanh lá:
Hình 2- 40: Giao diện OPC Tool khi kết nối thành công
Sau khi kết nối xong, nhấn nút “Add group” để tạo nhóm mới Tiếp theo, sau khi đã tạo nhóm, tiến hành thêm các Item vào nhóm đó để liên kết với PC Access Nhấn “Add item” để mở bảng thêm item, chọn các item cần thiết và nhấn “>>” để xác nhận lựa chọn Cuối cùng, nhấn nút Add để hoàn tất quá trình.
Hình 2- 41: Kết quả tạo liên kết trên OPC Tool Đồ án tốt nghiệp Chương 2: Cơ sở lý thuyết
Nhóm lệnh kết nối trong opc toolbox
- Opcda: tạo một đối tượng để truy cập dữ liệu
Cú pháp: obj = opcda ('Host','ServerID')
Để thiết lập một đối tượng OPC nhằm truy cập dữ liệu, ta sử dụng cú pháp obj = opcda('Host', 'ServerID') Trong đó, 'Host' xác định đối tượng của máy chủ và 'ServerID' được quy định bởi OPC Server Khi khởi tạo, đối tượng này không kết nối, vì vậy để giao tiếp với server, cần sử dụng hàm kết nối để thiết lập mối liên hệ giữa đối tượng và server.
- Connect: kết nối đối tượng OPCda đến server
Kết nối (obj) là quá trình liên kết các đối tượng obj với OPC Server, cho phép truyền tải giá trị giữa chúng Ngoài ra, người dùng có thể ngắt kết nối obj với server thông qua hàm ngắt kết nối.
- Addground: Thêm nhóm truy cập dữ liệu cho đối tượng obj
GrpObj = addgroup(obj) là hàm dùng để thêm một nhóm vào đối tượng OPCDA Mỗi nhóm bao gồm các tổ chức client và thao tác dữ liệu liên quan Thông thường, chúng ta có thể tạo ra nhiều nhóm khác nhau nhằm hỗ trợ tốc độ cập nhật, trạng thái kích hoạt và callback khác nhau.
- Additem Thêm dữ liệu các đối tượng truy cập vào dagroup
Cú pháp: IObj = additem (GObj,'IName')
Trong Chương 3 của đồ án tốt nghiệp, chúng tôi sẽ trình bày cách sử dụng hàm IObj = additem(GObj, 'IName') để thêm các đối tượng vào nhóm đối tượng GrpObj, với đầy đủ các ID được chỉ định qua tên.
THIẾT KẾ HỆ THỐNG
Yêu cầu công nghệ
Hệ thống cần đạt những yêu cầu sau:
- Nhận dạng và phân loại lỗi sản phẩm gạch men một cách tự động
- Giám sát tốc độ băng tải trên giao diện người dùng GUI
- Dễ lắp đặt, vận hành trong sản xuất
- Nhỏ gọn, an toàn, bền, đẹp, chi phí thấp.
Giới thiệu mô hình
Mô hình bao gồm: 1 camera, 1 xy lanh, 1 valve khí, 1 động cơ 3 pha, 1 biến tần, 1 PLC,1 encoder, 2 cảm biến quang
Mô hình gồm 2 cơ cấu chính: Buồng xử lý ảnh, cơ cấu chấp hành phân loại sản phẩm lỗi
Cảm biến quang Động cơ
Biến tần Van khí Camera Đồ án tốt nghiệp Chương 3: Thiết kế hệ thống
3.3.1 Cơ cấu thu nhận ảnh
Khi gạch được đưa vào, cảm biến (1) nhận diện và ghi nhận mức 1 Khi gạch vào buồng xử lý, cảm biến (1) giảm xuống mức 0, kích hoạt camera chụp ảnh Hình ảnh của gạch sau đó được camera thu nhận và gửi tín hiệu về máy tính xử lý.
Hình 3- 2: Buồng xử lý ảnh
3.3.2 Cơ cấu chấp hành phân loại sản phẩm lỗi
Khi động cơ kéo tải hoạt động, gạch sẽ di chuyển trên băng tải và đi qua cảm biến trong buồng xử lý ảnh Sau khi hoàn tất quá trình xử lý, nếu phát hiện gạch bị lỗi, cơ cấu xy lanh sẽ đẩy gạch lỗi ra ngoài.
Hình 3- 3: Biến tần ATV11 Technical manual Đồ án tốt nghiệp Chương 3: Thiết kế hệ thống
Hình 3- 4: Động cơ không đồng bộ 3 pha Siemens
Quy trình hoạt động
Hệ thống được hoạt động như sau:
Khi chương trình khởi động, băng tải bắt đầu hoạt động và gạch được đưa vào buồng xử lý Cảm biến quang phát hiện gạch và camera chụp ảnh để xử lý trên Matlab Nếu gạch bị lỗi, xylanh có cảm biến quang sẽ phát hiện và đẩy gạch lỗi vào khay đựng sản phẩm lỗi Tất cả hoạt động của hệ thống được giám sát qua GUIDE Matlab Sau khi gạch được phân loại, số liệu sẽ được xuất ra trên Matlab và kết quả sẽ được lưu trữ trong file Excel.
Khi gạch bị kẹt và không qua cảm biến trong vòng 15 giây, hệ thống sẽ tự động dừng lại và đèn cảnh báo sẽ bật lên Để tiếp tục hoạt động, người dùng cần nhấn nút reset.
Xác định địa chỉ ngõ vào, ngõ ra PLC
Địa chỉ ngõ vào vào ngõ ra của PLC được liệt kê trong bảng 3-1
Bảng 3-1: Kết nối ngõ vào, ngõ ra
Input Mô tả Output Mô tả
I0.0 Nút Start Encoder Q0.0 Động cơ, Relay đèn start/stop
I0.1 Cảm biến quang 1 Q0.1 Relay đèn báo gạch lỗi
I0.2 Nút nhấn stop Q0.2 Van đảo chiều
I1.0 Cảm biến quang 2 Đồ án tốt nghiệp Chương 3: Thiết kế hệ thống
3.5.1 Thiết kế thi công phần cứng
Hình 3- 6: Sơ đồ kết nối phần cứng mô hình phát hiện lỗi trên bề mặt gạch
Hình 3- 7: Sơ đồ mạch động lực mô hình phát hiện lỗi trên bề mặt gạch Đồ án tốt nghiệp Chương 3: Thiết kế hệ thống
Hình 3- 8: Mặt trước của tủ điều khiển và giám sát
Tủ điều khiển và giám sát bao gồm:
- Đèn xanh: báo hệ thống hoạt động
- Đèn đỏ: báo hệ thống được cấp nguồn
- Đèn vàng: báo kẹt gạch
- Nút nhấn đỏ STOP cho phép hệ thống dừng
- Nút nhấn xanh START cho phép hệ thống
- Nút nhấn vàng RESTART cho phép hệ thống chạy lai khi có lỗi kẹt gạch
- Nút nhấn E-STOP dùng ngắt điện cho toàn hệ thống bằng tay khi có sự cố
3.5.2 Các lưu đồ giải thuật
Các lưu đồ giải thuật trong bài viết này bao gồm lưu đồ cho chương trình PLC điều khiển băng tải và xi lanh, cùng với lưu đồ cho chương trình xử lý ảnh nhằm phát hiện các khuyết tật như lỗ đinh, vết nứt, vết ố màu, lỗi hoa văn và lỗi vỡ gạch Các lưu đồ này được trình bày lần lượt trong các hình 3-9, 3-10 và 3-11, thuộc đồ án tốt nghiệp Chương 3: Thiết kế hệ thống.
3.5.2.1 Lưu đồ giải thuật cho chương trình PLC
Hình 3- 9: Lưu đồ giải thuật cho PLC
Khi nhấn nút start từ MATLAB hoặc PLC, biến MODE được thiết lập lên 1 và băng tải bắt đầu chạy Khi gạch đến cảm biến 1, cảm biến này sẽ kích hoạt mức 1 Nếu gạch bị kẹt quá 15 giây, MODE sẽ giảm xuống 0 và băng tải dừng lại cho đến khi nút reset được nhấn Khi gạch vào hộp, cảm biến 1 trở về mức 0, camera sẽ chụp ảnh và chương trình MATLAB sẽ xử lý hình ảnh Nếu phát hiện lỗi, khi gạch đến cảm biến 2, xi lanh sẽ đẩy gạch ra ngoài Ngược lại, nếu không có lỗi, xi lanh sẽ không tác động và gạch sẽ tiếp tục di chuyển Hệ thống chỉ dừng lại khi có kẹt gạch hoặc khi nút stop được nhấn Tất cả các nút nhấn của PLC đều được kết nối với MATLAB, cho phép hệ thống được điều khiển hoàn toàn bởi MATLAB thay vì PLC.
3.5.2.2 Lưu đồ giải thuật xử lý ảnh
Hình 3-10: Lưu đồ giải thuật cho chương trình Matlab
3.5.2.3 Thuật toán phát hiện các khuyết tật trên bề mặt gạch men
Thuật toán phát hiện lỗi vết nứt, lỗ đinh, ố màu, lỗi hoa văn
Thuật toán phát hiện lỗi vết nứt, lỗ đinh, ố màu và hoa văn [5] được thực hiện như lưu đồ hình 3-11 Đồ án tốt nghiệp Chương 3: Thiết kế hệ thống
Hình 3-11: lưu đồ phát hiện lỗi vết nứt, lỗ đinh, ố màu, lỗi hoa văn
Filledarea: số pixcel mà vật thể chiếm
Extent là tỉ lệ giữa số pixel của vật thể và tổng số pixel trong bounding box bao quanh nó Nếu vật thể có hình dạng là đoạn thẳng, giá trị extent sẽ nhỏ Ngược lại, nếu vật thể có hình dạng tròn, giá trị extent sẽ lớn hơn.
Eccentricity, hay độ lệch tâm, được ký hiệu là e, là một tham số quan trọng liên quan đến đường cô-nic Nó được coi là thước đo sự sai khác của một đường cô-nic so với đường tròn.
Độ lệch tâm của một đường tròn bằng 0
Độ lệch tâm của một đường elip mà không phải là đường tròn thì lớn hơn 0 nhưng bé hơn 1
Độ lệch tâm của một đường parabol bằng 1
Độ lệch tâm của một đường hyperbol thì lớn hơn 1
- Các điều kiện cụ thể được sử dụng thông qua nhiều lần thực ngiệm: Nếu filledarea < 50 là lỗ đinh
Nếu filledarea > 50, Extent = 0.9 là vết nứt
Nếu filledarea > 50, Extent > 0.7, Eccentricity < 0.9 là lỗi ố màu
Tất cả các dữ liệu về filledarea, extent và eccentricity của vật thể đều có thể lấy được bằng các câu lệnh trong matlab :
Hàm label=bwlabel(G,8) được sử dụng để gán nhãn cho các pixel trong ảnh nhị phân G Nếu một pixel có giá trị là 1 và trong phạm vi 8 pixel xung quanh nó cũng có ít nhất một pixel có giá trị 1, thì hai pixel này sẽ được xem như là một vật thể duy nhất.
Hình 3-12: Các dạng liên kết
- sdata=regionprops(label,'all'): lấy các thông tin về vật thể
Hình 3-13: Các đặc trưng của vật thể Đồ án tốt nghiệp Chương 3: Thiết kế hệ thống
Thuật toán phát hiện lỗi gạch vỡ
Hình 3-14 : lưu đồ giải thuật phát hiện lỗi gạch vỡ Đồ án tốt nghiệp Chương 3: Thiết kế hệ thống
3.5.3 Thiết kế giao diện GUIDE
Giao diện GUIDE khi hoạt động:
Hình 3-15: Giao diện GUIDE hoàn chỉnh
Trong giao diện gồm có Bảng điều khiển và Bảng giám sát
- Nút nhấn KẾT NỐI: kết nối và điều khiển các biến của plc thông qua matlab
- Nút nhấn ẢNH CHUẨN: nạp ảnh của gạch chuẩn có trong máy tính
- Nút nhấn KHỞI ĐỘNG: cho hệ thống hoạt động bằng chương trình
- Nút nhấn DỪNG: dừng hệ thống bằng chương trình Matlab
- Nút nhấn RESET: dừng toàn bộ hệ thống, đồng thời đưa toàn bộ dữ liệu về trạng thái ban đầu
Để báo cáo lỗi, hãy mở file Excel chứa thông tin về gạch lỗi, bao gồm thời gian, số thứ tự gạch trong lô và các lỗi phát hiện Lưu ý rằng MATLAB không cho phép chuyển dữ liệu vào file Excel khi file đang mở; do đó, bạn chỉ có thể nhấn nút sau khi nhấn DỪNG hoặc RESET.
- Nút nhấn THOÁT: đóng giao diện GUI Đồ án tốt nghiệp Chương 3: Thiết kế hệ thống
Hiển thị tốc độ động cơ và các chỉ số như số gạch lỗi, số gạch chuẩn, cùng với hiệu suất của hệ thống sản xuất gạch, được tính toán dựa trên tỷ lệ số gạch chuẩn so với tổng số gạch.
Giao diện GUIDE khi gạch bị kẹt:
Hình 3- 16: Giao diện GUIDE khi gặp lỗi kẹt gạch
Khi gạch bị kẹt trong buồng xử lý, các cảm biến ở hai đầu sẽ xác định thời gian trễ và đưa ra cảnh báo kẹt gạch Hệ thống sẽ tự động dừng lại cho đến khi lỗi được khắc phục và nút RESET được nhấn.