Giới thiệu dự án

Nông nghiệp thông minh (Smart Agriculture) và nông nghiệp công nghệ cao đang trở thành trụ cột then chốt trong quá trình chuyển đổi số nền kinh tế Việt Nam. Theo thống kê từ Bộ Nông nghiệp và Phát triển Nông thôn, nông nghiệp đóng góp khoảng 17% GDP quốc gia với hơn 65% dân số gắn liền với sinh kế nông thôn. Việc áp dụng mô hình nhà màng, nhà kính tự động hóa giúp tăng năng suất cây trồng gấp 3 đến 4 lần so với phương pháp canh tác truyền thống ngoài trời, đồng thời giảm thiểu 80% rủi ro từ sâu bệnh và biến đổi khí hậu cực đoan.

Tuy nhiên, thực trạng canh tác hiện nay tại các trang trại vừa và nhỏ tại Việt Nam vẫn đối mặt với những bài toán kỹ thuật nan giải:

  • Hệ thống điều khiển thủ công hoặc dùng rơ-le thời gian (Timer Relay): Không có khả năng phản hồi theo thông số vi khí hậu thực tế (nhiệt độ, độ ẩm không khí, độ ẩm đất), dẫn đến tình trạng tưới thừa/thiếu nước và sốc nhiệt cho cây.
  • Các giải pháp vi điều khiển mã nguồn mở (Arduino, ESP32, Raspberry Pi): Dù chi phí thấp nhưng khả năng chịu nhiễu công nghiệp (EMI/EMC) rất kém, dễ treo hệ thống khi đóng cắt tải cảm kháng công suất lớn (máy bơm, quạt thông gió), thiếu tính ổn định khi hoạt động liên tục 24/7/365.
  • Các hệ sinh thái SCADA truyền thống: Chi phí bản quyền phần mềm (WinCC, Wonderware) và máy tính công nghiệp (IPC) tại hiện trường quá cao, khó triển khai cho các nhà vườn phân tán.

Đề tài "Ứng dụng PLC S7-1200 điều khiển giám sát nhà trồng thông minh qua Webserver và truyền thông RS485" do nhóm sinh viên Khoa Công nghệ Điện - Trường Đại học Công nghiệp TP.HCM (IUH) nghiên cứu và phát triển nhằm giải quyết triệt để các tồn tại trên. Hệ thống thiết lập một kiến trúc tự động hóa cấp công nghiệp, tin cậy cao nhưng tối ưu hóa chi phí vận hành thông qua các công nghệ nhúng trực tiếp.

+-------------------------------------------------------------------------+
|                              HỆ THỐNG GIÁM SÁT                          |
|   +----------------------------------+  +---------------------------+   |
|   |   Web Browser (PC/Smartphone)    |  |     SMS Cảnh báo Sự cố    |   |
|   |   Giao diện HTML5 User-Defined   |  |   (Thông qua Module GSM)  |   |
|   +-----------------+----------------+  +-------------+-------------+   |
+---------------------|---------------------------------|-----------------+
                      | HTTP/HTTPS                      | GSM/GPRS
                      v                                 v
+-------------------------------------------------------------------------+
|                     TRUNG TÂM ĐIỀU KHIỂN (TỦ PLC)                       |
|   +-----------------------------------------------------------------+   |
|   |                  Siemens SIMATIC S7-1200 CPU                    |   |
|   |  - Xử lý logic chu kỳ quét (OB1, FC, FB, DB)                    |   |
|   |  - Tích hợp Web Server nhúng (Web User Defined AWP)             |   |
|   +----------------+-------------------------------+----------------+   |
|                    | Profinet                      | Bus nội bộ         |
|                    v                               v                    |
|   +--------------------------------+  +-----------------------------+   |
|   | Module Mở rộng CM 1241 (RS485) |  | Module GPRS CP 1242-7 V2    |   |
|   | Giao thức Modbus RTU Master    |  | Gửi tin nhắn SMS khẩn cấp   |   |
|   +----------------+---------------+  +-----------------------------+   |
+--------------------|----------------------------------------------------+
                     | RS485 (2-wire Differential)
                     v
+-------------------------------------------------------------------------+
|                           THIẾT BỊ NGOẠI VI                             |
|   +------------------------------------+  +-------------------------+   |
|   | Cảm biến RS-WS-N01-8 (Modbus Slave)|  | Cơ cấu chấp hành (220V) |   |
|   | - Nhiệt độ: -40°C đến +80°C        |  | - Quạt thông gió DP200A |   |
|   | - Độ ẩm: 0% - 100% RH              |  | - Bơm phun sương        |   |
|   +------------------------------------+  | - Đèn chiếu sáng        |   |
|                                           | - Khởi động từ LS GMC-9 |   |
|                                           +-------------------------+   |
+-------------------------------------------------------------------------+

