Zum Hauptinhalt springen

KI-GESTÜTZTE DOKUMENTATION

Was möchten Sie wissen?

Umgebungsvariablen

Sie können Umgebungsvariablen für jede Kamera in den System Settings definieren. Diese Variablen werden in Node-RED bereitgestellt und ermöglichen es Ihnen, Parameter wie PLC IP, Liniennummer, Modbus IP, Zeitzone, FTP-Server und ähnliches an einer zentralen Stelle festzulegen. So lässt sich derselbe Node-RED-Flow einfach auf verschiedenen Linien wiederverwenden und gleichzeitig pro Kamera individuell anpassen. Umgebungsvariablensätze können außerdem in eine .txt-Datei exportiert oder daraus importiert werden, was Deployment und Backup vereinfacht.

Der OV10i wird mit drei integrierten Variablen ausgeliefert — Line Code, Camera Timezone und Date Installed — und Sie können beliebig viele Custom Variables hinzufügen.

Wann Umgebungsvariablen verwenden

Greifen Sie zu Umgebungsvariablen, wenn:

  • Derselbe Wert (PLC IP, MES URL, Modbus-Host, Lizenzschlüssel, Schwellenwert, Linien-ID) von mehr als einem Node-RED-Node referenziert wird.
  • Ein Wert sich zwischen Deployments unterscheidet und Sie einen Flow möchten, der überall funktioniert — setzen Sie die Variable einmal auf jeder Kamera, statt den Flow zu bearbeiten.
  • Sie einen Flow zwischen Kameras teilen möchten (Export/Import), ohne deployment-spezifische Konfiguration in das JSON sickern zu lassen.
  • IT oder Bediener einen Wert (z. B. einen neuen FTP-Server) ändern müssen, ohne Node-RED zu öffnen.

Variablen in System Settings definieren

  1. Klicken Sie in der linken Seitenleiste der Kamera-UI auf System Settings.
  2. Öffnen Sie den Tab Environment Variables (dritter Tab in der Unternavigation).
  3. Füllen Sie eine der integrierten Variablen aus:
    • Line Code — Bezeichnung oder Code der Produktionslinie (Freitext).
    • Camera Timezone — Wählen Sie eine Zeitzone aus dem Dropdown.
    • Date Installed — Datumsauswahl.

Environment Variables-Tab in System Settings — Line Code, Camera Timezone, Date Installed

  1. Um eine benutzerdefinierte Variable hinzuzufügen, klicken Sie oben rechts auf + New Variable. Eine neue Custom Variables-Zeile mit einem Key/Value-Eingabepaar erscheint. Geben Sie einen Schlüssel (keine Leerzeichen — nur Buchstaben, Ziffern und Unterstriche) und einen Wert ein und klicken Sie dann auf Apply Changes.

Custom-Variable-Zeile mit FTP_SERVER = ftp.factory.local ausgefüllt

Schlüssel-Benennung

Der Schlüssel ist der Name, mit dem Sie die Variable aus Node-RED auslesen. Konvention ist UPPER_SNAKE_CASE (z. B. PLC_IP, MODBUS_IP, FTP_SERVER, LINE_NUMBER, ALERT_THRESHOLD) — Leerzeichen sind in der UI nicht erlaubt.

  1. Die Kamera fordert Sie vor dem Speichern zur Bestätigung auf. Node-RED wird beim Anwenden neu gestartet, sodass der neue Wert sofort für Flows verfügbar ist.

Confirm Changes-Modal mit Warnung, dass Node-RED beim Ändern von Umgebungsvariablen neu startet

Apply Changes startet Node-RED neu

Das Speichern jeglicher Änderung an Umgebungsvariablen — Hinzufügen, Bearbeiten oder Löschen einer benutzerdefinierten Variable oder das Ändern eines der integrierten Felder — startet die Node-RED-Laufzeitumgebung neu, damit die Werte wirksam werden. Aktive Inspektionen laufen weiter, aber jede aktuell laufende Flow-Ausführung wird unterbrochen. Planen Sie Änderungen während geplanter Ausfallzeiten ein, nicht mitten in der Schicht.

Backup und Wiederherstellung

