ℹ️ Verfügbar ab QuickHMI 15 (Ultimate-Lizenz). Diese Version ist noch nicht veröffentlicht.
Ein serverseitiges Skript ist gewöhnliches JavaScript, das nicht im Browser, sondern im QuickHMI-Server ausgeführt wird. Es läuft genau einmal, unabhängig davon, ob gerade jemand eine Visualisierung geöffnet hat, und arbeitet direkt auf den Daten des Servers.
Wofür Sie serverseitige Skripte einsetzen
- Berechnungen, deren Ergebnis unabhängig von geöffneten Visualisierungen vorliegen soll, etwa Schichtsummen oder abgeleitete Kennwerte.
- Überwachung von Grenzwerten und Zuständen, auch nachts und am Wochenende.
- Wiederkehrende Abläufe zu festen Uhrzeiten, zum Beispiel ein täglicher Bericht per E-Mail.
- Abläufe, die keine Bedienung voraussetzen, etwa ein Rezeptwechsel bei einem Auftragswechsel.
Unterschied zum clientseitigen Skript
| Clientseitig | Serverseitig | |
|---|---|---|
| Ausführungsort | Browser des Bedieners | QuickHMI-Server |
| Anzahl der Abläufe | einmal je geöffneter Visualisierung | genau einmal |
| Ohne geöffnete Visualisierung | läuft nicht | läuft |
| Zugriff auf die Oberfläche | ja, über mainInterface |
nein |
| Objekt der API | mainInterface, Events |
qhmi |
| Im Browser lesbar | ja | nein, wird nicht ausgeliefert |
Beide Arten schließen einander nicht aus. Ein Projekt kann clientseitige und serverseitige Skripte enthalten; jedes Skript wird einzeln festgelegt.
Ein vollständiges Beispiel
Das folgende Skript überwacht eine Temperatur und verschickt eine E-Mail, sobald ein Grenzwert überschritten wird. Es meldet dabei nur den Übergang, nicht jeden Messwert oberhalb der Grenze.
let gemeldet = false;
qhmi.onVarChanged("SPS.Kessel_Temp", function (args) {
const wert = args.variable.value;
if (args.variable.quality !== "GOOD") {
return;
}
if (wert > 95 && !gemeldet) {
gemeldet = true;
qhmi.logWarning("Kesseltemperatur zu hoch: " + wert);
qhmi.sendMail("Stoerung", "", "Kesseltemperatur", "Aktueller Wert: " + wert);
} else if (wert < 90) {
gemeldet = false;
}
});
Wie Sie ein Skript als serverseitig kennzeichnen, steht auf der Seite Skript serverseitig ausführen. Die verfügbaren Funktionen und Ereignisse finden Sie unter API-Funktionen und Ereignisse und Zeitpläne. Was serverseitige Skripte bewusst nicht können, steht unter Grenzen und Fallstricke.
