
Mục đích thiết kế dự án: Trong dự án này, tôi đã mở rộng Hệ thống mô phỏng Remote Terminal Unit ảo dựa trên Python (kết nối với hệ thống Lvl3-OT SCADA thông qua Modbus-TCP, Siemens-S7Comm, IEC 60870-5-104 và IEC 62541 OPC-UA-TCP) bằng cách thêm hỗ trợ cho giao thức ISO 16484-5 BACnet (Building Automation and Control Networks - Mạng điều khiển và tự động hóa tòa nhà). Trong bài viết này, tôi cũng sẽ trình bày chi tiết cách sử dụng khung thư viện RTU để mô phỏng một hệ thống điều khiển HVAC tự động.
Bộ mô phỏng RTU ảo nâng cao được phát triển trong dự án này tập trung vào việc mô hình hóa các hành vi cốt lõi của các thiết bị và bộ điều khiển BACnet, bao gồm thu thập dữ liệu, trao đổi giá trị, xử lý và điều khiển tự động theo đặc điểm kỹ thuật ISO 16484-5, có thể giúp xây dựng các thành phần OT trong phạm vi mạng. Dự án này cung cấp ba khả năng chính:
-
Mô-đun giao tiếp BACnet – Một lớp giao tiếp BACnet Python (máy chủ và máy khách) hỗ trợ tương tác giữa các Cảm biến, Bộ điều khiển, RTU, Cổng BACnet và hệ thống SCADA/HMI, cho phép trao đổi dữ liệu BACnet tương tự và rời rạc.
-
Khung mô phỏng RTU – Một khung bộ điều khiển từ xa hệ thống tòa nhà ảo mô phỏng các thành phần vật lý như HVAC, hệ thống chiếu sáng và an ninh, hỗ trợ giám sát và điều khiển tự động dựa trên các quy tắc logic được xác định trước.
-
Mô-đun xử lý dữ liệu và điều khiển – Một mô-đun Python plug-in để lưu trữ, xử lý dữ liệu BACnet và tạo tín hiệu điều khiển, được tích hợp với khung mô phỏng RTU để thực thi các chiến lược điều khiển.
# Author: Yuancheng Liu
# Created: 2026/01/08
# Version: v_0.0.1
# Copyright: Copyright (c) 2026 Liu Yuancheng
# License: MIT License
1. Giới thiệu
BACnet (Building Automation and Control Networks) là một giao thức giao tiếp mở được định nghĩa trong ANSI/ASHRAE 135 và ISO 16484-5. Nó được sử dụng rộng rãi trong tự động hóa tòa nhà để tích hợp các hệ thống như HVAC, chiếu sáng, quản lý năng lượng, an ninh và kiểm soát truy cập. Bằng cách cung cấp một ngôn ngữ giao tiếp chung, BACnet cho phép các thiết bị từ các nhà sản xuất khác nhau hoạt động liền mạch với nhau.
Bộ mô phỏng BACnet ISO 16484-5 Python được thiết kế để xây dựng các thành phần tự động hóa tòa nhà ảo—chẳng hạn như HVAC, hệ thống chiếu sáng, an ninh và giám sát môi trường—trong môi trường OT cyber twin/range. Nó đóng vai trò như một nền tảng học tập và một băng ghế thử nghiệm cho các ứng dụng tự động hóa tòa nhà dựa trên BACnet, cho phép người dùng khám phá hành vi giao thức mà không cần phần cứng tự động hóa tòa nhà vật lý.
Bộ mô phỏng RTU không cố gắng mô phỏng 1:1 mọi tính năng của các thiết bị BACnet thực. Thay vào đó, nó tập trung vào các hành vi hoạt động thiết yếu của một bộ điều khiển từ xa BACnet, bao gồm:
-
Các mô hình lưu trữ đối tượng/biến BACnet
-
Các mẫu trao đổi và tương tác dữ liệu
-
Thực thi logic điều khiển theo chu kỳ và ra quyết định
1.1 Giới thiệu về kiến trúc hệ thống
Bộ mô phỏng cho phép người dùng xây dựng các kiến trúc cyber-twin phản ánh cấu trúc ba cấp thường thấy trong các hệ thống OT thực. Trong môi trường ảo này, người dùng có thể tạo mẫu các bộ điều khiển hiện trường hỗ trợ BACnet, RTU, máy chủ I/O và máy khách SCADA/HMI quản lý tòa nhà qua bus BACnet. Như được hiển thị trong sơ đồ cấu trúc hệ thống bên dưới:

Nền tảng hỗ trợ các tương tác trên các lớp OT từ:
-
Cấp 0 – Các thiết bị và cảm biến thế giới vật lý như cảm biến nhiệt độ HVAC, khóa cửa an ninh, cảm biến chuyển động ánh sáng.
-
Cấp 1 – Bộ điều khiển hiện trường OT và RTU như bộ điều khiển tự động HVAC, bộ điều khiển ánh sáng.
-
Cấp 2 – Phòng quản lý / môi trường LAN xử lý như trạm giám sát tòa nhà.
Chức năng giao tiếp trong dự án này được triển khai bằng thư viện Python BACpypes, cung cấp một ngăn xếp phần mềm tuân thủ tiêu chuẩn BACnet ISO 16484-5. Cấu trúc liên kết giao tiếp nút BACnet trong bộ mô phỏng hỗ trợ cả mô hình tương tác máy chủ–đầu nối và phát hành–đăng ký, tùy thuộc vào cấu hình:
-
Các thành phần OT cấp thấp hơn (RTU, bộ điều khiển hiện trường) hiển thị dữ liệu quy trình thông qua các mô-đun máy chủ/nhà xuất bản BACnet được nhúng.
-
Các thành phần cấp cao hơn (HMI, SCADA, trình ghi nhật ký, máy chủ cơ sở dữ liệu) sử dụng các mô-đun máy khách/người đăng ký BACnet để duyệt, đọc, ghi và đăng ký dữ liệu được hiển thị.
Bằng cách mô hình hóa các khía cạnh cốt lõi này, bộ mô phỏng cung cấp một môi trường hiệu quả cho giáo dục, tạo mẫu và thử nghiệm trong các lĩnh vực sau:
-
Nghiên cứu học thuật về tự động hóa tòa nhà và công nghiệp
-
Sinh viên học các giao thức giao tiếp OT và hành vi thiết bị BACnet
-
Các nhà phát triển thiết kế hoặc xác minh các hệ thống hỗ trợ BACnet
-
Các chuyên gia an ninh mạng OT phân tích lưu lượng giao thức và tương tác hệ thống
2. Kiến thức nền tảng về BACnet
BACnet là một giao thức giao tiếp mở được tiêu chuẩn hóa là ANSI/ASHRAE 135 và ISO 16484-5. Nó được thiết kế đặc biệt cho các hệ thống tự động hóa và điều khiển tòa nhà, cho phép khả năng tương tác giữa các thiết bị từ các nhà sản xuất khác nhau bao gồm: bộ điều khiển HVAC, hệ thống quản lý năng lượng và chiếu sáng, hệ thống an ninh và kiểm soát truy cập, thiết bị giám sát môi trường và nền tảng quản lý tòa nhà và hệ thống SCADA. Các thiết bị BACnet này hiển thị các chức năng và dữ liệu của chúng dưới dạng các đối tượng BACnet được tiêu chuẩn hóa (chẳng hạn như Đầu vào tương tự hoặc Đầu ra nhị phân), cho phép ngữ nghĩa chung để giám sát và điều khiển trên các hệ thống không đồng nhất.
BACnet hỗ trợ nhiều lớp truyền tải, bao gồm:
-
BACnet/IP (UDP qua mạng IP)
-
BACnet MS/TP (bus nối tiếp RS-485)
-
BACnet Ethernet
-
BACnet qua LonTalk
-
BACnet qua ARCNET
Trong dự án này, bộ mô phỏng tập trung vào BACnet/IP, đây là tùy chọn được triển khai rộng rãi nhất trong các mạng tự động hóa tòa nhà hiện đại. Các thông báo BACnet được đóng gói trong các gói UDP/IP và được gửi qua Ethernet. Giao thức sử dụng cổng UDP 47808 (0xBAC0) theo mặc định.
2.1 Cấu trúc gói giao thức BACnet/IP
BACnet/IP sử dụng giao thức UDP để truyền dữ liệu, một khung BACnet/IP điển hình có thể được chia thành các phần sau như hình bên dưới:

