Solvis SC2 Viewer

Installation

Voraussetzung für die Installation des Programms auf einem Windows-System ist das .NET Framework 4.0. Falls es noch nicht auf dem Rechner installiert ist, kann das .NET Framework 4.0 von der Microsoft-Seite kostenfrei heruntergeladen werden.
http://www.microsoft.com/netframework/
Das .NET Framework ist zuerst zu installieren. Danach erfolgt die Installation des Programms mit der Datei SolvisSC2.msi (Doppelklick im Explorer). Das Programm ist jetzt im Programmverzeichnis %ProgramFiles%\Solvis\SolvisSC2 installiert. Über das Startmenu Programme\SolvisSC2 kann das Programm aufgerufen werden.

Konfiguration

Über den Menupunkt „Extras->Konfiguration“ kann das Programm für den Benutzer eingestellt werden. Für die Logdaten-Anzeige können die Texte, Tooltip, Farbe und Sichtbarkeit der Sensoren, Aktoren und Optionen angepasst werden. Hierzu wählt man zuerst den passenden Tabulator an (Sensoren, Aktoren, Optionen). Auf der linken Seite muss dann der zu ändernde Sensor, Aktor oder Option angewählt werden. Dann können für dieses angewählte Element die Werte verändert werden. Allerdings ist es bei den Optionen nicht empfehlenswert die Texte zu verändern, da bei den Optionen eine im Programm festgelegte Funktion dahintersteht (Ausnahme: Freie Formeln). Bei einigen Optionen können die relevanten Parameter eingestellt werden. Diese Parameter werden in dem zusätzlichen Dialogfenster nach dem Betätigen von „OK“ direkt übernommen

Beispiel für Sensor S04:






















Beispiel für Option P04:



























Unter dem Tabulator „Heizkurve“ können die Grundwerte für das Fenster eingestellt werden, welches über Extras->Heizkurve aufgerufen wird.


























Unter dem Tabulator „SD-Card“ können die Grundwerte für das Zeitplan Fenster eingestellt werden, welches über Extras->SD-Card Infos->Zeitplan aufgerufen wird. Das Dateiverzeichnis muss auf ein Verzeichnis gesetzt werden, in dem sich die Dateien zeitplan.txt, zaehlst.txt und paramact.txt befinden.






















Unter dem Tabulator „Sonstiges“ kann die SolvisControl Version der Regler-Baugruppe eingestellt werden (erster Zahlenwert in der Versionsbezeichnung). Bei Werten kleiner als 132 ist der Dateityp für Logdateien „so*.txt“ vorausgewählt. Bei Werten ab 132 ist der Dateityp für Logdateien „mi*.txt“ vorausgewählt. Unabhängig von der eingestellten Version können sowohl „so*.txt“ als auch „mi*.txt“ ausgewählt werden.























Mit dem „Defaults“-Schalter werden die im Programm festgelegten Grundwerte aktiviert.

Die meisten Änderungen der Konfiguration sind sofort wirksam nach Betätigen des OK-Schalter.

Nach dem Beenden des Programms wird eine Konfigurationsdatei (User.config) angelegt. Der Pfad für die User.config ist unterschiedlich bei verschiedenen Betriebssystemen.
Unter Windows XP lautet der Pfad „Dokumente und Einstellungen\<UserName>\Anwendungsdaten\Solvis\SolvisViewer“.
Unter Windows Vista, Windows 7, ... lautet der Pfad „User\<UserName>\AppData\Roaming\Solvis\SolvisViewer“.

Die User.config ist eine Xml-Datei. Alternativ kann auch diese Datei mit einem Xml-Editor oder einem normalen (UTF8 fähigen) Texteditor bearbeitet werden.Über die Xml-Datei können Text, ToolTip, Aktivierzustand (Checked), Sichtbarkeit (Visible), Farbe (ColorRGB) der Sensoren S01 bis S30, der Aktoren A01 bis A20 und den Optionen P01 bis P10 angepasst werden.
Checked und Visible können auf die Werte „true“ oder „false“ gesetzt werden. Bei ColorRGB wird ein RGB-Wert (Rot, Grün, Blau-Anteil) eingestellt. Jeder der drei durch Komma getrennten Werte kann im Bereich 0 bis 255 liegen. Der Wert 0,0,0 entspricht Schwarz, 255,255,255 entspricht Weiß.

Im Xml-Tag „OpenDir“ ist der Pfad für das Öffnen der Solvis-Logdatei hinterlegt.
Im Xml-Tag „Version“ ist die aktuelle Programmversion hinterlegt.
In BurnerMinPower (Brenner minimale Leistung) und BurnerMaxPower (Brenner maximale Leistung) können die Werte für den Brenner eingestellt werden.

In Latitude und Longitude können die eigenen geografischen Koordinaten eingestellt werden für die Darstellung des Sonnenstands.

In Temperature, Niveau und Gradient werden die Startwerte für die Heizkurve eingestellt.
Temperature darf nur ganzzahlig im Bereich 12 bis 28,
Niveau darf nur ganzzahlig im Bereich -5 bis +5,
Gradient darf nur in 0.05 Schritten im Bereich 0.50 bis 2.00
vorgegeben werden.