Mục tiêu kỹ thuật cụ thể:

  1. Thiết kế, chế tạo mô hình nhà màng và tủ điều khiển tự động: Tích hợp bộ điều khiển logic khả trình PLC Siemens SIMATIC S7-1200 với đầy đủ các thiết bị bảo vệ (Aptomat, rơ-le trung gian, khởi động từ contactor).
  2. Xây dựng mạng truyền thông công nghiệp RS485 Modbus RTU: Giao tiếp giữa PLC (Master) và cảm biến môi trường công nghiệp RS-WS-N01-8 (Slave) để thu thập nhiệt độ, độ ẩm chính xác theo thời gian thực.
  3. Phát triển giao diện Web Server nhúng (Web User Defined): Lập trình các trang HTML/CSS/JavaScript lưu trữ trực tiếp trên bộ nhớ nạp (Load Memory) của PLC, cho phép người dùng giám sát và điều khiển chế độ Manual/Auto từ bất kỳ thiết bị nào qua trình duyệt web mà không mất phí bản quyền SCADA.
  4. Tích hợp module viễn thông CP 1242-7 GPRS V2: Thiết lập cơ chế tự động gửi cảnh báo khẩn cấp qua tin nhắn SMS đến số điện thoại quản trị viên khi thông số môi trường vượt ngưỡng cho phép hoặc xảy ra sự cố thiết bị.
  5. Cấu hình định tuyến WAN: Mở port (Port Forwarding / NAT) và tích hợp tên miền động (Dynamic DNS) trên Router để điều khiển từ xa qua Internet toàn cầu.

Phạm vi và giới hạn đề tài:

  • Phạm vi: Áp dụng mô hình điều khiển vi khí hậu nhà màng trồng rau sạch quy mô pilot, kiểm soát nhiệt độ từ 0 – 50°C, độ ẩm 20% – 90% RH.
  • Giới hạn: Hệ thống tập trung điều khiển nhiệt độ, độ ẩm và chiếu sáng; chưa tích hợp định lượng tự động nồng độ dinh dưỡng khoáng (EC/pH) trong hệ thống thủy canh hồi lưu.

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

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

Tiêu chí kỹ thuật / Kinh tế Vi điều khiển DIY (ESP32 / Arduino) SCADA Truyền thống (PC + WinCC) Giải pháp Đề tài (PLC S7-1200 + Web/RS485)
Độ bền công nghiệp (MTBF) Thấp (< 5.000 giờ), dễ treo do xung điện cảm Trung bình - Cao (Phụ thuộc IPC) Rất cao (> 100.000 giờ), chuẩn công nghiệp
Khả năng kháng nhiễu EMI Kém, cần mạch lọc cách ly phức tạp Tốt (Sử dụng I/O công nghiệp) Xuất sắc (Cách ly quang, chuẩn IEC 61131-2)
Chi phí bản quyền phần mềm Miễn phí (Mã nguồn mở) Rất đắt (1.000$ - 3.000$ / Runtime) 0 VNĐ (Tích hợp Web Server nhúng sẵn)
Chi phí phần cứng máy chủ Không yêu cầu Bắt buộc IPC/PC vận hành 24/7 Không cần máy tính trạm tại hiện trường
Kênh cảnh báo sự cố Wi-Fi / MQTT (Mất khi đứt mạng Internet) Email / Popup trên màn hình Đa kênh: Web Realtime + SMS qua GPRS
Khả năng mở rộng I/O Hạn chế, nối dây phức tạp Tốt qua Remote I/O Mở rộng tối đa 8 SM, 3 CM, 1 SB

Phân loại yêu cầu theo mô hình MoSCoW:

  • Must have (Bắt buộc phải có): Thu thập dữ liệu nhiệt - ẩm chuẩn xác qua Modbus RTU RS485; Điều khiển tự động bật/tắt quạt hút và bơm phun sương theo ngưỡng cài đặt; Giao diện Webserver cục bộ bật/tắt thiết bị thủ công.
  • Should have (Nên có): Chức năng cảnh báo qua tin nhắn SMS bằng module CP 1242-7 V2; Khả năng truy cập từ xa qua Internet bằng phương thức NAT Port/DDNS.
  • Could have (Có thể có): Biểu đồ đồ thị (Trend View) biểu diễn biến thiên nhiệt - ẩm ngay trên giao diện Web nhúng; Phân quyền người dùng (User & Password Access Level).
  • Won't have (Chưa thực hiện ở giai đoạn này): Tích hợp camera AI nhận diện sâu bệnh trên lá; Thuật toán điều khiển dự đoán mô hình (MPC) trên đám mây.