-
Tiêu đề UDP/IP: Lớp mạng tiêu chuẩn và địa chỉ lớp truyền tải.
-
BACnet Virtual Link Control(BVLC): Xác định các thông báo BACnet/IP và xử lý các chương trình phát sóng và chuyển tiếp.
-
Network Protocol Data Unit(NPDU): Thực hiện định tuyến lớp mạng BACnet chứa
phiên bản,cờ điều khiển,thông tin mạng đích/nguồn,số lượng hopvàloại thông báo mạng. -
Application Protocol Data Unit(APDU): Mã hóa các dịch vụ lớp ứng dụng bao gồm
loại PDU,ID gọi,lựa chọn dịch vụvàtham số dịch vụ.
2.4 Cấu trúc dữ liệu và mô hình đối tượng BACnet
BACnet tổ chức dữ liệu trong các đối tượng được tiêu chuẩn hóa với các thuộc tính. Mỗi đối tượng BACnet đại diện cho một thành phần chức năng bên trong một thiết bị. Các loại đối tượng điển hình được xác định trong ISO 16484-5 bao gồm: Đầu vào tương tự, Đầu ra tương tự, Giá trị tương tự, Đầu vào nhị phân, Đầu ra nhị phân, Giá trị nhị phân, Đầu vào/Đầu ra/Giá trị đa trạng thái, Thiết bị, Lịch biểu, Lịch, Nhật ký xu hướng và Đăng ký sự kiện.
Mỗi đối tượng có một ID đối tượng (Object ID) duy nhất và một Tên đối tượng trong thiết bị. Mọi đối tượng BACnet đều chứa một tập hợp các thuộc tính. Ví dụ bao gồm (một số bắt buộc và một số tùy chọn):
-
Present_Value: Giá trị vật lý hoặc logic hiện tại của đối tượng
-
Description: Văn bản dễ đọc
-
Status_Flags: Đang báo động, lỗi, bị ghi đè, hết dịch vụ
-
Units: Đơn vị kỹ thuật (°C, %, Pa, v.v.)
-
Event_State và Giới hạn báo động: Được sử dụng để xử lý báo động
Một ví dụ về đối tượng BACnet:
{
"objectName": "Temperature",
"objectIdentifier": ("analogValue", 1),
"presentValue": 22.5,
"description": "Room Temperature",
"units": "degreesCelsius"
},
Các thuộc tính được truy cập thông qua các dịch vụ ReadProperty hoặc WriteProperty, yêu cầu ReadProperty và WriteProperty được hiển thị bên dưới:

3. Thiết kế RTU ảo
Phần này mô tả thiết kế của Bộ điều khiển tòa nhà ảo (RTU) dựa trên Python bằng cách sử dụng hệ thống tự động hóa HVAC trung tâm tòa nhà làm ví dụ đại diện. Mục tiêu là chứng minh cách một RTU bộ điều khiển HVAC được xác định bằng phần mềm có thể giám sát các thiết bị vật lý mô phỏng, xử lý tín hiệu I/O, thực thi logic điều khiển và tích hợp liền mạch với cả thiết bị hiện trường Cấp 0 và các ứng dụng SCADA/HMI Cấp 2 thông qua giao thức BACnet ISO 16484-5.
Như được minh họa trong sơ đồ quy trình làm việc của hệ thống bên dưới, kiến trúc RTU ảo được tổ chức thành ba lớp OT chính:

