webserver.js

webserver.js ist ein Node.js-basierter Webserver, der ein modernes, erweiterbares Backend für Full-Stack-Webanwendungen in WinCC OA bereitstellt.

webserver.js wird als JavaScript Manager ausgeführt und dient als Backend für WinCC OA Webanwendungen, einschließlich des Dashboard. Bereitgestellt wird ein moderner Node.js-basierter Webserver mit Express-ähnlichem Routing, integrierter HTTPS-Unterstützung mit konfigurierbaren Porteinstellungen sowie HTTP- und WebSocket-Kommunikation über denselben Port.

Das WinCC OA Dashboard und Webclient-Anwendungen werden direkt bereitgestellt. ULC UX-Anfragen werden an webclient_http.ctl weitergeleitet. Die Architektur ist erweiterbar — der Server kann mit TypeScript- oder CTRL-Handlern angepasst werden. Kundenerweiterungspakete stehen über npm (@wincc-oa/backend und @wincc-oa/create-backend) zur Verfügung.

Intern wird webserver.js innerhalb des WinCC OA JavaScript Manager ausgeführt. Zum Einsatz kommt ein Express-kompatibles HTTP-Framework, das eingehende Anfragen verarbeitet, statische Dateien bereitstellt und API-Aufrufe routet. Unterstützt werden sowohl One-Shot-Request/Response-Muster als auch Live-WebSocket-Subscriptions für Echtzeitdaten. Erweiterungspunkte sind auf mehreren Ebenen verfügbar: TypeScript-Handler ermöglichen das Ableiten der Basisklasse oder das Registrieren eigener Request-Handler und Routen. CTRL-Handler ermöglichen die Implementierung von HTTP-Endpunkten in der WinCC OA CTRL-Sprache. Zusätzlich können benutzerdefinierte statische Inhalte zusammen mit den integrierten Dashboard-Dateien bereitgestellt werden.

Beziehung zu älteren Komponenten

Mit webserver.js werden sowohl das Skript dashboard.ctl als auch der HTTP Server als Backend für webbasierte Benutzeroberflächen in WinCC OA abgelöst. dashboard.ctl wurde innerhalb des Control Managers mit CTRL-Skripting ausgeführt. Der HTTP Server wurde als separates Webserver-Add-on bereitgestellt. webserver.js vereint diese Funktionen in einem Node.js-basierten Backend mit TypeScript-Unterstützung und gängigen Web-Frameworks.

Der HTTP Server und dashboard.ctl bleiben für bestehende Installationen verfügbar. Für neue Projekte wird webserver.js als Ersatz für dashboard.ctl als Dashboard-Backend empfohlen. Der CTRL Manager mit webclient_http.ctl wird weiterhin für ULC UX und andere Webclient-Funktionalität benötigt, die nicht von webserver.js abgedeckt wird. Informationen zur Migration sind unter Migration von älteren Komponenten verfügbar.