In TemperatureVL, NiveauVL und GradientVL werden die Werte der Heizungs-Anlage eingestellt. Diese Werte dienen der Bestimmung der Abweichung von der Vorlauftemperatur des ersten Heizkreises.

Achtung: Die Werte mit Nachkommastellen müssen in der User.config Datei mit einem Punkt eingegeben werden (z.B. 7.5).
Bei Falscheingabe wird eine Datei StackTrace.txt im oben genannten Verzeichnis erzeugt.

Beim jedem neuen Programmstart werden die aktuellen Werte aus der User.config Datei verwendet.

Xml-Editor: z.B. Xml Notepad 2007 von Microsoft

http://www.microsoft.com/download/en/details.aspx?id=7973



Heizkurve

Durch Anwählen des Menupunkts Extras/Heizkurve wird ein neues Fenster geöffnet für die Darstellung von drei parametrierbaren Heizkurven. Hierbei zeigen die ersten beiden Kurven (Curve1 und Curve2) den echten von Solvis realisierten Verlauf der Heizkurve. Der Verlauf ist geprägt durch eine Rundung auf ganze Grad für die Vorlauf-Temperatur. Man sieht aber auch deutlich den Versatz bei negativen Außentemperaturen. Die dritte Kurve zeigt einen idealisierten Verlauf der Kurve (Ideal), wie sie in der Solvis Beschreibung L30 dargestellt ist. Für alle Kurven kann die Raum-Solltemperatur (Temperature) (Display Heizkreis-Menu, Seite 3), Steilheit (Gradient) (Heizkreis-Menu, Seite 2) und Niveau (Thermometersymbol im Heizungs-Menu) vorgegeben werden.

Anmerkung des Verfassers: <Den Parameter „Niveau“ hätte ich auch im Heizkreis-Menu erwartet. Das Thermometer Symbol wäre nur zur (additiven) Feinregulierung des „Niveaus“ notwendig.
Aber es gibt zumindest eine getrennte Einstellung des „Niveaus“ für jeden Heizkreis über das Thermometer Symbol im Heizungs-Menu.>

Durch Variation der im unteren Teil des Fensters verfügbaren Parameter wird der Einfluss in der Heizkurve grafisch sichtbar gemacht. Somit kann man relativ leicht beurteilen, wie sich die Änderungen von Parametern auswirken. Über den Menupunkt „Drucken“ kann eine Druckvorschau (PrintPreview) oder ein Druck (Print) ausgelöst werden.

Mit dem Menupunkt „Konfiguration“ können die Berechnungsverfahren der Kurven verändert werden. Der obere Teil in dem aufgeklappten Menu ist für die Kurve1 (Curve1), während der untere Teil für die Kurve2 zuständig ist. Ohne Anwahl einer der Menupunkte wird der Originalverlauf der SolvisControl 2 dargestellt.
Mit dem Aktivieren von „floor“, „round“ oder „nicht gerundet“ für Curve1 bzw. Curve2 wird die bei Solvis verwendete Formel mit unterschiedlichen Rundungsverfahren dargestellt. Der Verfasser ist der Meinung, dass die alternativen Berechnungs-Modelle besser geeignet wären für die Bestimmung der Heizkurve und der Idealkurve am nächsten kämen, wenn man die Mischer-Steuerung mit ganzen Grad-Zahlen durchführen muss. Nach eigenen Beobachtungen kämen die „round“ oder „nicht gerundet“ Formel der Realität am nächsten. Zusätzlich müsste nach Ansicht des Verfassers aber auch eine Betrachtung über VL Ist und VL Soll über einen angemessenen Zeitraum in der „SolvisControl 2“ stattfinden. Die aufgetretenen Abweichungen in dem zugrunde liegenden Zeitraum könnte die „SolvisControl 2“ durch zusätzlichen Eingriff in die Mischer-Steuerung korrigieren.

Die zugrunde liegende Basis-Formel lautet:
VL = k1 * G * (RT – AT)**k2 + RT + N
Hierbei sind
VL = Vorlauftemperatur
k1, k2 = Konstanten
G = Gradient oder Steilheit
RT = Raumtemperatur
AT = Außentemperatur
N = Niveau
k1 wurde mit dem Wert 1.8207 und k2 mit 0.8 angenommen. Die tatsächlichen Werte, die Solvis verwendet hat, können geringfügig abweichen.

Formeln in der Programmiersprache C dargestellt:

Floor-Formel: VL = (int)(k1 * G * pow(RT – floor(AT), k2) + RT + N);

Round-Formel: VL = round(k1 * G * pow(RT – round(AT * 2) / 2, k2) + RT + N);
Hinweis: Die Round-Formel rundet auf halbe Grad für die Außentemperatur.

nicht gerundet-Formel: VL = round(k1 * G * pow(RT – AT, k2) + RT + N);

wahrscheinliche Solvis-Formel: VL = (int)(k1 * G * pow(RT – (int)(AT), k2) + RT + N);

Da round keine Standardfunktion in der C-Bibliothek ist, muss sie folgendermaßen definiert werden:
int round(double value) {
if (value >= 0.0)
return (int)(value + 0.5);
else
return (int)(value - 0.5);
}

Im Internet findet man diverse Vorgehensweisen für die Bestimmung von optimalen Heizkurven. z.B.

http://www.shk-mayer.de/Page/Waermeerzeuger/Heizkurve.html

http://www.moria.de/~michael/haus/energie/heizkurve.html

Optimale Heizkurve (Vorlauftemp.) einstellen

Die Steuerung der Vorlauftemperatur in der SolvisControl basiert auf der Außentemperatur und einigen Parametern (Heizkurve), die der Nutzer der Heizungsanlage einzustellen hat.

Um die optimale Heizkurve für den niedrigsten Energieverbrauch einstellen zu können, ist eine komplette Heizperiode erforderlich. Erforderlich für die Bestimmung der Heizkurve sind unterschiedliche Außentemperaturen. Zu beachten ist auch die Empfehlung von Solvis für die Montage des Außentemperatur-Fühlers.
Der Fühler muss vor direkter Sonneneinstrahlung geschützt werden. In der Praxis ist dies allerdings schwierig umzusetzen. Ein zweiter Fühler an anderer Position des Hauses, der zusätzlich in die Regelung einfließt, wäre sicherlich eine sinnvolle Ergänzung in der Heizungs-Steuerung. In der Regelung der SolvisControl muss dann die jeweils niedrigste Außentemperatur der beiden Fühler verwendet werden.


Bei der SolvisControl 2 hat man für die Einstellung der Heizkurve drei Parameter zur Verfügung.

  1. Raum-Soll-Temperatur (Heizkreismenu, Seite 3)

  2. Niveau: Im Menu Heizung ist dies der Schaltwippen-Wert des Thermometersymbols.

  3. Steilheit der Heizkurve: (Heizkreismenu, Seite 2)


Bei der Einstellung der Parameter für die Vorlauftemperatur sollte man folgendermaßen vorgehen (ohne Raumfühler):


Wenn man das gesamte Außentemperatur-Band von +20 bis -20 Grad (wenn möglich) mal mit den zugehörigen Vorlauftemperaturen (VL-Temp.) protokolliert hat, dann kann die optimale Einstellung fixiert werden.


Tip:Im Prinzip reicht es aber aus, wenn man eine VL-Temp. bei Außentemp. von ca. +15 Grad und eine weitere VL-Temp. bei einer der niedrigsten Außentemperaturen in den Wintermonaten bestimmt. Damit kann man dann mit dem Programm (Menupunkt Extras->Heizkurve) die passenden Heizkurven Parameter bestimmen.


Achtung: Bei niedrigen Außentemperaturen ist die aktuelle Vorlauf-Temperatur (VL Ist) ungefähr eine Stunde nach der Umschaltung vom Absenk- zum Tag-Betrieb zu prüfen. Die „VL Ist“ sollte sich in der Nähe der Soll Vorlauf-Temp. befinden. Falls das nicht der Fall ist und auch der Mischer nicht mehr mit „Mischer auf“ Kommandos angesteuert wird (Mischer ist am Anschlag ! ), dann ist im Installateur-Bereich für den Heizkreis der Offset-Parameter zu vergrößern.

Für einen optimalen Verbrauch sind gegebenenfalls weitere Parameter im Installateur-Bereich anzupassen.

z.B. Gebläsedrehzahl Stufe 2 bei einer Gasheizung oder auch die Anforderungstemperaturen für Warmwasser.

Der Verfasser hat einen SolvisMax Gas Pur (5 – 20kW) ohne Solar, ein Heizkreis.
Es wurden im Installateur-Bereich folgende Parameter angepasst:


Beim Verfasser hat es sich für die Sommermonate bewährt, die Heizung in den „Standby Betrieb“ zu schalten. Für die Wintermonate wurde der „Zeit / Automatik Betrieb“ gewählt.

Im Frühjahr und Herbst kann der Wert der Heizkreiswippe im Regelfall um ein bis mehrere Kelvin reduziert werden, da die nicht beheizten Umgebungsräume (Keller, Dachboden, …) dann wärmer sind als im Winter. Auch Sonne, Wind, ... haben hierbei einen Einfluss auf die Raumtemperaturen.

Anhand der hier aufgeführten Informationen erkennt man, das es nicht einfach ist, die richtigen Einstellungen zu wählen.

Eine selbst optimierende Heizungssteuerung wäre sicherlich ein Zukunftstraum.



Hinweis: Wenn die Heizung im „Standby Betrieb“ während der Sommermonate arbeitet, werden nur die Heizkreise inklusive der Heizungspumpe abgeschaltet. Die Warmwasser Erzeugung arbeitet normal weiter. Somit kann man in dieser Zeitphase alle Heizkörperventile voll aufdrehen, damit sich die Federn in den Heizkörper-Ventilen entspannen können.

Eine Reinigung der Heizkörper (mitsamt aller innen liegenden Lamellen) von Zeit zu Zeit bringt die ursprüngliche Wärmeabstrahl-Fähigkeit der Heizkörper wieder zurück.

Logdateien anzeigen

Im Hauptfenster des Programms SolvisSC2Viewer können die Logdateien, die auf der Speicherkarte der „SolvisControl 2“ abgelegt sind, sichtbar gemacht werden und auch ausgedruckt werden.

