node-red-contrib-me-vplc-runtime 0.0.12
Node-RED Runtime-Controller fuer ME vPLC mit Reverse Proxy /vplc, Node.js-ST-Engine und Web-Frontend
node-red-contrib-me-vplc-runtime
Version: 0.0.12
ME vPLC Runtime-Node für Node-RED mit integriertem Web-Frontend, bidirektionaler Steuerung und paralleler Runtime-Strategie.
Anpassungen 0.0.12
- Node.js-Fallback akzeptiert jetzt ZIP-Importe im ST-Editor und Connector-Editor.
- ZIP-Dateien werden direkt in der Node.js-Umgebung entpackt; Python ist dafür nicht mehr erforderlich.
- Unterstützt werden
.zipmit.st/.txtfür ST-Projekte und.json/.txtfür Connectoren.
Anpassungen 0.0.11
- Standalone-Projekt und Node-RED-Projekt verwenden denselben
frontend_static/index.htmlStand. - Das Frontend erkennt automatisch, ob es direkt über Flask
/oder über den Node-RED Reverse Proxy/vplc/geöffnet wurde. - Das Standalone-Startskript öffnet nun das integrierte Flask-Frontend auf
http://127.0.0.1:5000/; dadurch ist kein separater Vite/NPM-Dev-Server mehr erforderlich. - Backend-Startparameter
ME_VPLC_HOSTundME_VPLC_PORTsind in beiden Projektvarianten identisch nutzbar.
Zugriff über Node-RED Reverse Proxy
Das Web-Frontend wird ab Version 0.0.10 über den Node-RED Reverse Proxy bereitgestellt:
/vplc/
Der interne Backend-Port 5000 bleibt nur lokal für die Runtime-Kommunikation aktiv. Für den Anwender ist kein direkter Zugriff über :5000 notwendig.
Runtime-Strategie
- Wenn Python verfügbar ist, wird weiterhin das bestehende Python-Backend mit
st_compiler.pyverwendet. - Wenn Python nicht verfügbar ist, startet automatisch die integrierte Node.js-ST-Engine.
- Die Node.js-ST-Engine wurde in dieser Variante funktional an den bestehenden Python-ST-Compiler angeglichen.
Node.js-ST-Engine 0.0.10
Die Node.js-ST-Engine deckt jetzt zusätzlich ab:
- PROGRAM / FUNCTION / FUNCTION_BLOCK
- VAR, VAR_INPUT, VAR_OUTPUT, VAR_IN_OUT, VAR_GLOBAL, VAR_TEMP, VAR_EXTERNAL
- TYPE / STRUCT / ENUM / Aliase
- BOOL, INT, DINT, REAL, LREAL, BYTE, WORD, DWORD, TIME, STRING
- ARRAY-Grundlogik
- globale Variablen
- IF / ELSIF / ELSE / END_IF
- FOR / END_FOR
- WHILE / END_WHILE mit Schutzlimit
- CASE / ELSE / END_CASE
- Zuweisungen mit
:= - einfache Funktionsaufrufe
- Funktionsbaustein-Instanzen
- FB-Aufruf mit
IN := ...undOUT => ... - Builtin-FBs: TON, TOF, TP, R_TRIG, F_TRIG, RS, SR, CTU
- Builtin-Funktionen: ABS, MIN, MAX, LIMIT, SEL, MUX, INT, REAL, BOOL, INT_TO_REAL, REAL_TO_INT, BIT, SIN, COS, TAN, SQRT
- zyklische Runtime mit READ, EXECUTE, WRITE und SYNC-Phasen
Node.js-Runtime-Ausführung 0.0.10
Die Node.js-Runtime wurde zusätzlich zum Node.js-ST-Compiler erweitert und bildet die Python-Runtime-Schleife funktional nach:
- READ → EXECUTE → WRITE → SYNC
- Prozessabbild mit
inputs,outputs,globals,variables - zyklische Ausführung mit Cycle-Sync und Slack-Zeit
- Auto-Cycle-Time Berechnung anhand READ/EXECUTE/WRITE
- Phase-Statistiken wie im Python-Backend
- Connector-Cache für READ/WRITE-Variablen
- Write-on-change und Resync-Logik für Connector-Outputs
- Runtime-Fehler stoppen den Lauf und werden im Compiler-/Runtime-Log abgelegt
- neue Diagnose-API:
/api/nodejs/runtime-parity
Hinweis: Die Node.js-Runtime ist funktional an die Python-Runtime angeglichen. Eine bitgenaue 100%-Gleichheit hängt vom konkreten ST-Projekt und von echten externen Connector-Treibern ab.
Webserver
Nach Backend-Start ist das Frontend erreichbar unter:
/vplc/
Beispiele
Beispiel-Flows liegen im Ordner examples/.