AI-POWERED DOCS
What do you want to know?
Biến Môi Trường
Bạn có thể định nghĩa các biến môi trường cho mỗi camera trong System Settings. Các biến này được cung cấp trong Node-RED, cho phép bạn thiết lập các tham số như PLC IP, line number, Modbus IP, timezone, FTP server, v.v. tại một nơi tập trung. Điều này giúp dễ dàng tái sử dụng cùng một flow Node-RED trên các dây chuyền khác nhau trong khi tùy chỉnh hành vi cho từng camera. Các bộ biến môi trường cũng có thể được export sang hoặc import từ một tệp .txt, đơn giản hóa việc triển khai và sao lưu.
OV20i đi kèm với ba biến tích hợp sẵn — Line Code, Camera Timezone, và Date Installed — và bạn có thể thêm bao nhiêu Custom Variables tùy ý.
Khi nào nên sử dụng biến môi trường
Hãy sử dụng biến môi trường khi:
- Cùng một giá trị (PLC IP, MES URL, Modbus host, license key, ngưỡng, line ID) được tham chiếu từ nhiều hơn một node Node-RED.
- Một giá trị khác nhau giữa các lần triển khai và bạn muốn một flow hoạt động ở mọi nơi — đặt biến một lần trên mỗi camera thay vì chỉnh sửa flow.
- Bạn muốn chia sẻ một flow giữa các camera (export/import) mà không làm rò rỉ cấu hình đặc thù triển khai vào JSON.
- Bạn cần IT hoặc người vận hành thay đổi giá trị (ví dụ: một FTP server mới) mà không cần mở Node-RED.
Định nghĩa biến trong System Settings
- Từ thanh sidebar bên trái của giao diện camera, nhấp vào System Settings.
- Mở tab Environment Variables (tab thứ ba trong điều hướng phụ).
- Điền vào bất kỳ biến tích hợp sẵn nào:
- Line Code — định danh hoặc mã dây chuyền sản xuất (văn bản tự do).
- Camera Timezone — chọn một timezone từ menu thả xuống.
- Date Installed — bộ chọn ngày.

- Để thêm một biến tùy chỉnh, nhấp vào + New Variable ở góc trên bên phải. Một hàng Custom Variables mới xuất hiện với một cặp đầu vào key/value. Nhập một key (không có dấu cách — chỉ cho phép chữ cái, chữ số và dấu gạch dưới) và một giá trị, sau đó nhấp Apply Changes.

Key là tên bạn sẽ dùng để đọc biến từ Node-RED. Quy ước là upper-snake-case (ví dụ: PLC_IP, MODBUS_IP, FTP_SERVER, LINE_NUMBER, ALERT_THRESHOLD) — giao diện không cho phép dấu cách.
- Camera nhắc bạn xác nhận trước khi lưu. Node-RED được khởi động lại khi áp dụng để giá trị mới có sẵn cho các flow ngay lập tức.

Việc lưu bất kỳ thay đổi nào đối với biến môi trường — thêm, chỉnh sửa hoặc xóa một biến tùy chỉnh, hoặc thay đổi một trong các trường tích hợp sẵn — sẽ khởi động lại runtime Node-RED để các giá trị có hiệu lực. Các quá trình kiểm tra đang hoạt động vẫn tiếp tục chạy, nhưng bất kỳ flow execution nào đang trong quá trình đều sẽ bị gián đoạn. Hãy lên lịch thay đổi trong thời gian ngừng hoạt động đã được lên kế hoạch, không phải giữa ca làm việc.
Sao lưu và khôi phục
Nút Export .txt tải xuống bộ biến hiện tại dưới dạng tệp văn bản thuần (các dòng KEY=VALUE). Import .txt khôi phục từ một tệp đã được export trước đó. Sử dụng tính năng này để sao chép cấu hình đã được kiểm chứng trên nhiều camera của cùng một dây chuyền, hoặc để sao lưu trước khi cài đặt lại hệ thống.
Đọc biến từ Node-RED
Mở IO Block trên bất kỳ recipe nào và nhấp vào Advanced Mode để vào Node-RED. Các biến môi trường camera được hiển thị cho các flow theo ba cách — chọn cách nào phù hợp với trường hợp sử dụng của bạn.
1. Node Inject với loại payload env (đơn giản nhất)
Cách nhanh nhất để đọc một biến là một node inject được cấu hình với payload type env và payload <VAR_NAME>. Khi được kích hoạt, node inject gửi msg.payload = <giá trị của env var> xuống dòng — không cần code, không cần function block.