Bis zur SolvisControl Regler-Version Z131 gibt es die Logdateien „so*.txt“. Ab der Version Z132 heißen die Logdateien „mi*.txt“. Die Vorauswahl der unterschiedlichen Dateitypen wird durch eine Konfigurations-Einstellung der SolvisControl Version im SolvisSC2Viewer berücksichtigt. Unabhängig von der eingestellten Version können sowohl die Dateitypen „mi*.txt“ als auch „so*.txt“ ausgewählt werden beim Datei Öffnen Dialogfenster.

Nach der Auswahl einer oder mehrerer Solvis-Logdatei(en) über das Datei-Menu (bzw. Öffnen-Icon in der Toolbar) wird der Inhalt grafisch angezeigt. Durch Aktivieren von einem oder mehreren Auswahl-Elementen auf der linken Seite des Hauptfensters wird der Kurvenverlauf dieser Elemente (Sensoren, Aktoren oder Optionen) in dem Chart auf der rechten Seite dargestellt. Die Y-Achse zeigt für die Sensoren im Regelfall die Temperatur an, während die X-Achse generell die Zeitachse ist. Bei den Aktoren ist die Y-Achse im Regelfall ein Prozentwert.

Durch Auswählen eines Zeitbereichs mit der Maus im Chart wird der Bereich feiner aufgelöst dargestellt (Ziehen mit gedrückter linker Maustaste im Chart). Der auswählbare Zeitbereich liegt immer innerhalb von ganzen Stunden. Mit dem unten sichtbaren Scrollbalken kann man durch den gesamten Zeitbereich scrollen. Zur Rückschaltung in den weniger aufgelösten Chart ist der Knopf auf der linken Seite des Scrollbalken mit der linken Maustaste zu drücken.
Alternativ zu der eben beschriebenen Zoom Funktion kann im Chart auch ein Fadenkreuz gesetzt werden. Zur Umschaltung dient der ganz rechts liegende Toolbar Schalter „Umschaltung Fadenkreuz, Zoom-Funktion“. Mit Hilfe der Fadenkreuz Funktion kann durch Drücken der linken Maustaste im Raster von einer Minute ein Strich im Chart eingeblendet werden. In der unteren vertikalen Y-Achse wird ein Strich im Raster von einer Einheit und in der oberen Y-Achse wird ein Strich im Raster von 10 Einheiten dargestellt.
Der ausgewählte Zeitbereich der Solvis-Logdatei wird in den oben angeordneten Kalender-Elementen dargestellt. Über die Kalender-Elemente kann der Zeitbereich verändert werden. Mit den rechts von den Kalender-Elementen liegenden Buttons kann einfach durch die Kalenderzeiten navigiert werden, wenn der Zeitbereich vorher verkleinert wurde.

Im Normalfall wird der Kurvenverlauf im Chart für alle Tage beim Öffnen der Datei angezeigt. Alternativ kann auch ein „1 Tages Modus“ vor Öffnen der Datei angewählt werden. Dann wird nur ein Tag angezeigt nach dem Öffnen einer Datei. Mit den im Abschnitt vorher beschriebenen Buttons kann der zu betrachtende Tag einfach angewählt werden.

Beim Datei-Öffnen können auch mehrere Dateien gleichzeitig ausgewählt werden. Dann erscheinen in der Toolbar zwei zusätzliche Schalter, mit denen man innerhalb der ausgewählten Dateien einfach navigieren kann. Der Name der angezeigten Datei wird oben im Hauptfenster angezeigt.









Die Aktoren werden generell im oberen Teil des Chart dargestellt, die Sensoren und Optionen werden im unteren Teil dargestellt.

Für die Optionen gibt es im Regelfall Parameter in der User.config Datei. Diese Parameter sind bei Bedarf im Konfigurationsmenu anzupassen.


Optionsname

Parameter

P01, Brenner kW

BurnerMinPower, BurnerMaxPower

P02, Solar kW

Formeleditor, VSG Pulszahl, spez. Wärmekapazität

P03, Sonnenstand

Latitude, Longitude

P04, VL (Ist - Soll)_1

TemperatureVL, NiveauVL, GradientVL

P05, VL (Ist - Soll)_2

Es werden die Parameter von P04 verwendet.

S17, Solar VSG

Formeleditor, VSG Pulszahl, spez. Wärmekapazität



Bei den Optionen P04 und P05 wird eine Vorlauf-Temperatur Differenz für den Heizkreis 1 berechnet und angezeigt (Sensor S12 – berechneter Vorlauf-Sollwert). Wichtig für eine korrekte Anzeige sind die Einstellungen der zugehörigen Parameter. Die Werte müssen denen in der Heizungs-Anlage entsprechen. Die in P04 eingestellten Parameter werden auch für die Option P05 verwendet.
In der Option P04 wird der Vorlauf-Sollwert gemäß der stetig verlaufenden Solvis-Formel berechnet.
In der Option P05 wird der Vorlauf-Sollwert nach der treppenförmig verlaufenden Formel berechnet. Bei P05 findet eine Mittelwertbildung über 30 Minuten für die Außentemperatur statt. Bei Abweichungen der Differenz von kleiner als minus 5 Grad wird die Darstellung auf minus 5 Grad begrenzt.

