Struktur der Stoffmodellkomponenten
Jedes Stoffmodell besteht aus einer Komponente, die eine Ebene tiefer eine oder mehrere Elementarkomponenten (Elementarys) enthält (siehe folgende Abbildung).
Die Namen der Elementarkomponenten der Stoffmodelle (TypeID), die in dem Ordner General verzeichnet sind, sind eindeutig und dürfen nicht verändert werden. Sie sind in TOP-Energy intern mit UpgradeIDs in einer nicht einsehbaren Tabelle der Stoffmodelle und ihrer Elementarys verzeichnet. Beim Wechsel der Stoffeigenschaften mithilfe der Buttons im Simulator-Ribbon wird intern auf diese Tabelle zugegriffen.
Stoffmodellwechsel
Ein Stoffmodellwechsel wird in den Konnektoren der energietechnischen Komponenten ausgeführt. Beim Wechsel des Stoffmodells wird jeder an einen Netzabschnitt angeschlossene Pin durch eine JavaScriptfunktion nach weiteren, innerhalb der Elementarkomponenten liegenden Pins abgesucht, bis die innersten Pins auf unterster Ebene gefunden sind. Dort befindet sich das Skript PropertyModelChangeScript, das beim Stoffmodellwechsel aufgerufen wird.
Das Skript wird in den Komponenten u. a. an folgenden Stellen verwendet:
Die folgende Abbildung zeigt die Lage des Skripts am Beispiel des Heißwasserkessels.
Das Skript PropertyModelChangeScript hat zwei Unterfunktionen: onPropertyModelChanging und onPropertyModelChanged (siehe folgende Abbildung).
Diese Skripte zum Wechseln der Stoffmodelleigenschaften befinden sich (bis auf wenige Ausnahmen) ausschließlich in den Konnektorboxen und müssen nicht adaptiert werden, solange eine Konnektorbox und ihre Elementaries nicht verändert werden.
Die Funktion onPropertyModelChanging wird zuerst aufgerufen. Sie enthält z. B. Warnungen. Ein Dialogfenster ermöglicht dem Anwender den Abbruch des Vorgangs.
Die Funktion onPropertyModelChanged führt den Wechsel der Stoffeigenschaft aus. Ein bool blendet ein bestimmtes Elementary ein oder aus.
Pro Stoffmodellwechsel wird mit logMsg eine LOG-Datei üblicherweise unter C:\Benutzer\$Benutzername$\AppData\Roaming\TOP-Energy\EnergyFrames$Version$\efsetmodelelementary.log geschrieben.
Es ist möglich, mit printMsg die Daten zu einem Stoffmodell aus verschiedenen Komponenten zu sammeln, in eine LOG-Datei zu schreiben und in einer Meldung auszugeben.
Die Funktionen werden in JavaScript folgendermaßen formuliert.
onPropertyModelChanged(pN, oldEl, newEl){
}
Die Schreibweise der Variablen in Klammern (pN, oldEl, newEl) muss genauso sein und darf nicht verändert werden.
Zur Fehlerbehebung dient der folgende auskommentierte Teil.
var meldung = „onPropertyModelChanged:“+“ pin ‚“+pN+“‚ oldEl ‚“+oldEl+“‚ newEl ‚“+newEl+“‚“;
alert(meldung);
Wenn man die Kommentierung wieder aufhebt, wird beim Wechsel der Stoffeigenschaften angezeigt, wie die Pins benannt sind.