Die Schaltfläche Export .txt lädt den aktuellen Variablensatz als Klartextdatei (KEY=VALUE-Zeilen) herunter. Import .txt stellt eine zuvor exportierte Datei wieder her. Verwenden Sie dies, um eine bekanntermaßen funktionierende Konfiguration auf mehrere Kameras derselben Linie zu klonen oder um vor einem Re-Imaging ein Backup zu erstellen.

Variablen aus Node-RED auslesen

Öffnen Sie den IO Block in einem beliebigen Rezept und klicken Sie auf Advanced Mode, um Node-RED zu starten. Umgebungsvariablen der Kamera werden Flows auf drei Arten zur Verfügung gestellt — wählen Sie die für Ihren Anwendungsfall passende.

1. Inject-Node mit Payload-Typ env (am einfachsten)

Der schnellste Weg, eine Variable auszulesen, ist ein Inject-Node konfiguriert mit Payload-Typ env und Payload <VAR_NAME>. Beim Auslösen sendet der Inject-Node msg.payload = <Wert der env-Variable> nachgelagert weiter — kein Code, kein Function-Block.

Inject-Node-Konfiguration: msg.payload = $ FTP_SERVER, Payload-Typ env

Verdrahten Sie diesen mit einem Debug-Node und lösen Sie den Inject aus — die Debug-Seitenleiste zeigt den aufgelösten Wert.

Flow mit inject -&gt; &quot;env variable&quot; -&gt; debug 2; Debug-Seitenleiste zeigt &quot;ftp.factory.local&quot;

Dieses Muster eignet sich ideal zur Plausibilitätsprüfung, ob eine Variable definiert ist und korrekt ausgelesen wird. Es ist auch das Muster, das verwendet wird, wenn ein nachgelagerter Node (HTTP-Request, MQTT-Publish, FTP) lediglich den Rohwert als Payload benötigt.

2. Function-Node mit env.get() (programmatisch)

Wenn Sie mehrere Variablen kombinieren, eine strukturierte Message aufbauen oder auf einen Wert verzweigen müssen, verwenden Sie einen Function-Node und die Standard-Node-RED-API env.get():

// 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;

Verdrahten Sie diesen mit einem mqtt out-, http request-, ftp- oder email-Node, und die strukturierte Payload wird mitgeführt.

3. ${VAR_NAME}-Substitution in jedem Node-Property

Die meisten Konfigurationsfelder von Nodes unterstützen die Substitution ${VAR_NAME}. Beispielsweise können Sie in einem http request-Node die URL setzen auf:

${MES_ENDPOINT}/api/v1/inspections

…und Node-RED ersetzt den aktuellen Wert der Variable zur Laufzeit. Dasselbe gilt für ftp-Server-Felder, mqtt-Broker-URLs, email-Empfängerlisten und so weiter. So lässt sich deployment-spezifische Konfiguration an einer Stelle (System Settings) festlegen, ohne den Flow anfassen zu müssen.

Häufige Muster

MusterVariablennameWie ausgelesen
PLC-VerbindungPLC_IP, PLC_PORTInject + env oder ${PLC_IP} in der PLC-Konfiguration
FTP-BildexportFTP_SERVER, FTP_USERNAMEFTP-Node Host-/Anmeldedaten-Felder mit ${...}-Substitution oder env.get() in einem Function-Node
MES- / Data-Historian-EndpunktMES_ENDPOINTHTTP-Request-Node URL: ${MES_ENDPOINT}/api/...
MQTT-BrokerMQTT_BROKERMQTT-Broker-Konfiguration: ${MQTT_BROKER}
Modbus-HostMODBUS_IPIP-Feld des Modbus-Nodes
Linienkennung (pro Kamera)LINE_NUMBER, LINE_CODE (integriert)Wird zur Rückverfolgbarkeit auf jede gepublishte Message gestempelt
Schwellenwert für Alarm-EskalationALERT_THRESHOLDFunction-Node, der jüngste Ausfälle zählt
Benachrichtigungsliste für BedienerALERT_EMAILS"An"-Feld des E-Mail-Nodes
Hier keine Secrets ablegen

Die Seite Environment Variables ist im Klartext gespeichert und für jeden Benutzer mit Zugriff auf System Settings sichtbar. Für Secrets, die stärkeren Schutz benötigen (PLC-Passwörter, signierte Tokens, Zertifikate), verwenden Sie stattdessen den Credentials-Store von Node-RED auf einzelnen Nodes.

Wie geht es weiter