<html>
<table width="300">
<tr><td valign="center">Anzahl aktive Zugfahrten</td><td align="center" bgcolor="%V[sZF_BackgroundColor]"><font color="%V[sZF_TextColor]"><font size="+1"><b>%V[iZF_Counter]</b></font></td></tr>
</table>
</html>
Variablen können verwendet werden, um Operationen, Bedingungen, Auslöser und viele andere Optionen flexibler einsetzbar zu machen. Durch die Verwendung einer Variablen anstelle eines festen Wertes für eine bestimmte Option ist es möglich, den Wert dieser Option zur Laufzeit und abhängig von der aktuellen betrieblichen Situation zu ändern.
Variablen können verwendet werden, um
Variablen werden üblicherweise durch Bearbeiten der Operationen erstellt, die auf die Variablen zugreifen. Mit Ausnahme von lokalen Variablen können alle anderen Variablen über das Explorer-Fenster angelegt, bearbeitet und gelöscht werden.
Bei privaten Variablen wird immer das Objekt verwendet, das im engsten Kontext des Zugriffs steht.
Wenn Sie also auf eine private Variable innerhalb der Ausführung einer Lokfunktion zugreifen, so wird auf den bei der Lok gespeicherten Wert zugegriffen. Auch wenn diese Lok gerade eine Zugfahrt ausführt, so ist die Zugfahrt im Kontext dieses speziellen Zugriffes "weiter entfernt" als die Lok.
Wenn Sie aber direkt in den Startoperationen einer Zugfahrt auf eine private Variable zugreifen, so ist die Zugfahrt im Kontext dieses Zugriffes näher dran als die Lok. Hier wird auf den bei der Zugfahrt gespeicherten Wert zugeriffen. Und zwar greifen hier alle Züge, weklche diese Zugfahrt ausführen, auf denselben Wert zu.
Bei privaten Variablen ist in der Regel das Objekt, welches die Operationen gerade ausführt, dasjenige, auf dessen Wert zugegriffen wird (eine Ausnahme bilden Makros. Makros haben keine eigenen privaten Werte, es wird immer auf den Wert des Aufrufers des Makros zugegriffen).
Vorsicht also !
Eindeutiger wird es, wenn Sie Zugfahrt als Gültigkeitsbereich der Variablen festlegen. Dann wird in beiden oben beschriebenen Fällen auf den bei der Zugfahrt gespeicherten Wert zugegriffen.
Aber auch hier wieder Vorsicht!
Wird diese Zugfahrt von mehreren Zügen gleichzeitig ausgeführt, so wird immer auf denselben Wert zugegriffen. Alle aktiven Instanzen derselben Zugfahrt greifen auf denselben Wert einer Variablen mit Zugfahrt als Gültigkeitsbereich zu.
Möchte man für jeden Zug einen eigenen Wert pflegen, so wählt man also besser Zug als Gültigkeitsbereich.
Siehe hier
Mit Hilfe von HTML-Code in Textelementen, zusammen mit Variablen, können vielfältige Anwendungsgebiete erschlossen werden - ich habe hier einen Zähler für die Anzahl der gerade aktiven Zugfahrten realisiert.
Es werden fünf Variablen verwendet:
Zusätzlich werden in meinem Anwendungsfall 3 Bahnwärter benötigt, welche die folgenden Zustände abfragen:
Mit dem Bahnwärter wird die Variable iZF_Counter abgefragt und je nach Wert der Inhalt der Variablen sZF_TextColor und sZF_BackgroundColor verändert.
Die Variable iZF_Counter wird durch die Operationen «Start» und «Ziel» der Zugfahrten mittels der Operation «Ablaufsteuerung» jeweils um den Wert 1 erhöht oder vermindert. Damit das Vermindern auch klappt, muss die Zugfahrt «regulär» beendet werden (also nicht durch «Zugfahrt beenden» oder «alle Zugfahrten beenden»).
Das Textfeld enthält folgenden Code:
<html>
<table width="300">
<tr><td valign="center">Anzahl aktive Zugfahrten</td><td align="center" bgcolor="%V[sZF_BackgroundColor]"><font color="%V[sZF_TextColor]"><font size="+1"><b>%V[iZF_Counter]</b></font></td></tr>
</table>
</html>
Und aussehen tut es dann so:
Die Einstellungen des Bahnwärters für den «grünen» Bereich: