Giới thiệu dự án
Trong kỷ nguyên Công nghiệp 4.0, tự động hóa quy trình kiểm soát chất lượng (Quality Assurance - QA) đóng vai trò sống còn trong việc tối ưu hóa năng suất và giảm thiểu chi phí vận hành. Theo các thống kê công nghiệp sản xuất bao bì và đóng gói thực phẩm, phương pháp kiểm tra thủ công truyền thống bằng mắt thường (manual inspection) thường có tỷ lệ sai sót dao động từ 15% đến 30% do sự mệt mỏi thị giác, tính chủ quan của công nhân và tốc độ vận hành của dây chuyền vượt quá khả năng quan sát của con người. Hơn nữa, việc tiếp xúc trong các môi trường sản xuất độc hại hoặc tốc độ cao là rủi ro lớn đối với người lao động.
Đồ án "Ứng dụng xử lý ảnh phát hiện sản phẩm lỗi dùng PLC S7-1200" (thuộc ngành Công nghệ Kỹ thuật Máy tính - Trường Đại học Sư phạm Kỹ thuật TP.HCM) giải quyết trực tiếp bài toán này bằng cách kết hợp giữa thị giác máy tính dựa trên học sâu (Deep Learning) và hệ thống điều khiển công nghiệp khả trình (PLC - Programmable Logic Controller).
+-----------------------------------------------------------------------------------+
| KIẾN TRÚC TỔNG THỂ HỆ THỐNG |
| |
| [ Camera 720p ] ---> [ Edge PC: Python / OpenCV / MobileNetV2 / Tkinter GUI ] |
| | (Modbus TCP/IP qua Ethernet) |
| v |
| [ Động cơ Bước + Cơ cấu Gạt ] <--- [ PLC Siemens S7-1200 ] <--- [ Cảm biến / Nút]|
+-----------------------------------------------------------------------------------+
Mục tiêu dự án
- Thiết kế và chế tạo mô hình phần cứng cơ điện tử: Bao gồm khung băng tải PVC mini, tủ điện công nghiệp tích hợp bộ điều khiển PLC Siemens S7-1200 CPU 1212C, mạch điều khiển động cơ bước TB6600, động cơ Nema 17 và cơ cấu gạt phân loại phôi lỗi.
- Xây dựng mô hình thị giác máy tính và học máy: Ứng dụng kiến trúc mạng nơ-ron tích chập nhẹ MobileNetV2 kết hợp thư viện xử lý ảnh OpenCV để trích xuất đặc trưng và nhận diện chính xác 3 dạng khuyết tật bề mặt bao bì: in sai, lem mực và rách bề mặt.
- Xây dựng cầu nối truyền thông công nghiệp: Triển khai giao thức Modbus TCP/IP qua cổng Ethernet công nghiệp, cho phép máy tính xử lý trung tâm (Edge PC chạy Python) trao đổi dữ liệu tức thời với PLC S7-1200 ở thanh ghi điều khiển.
- Phát triển phần mềm giám sát và điều khiển (HMI/SCADA mini): Xây dựng giao diện đồ họa trực quan bằng Tkinter trên môi trường Python (Spyder/Anaconda), hỗ trợ hiển thị video trực tiếp (real-time stream), giám sát số lượng sản phẩm đạt (Good)/lỗi (Defect), cảnh báo và điều khiển chế độ chạy/dừng.
- Thử nghiệm và tối ưu hóa hệ thống: Đánh giá độ chính xác phân loại trong điều kiện thực nghiệm đạt trên 90%, thời gian trễ đáp ứng của cơ cấu chấp hành dưới 200ms.
Phạm vi và giới hạn
- Phạm vi nghiên cứu: Kiểm tra chất lượng in ấn bao bì dạng phẳng di chuyển trên băng tải tốc độ cố định; phân loại 4 trạng thái: sản phẩm chuẩn (Pass), lỗi in sai, lỗi lem mực, lỗi rách.
- Giới hạn: Hệ thống kiểm tra đơn camera cố định góc chụp vuông góc khoảng cách 23 cm; yêu cầu điều kiện chiếu sáng ổn định trong buồng tối để loại bỏ nhiễu quang học ngoại cảnh.
Phân tích và thiết kế giải pháp
Phân tích hiện trạng
Trước khi đề xuất giải pháp tích hợp, đồ án đã phân tích và so sánh các phương pháp kiểm tra bề mặt sản phẩm hiện hành:
| Phương pháp | Ưu điểm | Nhược điểm | Chi phí đầu tư | Độ chính xác |
|---|---|---|---|---|
| Kiểm tra thủ công (Manual QA) | Linh hoạt, không cần cài đặt phần mềm phức tạp. | Dễ sai sót do mỏi mắt (15-30%), tốc độ chậm, tốn chi phí nhân công liên tục. | Thấp ban đầu, cao lâu dài | 70% - 85% |
| Xử lý ảnh truyền thống (Rule-based: Gabor, Wavelet, SSIM) | Tốc độ xử lý nhanh, không cần tập dữ liệu huấn luyện lớn. | Rất nhạy cảm với ánh sáng thay đổi; khó phát hiện lỗi biến dạng ngẫu nhiên. | Trung bình | 75% - 85% |
| Hệ thống Vision công nghiệp chuyên dụng (Cognex, Keyence) | Rất ổn định, tích hợp sẵn PLC, chuẩn công nghiệp cao. | Chi phí thiết bị cực kỳ đắt đỏ, hệ thống đóng khó mở rộng thuật toán AI tùy biến. | Rất cao (> $8,000) | 98% - 99% |
| Giải pháp đề xuất (Edge PC AI + Siemens S7-1200 PLC) | Chi phí hợp lý, độ chính xác cao nhờ MobileNetV2, dễ dàng cấu hình lại cho sản phẩm mới. | Cần đồng bộ truyền thông Modbus TCP và xử lý thời gian thực giữa hai nền tảng. | Tiết kiệm (< $600) | 91.5% - 100% |
Ma trận ưu tiên yêu cầu hệ thống (MoSCoW)
- Must Have (Bắt buộc): Nhận diện chính xác phôi rách, lem mực, in sai; điều khiển cánh tay gạt phôi lỗi khỏi băng tải; giao tiếp thời gian thực PLC - Python qua Modbus TCP; nút dừng khẩn cấp E-Stop.
- Should Have (Nên có): Giao diện trực quan thống kê số lượng phôi Pass/NG theo thời gian thực; tính năng "Set Home" cho động cơ bước gạt phôi.
- Could Have (Có thể mở rộng): Tự động lưu log hình ảnh sản phẩm lỗi vào cơ sở dữ liệu SQLite; cảnh báo âm thanh khi phát hiện 3 lỗi liên tiếp.
- Won't Have (Chưa thực hiện): Nhận diện mã vạch đa hướng tốc độ cao (>120 sản phẩm/phút); phân loại bề mặt kim loại phản xạ gương.
Thiết kế hệ thống
Kiến trúc phần cứng và kết nối
Hệ thống phân tách thành 5 khối chức năng rõ ràng:
- Khối nguồn: Nguồn tổ ong MeanWell/DC chuyển đổi 220VAC sang 24VDC (5A, công suất 120W) cấp nguồn cho PLC S7-1200 và Driver TB6600; mạch hạ áp buck LM2596 điều chỉnh nguồn 5VDC cho mạch kích relay logic.
- Khối điều khiển trung tâm (PLC): Siemens SIMATIC S7-1200 CPU 1212C DC/DC/DC (Mã đặt hàng:
6ES7 212-1AE40-0XB0), tích hợp 8 ngõ vào Digital 24VDC, 6 ngõ ra Transistor 24VDC, cổng truyền thông PROFINET/Ethernet RJ45. - Khối xử lý thị giác (Edge AI Processing): Máy tính công nghiệp/Laptop chạy Python 3.8, kết nối với Camera Logitech C270 (Độ phân giải chụp 1280x720@30fps, cảm biến CMOS, cự ly chụp 23 cm).
- Khối cơ cấu chấp hành (Actuators):
- Động cơ giảm tốc 12VDC (72 RPM, đường kính Rulo $D=30\text{ mm}$) kéo băng tải mini dài 500mm, mặt belt PVC chống tĩnh điện.
- Động cơ bước hybrid Nema 17 (dòng định mức 1.7A, góc bước $1.8^\circ \pm 5%$, mô-men xoắn giữ $40\text{ N}\cdot\text{cm}$) kết hợp cơ cấu gạt phôi.
- Driver điều khiển động cơ bước TB6600 (IC TB6600HQ, cấu hình vi bước $1/1$ đến $1/32$, dòng cắt đỉnh 4.0A qua switch DIP).
- Khối bảo vệ và giao tiếp ngoại vi: Aptomat khối MCB LS BKN 2P 25A (dòng cắt ngắn mạch 6kA), Rơ-le trung gian 5VDC cách ly quang, cụm nút nhấn công nghiệp $\phi 22$ (Start/Stop/Emergency Stop).
+-----------------------------+
| NGUỒN 220VAC LƯỚI |
+--------------+--------------+
|
+----------v----------+
| MCB LS BKN 2P 25A |
+----------+----------+
|
+----------------------+----------------------+
| |
+----------v----------+ +----------v----------+
| Nguồn Tổ Ong 24VDC | | Nguồn Adapter PC/USB|
+----------+----------+ +----------+----------+
| |
+----------+----------+ |
| | |
+--v-------------+ +-----v-----------+ |
| S7-1200 CPU | | Driver TB6600 | |
| 1212C DC/DC/DC | | & Nema 17 Motor | |
+-------+--------+ +-----+-----------+ |
| | |
| (Modbus TCP) | (PUL/DIR/ENA) |
| | |
+-------v----------------v----+ +----------v----------+
| Cáp Mạng Ethernet RJ-45 | | Webcam Logitech C270|
+-------+---------------------+ +----------+----------+
| |
+----------------------------+----------------------+
|
+------------v------------+
| Edge PC: Python Engine |
| (OpenCV + MobileNetV2) |
+-------------------------+
Technology Stack & Versioning
- Hệ điều hành: Windows 10 Pro 64-bit / Linux Ubuntu 20.04 LTS.
- Môi trường lập trình PLC: Siemens TIA Portal V16 (Totally Integrated Automation).
- Ngôn ngữ AI/Giao diện: Python 3.8.10, Anaconda Environment Manager, Spyder IDE v5.x.
- Thư viện AI & Thị giác:
TensorFlow 2.4.0&Keras 2.4.3: Xây dựng và suy luận mô hình MobileNetV2.OpenCV-Python 4.5.3: Tiền xử lý, lọc nhiễu Gaussian, tách biên Canny, phân đoạn nhị phân.imutils 0.5.4: Xoay, định cỡ lại và trích xuất đường viền contours.scikit-learn 0.24.2: Mã hóa nhãn (LabelBinarizer), chia tập dữ liệu train/test.
- Thư viện truyền thông công nghiệp:
pyModbusTCP 0.1.10: Giao tiếp Client-Server qua giao thức Modbus TCP trên cổng mặc định 502.Tkinter&Pillow (PIL) 8.3.1: Render khung hình thời gian thực và quản trị bảng điều khiển.
Implementation và kết quả
Development process
Quá trình phát triển hệ thống được thực hiện qua các giai đoạn tích hợp đồng bộ:
+------------------------------------------------------------------------------------+
| QUY TRÌNH THỰC THI (PIPELINE) |
| |
| [1. Capture Frame] -> [2. ROI Crop & Rotate] -> [3. Gaussian Blur & Threshold] |
| -> [4. Contour Detection] -> [5. Resize 224x224x3] -> [6. MobileNetV2] |
| -> [7. Phân Loại Pass/NG] -> [8. Modbus Write Register] -> [9. PLC Gạt Phôi] |
+------------------------------------------------------------------------------------+
1. Thuật toán tiền xử lý ảnh và căn chỉnh vùng quan tâm (ROI)
Khung hình từ camera độ phân giải $1280 \times 720$ được cắt bớt các vùng ngoại vi không cần thiết để tập trung vào băng tải, xoay $90^\circ$ theo hướng di chuyển của phôi bao bì:
# Trích đoạn tiền xử lý hình ảnh và tìm bao bao bì
import cv2
import imutils
import numpy as np
def preprocess_frame(frame):
# Cắt vùng băng tải ROI (Y: 0..500, X: 210..380)
frame_roi = frame[0:500, 210:380]
# Xoay ảnh theo chiều kim đồng hồ để đồng bộ góc quan sát
frame_rotated = cv2.rotate(frame_roi, cv2.ROTATE_90_CLOCKWISE)
# Chuyển đổi không gian màu xám và khử nhiễu Gauss
gray = cv2.cvtColor(frame_rotated, cv2.COLOR_BGR2GRAY)
blur = cv2.GaussianBlur(gray, (5, 5), 0)
# Phân ngưỡng nhị phân nhị phân hóa vật thể
_, thresh = cv2.threshold(blur, 90, 120, cv2.THRESH_BINARY)
# Tìm kiếm đường bao ngoài cùng
cnts = cv2.findContours(thresh.copy(), cv2.RETR_EXTERNAL, cv2.CHAIN_APPROX_SIMPLE)
cnts = imutils.grab_contours(cnts)
return frame_rotated, thresh, cnts
2. Kiến trúc mạng nơ-ron MobileNetV2 và Cơ chế Depthwise Separable Convolution
MobileNetV2 giảm thiểu khối lượng tính toán dựa trên cấu trúc tích chập tách biệt theo chiều sâu (Depthwise Separable Convolution - DSC).
Một phép tích chập tiêu chuẩn có chi phí tính toán là: $$\text{Cost}_{\text{Standard}} = D_K \cdot D_K \cdot M \cdot N \cdot D_F \cdot D_F$$
Trong khi đó, DSC chia tách quá trình này thành 2 pha:
- Depthwise Convolution: Lọc từng kênh riêng biệt với kích thước kernel $D_K \times D_K$: $$\text{Cost}_{\text{Depthwise}} = D_K \cdot D_K \cdot M \cdot D_F \cdot D_F$$
- Pointwise Convolution (1x1): Kết hợp tuyến tính các đặc trưng từ $M$ kênh sang $N$ kênh: $$\text{Cost}_{\text{Pointwise}} = M \cdot N \cdot D_F \cdot D_F$$
Tổng chi phí của DSC: $$\text{Cost}_{\text{DSC}} = D_K \cdot D_K \cdot M \cdot D_F^2 + M \cdot N \cdot D_F^2$$
Tỷ lệ giảm thiểu tính toán: $$\text{Tỷ lệ} = \frac{D_K^2 \cdot M \cdot D_F^2 + M \cdot N \cdot D_F^2}{D_K^2 \cdot M \cdot N \cdot D_F^2} = \frac{1}{N} + \frac{1}{D_K^2}$$
Với kernel thông dụng $3 \times 3$ ($D_K = 3$), khối lượng tính toán giảm từ 8 đến 9 lần so với mạng tích chập thông thường, cho phép suy luận thời gian thực trên CPU máy tính mà không cần GPU đắt tiền.
# Cấu hình huấn luyện mô hình phân loại lỗi bao bì với Transfer Learning
from tensorflow.keras.applications import MobileNetV2
from tensorflow.keras.layers import AveragePooling2D, Dropout, Flatten, Dense, Input
from tensorflow.keras.models import Model
from tensorflow.keras.optimizers import Adam
# Khởi tạo backbone MobileNetV2 tiền huấn luyện trên ImageNet
baseModel = MobileNetV2(weights="imagenet", include_top=False,
input_tensor=Input(shape=(224, 224, 3)))
# Đóng băng các lớp cơ sở để giữ nguyên trọng số trích xuất đặc trưng
for layer in baseModel.layers:
layer.trainable = False
# Xây dựng phần đầu (Head Classifier) tùy chỉnh
headModel = baseModel.output
headModel = AveragePooling2D(pool_size=(7, 7))(headModel)
headModel = Flatten(name="flatten")(headModel)
headModel = Dense(128, activation="relu")(headModel)
headModel = Dropout(0.5)(headModel)
headModel = Dense(2, activation="softmax")(headModel) # 2 nhãn: Đạt chuẩn (Pass) / Lỗi (Defect)
model = Model(inputs=baseModel.input, outputs=headModel)
# Biên dịch với thuật toán tối ưu hóa Adam
INIT_LR = 1e-4
EPOCHS = 100
BS = 2
opt = Adam(learning_rate=INIT_LR, decay=INIT_LR / EPOCHS)
model.compile(loss="binary_crossentropy", optimizer=opt, metrics=["accuracy"])
3. Xử lý truyền thông Modbus TCP/IP giữa Python và PLC S7-1200
Phần mềm Python đóng vai trò là Modbus Client/Master, kết nối tới PLC (đóng vai trò Modbus Server/Slave) tại địa chỉ IP tĩnh 192.168.0.2, cổng 502. Dữ liệu trạng thái phân loại được ghi vào thanh ghi giữ (Holding Register 0):
from pyModbusTCP.client import ModbusClient
# Khởi tạo kết nối Modbus TCP đến PLC Siemens S7-1200
PLC_IP = "192.168.0.2"
DATA2PLC = ModbusClient(host=PLC_IP, port=502, unit_id=1, auto_open=True, auto_close=False)
def send_signal_to_plc(defect_status):
"""
Ghi mã điều khiển xuống Holding Register 0 của PLC S7-1200
0: Trạng thái chờ (Idle)
1: Bắt đầu chạy hệ thống (Start)
2: Phát hiện sản phẩm lỗi (Kích hoạt gạt phôi)
3: Dừng hệ thống (Stop)
4: Set Home động cơ bước
"""
if DATA2PLC.is_open():
success = DATA2PLC.write_single_register(0, defect_status)
if success:
print(f"[MODBUS] Gửi mã trạng thái: {defect_status} thành công.")
else:
print("[MODBUS] Lỗi ghi thanh ghi PLC!")
else:
print("[MODBUS] Kết nối tới PLC bị gián đoạn.")
Testing và validation
Hệ thống được thử nghiệm thực tế qua hai kịch bản độc lập với 200 mẫu sản phẩm thực nghiệm (50 mẫu cho mỗi loại: Sản phẩm chuẩn, Lỗi lem mực, Lỗi in sai, Lỗi bao bì bị rách).
Bảng kết quả thử nghiệm hiệu năng hệ thống
| Nhóm dữ liệu kiểm thử | Số mẫu thử (N) | Chưa huấn luyện (Chỉ dùng thresholding) | Đã huấn luyện với MobileNetV2 | Mức cải thiện (%) |
|---|---|---|---|---|
| Sản phẩm đạt chuẩn (Pass) | 50 | 40/50 (80.0%) | 50/50 (100.0%) | +20.0% |
| Lỗi lem mực (Ink Stain) | 50 | 9/50 (18.0%) | 42/50 (84.0%) | +66.0% |
| Lỗi in sai bao bì (Misprint) | 50 | 8/50 (16.0%) | 46/50 (92.0%) | +76.0% |
| Lỗi rách bao bì (Torn) | 50 | 10/50 (20.0%) | 45/50 (90.0%) | +70.0% |
| Độ chính xác trung bình toàn hệ thống | 200 | 33.5% | 91.5% | +58.0% |
BIỂU ĐỒ SO SÁNH ĐỘ CHÍNH XÁC NHẬN DẠNG (%)
100% |============================== 100% (Pass)
90% |======================== 92% (In sai)
88% |====================== 90% (Rách)
84% |==================== 84% (Lem mực)
+------------------------------------------------
Pass In Sai Rách Lem Mực
Phân tích độ trễ hệ thống (Latency Benchmark)
- Thời gian chụp ảnh và tiền xử lý (OpenCV): $18\text{ ms} \pm 3\text{ ms}$
- Thời gian suy luận MobileNetV2 (CPU Intel Core i5): $42\text{ ms} \pm 5\text{ ms}$
- Thời gian truyền gói tin Modbus TCP qua Ethernet: $4\text{ ms} \pm 1\text{ ms}$
- Thời gian trễ quét vòng quét PLC (Scan Cycle): $2.5\text{ ms}$
- Thời gian đáp ứng cơ khí cánh gạt TB6600 + Nema 17: $120\text{ ms}$
- Tổng thời gian từ khi phát hiện lỗi đến khi gạt khỏi băng chuyền: $\approx 186.5\text{ ms}$ (đáp ứng tốt vận tốc băng chuyền $0.113\text{ m/s}$).
Đổi mới và đóng góp
- Cơ chế lai thông minh giữa IT (Học máy) và OT (Tự động hóa công nghiệp): Thay vì phụ thuộc hoàn toàn vào các bộ xử lý chuyên dụng giá thành cao, đồ án đã chứng minh khả năng tích hợp linh hoạt giữa máy tính thông thường chạy Python và PLC công nghiệp Siemens thông qua giao thức chuẩn Modbus TCP/IP tiêu chuẩn mở.
- Ứng dụng cấu trúc mạng nơ-ron nhẹ MobileNetV2 tối ưu: Giảm 75% số lượng tham số so với các mạng nơ-ron truyền thống (như VGG-16) và chuyển hơn 95% khối lượng tính toán vào các phép tích chập $1 \times 1$ tối ưu bằng ma trận tổng quát GEMM (General Matrix Multiply). Điều này cho phép hệ thống chạy thời gian thực (real-time) với tốc độ khung hình đạt 30 FPS trên các thiết bị nhúng mà không cần GPU rời.
- Cải tiến tỷ lệ phát hiện khuyết tật phức tạp: Khắc phục hoàn toàn điểm yếu của các thuật toán xử lý ảnh cổ điển (vốn chỉ đạt 16-20% độ chính xác đối với các lỗi ngẫu nhiên như rách bao bì, in nhòe mực), nâng cao độ nhạy phát hiện khuyết tật lên mức 84% - 92%.
Ứng dụng thực tế và triển khai
Kịch bản ứng dụng trong sản xuất
- Ngành công nghiệp thực phẩm & đồ uống: Kiểm tra nhãn dán, hạn sử dụng in trên thân chai/hộp sữa, phát hiện nắp chai bị kênh, rách niêm phong màng co.
- Ngành in ấn bao bì dược phẩm: Kiểm soát tính toàn vẹn của vỉ thuốc, kiểm tra lỗi in chữ mờ, nhòe mực trên vỏ hộp thuốc để ngăn ngừa sai lệch thông tin liều dùng.
- Ngành linh kiện điện tử: Kiểm tra khuyết tật mối hàn trên bo mạch in PCB, phát hiện dị vật hoặc linh kiện dán lệch trên dây chuyền SMT.
Hướng dẫn triển khai và cài đặt (Deployment Checklist)
1. Cấu hình mạng công nghiệp
- Đặt địa chỉ IP tĩnh cho card mạng máy tính:
192.168.0.10(Subnet mask:255.255.255.0). - Đặt IP tĩnh cho CPU S7-1200 qua TIA Portal:
192.168.0.2. - Cấu hình khối lệnh
MB_SERVERtrong TIA Portal để mở cổng 502 lắng nghe từ Python.
2. Thiết lập môi trường Python trên Anaconda
# Tạo môi trường ảo chuyên biệt
conda create -n vision_plc python=3.8 -y
conda activate vision_plc
# Cài đặt các thư viện phụ thuộc chính xác phiên bản
pip install opencv-python==4.5.3.56
pip install tensorflow==2.4.0
pip install pyModbusTCP==0.1.10
pip install imutils==0.5.4
pip install scikit-learn==0.24.2
pip install pillow==8.3.1
3. Quy trình vận hành chuẩn (SOP)
- Khởi động nguồn điện: Đóng MCB chính, kiểm tra đèn báo nguồn 24VDC và 5VDC sáng bình thường.
- Kích hoạt phần mềm điều khiển: Khởi chạy script
main_gui.pytrong Spyder IDE. - Hiệu chuẩn vị trí cơ khí: Nhấn nút
Set Hometrên giao diện Tkinter để động cơ bước đưa cơ cấu gạt về vị trí giới hạn an toàn. - Vận hành tự động: Nhấn
Starttrên giao diện màn hình hoặc nút bấm mặt tủ điện. Băng tải bắt đầu kéo phôi; hệ thống camera nhận diện liên tục và loại bỏ sản phẩm NG tự động.
Hạn chế và hướng phát triển
Hạn chế hiện tại
- Độ nhạy ánh sáng: Mặc dù đã có hộp buồng chụp kín, sự dao động cường độ sáng cục bộ vẫn ảnh hưởng nhẹ tới độ chính xác nhận diện lỗi lem mực mờ (đạt 84%).
- Cơ chế cơ khí đơn giản: Cánh tay gạt servo/stepper có tốc độ phản hồi giới hạn, dễ gây va đập biến dạng sản phẩm nếu phôi di chuyển với mật độ quá dày sát nhau.
- Tính năng giám sát: Dữ liệu lưu lượng sản phẩm mới chỉ hiển thị trực tiếp trên biến giao diện Tkinter, chưa lưu trữ vào cơ sở dữ liệu phân tán để phục vụ trích xuất báo cáo ca làm việc dài hạn.
Hướng phát triển trong tương lai
- Nâng cấp mô hình thị giác: Thay thế phân loại nhị phân bằng mạng YOLOv8-nano hoặc Edge-AI Vision Transformers để vừa định vị tọa độ lỗi (bounding box) vừa phân loại đa nhãn trong một lần xử lý.
- Tích hợp cơ cấu đẩy khí nén: Sử dụng xi lanh khí nén tốc độ cao (Pneumatic Ejector) điều khiển qua van điện từ solenoid 24VDC thay cho cánh gạt cơ khí, nâng công suất phân loại lên >120 sản phẩm/phút.
- Mở rộng kết nối Cloud/IoT: Đưa dữ liệu OEE (Hiệu suất thiết bị tổng thể), tỷ lệ lỗi phôi lên nền tảng đám mây thông qua giao thức MQTT hoặc OPC UA, hỗ trợ giám sát từ xa qua điện thoại thông minh.
Đối tượng hưởng lợi
- Sinh viên & Kỹ sư tự động hóa / Cơ điện tử: Tài liệu tham khảo thực tế về cách tích hợp chuẩn công nghiệp (TIA Portal, S7-1200, Modbus TCP) với các công nghệ phần mềm mới (Python, TensorFlow, Deep Learning).
- Lập trình viên thị giác máy tính (Computer Vision Engineers): Mẫu kiến trúc thực thi (Code pattern) tối ưu hóa mạng nơ-ron MobileNetV2 cho các thiết bị Edge/CPU với chi phí tối thiểu.
- Doanh nghiệp vừa và nhỏ (SMEs): Bản thiết kế giải pháp khả thi để tự động hóa khâu kiểm tra chất lượng (QA) bao bì với chi phí đầu tư thiết bị dưới 15 triệu VNĐ, thay thế các hệ thống thương mại đắt đỏ hàng trăm triệu đồng.
Câu hỏi thường gặp
1. Yêu cầu cấu hình phần cứng tối thiểu để vận hành hệ thống là gì?
Máy tính điều khiển chỉ cần CPU tối thiểu Intel Core i3 (thế hệ 6 trở lên) hoặc AMD Ryzen 3, RAM 4GB, cổng mạng LAN RJ45, cổng USB 2.0 cho webcam. Hệ thống không bắt buộc trang bị GPU rời do MobileNetV2 đã được tối ưu hóa cho tập lệnh vector trên CPU.
2. Độ trễ của giao thức Modbus TCP có ảnh hưởng đến tốc độ gạt sản phẩm lỗi không?
Không. Độ trễ truyền thông Modbus TCP qua mạng LAN nội bộ chỉ từ 2ms đến 5ms. Với tốc độ băng tải $0.113\text{ m/s}$ và khoảng cách từ camera đến cơ cấu gạt là 15cm, thời gian sản phẩm di chuyển là khoảng 1.32 giây – hoàn toàn dư dả so với tổng thời gian xử lý AI và truyền tin ($<0.2\text{ giây}$).
3. Có thể thay thế PLC S7-1200 bằng các dòng vi điều khiển khác không?
Hoàn toàn có thể. Giao thức Modbus TCP hoặc Modbus RTU (qua cổng RS-485/UART) được hỗ trợ rộng rãi trên các nền tảng giá rẻ như STM32, ESP32 hoặc Arduino Mega. Tuy nhiên, PLC Siemens S7-1200 mang lại độ ổn định công nghiệp, khả năng chống nhiễu điện từ (EMC) và độ tin cậy vượt trội trong môi trường nhà máy.
4. Quy trình bảo trì và hiệu chuẩn camera định kỳ cần thực hiện như thế nào?
Cần vệ sinh định kỳ ống kính webcam bằng dung dịch chuyên dụng, kiểm tra nguồn đèn LED chiếu sáng trong buồng tối để đảm bảo độ rọi Lux đồng đều, và định kỳ chạy lại tập kiểm thử (Test script) với 10 mẫu chuẩn để kiểm tra độ trôi quang học.
5. Chi phí đầu tư dự kiến và thời gian hoàn vốn (ROI) của mô hình này?
Tổng chi phí linh kiện phần cứng (PLC S7-1200, nguồn, động cơ bước, driver, camera, khung nhôm, vỏ tủ điện) ước tính khoảng 12 - 15 triệu VNĐ. Với một dây chuyền đóng gói thay thế 1 nhân công kiểm tra thủ công (chi phí ~8 triệu VNĐ/tháng), thời gian hoàn vốn đầu tư chỉ mất từ 2 đến 3 tháng.
Kết luận
Đề tài tốt nghiệp "Ứng dụng xử lý ảnh phát hiện sản phẩm lỗi dùng PLC S7-1200" đã giải quyết trọn vẹn bài toán tự động hóa kiểm soát chất lượng bao bì sản phẩm bằng sự kết hợp hài hòa giữa trí tuệ nhân tạo (AI/Deep Learning) và hệ thống điều khiển công nghiệp khả trình (PLC). Với độ chính xác nhận dạng đạt 91.5%, kiến trúc xử lý thời gian thực gọn nhẹ qua MobileNetV2 và khả năng giao tiếp tin cậy qua Modbus TCP/IP, dự án không chỉ mang giá trị học thuật sâu sắc cho sinh viên khối ngành kỹ thuật mà còn mở ra giải pháp công nghệ giá thành thấp, sẵn sàng ứng dụng và chuyển giao cho các dây chuyền sản xuất thực tế tại Việt Nam.