Bei der Option P02 und dem Sensor S17 können die VSG-Pulszahl für eine korrekte Berechnung des Volumenstroms und der solaren Leistung eingestellt werden. Werte von 2 bzw. 42 sind üblich.

Solvis Logdaten Format

SolvisControl 2“ speichert jede Minute einen Datensatz von Sensoren (Eingänge) und Aktoren (Ausgänge) mit Zeitstempel in einer Datei als Textzeile ab.

Abhängig von der SolvisControl Regler-Version sind die Inhalte der Logdateien teilweise unterschiedlich (siehe folgende Kapitel). Auch die Namen der Logdateien sind unterschiedlich. Bis zur Version Z131 heißen die Dateitypen „so*.txt“. Ab Version Z132 heißen sie „mi*.txt“. Im unteren Teil dieses Kapitels wird der Unterschied des Dateityps „mi*.txt“ beschrieben. Für die Auswahlmöglichkeit beim Datei Öffnen Dialog steht ein Konfigurationsdatum im SolvisSC2Viewer zur Verfügung.

Im SolvisSC2Viewer wird beim Öffnen der Datei jeder Datensatz interpretiert und in seine Bestandteile zerlegt. Für jeden Datensatz wird im Programm eine Instanz der Klasse RowValues erzeugt.
Der Zeitstempel wird unter dem Namen DateAndTime im Datenformat DateTime abgespeichert.
Die Sensoren werden unter dem Namen S01 bis S30 im Datenformat double (Gleitkomma Format) abgespeichert.
Die Aktoren werden unter dem Namen A01 bis A20 im Datenformat double abgespeichert.

Die Bedeutung der Sensoren und Aktoren kann aus der Solvis Beschreibung L38 (Anlagenschema) für die jeweilige Anlage abgelesen werden. Die korrekten Bedeutungen für Sensoren und Aktoren sollten im Text und Tooltip der jeweiligen Checkboxen zugeordnet werden.

Solvis Logdaten Format, Dateityp so*.txt

Die „so*.txt – Dateien“ sind in Text-Zeilen aufgebaut. Für jeden Zeiteintrag existiert eine eigene Textzeile. Die Werte in einer Textzeile sind getrennt durch einen Tabulator (Tab). Die ersten beiden Werte sind Datum und Uhrzeit. Danach folgen die Sensoren S1 bis S18, Raumfühler 1 bis 3, drei weitere Sensoren. Anschließend folgen die Aktoren A1 bis A14, O1 bis O3 und drei weitere unbekannte Werte.

Sensoren, Eingänge:

Viewer Name

Solvis Name

Einheit

Multiplikator

S01

S1

°C

0,1

S02

S2

°C

0,1

S03

S3

°C

0,1

S04

S4

°C

0,1

S05

S5

°C

0,1

S06

S6

°C

0,1

S07

S7

°C

0,1

S08

S8

°C

0,1

S09

S9

°C

0,1

S10

S10

°C

0,1

S11

S11

°C

0,1

S12

S12

°C

0,1

S13

S13

°C

0,1

S14

S14

°C

0,1

S15

S15

°C

0,1

S16

S16

°C

0,1

S17

S17

s. unten (*)

1

S18

S18

l / min

0,1

S19

RF1

°C

1

S20

RF2

°C

1

S21

RF3

°C

1

S22

?

?

1

S23

?

?

1

S24

?

?

1

S25 bis S30

–-




* Der Sensor S17 ist ein Sonderfall. Für die Chart-Darstellung wird eine empirisch gewonnene Formel verwendet. Der dargestellte Wert hat die Einheit Liter pro Stunde (l / h). Abgespeichert ist der Sensor S17 allerdings ohne Umrechnung des Datensatz-Wertes der Logdatei.
Der 30 Minuten Mittelwert des Sensors S10 steht unter dem Namen S10MeanValue.

Aktoren, Ausgänge:

Viewer Name

Solvis Name

Einheit

Multiplikator

A01

A1

%

1

A02

A2

%

1

A03

A3

%

1

A04

A4

%

1

A05

A5

%

1

A06

A6

%

1

A07

A7

%

1

A08

A8

%

1

A09

A9

%

1

A10

A10

%

1

A11

A11

%

1

A12

A12

%

1

A13

A13

%

1

A14

A14

%

1

A15

O1

0,1V

1

A16

O2

0,1V

1

A17

O3

0,1V

1

A18

?

?

1

A19

?

?

1

A20

?

?

1


Unter dem Solvis-Namen O2 (=A16) wird die Brenner Modulation der zweiten Leistungsstufe angezeigt.


Solvis Logdaten Format, Dateityp mi*.txt

Die „mi*.txt – Dateien“ sind in Text-Zeilen aufgebaut. Die ersten Zeilen zeigen Versionen, Namen, Einheiten, Umrechnungsfaktoren, usw. an. Danach folgen die eigentlichen Nutzdaten. Für jeden Zeiteintrag existiert eine eigene Textzeile. Die Werte in einer Textzeile sind getrennt durch einen Tabulator (Tab). Die ersten beiden Werte sind Datum und Uhrzeit. Danach folgen die Sensoren S1 bis S18, Raumfühler 1 bis 3, drei weitere Sensoren. Anschließend folgen die Aktoren A1 bis A14, O1 bis O3 und 5 weitere Eingänge. Diese weiteren Eingänge werden im SolvisSC2Viewer unter S25 bis S29 abgespeichert.

Sensoren, Eingänge:

Viewer Name

Solvis Name

Einheit

Multiplikator

S01

S1

°C

0,1

S02

S2

°C

0,1

S03

S3

°C

0,1

S04

S4

°C

0,1

S05

S5

°C

0,1

S06

S6

°C

0,1

S07

S7

°C

0,1

S08

S8

°C

0,1

S09

S9

°C

0,1

S10

S10

°C

0,1

S11

S11

°C

0,1

S12

S12

°C

0,1

S13

S13

°C

0,1

S14

S14

°C

0,1

S15

S15

°C

0,1

S16

S16

°C

0,1

S17

S17

l / h

1

S18

S18

l / min

0,1

S19

RF1

°C

0,1

S20

RF2

°C

0,1

S21

RF3

°C

0,1

S22

I1

V

0,1

S23

I2

V

0,1

S24

I3

V

0,1

S25

AnfHK1

°C

1

S26

AnfHK2

°C

1

S27

AnfHK3

°C

1

S28

Zsol1

°C

1

S29

Zsol2

°C

1

S30

–-




Der 30 Minuten Mittelwert des Sensors S10 steht unter dem Namen S10MeanValue.

Aktoren, Ausgänge:

Viewer Name

Solvis Name

Einheit

Multiplikator

A01

A1

%

1

A02

A2

%

0.25

A03

A3

%

1

A04

A4

%

1

A05

A5

%

1

A06

A6

%

1

A07

A7

%

1

A08

A8

%

1

A09

A9

%

1

A10

A10

%

1

A11

A11

%

1

A12

A12

%

1

A13

A13

%

1

A14

A14

%

1

A15

O1

V

0,1

A16

O2

V

0,1

A17

O3

V

0,1

A18

–-



A19

–-



A20

–-




Unter dem Solvis-Namen O1 (=A15) wird die Brenner Modulation der zweiten Leistungsstufe angezeigt.



Freie Formeln für Chartanzeige

Bei der Logdaten Anzeige stehen unter den Optionen P06, P07, P08, P09 und P10 fünf freie Formelinterpreter für die Chartanzeige zur Verfügung. Die Formeln sind vom Benutzer zu programmieren in der Programmiersprache C#. Kenntnisse in einer der Programmiersprachen C#, C, C++, Java, ... sind von Vorteil, aber keine Grundvoraussetzung. Mit einfachen bis komplexeren Beispielen wird die Programmierung erläutert.
Falls die Formel fehlerhaft geschrieben wurde, erscheint beim Starten des SolvisSC2Viewer eine Meldungsbox, in der die Programm-Fehler dargestellt werden.

Prinzip des Aufrufs der freien Formeln:

Bei angewähltem Schalter für die Option wird für jeden Zeitpunkt des ausgewählten Zeitintervalls die Funktion der Formel durchlaufen. Bei jeder Änderung des Zeitintervalls, also auch beim Öffnen einer neuen Datei, wiederholt sich der Vorgang. Man spricht bei den Aufrufen im ausgewählten Zeitintervall auch von einer Serie.
An die Funktion werden durch den SolvisSC2Viewer zwei Parameter übergeben, bevor der von der Funktion zurückgegebene Wert im Chart gezeichnet wird. Der erste Parameter ist die Klasse RowValues mit dem Bezeichner rowValues. Der zweite Parameter ist ein Aufzählungstyp (enum) SeriesState mit dem Bezeichner state. Die Formel muss einen Rückgabeparameter vom Typ double enthalten. Dies wird erreicht durch eine zum Schluss programmierte Anweisung „return xx;“, wobei hier xx eine Variable vom Typ double darstellt.
Über den Bezeichner rowValues kann lesend auf die Elemente der Klasse zugegriffen werden. Die Elemente der Klasse sind unter der Überschrift „Solvis Logdaten Format“ genannt. Eine beispielhafte Programmieranweisung auf ein Element lautet: return rowValues.S17;. In diesem Fall wird der Wert von S17 für jeden Zeitpunkt im Chart gezeichnet.
Im Bezeichner state ist eine Information enthalten, ob es sich um den ersten, letzten oder einem beliebigen anderen Aufruf einer Serie handelt.
Die möglichen Werte des enum lauten:
SeriesState.First
SeriesState.Last
SeriesState.Inner

Für erfahrene Programmierer:

Die freien Formeln sind in eine zur Laufzeit des SolvisSC2Viewer erzeugte Klasse als Funktionen eingebettet. Die Klasse wird nur einmal instanziiert. In der Klasse stehen auch ein paar freie Variablen mit unterschiedlichen Datentypen zur Nutzung in den freien Formeln zur Verfügung. Nachfolgend ist die Programmierung der Klasse aufgeführt in der C#-Syntax. Die Funktionen Formula1, Formula2, Formula3, Formula4 und Formula5 werden mit dem Programmcode des Anwenders gefüllt.

Anwender, die komplexe Funktionen in den Formeln programmieren möchten und mit dem Visual Studio arbeiten wollen, können sich bei Bedarf an den Autor wenden.

namespace SolvisSC2Viewer {

using System;

using System.Windows.Forms;

public class Calculator : ICalculator {

private bool hasFormulaSolarVSG;

private bool hasFormulaSolarKW;

private bool bVal1;

private bool bVal2;

private bool bVal3;

private bool bVal4;

private bool bVal5;

private double dVal1;

private double dVal2;

private double dVal3;

private double dVal4;

private double dVal5;

private double dVal6;

private double dVal7;

private double dVal8;

private double dVal9;

private double dVal10;

private int iVal1;

private int iVal2;

private int iVal3;

private int iVal4;

private int iVal5;

/// Default Constructor for class

public Calculator() {

hasFormulaSolarVSG = false;

hasFormulaSolarKW = false;

}

public virtual bool HasFormulaSolarVSG {

get {

return this.hasFormulaSolarVSG;

}

}

public virtual bool HasFormulaSolarKW {

get {

return this.hasFormulaSolarKW;

}

}

/// Calculate an Formula1

public double Formula1(RowValues rowValues, SeriesState state) {

return 0.0;

}

/// Calculate an Formula2

public double Formula2(RowValues rowValues, SeriesState state) {

return 0.0;

}

/// Calculate an Formula3

public double Formula3(RowValues rowValues, SeriesState state) {

return 0.0;

}

/// Calculate an Formula4

public double Formula4(RowValues rowValues, SeriesState state) {

return 0.0;

}

/// Calculate an Formula5

public double Formula5(RowValues rowValues, SeriesState state) {

return 0.0;

}

/// Calculate an FormulaSolarVSG

public double FormulaSolarVSG(RowValues rowValues) {

return 0.0;

}

/// Calculate an FormulaSolarKW

public double FormulaSolarKW(RowValues rowValues) {

return 0.0;

}
}

}

Programmier Beispiele:

  1. return rowValues.S17;

  2. return rowValues.S04 - rowValues.S12;

  3. return (rowValues.S17 == 0) ? 0.0 : ((1000.0 / rowValues.S17) * 3600.0 / RowValues.SolarPulse);

  4. if (state == SeriesState.First) { iVal1 = 0; dVal1 = 0.0; } iVal1++; dVal1 += rowValues.S10; if (state == SeriesState.Last) { MessageBox.Show((dVal1 / iVal1).ToString()); } return 0.0;

Information zu den Beispielen:
Im Beispiel 1 wird der Sensor S17 im Chart gezeichnet.

Im Beispiel 2 wird die Differenz von „Heizungspuffer oben“ und „Vorlauf Heizkreis 1“ dargestellt.

Im Beispiel 3 wird eine komplexe Formel für den Solar-Volumenstrom gezeichnet. Zuerst wird der S17 auf 0 geprüft. Bei Gleichheit wird der Wert zwischen ? und : als return-Wert zurückgegeben, also 0.0. Ansonsten wird die dahinterstehende Formel als return-Wert zurückgegeben.
Alternativ kann die Formel auch folgendermaßen geschrieben werden:
if (rowValues.S17 == 0) return 0.0; else return ((1000.0 / rowValues.S17) * 3600.0 / RowValues.SolarPulse);

Beispiel 4 wendet sich an erfahrene Programmierer.
Hier werden die freien Variablen verwendet. Wie das Beispiel zeigt, sollten am Beginn einer Serie die verwendeten Variablen initialisiert werden. Der Sensor S10 wird zum Schluss als Mittelwert des gesamten Zeitintervalls in einer Messagebox angezeigt.
Es ist weiterhin möglich Funktionen von Klassen zu verwenden, die in System definiert sind (z.B. Klasse Math mit den Funktionen Abs, Round, Floor, Ceiling, usw.).

Weiterführende Dokumentation zu C# z.B. unter:

http://msdn.microsoft.com/de-de/library/system.math.aspx

http://openbook.galileocomputing.de/visual_csharp_2010/

Konfiguration „Freie Formeln“

Über Extras->Konfiguration kann in den Optionen (P06 bis P10) über Parameter und der „Ändern“ Schaltfläche ein einfacher Formel Editor aufgerufen werden. In diesem Editor kann die „Freie Formel“ eingegeben werden.


Hinweis: Programmierfehler in den freien Formeln werden in einer „Messagebox“ beim Programmstart oder nach Konfigurationsänderung angezeigt. Bei Laufzeitfehlern erscheint unten in der Statusleiste des Programms ein Hinweistext. Es wird dann nur eine Linie mit 0-Werten gezeichnet. In der Datei StackTrace.txt (im Verzeichnis der User.config Datei) findet man Fehlerhinweise.





















Formeln für Solar-Volumenstrom und Solar KW

Die standardmäßigen Formeln des Dateityps „so*.txt“ für die Chart-Darstellung lauten (Programmiersprache C#):

Solar VSG (S17): return ((1000.0 / rowValues.S17) * 3600.0 / RowValues.SolarPulse);

Solar KW (P02):
double deltaTemperature = rowValues.S05 – rowValues.S06;
if ((deltaTemperature > 0) && (rowValues.S17 > 0)) {
return deltaTemperature * rowValues.SolarVSG / 3600.0 * (RowValues.HeatCapacity20 + (rowValues.S06 + (deltaTemperature / 2.0) - 20.0) * 0.004);
}
return 0.0D;

Falls der Wert von S17 den Wert Null aufweist ist das Ergebnis auch Null.

Mit dem Konfigurations-Editor müssen beim Sensor S17 bzw. der Option P02 über den Parameter- Schalter der VSG Pulswert und möglicherweise die spezifische Wärmekapazität des Solarmittels angepasst werden.

























Diese Formeln sind empirisch ermittelt und können in der Realität abweichend sein.

Aus diesem Grund bietet das Programm die Möglichkeit eigene Berechnungen für Solar VSG (S17) und Solar KW (P02) für die Anzeige im Chart zu definieren.
Mit dem Konfigurations-Editor können beim Sensor S17 und bei der Option P02 über den Parameter- Schalter ein Formeleditor aufgerufen werden. In dem Formeleditor kann dann die selbstdefinierte Formel eingegeben werden in der Programmiersprache C# (siehe auch Kapitel „Freie Formeln“).

Vielleicht findet jemand korrekte universelle Formeln, in der auch eine „Ost-West Ausrichtung“ enthalten ist, und teilt diese dem Forum mit.

Hinweis: Da bei der Auswahl die unterschiedlichen Logdateitypen „so*.txt“ und „mi*.txt“ möglich sind, muss dieses auch in den selbstdefinierten Formeln berücksichtigt werden. Für die Unterscheidung des ausgewählten Dateityps steht das statische Datum „RowValues.SelectedSolvisControlVersion“ als Integer Datum zur Verfügung. Die Auswahl von „so*.txt“ Dateien liefert den Wert 131, während die Auswahl der „mi*.txt“ Dateien den Wert 132 liefert.

An die Funktion (Formel) wird durch den SolvisSC2Viewer ein Parameter übergeben, bevor der von der Funktion zurückgegebene Wert im Chart gezeichnet wird. Der Parameter ist die Klasse RowValues mit dem Bezeichner rowValues. Die Formel muss einen Rückgabeparameter vom Typ double enthalten. Dies wird erreicht durch eine zum Schluss programmierte Anweisung „return xx;“, wobei hier xx eine Variable vom Typ double darstellt.
Über den Bezeichner rowValues kann lesend auf die Elemente der Klasse zugegriffen werden. Die Elemente der Klasse sind unter der Überschrift „Solvis Logdaten Format“ genannt. Beispielhafte Programmieranweisungen sind bei den standardmäßigen Formeln in diesem Kapitel genannt.

Sensoren prüfen

Im Hauptfenster kann unter dem Menupunkt „Extras“ bei geladener Solvis-Datei der Menupunkt „Sensoren prüfen“ betätigt werden. Hierbei wird überprüft, ob die Temperaturfühler S01 (Speicher oben) und S04 (Heizungspuffer oben) korrekt angeschlossen sind. Falls ein Meldungsfenster erscheint mit dem Meldungstext „Temperatur Sensoren S01 und S04 vertauscht“, dann ist der Heizungsbetrieb zu rufen. Dieser muss die Anlage in Ordnung bringen.

SD-Card Infos

Unter dem Menupunkt „Extras“ gibt es den Eintrag „SD-Card Infos“. In dem Untermenu ist die Anzeige für den Zeitplan auswählbar. Der Zeitplan beinhaltet tabellarisch die Zeiteinstellungen der Heizkreise, Zirkulation, Warmwasser und Eco. Die Information für die Zeiteinstellungen wird aus der Datei „zeitplan.txt“ entnommen. Optional können für den Zeitplan die Heizkreise 2 und 3 und Eco Zeiten ausgeblendet werden. Zusätzlich kann auch das Zeitplan-Fenster als Bild-Datei namens „TimeOverview.png“ im Dokumentenverzeichnis (User\<UserName>\Documents\Solvis\SolvisViewer) gespeichert werden. Die Einstellungen dafür werden im Konfigurations-Editor durchgeführt.
Die Datei „TimeOverview.png“ kann bei Bedarf mit einem Standardprogramm für die Bildbetrachtung gedruckt werden.

Zum Testen der Anzeige für Zählerstände und Parameter kann im Konfigurations-Editor unter SD-Card die CheckBox „Anzeige Parameter, Zählstand“ angewählt werden. Die Dateien paramact.txt und zaehlst.txt müssen im ausgewähltem Verzeichnis liegen. Die Parameter und Zählerstände können auch gedruckt werden. Bei den Parametern werden die Parameter für Heizkreis 1, Wasser und Zirkulation angezeigt. Die Parameter für Heizkreis 2 und Heizkreis 3 werden angezeigt, wenn sie in der Konfiguration unter SD-Card angewählt sind.

Wenn korrekte Informationen zu den Dateien zaehlst.txt und paramact.txt zur Verfügung stehen, dann wären auch Anzeigen über Zählerstand und Parameter im SolvisSC2Viewer möglich.
Datei zaehlst.txt: Es fehlen die Bedeutungen der Werte 4 bis 6.
Datei paramact.txt: Es fehlen noch viele Parameter Bedeutungen (siehe Sourcecode Enums.cs, HeatCircuitSettings, HeatingSettings.cs, CirculationSettings.cs, WaterSettings.cs und SolarSettings.cs im Verzeichnis app\system\solvis).