Thiết kế hệ thống

+-----------------------------------------------------------------------------------+
|                            KIẾN TRÚC TỔNG THỂ HỆ THỐNG                            |
|                                                                                   |
|  [ Internet / Mạng Di Động ]                                                     |
|          |                                                                        |
|          +---> DDNS / Router NAT Port (80 / 102) ---> [ Cổng RJ45 Profinet ]      |
|          +---> GSM/GPRS BTS Cell Tower -------------> [ Ăng-ten SMA GPRS ]        |
|                                                              |                    |
|  [ Tủ Điều Khiển Trung Tâm ]                                 |                    |
|  +-----------------------------------------------------------v-----------------+  |
|  |  Module CP 1242-7 GPRS V2 (Kẹp bên trái CPU)                               |  |
|  |  - Giao tiếp GSM 850/900/1800/1900 MHz                                      |  |
|  +-----------------------------------------------------------------------------+  |
|                                  | Internal Bus                                   |
|  +-------------------------------v---------------------------------------------+  |
|  |  CPU S7-1200 (CPU 1214C DC/DC/DC - Firmware V4.1)                           |  |
|  |  - Bộ nhớ làm việc: 100 KB, Bộ nhớ nạp: 4 MB, Chu kỳ quét: 0.1 µs/lệnh Bit  |  |
|  |  - OB1 (Vòng quét chính), FC1 (Modbus RS485), FC2 (Điều khiển Chấp hành),   |  |
|  |    FB1 (Truyền thông SMS), DB1 (Lưu trữ dữ liệu vi khí hậu)                 |  |
|  +-----------------------------------------------------------------------------+  |
|          |                                              |                         |
|          | Bus mở rộng bên trái                         | Ngõ ra số (Digital Out) |
|          v                                              v                         |
|  +--------------------------------+       +------------------------------------+  |
|  | Module CM 1241 RS485           |       | Rơ-le Đệm 24VDC & Contactor LS     |  |
|  | - Chuẩn vật lý: EIA-485        |       +-----------------+------------------+  |
|  | - Tốc độ: 9600 bps, 8N1        |                         |                     |
|  +---------------+----------------+                         v                     |
+------------------|------------------------------------------|---------------------+
                   | Cáp đôi vặn xoắn chống nhiễu (STP)       | Đóng cắt 220VAC
                   v                                          v
      +----------------------------+             +--------------------------+
      | Cảm biến RS-WS-N01-8       |             | Cơ cấu chấp hành:        |
      | - Địa chỉ Slave ID: 01     |             | - Quạt thông gió DP200A  |
      | - Thanh ghi: 40001 - 40002 |             | - Bơm áp lực phun sương  |
      +----------------------------+             | - Hệ thống đèn chiếu sáng|
                                                 +--------------------------+

Bảng thông số phần cứng và công nghệ:

  • Bộ điều khiển trung tâm: Siemens SIMATIC S7-1200 CPU 1214C (6ES7 214-1AG40-0XB0) – Nguồn cấp 24VDC, tích hợp 14 ngõ vào số (DI) 24VDC, 10 ngõ ra số (DQ) Transistor, 2 ngõ vào tương tự (AI) 0–10V.
  • Module truyền thông nối tiếp: CM 1241 RS485 (6ES7 241-1CH32-0XB0) – Hỗ trợ chuẩn kết nối đa điểm (Multi-point), cách ly quang 500VDC.
  • Module truyền thông di động: CP 1242-7 GPRS V2 (6GK7 242-7KX31-0XE0) – 4 băng tần GSM/GPRS, khe cắm Micro-SIM, tích hợp giao thức điều khiển Telecontrol và SMS Engine.
  • Cảm biến nhiệt độ - độ ẩm: RS-WS-N01-8 Modbus RTU – Tầm đo nhiệt độ: -40°C đến +80°C (độ chính xác ±0.5°C), Tầm đo độ ẩm: 0% đến 100% RH (độ chính xác ±3% RH). Nguồn cấp: 10–30VDC.
  • Thiết bị đóng cắt động lực: Khởi động từ LS GMC-9 (Dòng định mức 9A, cuộn hút 220VAC), Rơ-le kiếng Omron MY2N 24VDC đóng vai trò rơ-le trung gian cách ly.
  • Công cụ lập trình: Siemens TIA Portal V14 (Totally Integrated Automation Portal) SP1 Professional.

