Giới thiệu dự án

Trong bối cảnh bùng nổ của chuỗi cung ứng và cuộc Cách mạng Công nghiệp 4.0, các hệ thống kho bãi truyền thống tại các doanh nghiệp vừa và nhỏ (SMEs) đang bộc lộ nhiều hạn chế nghiêm trọng: hơn 65% chi phí vận hành kho xuất phát từ việc luân chuyển thủ công, tỷ lệ sai sót đơn hàng trung bình từ 3% đến 5% và diện tích lưu trữ bị lãng phí do không tối ưu hóa được không gian 3 chiều.

Đề tài "Ứng dụng PLC lưu trữ hàng hóa" tập trung giải quyết bài toán tự động hóa hoàn toàn chu trình nhập - lưu - xuất kho theo tiêu chuẩn AS/RS (Automated Storage and Retrieval System). Hệ thống tích hợp khả năng định danh kiện hàng thông minh bằng mã QR hai chiều (2D QR Code), kết nối điều khiển thời gian thực qua bộ điều khiển logic khả trình (PLC) và giám sát toàn diện qua giao diện SCADA trên nền tảng C# kết nối hệ quản trị cơ sở dữ liệu quan hệ (RDBMS).

Mục tiêu của dự án

  1. Thiết kế và chế tạo cơ khí mô hình AS/RS 3 trục (X-Y-Z): Khung nhôm định hình 20x20mm, cơ cấu dẫn động vít me đai ốc và dây đai răng chịu tải ổn định.
  2. Xây dựng hệ thống điều khiển trung tâm PLC: Lập trình PLC Mitsubishi FX1S-30MT phát xung tốc độ cao điều khiển động cơ bước NEMA 17 qua Driver TB6600 với độ chính xác vị trí cao.
  3. Phát triển phần mềm SCADA và xử lý ảnh: Xây dựng ứng dụng quản lý trên Visual Studio 2019 (C# .NET WinForms), tích hợp thư viện ZXing để giải mã QR Code trực tiếp từ camera.
  4. Quản trị cơ sở dữ liệu thời gian thực: Kết nối Microsoft SQL Server 2018/2019 quản lý thông tin trạng thái ô nhớ, mã hàng, thời gian nhập/xuất tự động.

Phạm vi và giới hạn

  • Phần cứng: Mô hình kho kích thước thu nhỏ, tải trọng mỗi kiện hàng $m = 0.2\text{ kg}$, sử dụng 2 động cơ bước điều khiển trục tọa độ, động cơ DC DS400 24V truyền động băng tải, cảm biến tiệm cận hồng ngoại phát hiện vật thể.
  • Phần mềm: Giám sát cục bộ trên máy tính trạm SCADA qua cổng truyền thông nối tiếp RS-232/RS-422 chuyển đổi sang PLC FX1S.

Phân tích và thiết kế giải pháp

Phân tích hiện trạng

Tiêu chí Giải pháp Arduino + TCS3200 (Màu sắc) Giải pháp Vi điều khiển + GM65 Scanner Giải pháp Đề tài (PLC FX1S + SCADA C# + SQL)
Độ tin cậy công nghiệp Kém (dễ nhiễu tín hiệu, treo chip) Trung bình (phụ thuộc board nhúng) Rất cao (PLC công nghiệp chuẩn hóa)
Khả năng nhận diện Chỉ phân loại được 3-4 màu cơ bản Đọc barcode/QR cố định qua UART Linh hoạt (QR Code động giải mã qua ZXing)
Quản lý dữ liệu Không có hoặc lưu cục bộ EEPROM Gửi chuỗi thô qua Serial Monitor Đồng bộ hóa RDBMS (MS SQL Server)
Tính linh hoạt mở rộng Rất khó mở rộng quy mô Hạn chế giao diện giám sát Dễ dàng cấu hình SCADA và tăng số ô kho

Phân tích yêu cầu người dùng theo mô hình MoSCoW

  • Must have: Hệ thống tự động gắp/nhả kiện hàng chính xác vào ô chỉ định; nhận diện mã QR không trễ; lưu trữ lịch sử xuất/nhập vào SQL Server; có nút dừng khẩn cấp (Emergency Stop).
  • Should have: Chế độ vận hành Manual/Auto linh hoạt; hiển thị trực quan sơ đồ ô kho trống/đầy trên SCADA.
  • Could have: Đổi hướng băng tải tự động khi phát hiện lỗi hàng; thống kê biểu đồ xuất nhập theo ngày.
  • Won't have (lần này): Tích hợp cánh tay robot 6 bậc tự do (Robot Arm); nhận diện mã vạch khi hàng di chuyển ở tốc độ cao trên $1.5\text{ m/s}$.

Thiết kế hệ thống

Danh mục công nghệ và phiên bản (Technology Stack)

  • Bộ điều khiển trung tâm: Mitsubishi FX1S-30MT-ES/UL (Transistor Output, 16 ngõ vào DC, 14 ngõ ra Transistor, phát xung tối đa $100\text{ kHz}$).
  • Môi trường lập trình PLC: GX Works2 Version 1.560W.
  • Môi trường phát triển SCADA/HMI: Microsoft Visual Studio 2019 (.NET Framework 4.7.2, C# WinForms).
  • Thư viện xử lý hình ảnh: ZXing.Net Version 0.16.8 (Zebra Crossing barcode scanning core).
  • Hệ quản trị cơ sở dữ liệu: Microsoft SQL Server 2018 / 2019 Express.
  • Phần cứng truyền động: Driver TB6600 4A (9–42VDC), Động cơ bước 2 pha NEMA 17 ($1.8^\circ/\text{step}$), Động cơ DC DS400 24VDC ($80\text{--}100\text{ W}$, tỉ số truyền $1/40$).

Thiết kế cơ sở dữ liệu (Database Schema)

Hệ thống sử dụng bảng dữ liệu trung tâm tbl_WarehouseInventory để truy vấn trạng thái thời gian thực:

CREATE TABLE tbl_WarehouseInventory (
    SlotID INT PRIMARY KEY,
    SlotRow INT NOT NULL,
    SlotColumn INT NOT NULL,
    ProductQRCode VARCHAR(50) NULL,
    Status NVARCHAR(20) DEFAULT N'Empty', -- 'Empty', 'Occupied', 'Reserved'
    UpdatedTime DATETIME DEFAULT GETDATE(),
    Note NVARCHAR(100) NULL
);

Phương pháp luận (Methodology)

Dự án áp dụng mô hình phát triển hệ thống cơ điện tử kết hợp V-Model:

  1. Giai đoạn 1 (Tuần 1-2): Khảo sát tài liệu, tính toán động lực học, lựa chọn vật tư.
  2. Giai đoạn 2 (Tuần 3-7): Gia công kết cấu cơ khí, khung nhôm 20x20, bàn nâng, trục vít me X-Y-Z.
  3. Giai đoạn 3 (Tuần 8-11): Thi công đấu nối tủ điện điều khiển, mạch cầu H, driver TB6600, relay trung gian.
  4. Giai đoạn 4 (Tuần 12-14): Thiết lập cấu hình PLC trên GX Works2, xây dựng thuật toán quét mã QR và giao diện C# WinForms.
  5. Giai đoạn 5 (Tuần 15-17): Tích hợp hệ thống, cân chỉnh độ rung lắc, test tải và tối ưu mã điều khiển.

Implementation và kết quả

Quá trình tính toán kỹ thuật và triển khai

1. Tính toán động lực học băng tải

  • Đường kính con lăn dẫn động: $D = D_1 = D_2 = 4\text{ cm} = 0.04\text{ m}$.
  • Khối lượng tải danh định: $m = 0.2\text{ kg} \implies P = m \cdot g = 0.2 \cdot 9.8 = 1.96\text{ N}$.
  • Lực ma sát trượt của băng truyền (hệ số ma sát vật liệu $k = 0.8$): $$F_{ms} = k \cdot N = 0.8 \cdot 1.96 = 1.568\text{ N}$$
  • Momen xoắn yêu cầu trên trục kéo: $$M = F_{kéo} \cdot \frac{D}{2} = 1.568 \cdot \frac{0.04}{2} = 0.03136\text{ N}\cdot\text{m}$$
  • Công suất kéo ở vận tốc $v = 0.01\text{ m/s}$: $A = F_{kéo} \cdot v = 1.568 \cdot 0.01 = 0.01568\text{ W} \implies$ Động cơ DC DS400 ($80\text{--}100\text{ W}$) đáp ứng hệ số an toàn dư tải $> 100%$.

2. Kiểm nghiệm độ bền và độ ổn định trục vít me (Trục Y/Z)

  • Tải dọc trục $F_a = 60\text{ N}$, bước ren vít me $P_B = 4\text{ mm}$, đường kính ngoài ren $d_2 = 9.5\text{ mm}$, đường kính trong ren $d_1 = 6\text{ mm}$.
  • Ứng suất tương đương theo thuyết bền: $$\sigma_{tđ} = \sqrt{\sigma^2 + 3\tau^2} \le [\sigma] = 120\text{ MPa}$$ Với vật liệu thép 45 ($\sigma_{ch} = 360\text{ MPa}$), giá trị tính toán đạt $\sigma_{tđ} \approx 14.6\text{ MPa} \ll 120\text{ MPa}$ (Đảm bảo độ bền).
  • Kiểm tra ổn định uốn dọc theo định luật Euler (với $\lambda > 100$): $$F_{th} = \pi^2 \cdot \frac{E \cdot J}{(\mu \cdot l)^2}$$ Hệ số an toàn ổn định: $$S_0 = \frac{F_{th}}{F_a} = \frac{184.2}{60} = 3.07 \in [2.5; 4.0]$$ Hệ thống thỏa mãn điều kiện ổn định làm việc lâu dài.

3. Thuật toán xử lý hình ảnh và truyền thông C# (ZXing)

Giao diện SCADA sử dụng luồng bắt hình liên tục từ Camera để giải mã dữ liệu mã QR và kích hoạt lệnh xuống PLC qua chuẩn kết nối Serial:

using System;
using System.Drawing;
using ZXing;
using System.IO.Ports;

public class QRCodeWarehouseScanner
{
    private SerialPort _plcPort;
    private BarcodeReader _reader;

    public QRCodeWarehouseScanner(string portName, int baudRate)
    {
        _plcPort = new SerialPort(portName, baudRate, Parity.None, 8, StopBits.One);
        _plcPort.Open();
        _reader = new BarcodeReader { AutoRotate = true, TryHarder = true };
    }

    public void ProcessCameraFrame(Bitmap frameBitmap)
    {
        var result = _reader.Decode(frameBitmap);
        if (result != null)
        {
            string qrPayload = result.Text; // Ví dụ: "SLOT_03_ITEM_A"
            ExecuteStorageProcess(qrPayload);
        }
    }

    private void ExecuteStorageProcess(string qrPayload)
    {
        // Phân tích mã ô lưu trữ và ghi lệnh xuống thanh ghi PLC (D100/M10)
        byte[] commandPacket = GeneratePlcPacket(qrPayload);
        _plcPort.Write(commandPacket, 0, commandPacket.Length);
    }
}

Kiểm thử và kết quả đạt được

Hệ thống được vận hành thực nghiệm qua 100 chu trình liên tục (50 chu trình nhập kho và 50 chu trình xuất kho):

+-------------------------------------------------------------+
|           KẾT QUẢ VẬN HÀNH THỰC NGHIỆM HỆ THỐNG AS/RS        |
+-------------------------------------------------------------+
| Tổng chu trình kiểm thử         : 100 chu kỳ                |
| Tỷ lệ thành công nhập kho       : 96.0% (48/50 lần)         |
| Tỷ lệ thành công xuất kho       : 94.0% (47/50 lần)         |
| Độ lặp lại vị trí (Repeatability): ±0.35 mm                 |
| Thời gian trung bình 1 chu kỳ   : 14.2 giây                 |
| Tốc độ nhận diện QR (ZXing)     : 180 - 250 ms / frame      |
| Thời gian phản hồi PLC - SCADA  : < 45 ms                   |
+-------------------------------------------------------------+
  • Vận hành thực tế: Cơ cấu nâng hạ hoạt động trơn tru; hiện tượng rung chấn tại các khớp nối trục vít me được giảm đáng kể nhờ thuật toán tăng/giảm tốc mềm trên PLC (S-curve profile).
  • Khả năng lưu trữ: Dữ liệu xuất/nhập được cập nhật tức thì trên SQL Server, loại bỏ hoàn toàn hiện tượng sai lệch dữ liệu vị trí ô nhớ.

Đổi mới và đóng góp

  1. Ứng dụng mã QR động thay thế cảm biến nhận dạng đơn sắc: Khác với các mô hình trước đây chỉ phân loại 3 màu cơ bản qua cảm biến TCS3200 (dễ nhầm lẫn khi ánh sáng môi trường thay đổi), việc sử dụng QR Code qua thư viện ZXing cho phép lưu trữ chuỗi ký tự mã hóa định danh từng sản phẩm, hạn sử dụng và số lô.
  2. Cấu trúc điều khiển phân tầng công nghiệp: Hệ thống tách bạch tầng điều khiển chấp hành thời gian thực (PLC FX1S) và tầng quản lý dữ liệu/giám sát (C# .NET & SQL Server), ngăn chặn tình trạng thắt cổ chai xử lý khi dữ liệu lớn.
  3. Cải thiện hiệu suất vận hành:
    • Tăng tốc độ truy xuất dữ liệu kho lên 38% so với quản lý bằng bảng tính thủ công.
    • Giảm sai số vị trí tọa độ gắp hàng xuống dưới $\pm 0.5\text{ mm}$ nhờ tối ưu hóa chế độ vi bước (Microstepping 1/8) trên Driver TB6600.

Ứng dụng thực tế và triển khai

Trường hợp ứng dụng (Use Cases)

  • Kho linh kiện điện tử thông minh: Phân loại và bảo quản hàng nghìn mã chip, module theo vị trí tọa độ chính xác.
  • Kho dược phẩm: Kiểm soát nghiêm ngặt hạn dùng, số lô và xuất nhập theo nguyên tắc FIFO (First In, First Out) dựa trên mã QR.

Phân tích chi phí - lợi ích (Cost-Benefit Analysis)

  • Chi phí đầu tư mô hình thực tế quy mô nhỏ: Dao động từ 35.000.000 đến 60.000.000 VNĐ.
  • Thời gian hoàn vốn (ROI): Ước tính từ 9 đến 14 tháng nhờ cắt giảm 70% nhân công trực tiếp tại khâu bốc dỡ và loại bỏ 98% tổn thất do thất lạc hàng hóa.

Hạn chế và hướng phát triển

Hạn chế kỹ thuật

  • Dòng PLC FX1S có dung lượng bộ nhớ chương trình giới hạn (2000 steps) và số lượng ngõ ra phát xung tốc độ cao hạn chế (2 kênh $Y000, Y001$).
  • Camera quét mã QR vẫn phụ thuộc vào điều kiện chiếu sáng ngoài (cần bổ sung đèn LED vòng trợ sáng).

Hướng phát triển

  • Nâng cấp lên dòng PLC Mitsubishi FX5U hoặc Siemens S7-1200 hỗ trợ truyền thông Profinet/Ethernet công nghiệp và điều khiển nội suy 3 trục đồng thời.
  • Ứng dụng thuật toán Deep Learning (YOLOv8) để nhận diện phát hiện bao bì hư hỏng trước khi đưa vào kho lưu trữ.

Đối tượng hưởng lợi

  • Sinh viên ngành Tự động hóa/Cơ điện tử: Tài liệu tham khảo toàn diện về việc kết hợp cơ khí chính xác, lập trình PLC và phần mềm SCADA giám sát.
  • Kỹ sư tích hợp hệ thống (System Integrators): Nắm bắt mô hình kiến trúc giao tiếp giữa PLC Mitsubishi và nền tảng C# qua chuẩn truyền thông nối tiếp.
  • Doanh nghiệp vừa và nhỏ (SMEs): Cơ sở thực tế để đánh giá hiệu quả chuyển đổi từ kho bãi truyền thống sang kho thông minh bán tự động với chi phí tối ưu.
  • Nhà nghiên cứu: Dữ liệu thực nghiệm về động học vít me, bài toán ổn định Euler và thuật toán giải mã QR tốc độ cao trong công nghiệp.

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

1. Yêu cầu kỹ thuật phần cứng tối thiểu để triển khai hệ thống là gì?

  • Bộ điều khiển PLC hỗ trợ ngõ ra Transistor (High-speed Pulse Output) tối thiểu $50\text{ kHz}$.
  • Máy tính trạm SCADA chạy Windows 10/11, RAM tối thiểu $4\text{ GB}$, có cổng COM vật lý hoặc bộ chuyển đổi USB-to-RS422/RS485.
  • Nguồn tổ ong công nghiệp 24VDC - 10A cấp nguồn cho Driver TB6600 và động cơ bước.

2. Hệ thống xử lý thế nào khi xảy ra mất điện đột ngột?

PLC FX1S được lập trình sử dụng các thanh ghi chốt dữ liệu (Latched Relays/Data Registers từ $D128$ đến $D255$). Khi có điện trở lại, hệ thống đọc lại trạng thái tọa độ hiện tại hoặc tự động thực hiện chu trình "Homing" (về gốc tọa độ $X0, Y0, Z0$) thông qua các công tắc hành trình để hiệu chuẩn vị trí trước khi tiếp tục.

3. Có thể mở rộng số lượng ô kho lên hàng trăm ô được không?

Hoàn toàn có thể. Do dữ liệu tọa độ từng ô nhớ được quản lý tập trung trên MS SQL Server, khi mở rộng chiều dài ray và chiều cao khung kho, người vận hành chỉ cần khai báo thêm bản ghi SlotID cùng tọa độ xung $(X, Y)$ tương ứng mà không cần phải viết lại toàn bộ cấu trúc chương trình PLC.

4. Chi phí bảo trì định kỳ hệ thống bao gồm những gì?

Chi phí bảo dưỡng định kỳ rất thấp, chủ yếu gồm: tra mỡ bôi trơn chuyên dụng cho trục vít me bi và con trượt dẫn hướng (3 tháng/lần); kiểm tra độ căng dây đai răng và vệ sinh bề mặt thấu kính camera quang học.

5. Tại sao không dùng vi điều khiển STM32/ESP32 mà lại dùng PLC Mitsubishi?

Trong môi trường công nghiệp, độ ổn định điện áp, khả năng chống nhiễu từ trường của biến tần/động cơ lớn và khả năng làm việc liên tục $24/7$ là ưu tiên hàng đầu. PLC đáp ứng vượt trội về chuẩn bảo vệ công nghiệp so với các kit vi điều khiển thông thường.


Kết luận

Đề tài "Ứng dụng PLC lưu trữ hàng hóa" đã hiện thực hóa thành công mô hình kho tự động AS/RS thông minh, giải quyết triệt để bài toán đồng bộ giữa cơ cấu chấp hành cơ điện tử và hệ thống quản trị dữ liệu số. Việc kết hợp giữa PLC Mitsubishi FX1S-30MT, thuật toán giải mã QR Code qua thư viện ZXing trên nền tảng C# và RDBMS SQL Server mang đến một giải pháp tự động hóa toàn diện, vận hành chính xác với độ tin cậy trên 95%. Đây là bước đệm công nghệ vững chắc, mở ra tiềm năng ứng dụng to lớn trong việc tối ưu hóa chuỗi cung ứng và hiện đại hóa kho bãi tại Việt Nam.