-
Cấp 0 – Thiết bị I/O hiện trường vật lý OT: Các thành phần và cảm biến HVAC mô phỏng, đại diện cho môi trường vật lý.
-
Cấp 1 – Thiết bị bộ điều khiển OT: RTU HVAC ảo, chịu trách nhiệm giao tiếp, xử lý dữ liệu và logic điều khiển.
-
Cấp 2 – Bảng điều khiển / HMI điều khiển OT: Bộ điều nhiệt gắn trên tường dựa trên BACnet, bảng điều khiển quản lý tòa nhà và các ứng dụng giám sát.
Trung tâm của kiến trúc—Thiết bị bộ điều khiển OT Cấp 1—đại diện cho Bộ điều khiển trung tâm HVAC ảo (RTU). Mô phỏng RTU này bao gồm bốn mô-đun chức năng được liên kết chặt chẽ: Mô-đun giao tiếp, Mô-đun cấu trúc dữ liệu BACnet và Mô-đun logic điều khiển tự động RTU.
3.1 Mô-đun giao tiếp
Mô-đun giao tiếp đóng vai trò là giao diện bên ngoài giữa RTU ảo và hệ sinh thái OT xung quanh. Nó cho phép trao đổi dữ liệu hai chiều với cả thiết bị hiện trường Cấp 0 và hệ thống giám sát Cấp 2, như được đánh dấu trong phần màu cam của sơ đồ kiến trúc.
3.2.1 I/O tín hiệu điện mô phỏng dựa trên UDP
Sử dụng trao đổi dữ liệu dựa trên UDP để mô phỏng các kết nối điện và dựa trên fieldbus thường được sử dụng trong hệ thống HVAC (chẳng hạn như RS-232, RS-485, bus CAN hoặc tín hiệu điện rời rạc).
-
Đầu vào RTU (UDP Inbound): Các cảm biến HVAC mô phỏng—bao gồm nhiệt độ phòng, độ ẩm phòng và trạng thái hoạt động của hệ thống—định kỳ tạo dữ liệu đo và truyền nó đến RTU qua các gói UDP.
-
Đầu ra RTU (UDP Outbound): RTU gửi các lệnh điều khiển đến các bộ truyền động mô phỏng như
máy nén,quạt,máy sưởi,bơm làm mátvàbộ nguồn.
3.2.2 Ngăn xếp giao tiếp BACnet (BAC01)
Trên đầu I/O điện mô phỏng, RTU nhúng một ngăn xếp giao tiếp BACnet/IP, được triển khai bằng thư viện BACpypes Python để duyệt các đối tượng BACnet RTU, đọc các giá trị cảm biến và trạng thái, ghi các điểm đặt điều khiển. Các đặc điểm chính bao gồm:
-
Một máy chủ BACnet được nhúng bên trong RTU hiển thị các biến I/O bên trong cho bus BACnet.
-
Các thành phần Cấp 2 như bộ điều khiển nhiệt HVAC gắn trên tường, bảng điều khiển quản lý tòa nhà và trình ghi nhật ký dữ liệu với máy khách BACnet.
-
Các thiết bị tòa nhà bên ngoài (ví dụ: cảm biến radar phát hiện người hoặc chuyển động) cũng có thể xuất bản hoặc trao đổi dữ liệu qua BACnet.
3.2 Mô-đun cấu trúc dữ liệu BACnet
Mô-đun cấu trúc dữ liệu BACnet, được biểu thị bằng phần màu xanh đậm trong sơ đồ, xác định cách các biến bên trong RTU được ánh xạ vào các đối tượng và thuộc tính BACnet được tiêu chuẩn hóa.
3.3.1 Đối tượng BACnet chỉ đọc (Mô hình hóa đầu vào)
Các số đọc cảm biến và trạng thái đầu vào vật lý được hiển thị dưới dạng các đối tượng BACnet chỉ đọc:
-
Đối tượng đầu vào BACnet [R]: Đại diện cho các trạng thái tín hiệu rời rạc hoặc điện (ví dụ: bật/tắt, trạng thái lỗi). -
Đối tượng tương tự BACnet [R]: Đại diện cho các giá trị cảm biến liên tục như nhiệt độ, độ ẩm và điện áp...
HMI hoặc bộ điều khiển nhiệt sẽ gửi yêu cầu ReadProperty BACnet để tìm nạp dữ liệu từ HVAC RTU.
3.3.2 Đối tượng BACnet có thể ghi (Mô hình hóa điều khiển)
Các lệnh điều khiển và trạng thái hoạt động được mô hình hóa bằng các đối tượng BACnet có thể ghi:
-
Đối tượng tương tự BACnet [W]: Được sử dụng cho các điểm đặt điều khiển, ngưỡng và tham số hoạt động. -
Đối tượng đầu ra BACnet [W]: Được sử dụng để đại diện cho trạng thái bộ truyền động và tín hiệu điều khiển được gửi đến các thành phần HVAC.
Thuộc tính Present_Value của đối tượng có thể ghi có thể được thay đổi bởi hàm WriteProperty tập dữ liệu BACnet.
3.3 Mô-đun logic điều khiển tự động RTU
Mô-đun logic điều khiển tự động RTU là một công cụ thực thi dựa trên Python triển khai hành vi điều khiển vòng kín của hệ thống HVAC ảo. Chu kỳ điều khiển hoạt động như sau:
-
Tìm nạp dữ liệu đầu vào từ:
Đối tượng đầu vào BACnet [R],Đối tượng tương tự BACnet [R]vàĐối tượng tương tự BACnet [W]. -
Thực thi các quy tắc logic điều khiển được xác định trước.
-
Cập nhật trạng thái bộ truyền động bằng cách ghi kết quả vào
Đối tượng đầu ra BACnet [W].
Dưới đây là một kịch bản điều khiển ví dụ để làm mát phòng:

Mô-đun HVAC RTU đọc nhiệt độ phòng, chế độ HVAC (làm mát/sưởi ấm) và điểm đặt mục tiêu từ bộ điều nhiệt. Nếu hệ thống ở chế độ làm mát và nhiệt độ phòng vượt quá điểm đặt, máy nén và bơm làm mát sẽ được kích hoạt. Quá trình làm mát tiếp tục cho đến khi đạt được nhiệt độ mục tiêu. Khi nhiệt độ phòng đạt đến mục tiêu Nếu radar phát hiện người báo cáo không có người trong phòng, máy nén sẽ chuyển sang chế độ chờ và bộ nguồn chuyển sang trạng thái tiết kiệm năng lượng.
4. Trường hợp sử dụng và ví dụ sử dụng
Phần này cung cấp hướng dẫn thực tế để xây dựng và chạy một bộ mô phỏng RTU ảo dựa trên BACnet đơn giản bằng cách sử dụng các mô-đun Python có trong dự án. Ví dụ này chứng minh cách các thiết bị BACnet, RTU và bộ điều khiển tương tác trong một môi trường tự động hóa tòa nhà mô phỏng, sử dụng hệ thống HVAC trung tâm làm trường hợp sử dụng đại diện.
4.1 Tổng quan về các mô-đun dự án
Các mô-đun Python sau đây tạo thành việc triển khai cơ bản của bộ mô phỏng RTU BACnet:
| Tệp chương trình | Môi trường thực thi | Mô tả |
|---|---|---|
src/BACnetComm.py |
Python 3.7.8 + | Thư viện cốt lõi triển khai API máy khách và máy chủ BACnet ISO 16484-5. Nó cung cấp quản lý đối tượng BACnet và trao đổi dữ liệu/lệnh giữa RTU và hệ thống SCADA/HMI. |
src/BACnetCommTest.py |
Python 3.7.8 + | Chương trình trường hợp thử nghiệm cho BACnetComm.py. Nó khởi chạy một máy chủ BACnet trong một luồng con và khởi tạo một máy khách để xác thực các hoạt động đọc/ghi dữ liệu và thực thi logic điều khiển tự động. |
testcase /bacnetRtuClientTest.py |
Python 3.7.8 + | Chương trình máy khách BACnet ví dụ mô phỏng một SCADA hoặc bộ điều khiển giám sát kết nối với RTU. |
testcase /bacnetRtuServerTest.py |
Python 3.7.8 + | Chương trình máy chủ BACnet ví dụ mô phỏng một thiết bị RTU BACnet. |
testcase/HvacMachineSimulator.py |
Python 3.7.8 + | Bộ mô phỏng máy HVAC trung tâm đại diện cho một bộ mô phỏng thành phần vật lý kết hợp với RTU hỗ trợ BACnet. |
testcase/HvacControllerSimulator.py |
Python 3.7.8 + | Bộ mô phỏng bộ điều khiển nhiệt HVAC gắn trên tường với giao diện người dùng đồ họa. |
Để xây dựng một hệ thống RTU và bộ điều khiển đơn giản, bạn có thể tham khảo các trường hợp thử nghiệm mẫu có sẵn trong kho lưu trữ: https://github.com/LiuYuancheng/PLC_and_RTU_Simulator/tree/main/BACnet_PLC_Simulator/testCase
4.2 Ví dụ sử dụng: Mô phỏng hệ thống HVAC
Trong ví dụ về trường hợp sử dụng HVAC này, một RTU HVAC trung tâm hoạt động ở chế độ điều khiển tự động trong khi một hoặc nhiều bộ điều khiển từ xa của bộ điều nhiệt kết nối với nó qua BACnet để theo dõi dữ liệu cảm biến và đưa ra các lệnh điều khiển.
4.2.1 Trình mô phỏng máy HVAC (RTU ảo)
Đối với mô-đun trình mô phỏng máy HVAC: https://github.com/LiuYuancheng/PLC_and_RTU_Simulator/blob/main/BACnet_PLC_Simulator/testCase/hvacMachineSimulator.py, đại diện cho bộ điều khiển OT Cấp 1 kết hợp với một phần của các thành phần vật lý cấp 0, hiển thị các đối tượng BACnet và thực thi logic điều khiển HVAC bên trong.
Dữ liệu cảm biến như độ ẩm và nhiệt độ phòng được mô hình hóa dưới dạng các đối tượng BACnet Analog Value chỉ đọc. Các đối tượng này được định nghĩa trong hàm initInternalParams() như trong ví dụ dưới đây:
{
"objectName": "Sensor_Humidity",
"objectIdentifier": ("analogValue", PARM_ID4),
"presentValue": 45.0,
"description": "Room Humidity",
"units": "percent"
}...
Các tham số điều khiển và trạng thái bộ truyền động được mô hình hóa dưới dạng các đối tượng BACnet có thể ghi, được định nghĩa trong hàm initControlParams() như trong ví dụ dưới đây:
{
"objectName": "Control_Fan_Speed",
"objectIdentifier": ("analogValue", PARM_ID12),
"presentValue": 1, # range 0 - 10
"description": "Fan Speed",
"units": "level"
}...
Máy chủ BACnet chạy trong một luồng con, liên tục xử lý các yêu cầu từ nhiều bộ điều khiển bộ điều nhiệt. Song song, luồng điều khiển HVAC chính thực thi một vòng điều khiển định kỳ chịu trách nhiệm quản lý: máy nén, máy sưởi, bơm làm mát và quạt. Dưới đây là một ví dụ đơn giản về logic điều khiển máy nén:
elif power == 1:
print("Start cooling process.")
print("[*] Make sure heater is off")
self.server.setObjValue("Heater_Power", 0)
if sensorTemp > ctrlTemp:
print("[*] Sensor_Temperature > Control_Temperature, set compressor [power on]")
self.server.setObjValue("Compressor_Power", 2)
newSensorTemp = sensorTemp - 0.1 # update the room temp sensor value when cooling pump activated.
self.server.setObjValue("Sensor_Temperature", newSensorTemp)
else:
print("[*] Sensor_Temperature <= Control_Temperature, set compressor [idle]")
self.server.setObjValue("Compressor_Power", 1)
4.2.2 Bộ điều khiển nhiệt HVAC gắn trên tường
Đối với mô-đun trình mô phỏng bộ điều khiển từ xa của bộ điều nhiệt HVAC: https://github.com/LiuYuancheng/PLC_and_RTU_Simulator/blob/main/BACnet_PLC_Simulator/testCase/hvacControllerSimulator.py. Mô-đun này đại diện cho giao diện điều khiển OT Cấp 2, cung cấp giao diện người dùng đồ họa để theo dõi và điều khiển như hình dưới đây:

Mỗi bộ điều khiển bộ điều nhiệt khởi động một luồng con máy khách BACnet kết nối định kỳ với RTU HVAC để tìm nạp dữ liệu cảm biến và đưa ra các lệnh điều khiển. Để kết nối với máy HVAC mô phỏng, hãy đặt địa chỉ IP HVAC và bộ điều khiển từ xa của bộ điều nhiệt đăng ký với HVAC như hình dưới đây:
DEV_ID = 123456
DEV_NAME = "HVAC_Thermostat_Controller_01"
HVAC_IP = '127.0.0.1'
Khi khởi động, bộ điều nhiệt cố gắng đăng ký và giao tiếp với RTU HVAC mục tiêu. Sau khi kết nối được thiết lập:
-
Các giá trị cảm biến được hiển thị trong bảng thông tin bên trái
-
Người dùng có thể điều chỉnh điểm đặt nhiệt độ bằng núm điều khiển xoay
-
Chế độ hoạt động của HVAC và tốc độ quạt có thể được chọn thông qua các nút UI
Khi người dùng xác nhận cài đặt, máy khách BACnet sẽ gửi các yêu cầu WriteProperty tương ứng đến RTU HVAC, kích hoạt thực thi logic điều khiển ngay lập tức.
5. Kết luận và Tham khảo
Tóm lại, dự án này đã mở rộng thành công trình mô phỏng RTU ảo dựa trên Python bằng cách tích hợp giao thức ISO 16484-5 BACnet, tạo ra một nền tảng linh hoạt để mô phỏng các hệ thống tự động hóa HVAC tòa nhà. Bằng cách triển khai một ngăn xếp giao tiếp BACnet, một khung RTU mô-đun và logic điều khiển tự động, trình mô phỏng cung cấp một bản sao ảo chức năng để tạo mẫu, thử nghiệm và mục đích giáo dục. Nó chứng minh cách các bộ điều khiển được xác định bằng phần mềm có thể mô phỏng trao đổi dữ liệu và hành vi điều khiển của môi trường OT thực, cung cấp một công cụ thiết thực để học BACnet, phát triển các chiến lược tự động hóa tòa nhà và tiến hành nghiên cứu an ninh mạng trong một phạm vi mạng ảo hóa an toàn.
5.1 Tham khảo dự án
-
https://www.emqx.com/en/blog/bacnet-protocol-basic-concepts-structure-obejct-model-explained
-
https://www.majestic-ac.com/how-a-residential-hvac-system-works-a-homeowners-guide/
Cảm ơn bạn đã dành thời gian xem chi tiết bài viết, nếu bạn có bất kỳ câu hỏi và đề xuất nào hoặc tìm thấy bất kỳ lỗi chương trình nào, vui lòng nhắn tin cho tôi. Rất cảm ơn nếu bạn có thể đưa ra một số nhận xét và chia sẻ bất kỳ lời khuyên cải tiến nào để chúng tôi có thể làm cho công việc của mình tốt hơn ~
last edit by LiuYuancheng ([email protected]) by 16/01/2026 if you have any problem, please send me a message.
No comment for this article.