Thiết kế cơ sở dữ liệu và cấu trúc địa chỉ nhớ:

Dữ liệu được tổ chức tập trung trong các khối dữ liệu toàn cục (Global Data Block - DB) nhằm phục vụ việc trao đổi hai chiều giữa chương trình logic PLC và trang Web HTML:

Tên biến (Tag Name) Kiểu dữ liệu (Data Type) Địa chỉ vùng nhớ Chức năng chi tiết
DB_Data.Actual_Temp Real DB1.DBD0 Lưu trữ giá trị nhiệt độ thực tế đọc từ cảm biến (°C)
DB_Data.Actual_Hum Real DB1.DBD4 Lưu trữ giá trị độ ẩm không khí thực tế (% RH)
DB_Data.Set_Temp_High Real DB1.DBD8 Ngưỡng nhiệt độ trên kích hoạt quạt làm mát (°C)
DB_Data.Set_Hum_Low Real DB1.DBD12 Ngưỡng độ ẩm dưới kích hoạt bơm phun sương (% RH)
DB_Data.Mode_Auto Bool DB1.DBX16.0 Cờ chọn chế độ: 1 = Tự động (Auto), 0 = Thủ công (Manual)
DB_Data.Cmd_Fan_Manual Bool DB1.DBX16.1 Lệnh bật/tắt quạt cưỡng bức từ giao diện Web
DB_Data.Cmd_Pump_Manual Bool DB1.DBX16.2 Lệnh bật/tắt máy bơm cưỡng bức từ giao diện Web
DB_Data.Alarm_SMS_Sent Bool DB1.DBX16.3 Cờ ghi nhận trạng thái đã phát tin nhắn SMS cảnh báo

Phương pháp nghiên cứu và triển khai (Methodology)

Dự án áp dụng mô hình phát triển hệ thống tự động hóa V-Model với 5 giai đoạn chặt chẽ:

  1. Giai đoạn 1 (Tuần 1 - 3): Nghiên cứu lý thuyết, tính toán nhu cầu thủy lực đường ống và phụ tải điện nhà màng; Thiết kế sơ đồ nguyên lý đấu nối tủ điện (EPLAN).
  2. Giai đoạn 2 (Tuần 4 - 6): Thi công lắp ráp tủ điều khiển cơ điện, cơ cấu chấp hành (bơm, quạt, van từ) và kết nối đường truyền vật lý RS485.
  3. Giai đoạn 3 (Tuần 7 - 9): Lập trình khối truyền thông Modbus RTU trên TIA Portal V14, cấu hình tập lệnh SMS trên CP 1242-7 V2 và thiết kế giao diện Web HTML5/JavaScript.
  4. Giai đoạn 4 (Tuần 10 - 11): Nạp mã nhúng vào PLC (Compile Web Blocks DB), cấu hình Router NAT Port và cài đặt Dynamic DNS (No-IP).
  5. Giai đoạn 5 (Tuần 12): Thử nghiệm thực nghiệm tải, đánh giá sai số thu thập dữ liệu và thời gian đáp ứng điều khiển.

Triển khai thực nghiệm và Kết quả

Quy trình phát triển và Thuật toán cốt lõi

Quy trình xử lý của hệ thống được lập trình theo chu kỳ quét (Scan Cycle) thời gian thực của PLC. Khối tổ chức OB1 tuần tự gọi các khối chức năng chuyên biệt:

[ Khởi động CPU (OB100) ]
       |
       v
+---------------------------------------------------------+
| Khởi tạo tham số cổng truyền thông RS485:                |
| Khối MB_COMM_LOAD thiết lập Tốc độ 9600, Chế độ Modbus   |
+---------------------------------------------------------+
       |
       v
