AI 驅動文件
您想了解什麼?
環境變數
您可以在 System Settings 中為每個相機定義環境變數。這些變數在 Node-RED 中可用,讓您能夠在一個集中位置設定 PLC IP、產線編號、Modbus IP、時區、FTP 伺服器 等引數。這使得在不同產線之間複用同一個 Node-RED 流變得容易,同時還能針對每個相機定製行為。環境變數集還可以匯出到 .txt 檔案或從 .txt 檔案匯入,簡化部署和備份。
OV80i 內建三個變數 — Line Code、Camera Timezone 和 Date Installed — 您可以根據需要新增任意數量的自定義變數。
何時使用環境變數
在以下情況使用環境變數:
- 同一個值(PLC IP、MES URL、Modbus 主機、許可證金鑰、閾值、產線 ID)被多個 Node-RED 節點引用。
- 不同部署之間值有所不同,您希望一個流到處都能使用 — 在每個相機上設定一次變數,而不是編輯流。
- 您希望在多個相機之間共享流(匯出/匯入),而不會將特定部署的配置洩漏到 JSON 中。
- 您需要 IT 人員或操作員在不開啟 Node-RED 的情況下更改某個值(例如新的 FTP 伺服器)。
在 System Settings 中定義變數
- 在相機 UI 的左側邊欄中,點選 System Settings。
- 開啟 Environment Variables 選項卡(子導航中的第三個選項卡)。
- 填寫任意內建變數:
- Line Code — 生產線識別符號或程式碼(自由文字)。
- Camera Timezone — 從下拉選單中選擇一個時區。
- Date Installed — 日期選擇器。

- 要新增自定義變數,請點選右上角的 + New Variable。會出現一個新的自定義變數行,包含一對鍵/值輸入框。輸入鍵(不含空格 — 僅限字母、數字和下劃線)和值,然後點選 Apply Changes。

鍵是您將在 Node-RED 中讀取該變數時使用的名稱。約定使用大寫下劃線命名法(例如 PLC_IP、MODBUS_IP、FTP_SERVER、LINE_NUMBER、ALERT_THRESHOLD)— UI 不允許使用空格。
- 相機會在儲存前提示您確認。應用時 Node-RED 會重啟,因此新值會立即對流可用。

對環境變數進行的任何更改 — 新增、編輯或刪除自定義變數,或更改任何內建欄位 — 在儲存時都會重啟 Node-RED 執行時,以使值生效。正在進行的檢測會繼續執行,但任何正在執行的流會被中斷。請在計劃停機期間安排更改,而不是在班次中間。
備份和恢復
Export .txt 按鈕將當前變數集下載為純文字檔案(KEY=VALUE 行)。Import .txt 從先前匯出的檔案恢復。使用此功能可以將已知良好的配置克隆到同一產線的多個相機,或在重新刷機前進行備份。
從 Node-RED 中讀取變數
在任何程式上開啟 IO模組,然後點選 Advanced Mode 進入 Node-RED。相機環境變數以三種方式暴露給流 — 選擇最符合您用例的方式。
1. 使用 payload 型別為 env 的 inject 節點(最簡單)
讀取變數最快的方法是使用 inject 節點,配置 payload 型別為 env 和 payload 為 <VAR_NAME>。觸發時,inject 節點會向下遊傳送 msg.payload = <環境變數的值> — 無需程式碼,無需 function 塊。

將其連線到 debug 節點並觸發 inject — debug 側邊欄會顯示解析後的值。

此模式非常適合用於檢查變數是否已定義並被正確讀取。當下遊節點(HTTP request、MQTT publish、FTP)只需要原始值作為 payload 時,這也是推薦的模式。
2. 使用帶 env.get() 的 function 節點(程式設計式)
當您需要組合多個變數、構建結構化訊息或基於某個值進行分支時,使用 function 節點和標準的 Node-RED env.get() API:
// 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;
將其連線到 mqtt out、http request、ftp 或 email 節點,結構化的 payload 就會一起傳遞。
3. 在任何節點的屬性中使用 ${VAR_NAME} 替換
大多數節點配置欄位都支援 ${VAR_NAME} 替換。例如,在 http request 節點中,您可以將 URL 設定為:
${MES_ENDPOINT}/api/v1/inspections
……Node-RED 會在執行時替換為變數的當前值。ftp 伺服器欄位、mqtt 代理 URL、email 收件人列表等都是如此。這讓您可以在一個位置(System Settings)設定部署特定的配置,而無需修改流。
常見模式
| 模式 | 變數名 | 讀取方式 |
|---|---|---|
| PLC 連線 | PLC_IP、PLC_PORT | Inject + env,或在 PLC 配置中使用 ${PLC_IP} |
| FTP 影象匯出 | FTP_SERVER、FTP_USERNAME | FTP 節點的主機/憑據欄位使用 ${...} 替換,或在 Function 節點中使用 env.get() |
| MES / 資料歷史端點 | MES_ENDPOINT | HTTP request 節點 URL:${MES_ENDPOINT}/api/... |
| MQTT 代理 | MQTT_BROKER | MQTT broker 配置:${MQTT_BROKER} |
| Modbus 主機 | MODBUS_IP | Modbus 節點 IP 欄位 |
| 產線識別符號(每個相機) | LINE_NUMBER、LINE_CODE(內建) | 印記到每個釋出的訊息上以便追溯 |
| 告警升級閾值 | ALERT_THRESHOLD | 用於計算近期失敗次數的 Function 節點 |
| 操作員通知列表 | ALERT_EMAILS | Email 節點的 "to" 欄位 |
Environment Variables 頁面是明文的,對任何具有 System Settings 訪問許可權的使用者都可見。對於需要更強保護的機密資訊(PLC 密碼、簽名令牌、證書),請改用 Node-RED 在各個節點上的憑據儲存。
下一步
- Node-RED 基礎 — 如果您是 Node-RED 的新手,可參考此入門指南。
- Overview Node-RED 自定義模組 — 與標準 Node-RED 調色盤一起出現的 OV 特定模組的參考。
- 設定輸出(第 5 步) — Node-RED 在更廣泛的 pass/fail 和整合流程中的位置。