Kết nối nó với một node debug và kích hoạt inject — sidebar debug hiển thị giá trị đã được giải quyết.

Mẫu này lý tưởng để kiểm tra rằng một biến đã được định nghĩa và đang được đọc chính xác. Đó cũng là mẫu để sử dụng khi một node downstream (HTTP request, MQTT publish, FTP) chỉ cần giá trị thô làm payload.
2. Node Function với env.get() (theo lập trình)
Khi bạn cần kết hợp nhiều biến, xây dựng một message có cấu trúc, hoặc rẽ nhánh dựa trên một giá trị, hãy sử dụng một node function và API env.get() chuẩn của Node-RED:
// Read a built-in variable
const lineCode = env.get("LINE_CODE");
// Read custom variables
const plcIp = env.get("PLC_IP");
const ftpServer = env.get("FTP_SERVER");
// Build a structured message for downstream nodes
msg.payload = {
line: lineCode,
plc: plcIp,
ftp: ftpServer,
capturedAt: new Date().toISOString(),
};
return msg;
Kết nối nó với một node mqtt out, http request, ftp, hoặc email và payload có cấu trúc sẽ được truyền đi.
3. Thay thế ${VAR_NAME} trong thuộc tính của bất kỳ node nào
Hầu hết các trường cấu hình node đều hỗ trợ thay thế ${VAR_NAME}. Ví dụ: trong một node http request, bạn có thể đặt URL thành:
${MES_ENDPOINT}/api/v1/inspections
…và Node-RED thay thế giá trị hiện tại của biến tại runtime. Tương tự cho các trường server ftp, URL broker mqtt, danh sách người nhận email, v.v. Điều này cho phép bạn đặt cấu hình đặc thù triển khai ở một nơi (System Settings) mà không cần chạm vào flow.
Các mẫu phổ biến
| Mẫu | Tên biến | Cách đọc |
|---|---|---|
| Kết nối PLC | PLC_IP, PLC_PORT | Inject + env, hoặc ${PLC_IP} trong cấu hình PLC |
| Export hình ảnh FTP | FTP_SERVER, FTP_USERNAME | Trường host/credential của node FTP với thay thế ${...}, hoặc env.get() trong node Function |
| Endpoint MES / data-historian | MES_ENDPOINT | URL của node HTTP request: ${MES_ENDPOINT}/api/... |
| MQTT broker | MQTT_BROKER | Cấu hình MQTT broker: ${MQTT_BROKER} |
| Modbus host | MODBUS_IP | Trường IP của node Modbus |
| Định danh dây chuyền (cho mỗi camera) | LINE_NUMBER, LINE_CODE (tích hợp sẵn) | Đóng dấu lên mỗi message được publish để truy xuất nguồn gốc |
| Ngưỡng leo thang cảnh báo | ALERT_THRESHOLD | Node Function đếm các lần lỗi gần đây |
| Danh sách thông báo người vận hành | ALERT_EMAILS | Trường "to" của node Email |
Trang Environment Variables là văn bản thuần và hiển thị cho mọi người dùng có quyền truy cập System Settings. Đối với các secrets cần được bảo vệ mạnh hơn (mật khẩu PLC, signed tokens, certs), hãy sử dụng credentials store của Node-RED trên các node riêng lẻ.
Tiếp theo là gì
- Node-RED Basics — định hướng nếu bạn mới làm quen với Node-RED trên camera.
- Overview Node-RED Custom Blocks — tham khảo cho các block đặc thù của OV xuất hiện cùng với palette Node-RED chuẩn.
- Setting Up Outputs (Step 5) — nơi Node-RED phù hợp trong flow pass/fail và tích hợp rộng hơn.