+---------------------------------------------------------+
| Vòng quét lặp OB1 (Main Program Cycle)                  |
+---------------------------------------------------------+
       |
       +---> [1] FC_Modbus_Read: Đọc thanh ghi Holding Register (40001-40002)
       |     từ cảm biến RS-WS-N01-8 theo chu kỳ 500ms
       |
       +---> [2] FC_Scaling: Chuyển đổi Word thô sang số thực:
       |     Temp = Raw_Temp / 10.0; Hum = Raw_Hum / 10.0
       |
       +---> [3] FC_Control_Logic:
       |     - IF Mode = Auto:
       |         + IF Temp > Set_Temp_High -> Bật Quạt hút (Q0.0)
       |         + IF Hum < Set_Hum_Low    -> Bật Bơm phun sương (Q0.1)
       |     - IF Mode = Manual:
       |         + Q0.0 := Cmd_Fan_Manual; Q0.1 := Cmd_Pump_Manual
       |
       +---> [4] FB_SMS_Alert (CP 1242-7):
       |     - IF (Temp > 38.0°C OR Hum < 40%) AND (Alarm_Sent = FALSE):
       |         + Kích hoạt lệnh TC_SEND phát SMS: "CANH BAO: Nhiet do vuot nguong!"
       |         + Set Alarm_Sent := TRUE
       |     - IF Temp bình thường -> Reset Alarm_Sent := FALSE
       |
       +---> [5] Cập nhật bộ đệm Web Server AWP Variables phục vụ Client HTTP Request

Code Snippet 1: Thuật toán khởi tạo và đọc dữ liệu Modbus RTU từ Cảm biến (SCL)

// Khởi tạo và thực thi đọc dữ liệu cảm biến RS-WS-N01-8 qua RS485
"MB_COMM_LOAD_DB"(
    REQ        := "FirstScan",        // Kích hoạt một lần khi khởi động (M1.0)
    "PORT"     := 269,                // Hardware Identifier của Module CM 1241 RS485
    BAUD       := 9600,               // Tốc độ truyền Baudrate
    PARITY     := 0,                  // 0 = None Parity
    MB_DB      := "MB_MASTER_DB",     // Khối dữ liệu Master
    DONE       => #Init_Done,
    ERROR      => #Init_Error
);

// Khối đọc dữ liệu nhiệt độ, độ ẩm liên tục
"MB_MASTER_DB"(
    REQ        := "Clock_2Hz",        // Đọc tuần hoàn chu kỳ 500ms
    MB_ADDR    := 16#01,              // Địa chỉ Slave ID cảm biến (0x01)
    MODE       := 0,                  // 0 = Đọc dữ liệu (Read)
    DATA_ADDR  := 40001,              // Địa chỉ thanh ghi bắt đầu (Holding Register)
    DATA_LEN   := 2,                  // Đọc 2 Word (Word 1: Độ ẩm, Word 2: Nhiệt độ)
    DATA_PTR   := "DB_Modbus_Buffer".Raw_Data, // Con trỏ lưu mảng Word
    DONE       => #Read_Done,
    ERROR      => #Read_Error
);

// Chuẩn hóa dữ liệu thô từ cảm biến sang đơn vị vật lý thực (°C và % RH)
IF #Read_Done THEN
    "DB_Data".Actual_Hum  := INT_TO_REAL(WORD_TO_INT("DB_Modbus_Buffer".Raw_Data[0])) / 10.0;
    "DB_Data".Actual_Temp := INT_TO_REAL(WORD_TO_INT("DB_Modbus_Buffer".Raw_Data[1])) / 10.0;
END_IF;

Code Snippet 2: Cấu trúc nhúng biến AWP trên giao diện Web HTML (userpage.htm)

<!-- Định nghĩa các thẻ AWP (Advanced Web Programming) để liên kết bộ nhớ PLC S7-1200 -->
<!-- AWP_In_Variable Name='"DB_Data".Cmd_Fan_Manual' -->
<!-- AWP_In_Variable Name='"DB_Data".Cmd_Pump_Manual' -->
<!-- AWP_In_Variable Name='"DB_Data".Mode_Auto' -->
<!-- AWP_Out_Variable Name='"DB_Data".Actual_Temp' -->
<!-- AWP_Out_Variable Name='"DB_Data".Actual_Hum' -->

<!DOCTYPE html>
<html lang="vi">
<head>
    <meta charset="UTF-8">
    <title>HỆ THỐNG GIÁM SÁT NHÀ MÀNG S7-1200</title>
    <style>
        body { font-family: Arial, sans-serif; background-color: #f4f7f6; text-align: center; }
        .card { background: #fff; border-radius: 8px; box-shadow: 0 4px 8px rgba(0,0,0,0.1); display: inline-block; padding: 20px; margin: 15px; width: 260px; }
        .val { font-size: 32px; font-weight: bold; color: #2c3e50; }
        .btn-on { background: #27ae60; color: white; padding: 10px 20px; border: none; border-radius: 4px; cursor: pointer; }
        .btn-off { background: #c0392b; color: white; padding: 10px 20px; border: none; border-radius: 4px; cursor: pointer; }
    </style>
</head>
<body>
    <h1>BẢNG ĐIỀU KHIỂN VI KHÍ HẬU NHÀ KÍNH THÔNG MINH</h1>
    
    <div class="card">
        <h3>Nhiệt Độ Thực Tế</h3>
        <div class="val">:="DB_Data".Actual_Temp: °C</div>
    </div>
    
    <div class="card">
        <h3>Độ Ẩm Thực Tế</h3>
        <div class="val">:="DB_Data".Actual_Hum: %</div>
    </div>

    <div class="card">
        <h3>Điều Khiển Quạt Hút</h3>
        <form method="post">
            <input type="hidden" name='"DB_Data".Cmd_Fan_Manual' value="1">
            <button class="btn-on" type="submit">BẬT QUẠT</button>
        </form>
        <form method="post" style="margin-top: 5px;">
            <input type="hidden" name='"DB_Data".Cmd_Fan_Manual' value="0">
            <button class="btn-off" type="submit">TẮT QUẠT</button>
        </form>
    </div>
</body>
</html>

Thử nghiệm và Đánh giá hiệu năng (Testing & Validation)

Hệ thống đã trải qua quá trình thử nghiệm liên tục trong 168 giờ (7 ngày) tại mô hình thực tế với các chỉ số đo đạc cụ thể:

+-------------------------------------------------------------------------------+
|                      BIỂU ĐỒ ĐÁP ỨNG THỜI GIAN THỰC (BENCHMARK)               |
|                                                                               |
|  Thời gian gửi SMS cảnh báo (GPRS) [======= 4.2s =======]                     |
|  Độ trễ cập nhật Web qua Internet [=== 1.1s ===]                              |
|  Độ trễ cập nhật Web qua LAN cục bộ [= 120ms =]                               |
|  Chu kỳ quét Modbus RS485 Sensor [== 450ms ==]                                |
|  Chu kỳ vòng quét CPU S7-1200 [ 1.8ms ]                                       |
|                                                                               |
|  0ms             1000ms           2000ms           3000ms           4000ms    |
+-------------------------------------------------------------------------------+
  • Hiệu năng truyền thông Modbus RS485: Tỷ lệ đọc thành công gói tin đạt 99.85% trên tổng số 322.560 chu kỳ lấy mẫu, không xảy ra hiện tượng mất khung truyền (CRC Error) nhờ đường truyền cáp đôi vặn xoắn bọc kim có điện trở đầu cuối $R_T = 120,\Omega$.
  • Độ trễ phản hồi Web Server: Truy cập mạng nội bộ (LAN) đạt độ trễ cực thấp 120 ms. Truy cập qua Internet (WAN thông qua NAT Port & No-IP DDNS) đạt thời gian đáp ứng trung bình 1.1 giây trên kết nối mạng 4G thông thường.
  • Thời gian đáp ứng cảnh báo SMS: Từ thời điểm nhiệt độ vượt ngưỡng cài đặt (ví dụ $T > 38.0^\circ\text{C}$), module CP 1242-7 V2 xử lý lệnh AT và gửi tin nhắn về máy trạm di động trong thời gian trung bình 4.2 giây (kiểm nghiệm trên mạng Viettel).
  • Độ chính xác duy trì vi khí hậu: Dao động nhiệt độ buồng trồng được duy trì ổn định trong khoảng $\pm 0.8^\circ\text{C}$ so với điểm đặt (Set-point); độ ẩm không khí duy trì sai lệch dưới $\pm 4%$ RH.

Đổi mới và Đóng góp khoa học

  1. Kiến trúc Web SCADA nhúng không chi phí bản quyền (Zero-License Embedded Web SCADA): Thay vì sử dụng phần mềm máy tính đắt đỏ, đề tài đã khai thác tối đa công nghệ Web User Defined của Siemens. Bằng cách biên dịch trực tiếp mã nguồn HTML5/JS thành các khối dữ liệu DB nhúng vào CPU S7-1200, hệ thống biến PLC thành một Web Server độc lập hoàn chỉnh, tiết kiệm 100% chi phí phần mềm máy chủ SCADA (tương đương tiết kiệm từ 20 đến 50 triệu VNĐ cho mỗi nhà màng tiêu chuẩn).
  2. Hệ thống cảnh báo kép lai ghép (Hybrid Redundant Alert): Khắc phục nhược điểm mất kết nối của các hệ thống IoT thuần Wi-Fi. Khi đường truyền cáp quang Internet bị đứt, module CP 1242-7 V2 hoạt động trên mạng viễn thông GSM/GPRS độc lập vẫn đảm bảo việc gửi SMS cảnh báo tức thời, loại bỏ nguy cơ thiệt hại cây trồng do chết quạt hoặc cháy bơm.
  3. Chuẩn hóa công nghiệp hóa mạng cảm biến nông nghiệp: Thay thế các cảm biến analog 4-20mA đắt tiền hoặc cảm biến số chân rời (như DHT11/DHT22 dễ hỏng) bằng chuẩn công nghiệp RS485 Modbus RTU vi sai 2 dây. Giải pháp cho phép kéo dài khoảng cách truyền dẫn tín hiệu lên đến 1.200 mét trong môi trường nông nghiệp có độ ẩm bão hòa và độ ồn điện từ cao.

Ứng dụng thực tế và Triển khai thương mại

Kịch bản vận hành thực tế tại trang trại:

  • Ứng dụng tại trang trại trồng hoa lan / dâu tây (Đà Lạt - Lâm Đồng): Duy trì độ ẩm nghiêm ngặt $70% - 85%$ và nhiệt độ dưới $28^\circ\text{C}$. Khi trưa nắng nhiệt độ tăng vượt $28^\circ\text{C}$, PLC tự động kích hoạt quạt hút DP200A đối lưu không khí và kích hoạt giàn phun sương hạ nhiệt theo chu kỳ 3 phút phun / 2 phút nghỉ để tránh ngập úng gốc rễ.
  • Ứng dụng mô hình trồng rau thủy canh đô thị (Urban Hydroponics): Chủ trang trại dễ dàng kiểm tra tình trạng vi khí hậu, bật tắt đèn quang hợp LED tăng cường vào ban đêm trực tiếp trên điện thoại thông minh thông qua tên miền Internet đã cấu hình.
+-------------------------------------------------------------------------+
|                  HƯỚNG DẪN ĐỊNH TUYẾN TRUY CẬP TỪ XA (WAN)             |
|                                                                         |
|  1. Đặt IP tĩnh cho CPU S7-1200: 192.168.1.200 (Subnet: 255.255.255.0)  |
|  2. Truy cập trang quản trị Modem Router (192.168.1.1)                  |
|  3. Thiết lập Cổng chuyển tiếp (Port Forwarding / Virtual Server):      |
|     - Internal IP: 192.168.1.200 | Internal Port: 80   (HTTP)           |
|     - External Port: 8080        | Protocol: TCP                        |
|  4. Cấu hình Dynamic DNS: Dịch vụ No-IP.com                             |
|     - Hostname: `nhakinh-iuh.ddns.net` -> Cập nhật IP Public động       |
|  5. Truy cập từ xa: Mở trình duyệt gõ `http://nhakinh-iuh.ddns.net:8080`|
+-------------------------------------------------------------------------+

Phân tích hiệu quả kinh tế và Hoàn vốn (ROI):

  • Chi phí đầu tư phần cứng (Tủ điện + Cảm biến + PLC): Khoảng 14.500.000 VNĐ.
  • Chi phí vận hành: Tiết kiệm 1 nhân công giám sát thủ công trực tiếp tại vườn (~6.000.000 VNĐ/tháng).
  • Thời gian hoàn vốn đầu tư (Payback Period): Ước tính chỉ từ 2.5 đến 3 tháng canh tác nhờ giảm thiểu rủi ro hư hại hoa màu và tiết kiệm chi phí nhân lực.

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

Hạn chế kỹ thuật hiện tại:

  • Dung lượng bộ nhớ nạp của dòng CPU S7-1200 (1MB – 4MB) giới hạn việc thiết kế các trang Web có giao diện đồ họa 3D phức tạp hoặc lưu trữ dữ liệu lịch sử (Data Logging) lớn trên nhiều năm.
  • Module CP 1242-7 V2 dựa trên nền tảng sóng 2G/GPRS – vốn đang trong lộ trình tắt sóng của các nhà mạng viễn thông tại nhiều quốc gia.

Hướng nâng cấp mở rộng:

  1. Nâng cấp Module 4G/LTE: Chuyển đổi sang module công nghiệp Siemens CP 1243-7 LTE hoặc các dòng Gateway IoT công nghiệp hỗ trợ mạng 4G/5G Cat-M1/NB-IoT.
  2. Tích hợp Cloud MQTT và Trí tuệ nhân tạo (AI Edge): Kết nối PLC với vi máy tính công nghiệp biên (Industrial Edge Gateway) đẩy dữ liệu lên nền tảng AWS IoT Core hoặc Azure IoT Hub, áp dụng mô hình máy học (Machine Learning) để dự báo trước sâu bệnh và lập lịch tưới tối ưu tự động hóa hoàn toàn.

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

  • Sinh viên & Học viên ngành Tự động hóa / Cơ điện tử: Nắm vững tài liệu thực chiến về phương thức nhúng Web Server trên PLC, cấu hình Modbus RTU và tích hợp mạng truyền thông viễn thông GSM vào công nghiệp.
  • Kỹ sư tích hợp hệ thống (System Integrator): Tham khảo giải pháp xây dựng hệ thống giám sát SCADA chi phí thấp (Low-cost SCADA) không phụ thuộc máy trạm cho các dự án vừa và nhỏ.
  • Chủ trang trại & Doanh nghiệp nông nghiệp: Sở hữu một kiến trúc công nghệ bền bỉ, vận hành tự động ổn định, giúp tối ưu hóa năng suất và giảm thiểu chi phí quản lý vận hành trang trại.

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

1. Yêu cầu phần cứng và phần mềm tối thiểu để triển khai giải pháp này là gì?

Bạn cần một PLC Siemens CPU 1211C/1212C/1214C có Firmware tối thiểu từ V4.0 trở lên, một module CM 1241 RS485, phần mềm TIA Portal từ phiên bản V13 SP1 trở lên (khuyến nghị V14/V15/V16/V17) và một cảm biến chuẩn Modbus RTU bất kỳ.

2. Làm thế nào để giải quyết vấn đề PLC bị đầy bộ nhớ khi tạo trang Web User Defined?

Cần tối ưu hóa mã nguồn HTML: nén toàn bộ mã CSS và JavaScript (sử dụng các công cụ Minify), sử dụng đồ họa SVG hoặc CSS thuần thay vì nhúng các file ảnh bitmap nặng, và tận dụng thẻ nhớ ngoài SIMATIC Memory Card (4MB đến 32GB) để mở rộng vùng lưu trữ nếu cần thiết.

3. Khi lắp đặt nhiều cảm biến RS485 trên cùng một đường truyền cần lưu ý điều gì?

Cần đấu nối theo cấu hình chuỗi Daisy-chain (nối tiếp từ thiết bị này sang thiết bị khác, không đấu hình sao); gán địa chỉ Slave ID duy nhất cho từng cảm biến (tối đa 32 thiết bị trên 1 đoạn mạng không cần Repeater); thiết lập cùng Baudrate/Parity; và bật điện trở kết thúc $120,\Omega$ ở hai đầu mút xa nhất của đường bus.

4. Dữ liệu trên Web Server của S7-1200 có đảm bảo an toàn bảo mật không?

Có. S7-1200 hỗ trợ phân cấp mật khẩu người dùng (Read/Write Access Level), kích hoạt giao thức bảo mật mã hóa HTTPS (SSL/TLS) và bảo vệ khối mã nguồn chương trình bằng tính năng Know-how Protection độc quyền của Siemens.

5. Nếu trang trại bị mất điện đột ngột, hệ thống có lưu lại các thông số cài đặt không?

Toàn bộ các giá trị ngưỡng cài đặt nhiệt độ, độ ẩm và chế độ vận hành được khai báo trong vùng nhớ lưu giữ (Retentive Memory) của Data Block, đảm bảo dữ liệu không bị mất khi mất nguồn và hệ thống tự động hoạt động bình thường ngay khi có điện trở lại.


Kết luận

Đề tài "Ứng dụng PLC S7-1200 điều khiển giám sát nhà trồng thông minh qua Webserver và truyền thông RS485" là một minh chứng tiêu biểu cho xu hướng giao thoa hiệu quả giữa nền tảng tự động hóa công nghiệp kinh điển và công nghệ kết nối vạn vật Internet (IoT). Bằng việc làm chủ công nghệ truyền thông Modbus RTU, nhúng Web Server trực tiếp vào bộ điều khiển S7-1200 và tích hợp mạng viễn thông GSM/GPRS, công trình không chỉ giải quyết triệt để bài toán ổn định vi khí hậu nhà kính mà còn mang lại một giải pháp công nghệ có tính thương mại hóa cao, chi phí tối ưu, sẵn sàng chuyển giao phục vụ sự nghiệp hiện đại hóa nông nghiệp nước nhà.