Das Variablenlimit von Lizenzen
- Last UpdatedSep 24, 2024
- 2 minute read
Zur Laufzeit werden Variablen-Handles in InTouch-Projekten in einer Datenbank im Arbeitsspeicher gespeichert. Jeder Variable muss ein solches Handle zugewiesen werden. Die Variablen-Handles werden von WindowViewer initialisiert und zur Laufzeit verwendet, jedoch nicht permanent gespeichert.
InTouch HMI unterstützt nun eine unbegrenzte Anzahl von Variablen. Somit kann die Laufzeitdatenbank theoretisch eine unbegrenzte Anzahl von Variablen speichern. Dies gilt sowohl für lokale Variablen als auch für Variablen, die auf eine Fernvariablenquelle verweisen. Wir haben jedoch nur bis zu 300.000 Variablen-Handles (300K) getestet.
In einem InTouch-Projekt können maximal so viele Variablen gleichzeitig aktiv sein, wie Handles in der Laufzeitdatenbank verfügbar sind. Wie viele lokale Variablen und Fernverweise in einem InTouch-Projekt verwendet werden können, wird einerseits durch diese technische Obergrenze, andererseits durch die Lizenz bestimmt.
Außerdem ist die maximale Anzahl aktiver Variablen in einer Anwendung durch die funktionalen Grenzen der Laufzeitdatenbank eingeschränkt. Die tatsächliche maximale Anzahl von Variablen ist geringer als die theoretische maximale Anzahl der Variablen-Handles. Von der theoretischen Obergrenze müssen hierzu verschiedene Konstanten abgezogen werden.
-
Das Bit für ungültige Variablen-Handles ist für den Fall reserviert, dass ein ungültiges Variablen-Handle in der WindowViewer-Laufzeitdatenbank auftritt.
-
InTouch-Version 10 enthält 34 Systemvariablen, die nicht durch benutzerdefinierte Variablen ersetzt werden können. Wenn Sie ein Projekt aus Version 7.11 oder einer früheren Version konvertieren, enthält das Projekt 37 Systemvariablen.
-
Während der Entwicklung werden 4096 Datenbank-Handles für Platzhalter-Variablen reserviert. Diese werden für Platzhalter verwendet, die beim Import von Fenstern, Skripten oder Symbolen erzeugt werden. Zur Laufzeit können diese 4096 Platzhalter-Handles jedoch für Fernverweise verwendet werden.
InTouch-Lizenz-Optionen basieren auf der maximalen Anzahl von lokalen Variablen und Fernverweisen, die Sie in einem Projekt verwenden können.
Wenn eine InTouch-Variablenlizenz für weniger als 60.000 Variablen gültig ist, wird das Permanentvariablen-Lizenzschema angewendet. Ein permanenter Fernverweis wird zur Laufzeit erstellt, wenn WindowViewer eine Datenänderung für den betreffenden Fernverweis feststellt. Dies geschieht so lange, bis die maximale Anzahl von Fernverweisen aufgebraucht ist. Danach werden von WindowViewer keine weiteren Fernverweise mehr aktiviert. Ein solcher Fernverweis wird auch dann noch von WindowViewer gezählt, wenn das betreffende Fenster zur Laufzeit geschlossen wird. Ein permanenter Fernverweis geht also bis zum Ende der Laufzeitsitzung in die Variablenzählung ein.
Wenn die von der InTouch-Lizenz zugelassene Maximalzahl von Fernverweisen erreicht ist, wird einmalig eine entsprechende Meldung angezeigt. Die Werte der „überschüssigen“, nicht mehr zugelassenen Fernverweise werden nicht aktualisiert. Um Werte für andere, noch nicht aktivierte Fernverweise zu erhalten, müssen Sie in diesem Fall das Projekt beenden und neu starten.
Eine Lizenz, die 60.000 oder mehr Variablen erlaubt, impliziert, dass Permanentverweise nicht durchgesetzt werden und auch keine Beschränkung in der Anzahl der Variablen oder der Kombination aus lokalen Variablen und Fernvariablen durchgesetzt wird, die in einem InTouch-Projekt verwendet werden.
Daraus ergeben sich bei einer 60K-Lizenz beispielsweise die folgenden Maximalwerte:
-
Maximale Anzahl lokaler Variablen
61404 = 65535 – (4096 + 37 + 1)
-
Maximale Anzahl von Fernverweisen
Maximum = 65535 – (37 + 1 + Anzahl der lokalen Variablen)
Bei einer 60K-Lizenz sinkt also die Anzahl der verfügbaren Fernverweise mit jeder lokalen Variablen, die Sie in der Variablenliste definieren. Aufgrund der reservierten Platzhalter-Handles stehen zur Laufzeit allerdings immer mindestens 4096 Fernverweise zur Verfügung. Im Falle einer Lizenz, die 100000 Variablen erlaubt, beträgt das Maximum = 100000 – (37 + 1 + Anzahl der lokalen Variablen)