From 5db69dfd63ed04569a21e9c01eb13f1e56e1e3b9 Mon Sep 17 00:00:00 2001 From: Horst Date: Fri, 17 Sep 2021 10:46:31 +0200 Subject: [PATCH] =?UTF-8?q?Dokumentation=20=C3=BCberarbeitet?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Die Formelberechnung hat wegen des großen Umfangs der Hilfeseite jetzt ein Inhaltsverzeichnis Veraltete HTML-Tags und -konstrukte korrigiert --- GenericNodes/Manifest.json | 2 +- GenericNodes/Properties/AssemblyInfo.cs | 4 +- GenericNodes/help/InputSelector.html | 2 +- GenericNodes/help/OutputSelector.html | 2 +- GenericNodes/help/SendByDifference.html | 2 +- GenericNodes/help/Statistics.html | 2 +- GenericNodes/help/TimedStatistics.html | 128 ++--- GenericNodes/help/default.css | 22 +- VisuWebNodes/Manifest.json | 2 +- VisuWebNodes/Properties/AssemblyInfo.cs | 4 +- VisuWebNodes/VisuWebNodes.csproj | 3 - VisuWebNodes/help/ExpressionCalculator.html | 563 +++++++++----------- VisuWebNodes/help/HeatingCurve.html | 26 +- VisuWebNodes/help/Index.html | 8 - VisuWebNodes/help/StringFormatter.html | 138 ++--- VisuWebNodes/help/XmlJsonParser.html | 48 +- VisuWebNodes/help/default.css | 22 +- VisuWebNodes/help/update.html | 143 ----- 18 files changed, 442 insertions(+), 679 deletions(-) delete mode 100644 VisuWebNodes/help/update.html diff --git a/GenericNodes/Manifest.json b/GenericNodes/Manifest.json index 04ef529..e090bb8 100644 --- a/GenericNodes/Manifest.json +++ b/GenericNodes/Manifest.json @@ -4,7 +4,7 @@ "DependentFiles": [ "LogicModule.Nodes.Helpers.dll" ], - "Version": "1.3.9", + "Version": "1.3.10", "Author": "Horst Lehner / Recomedia GbR", "Copyright": "Copyright ©2018-2021 Recomedia GbR. Distributed under Creative-Commons-License CC-BY-NC-SA.", "DeveloperId": "recomedia_de", diff --git a/GenericNodes/Properties/AssemblyInfo.cs b/GenericNodes/Properties/AssemblyInfo.cs index 04bc099..6308e39 100644 --- a/GenericNodes/Properties/AssemblyInfo.cs +++ b/GenericNodes/Properties/AssemblyInfo.cs @@ -22,5 +22,5 @@ // The following GUID is for the ID of the typelib if this project is exposed to COM [assembly: Guid("688D5884-1FE8-4946-8218-F71E0F606D89")] -[assembly: AssemblyVersion(version: "1.3.9")] -[assembly: AssemblyFileVersion(version: "1.3.9")] +[assembly: AssemblyVersion(version: "1.3.10")] +[assembly: AssemblyFileVersion(version: "1.3.10")] diff --git a/GenericNodes/help/InputSelector.html b/GenericNodes/help/InputSelector.html index 62d4a1d..a83bd36 100644 --- a/GenericNodes/help/InputSelector.html +++ b/GenericNodes/help/InputSelector.html @@ -15,7 +15,7 @@

Eingangswahlschalter+

Beschreibung

diff --git a/GenericNodes/help/OutputSelector.html b/GenericNodes/help/OutputSelector.html index 22fa4d6..a8640a6 100644 --- a/GenericNodes/help/OutputSelector.html +++ b/GenericNodes/help/OutputSelector.html @@ -15,7 +15,7 @@

Ausgangswahlschalter+

Beschreibung

diff --git a/GenericNodes/help/SendByDifference.html b/GenericNodes/help/SendByDifference.html index e35ad61..2fc580b 100644 --- a/GenericNodes/help/SendByDifference.html +++ b/GenericNodes/help/SendByDifference.html @@ -15,7 +15,7 @@

Send-by-Difference

Beschreibung

diff --git a/GenericNodes/help/Statistics.html b/GenericNodes/help/Statistics.html index 756b673..eec03e4 100644 --- a/GenericNodes/help/Statistics.html +++ b/GenericNodes/help/Statistics.html @@ -15,7 +15,7 @@

Statistikfunktionen

Beschreibung

diff --git a/GenericNodes/help/TimedStatistics.html b/GenericNodes/help/TimedStatistics.html index 2adf7be..236f646 100644 --- a/GenericNodes/help/TimedStatistics.html +++ b/GenericNodes/help/TimedStatistics.html @@ -15,7 +15,7 @@

Statistik für Zeitreihen

Beschreibung

@@ -52,15 +52,9 @@

Eingänge

- -

Bezeichnung

- - -

Porttyp

- - -

Beschreibung

- + Bezeichnung + Porttyp + Beschreibung @@ -130,15 +124,9 @@

Ausgänge

- -

Bezeichnung

- - -

Porttyp

- - -

Beschreibung

- + Bezeichnung + Porttyp + Beschreibung @@ -241,7 +229,7 @@

Beschreibung

  • - Wenn der Betrachtungszeitraum 0 + Wenn der Betrachtungszeitraum 0 (unbegrenzt) ist und keine anderen Ausgänge benötigt werden, kann dieselbe Funktinonalität effizienter mit einer "Formelberechnung" aus dem Paket "Recomedia Visu-& Web-Logikbausteine" @@ -249,7 +237,7 @@

    Beschreibung

    Beispiel "Summenzähler").
  • - Wenn der Betrachtungszeitraum >0 + Wenn der Betrachtungszeitraum >0 (also begrenzt) ist, dann kann dieser Ausgabewert nicht in allen Fällen korrekt berechnet werden. Er wird zu niedrig berechnet, wenn Eingabewerte vor Ablauf des Betrachtungszeitraums verworfen @@ -296,18 +284,10 @@

    Parameter

    - -

    Bezeichnung

    - - -

    Porttyp

    - - -

    Als Eingang zuschaltbar?

    - - -

    Beschreibung

    - + Bezeichnung + Porttyp + Als Eingang zuschaltbar? + Beschreibung @@ -377,16 +357,18 @@

    Beschreibung

    Betrachtungszeitraum), so werden die meisten Ausgabewerte erst dann gesetzt, wenn nach dem Ablauf der gegebenen Zeitspanne eines der folgenden Ereignisse eintritt: - +

    + +

    Dies ist immer dann sinnvoll, wenn die Momentanwerte am Eingang so stark schwanken können, dass eine sinnvolle Weiterverarbeitung nicht sofort möglich ist. Ein Beispiel ist die Berechnung der @@ -456,37 +438,37 @@

    Beschreibung

Hinweise: -

    -
  • - Ist dieser Parameter zu klein gewählt, dann müssen - innerhalb des Betrachtungszeitraums – oder - zwischen zwei Neustarts – mehr Eingangswerte - verarbeitet werden, als gespeichert werden können. - In diesem Fall werden ältere Werte gelöscht und - zwischen den verbleibenden linear interpoliert. - Die ausgegebene Summe wird dann - – außer bei unbegrenztem Betrachtungszeitraum - – wegen fehlender Werte zu klein. Andere - Ausgabewerte können durch Rundungsfehler ungenauer - werden. -
  • -
  • - Andererseits bedeutet ein zu hoher Wert unnötigen - Speicherverbrauch. Dies kann bei stark ausgelastetem - Systemspeicher (RAM) zu Fehlfunktionen – z. B. - unerwarteten Neustarts der Logik – führen. Zu - beachten ist dies insbesondere beim L1, der über - deutlich weniger Speicher verfügt als der X1. -
  • -
  • - Der Ausgang - Anzahl gespeicherter - Eingangswerte - dient im laufenden Betrieb zur - Kontrolle einer sinnvollen Einstellung. -
  • -

+
    +
  • + Ist dieser Parameter zu klein gewählt, dann müssen + innerhalb des Betrachtungszeitraums – oder + zwischen zwei Neustarts – mehr Eingangswerte + verarbeitet werden, als gespeichert werden können. + In diesem Fall werden ältere Werte gelöscht und + zwischen den verbleibenden linear interpoliert. + Die ausgegebene Summe wird dann + – außer bei unbegrenztem Betrachtungszeitraum + – wegen fehlender Werte zu klein. Andere + Ausgabewerte können durch Rundungsfehler ungenauer + werden. +
  • +
  • + Andererseits bedeutet ein zu hoher Wert unnötigen + Speicherverbrauch. Dies kann bei stark ausgelastetem + Systemspeicher (RAM) zu Fehlfunktionen – z. B. + unerwarteten Neustarts der Logik – führen. Zu + beachten ist dies insbesondere beim L1, der über + deutlich weniger Speicher verfügt als der X1. +
  • +
  • + Der Ausgang + Anzahl gespeicherter + Eingangswerte + dient im laufenden Betrieb zur + Kontrolle einer sinnvollen Einstellung. +
  • +
diff --git a/GenericNodes/help/default.css b/GenericNodes/help/default.css index cb3b8dd..c667ea6 100644 --- a/GenericNodes/help/default.css +++ b/GenericNodes/help/default.css @@ -117,7 +117,7 @@ h3 { h4 { font-family: Arial; - font-size: 14px; + font-size: 13px; line-height: 15px; margin: 2px 0 4px 0; padding: 2px 0 3px 0; @@ -199,17 +199,25 @@ td { table.Tabelle_Logicnode { width: 100%; max-width: 900px; - margin: 0 0 8px 0; + margin: 8px 0 8px 0; } table.Tabelle_Logicnode th { + font-family: Arial; + font-size: 15px; + line-height: 20px; text-align: left; - vertical-align: top; - padding: 0 4px 2px 4px; + vertical-align: baseline; + padding: 6px 4px 8px 4px; border-bottom: 1px solid #cccccc; border-right: none; } + table.Tabelle_Logicnode th.small { + font-size: 13px; + line-height: 16px; + } + table.Tabelle_Logicnode td { vertical-align: top; padding: 0 4px 0 4px; @@ -218,11 +226,13 @@ table.Tabelle_Logicnode { } table.Tabelle_Logicnode td.group { - vertical-align: top; - padding: 0 4px 0 4px; border-bottom: none; } + table.Tabelle_Logicnode td.group p { + margin: 6px 0 2px 0; + } + img { border: none; margin: 0 0 0 0; diff --git a/VisuWebNodes/Manifest.json b/VisuWebNodes/Manifest.json index 130c8b2..cd530a9 100644 --- a/VisuWebNodes/Manifest.json +++ b/VisuWebNodes/Manifest.json @@ -4,7 +4,7 @@ "DependentFiles": [ "LogicModule.Nodes.Helpers.dll" ], - "Version": "1.3.14", + "Version": "1.3.16", "Author": "Horst Lehner / Recomedia GbR", "Copyright": "Copyright ©2019-2021 Recomedia GbR. Distributed under Creative-Commons-License CC-BY-NC-SA.", "DeveloperId": "recomedia_de", diff --git a/VisuWebNodes/Properties/AssemblyInfo.cs b/VisuWebNodes/Properties/AssemblyInfo.cs index 81b4738..7d589b2 100644 --- a/VisuWebNodes/Properties/AssemblyInfo.cs +++ b/VisuWebNodes/Properties/AssemblyInfo.cs @@ -22,5 +22,5 @@ // The following GUID is for the ID of the typelib if this project is exposed to COM [assembly: Guid("688D5884-1FE8-4946-8218-F71E0F607E9A")] -[assembly: AssemblyVersion(version: "1.3.14")] -[assembly: AssemblyFileVersion(version: "1.3.14")] +[assembly: AssemblyVersion(version: "1.3.16")] +[assembly: AssemblyFileVersion(version: "1.3.16")] diff --git a/VisuWebNodes/VisuWebNodes.csproj b/VisuWebNodes/VisuWebNodes.csproj index 73cd35b..ae2d601 100644 --- a/VisuWebNodes/VisuWebNodes.csproj +++ b/VisuWebNodes/VisuWebNodes.csproj @@ -102,9 +102,6 @@ PreserveNewest - - PreserveNewest - PreserveNewest diff --git a/VisuWebNodes/help/ExpressionCalculator.html b/VisuWebNodes/help/ExpressionCalculator.html index e814dd4..acedb38 100644 --- a/VisuWebNodes/help/ExpressionCalculator.html +++ b/VisuWebNodes/help/ExpressionCalculator.html @@ -15,40 +15,55 @@

  Formelberechnung

-

Beschreibung

- +

Inhaltsverzeichnis

+ + +

Beschreibung

Dieser Baustein errechnet aus einer oder mehreren mathematischen Formeln - entsprechende Ausgabewerte. Die Formeln sind frei konfigurierbar. Sie - können aus Konstanten, Platzhaltern für variable Eingangswerte, - Rechenoperationen, Funktionsaufrufen und Kommentaren bestehen. Die - Platzhalter bestimmen Anzahl, Namen und Port­typen der Eingänge. + entsprechende Ausgabewerte. Die Formeln sind frei festlegbar. Sie können + aus Konstanten, Platzhaltern für variable Eingangswerte, Rechenoperationen, + Funktionsaufrufen und Kommentaren bestehen. Die Platzhalter bestimmen Anzahl, + Namen und Porttypen der Eingänge.

Folgende Arten von Eingangs- und Ausgabewerten können verarbeitet werden:

  • - Wahrheitswerte (bool) + Wahrheitswerte (bool)
  • - Numerische Werte (Ganzzahlen byte, int, long und - Fließkommazahlen double) + Numerische Werte (Ganzzahlen byte, int, long und + Fließkommazahlen double)
  • - Texte (string) + Texte (string)

- In den Formeln stehen nicht nur die üblichen Rechenoperationen, sondern - darüber hinaus Vieles aus dem - .NET 4.0 API + In den Formeln können die üblichen + Rechenoperationen (der Programmiersprache C#) + verwendet werden. Darüber hinaus stehen auch viele nützliche Methoden des + .NET 4.0 APIs zur Verfügung.

Implementierung und Lizenzen

@@ -83,15 +98,9 @@

Eingänge

- -

Bezeichnung

- - -

Porttyp

- - -

Beschreibung

- + Bezeichnung + Porttyp + Beschreibung @@ -146,7 +155,7 @@

Beschreibung

-

Ausgänge

+

Ausgänge

@@ -154,15 +163,9 @@

Ausgänge

- - - + + + - - - - + + + +
-

Bezeichnung

-
-

Porttyp

-
-

Beschreibung

-
BezeichnungPorttypBeschreibung
@@ -213,10 +216,10 @@

Beschreibung

Beispiel: Der Fehler
-    ...: error CS1026: Unexpected symbol ',', expecting ')'
+    ...: error CS1026: Unexpected symbol ',', expecting ')'
weist sehr wahrscheinlich darauf hin, dass in einer Fließkommazahl Komma (,) statt Punkt (.) vor den Nach­komma­stellen steht. - Anstelle von ... steht, wo der Fehler zu suchen ist: In welcher + Anstelle von ... steht, wo der Fehler zu suchen ist: In welcher Formel, in welcher Zeile (meist 1) und Zeichenposition.

@@ -235,18 +238,10 @@

Parameter

-

Bezeichnung

-
-

Porttyp

-
-

Als Eingang zuschaltbar?

-
-

Beschreibung

-
BezeichnungPorttypAls Eingang zuschaltbar?Beschreibung
@@ -281,21 +276,21 @@

Beschreibung

Diese Parameter legen fest, welchen Porttyp der entsprechende Ausgangswert jeweils haben soll. Möglich sind die folgenden Typen (mit ihren C#-Entsprechungen): -
-
NUMBER
-
Fließkommazahl (double)
-
INT64
-
64-Bit-Ganzzahl mit Vorzeichen (long)
-
INTEGER
-
32-Bit-Ganzzahl mit Vorzeichen (int)
-
BYTE
-
8-Bit-Ganzzahl ohne Vorzeichen (byte)
-
BOOL
-
Wahrheitswert (bool)
-
STRING
-
Text (string)
-

+
+
NUMBER
+
Fließkommazahl (double)
+
INT64
+
64-Bit-Ganzzahl mit Vorzeichen (long)
+
INTEGER
+
32-Bit-Ganzzahl mit Vorzeichen (int)
+
BYTE
+
8-Bit-Ganzzahl ohne Vorzeichen (byte)
+
BOOL
+
Wahrheitswert (bool)
+
STRING
+
Text (string)
+

In Klammern ist jeweils der C#-Typ angegeben, wie er in Typumwandlungsoperatoren @@ -330,9 +325,9 @@

Beschreibung

Ausgangswerte als Variablen

Aktuelle und vorherige Ausgabewerte können in den Formeln als Variablen - verwendet werden. Diese Variablen haben die Namen _out1_ .. - _out49_ (für aktuelle Werte) bzw. _previousOut1_ .. - _previousOut50_ (für vorherige Werte). Sie dürfen überall stehen, + verwendet werden. Diese Variablen haben die Namen _out1_ .. + _out49_ (für aktuelle Werte) bzw. _previousOut1_ .. + _previousOut50_ (für vorherige Werte). Sie dürfen überall stehen, wo auch eine Konstante des gleichen Typs stehen dürfte.

@@ -363,14 +358,14 @@

Ausgangswerte als Variablen

  • Aktuelle Werte können nur aus Formeln mit niedrigeren - Nummern (_out1_ .. _out<n-1>_) verwendet + Nummern (_out1_ .. _out<n-1>_) verwendet werden. Sie stehen also nur zur Verfügung, wenn es mehrere Formeln gibt. Dies vermeidet zyklische Abhängigkeiten.
  • Vorherige Werte können aus allen Formeln verwendet werden. Das schließt die eigene und höhere Nummern - (_previousOut<n>_ ..) ein. (Zu zyklischen + (_previousOut<n>_ ..) ein. (Zu zyklischen Abhängigkeiten führt das nicht, weil diese Werte erst wieder vor den Berechnungen für die nächste Änderung aktualisiert werden.)
  • @@ -379,17 +374,17 @@

    Ausgangswerte als Variablen

    Nach einer Inbetriebnahme oder einem Neustart des Logikmoduls gibt es zunächst keine Werte aus vorherigen Berechnungen. Je nach Typ werden bis zum ersten Setzen eines Ausgangs n die folgenden Werte für - _previousOut<n>_ verwendet: + _previousOut<n>_ verwendet:

    NUMBER
    -
    0.0
    +
    0.0
    INT64, INTEGER, BYTE
    -
    0
    +
    0
    BOOL
    -
    false
    +
    false
    STRING
    -
    "" (Leerstring)
    +
    "" (Leerstring)

    Platzhalter für Variablen

    @@ -404,11 +399,11 @@

    Platzhalter für Variablen

  • Definition – definiert erstmals einen Eingang mit Namen und Typ und hat die folgende Form:
    -     {Eingangsname:T} +     {Eingangsname:T}
  • Referenz – bezieht sich auf einen vorher definierten - Eingang. Sie folgt der gleichen Form, wobei :T + Eingang. Sie folgt der gleichen Form, wobei :T weg gelassen werden darf.
@@ -423,7 +418,7 @@

Platzhalter für Variablen

Eingangsname muss mit einem Buchstaben beginnen. Weiter kann - er auch Ziffern (0..9) und Unterstriche (_) enthalten. + er auch Ziffern (0..9) und Unterstriche (_) enthalten. Leerzeichen und andere Sonderzeichen sind nicht zulässig. Leerzeichen am Anfang oder am Ende sind erlaubt, werden aber nicht in den Namen übernommen. @@ -435,23 +430,23 @@

Platzhalter für Variablen

Bedeutung – sind möglich:

-
B
+
B
- Wahrheitswert (bool) – Mögliche Werte: true, false + Wahrheitswert (bool) – Mögliche Werte: true, false
-
I
+
I
- Ganzzahl (int) – Wertebereich -2 147 483 648 .. 2 147 483 647 + Ganzzahl (int) – Wertebereich -2 147 483 648 .. 2 147 483 647
-
F, N, G oder P
+
F, N, G oder P
- Fließkommazahl (double) – Wertebereich etwa + Fließkommazahl (double) – Wertebereich etwa -1.7 × 10308 .. 1.7 × 10308 mit einer Genauigkeit von mindestens 15 geltenden Ziffern
-
S
+
S
- Text (string) – ASCII-, ISO-8859-1- oder Unicode-Text + Text (string) – ASCII-, ISO-8859-1- oder Unicode-Text

@@ -460,7 +455,7 @@

Platzhalter für Variablen

Werden sie in irgend einem Teil der Formel überschritten, kommt es zu falschen Ergebnissen.

-

Literale Konstanten in Formeln

+

Literale Konstanten

@@ -468,40 +463,34 @@

Literale Konstanten in Formeln

- - - + + +
-

Konstante

-
-

Datentyp

-
-

Beschreibung

-
KonstanteDatentypBeschreibung

Zahl

-

byte
integer
long
double

+

byte
integer
long
double

Zahlen, die ohne Dezimaltrennzeichen angegeben werden, also nur aus - Ziffern bestehen, sind Ganzzahlen (int). Dies ist insbesondere + Ziffern bestehen, sind Ganzzahlen (int). Dies ist insbesondere beim Dividieren zu beachten (siehe Divisions-Operator).

Ganzzahlen können auch in hexadezimaler Schreibweise angegeben werden, - indem man ihnen 0x... voran stellt. Weitere Details finden sich + indem man ihnen 0x... voran stellt. Weitere Details finden sich im Abschnitt Ganzzahlenliterale der C#-Sprachreferenz von Microsoft.

- Fließkommazahlen (double) können auch in Exponentialschreibweise - angegeben werden. Z. B. bedeutet 1.2E6 dasselbe wie - 1200000.0 und -3.45E-3 dasselbe wie -0.00345. + Fließkommazahlen (double) können auch in Exponentialschreibweise + angegeben werden. Z. B. bedeutet 1.2E6 dasselbe wie + 1200000.0 und -3.45E-3 dasselbe wie -0.00345. Als Dezimaltrenzeichen für Fließkomazahlen ist in Formeln – anders als in sonstigen Eingabefeldern – immer Punkt (.) zu verwenden. Gruppentrennzeichen (Tausendertrennzeichen) sind nicht @@ -511,10 +500,10 @@

Beschreibung

-

true
false

+

true
false

-

bool

+

bool

Logische Wahrheitswerte.

@@ -522,53 +511,53 @@

Beschreibung

-

Math.PI

+

Math.PI

-

double

+

double

Die Kreiszahl - (π + (π = 3.141...)

-

Math.E

+

Math.E

-

double

+

double

Die Eulersche Zahl - (e + (e = 2.718...)

-

DateTime.
  Today
  Now

+

DateTime.
  Today
  Now

-

DateTime

+

DateTime

Nicht wirklich Konstanten, da die Werte vom Zeitpunkt des Aufrufs abhängen:
- Aktuelles Datum (Today mit Uhrzeit 0:00 Uhr; Now mit aktueller + Aktuelles Datum (Today mit Uhrzeit 0:00 Uhr; Now mit aktueller Uhrzeit)

- Hinweis: Objekte vom Typ DateTime sind nicht direkt als Ausgabewerte + Hinweis: Objekte vom Typ DateTime sind nicht direkt als Ausgabewerte verwendbar. Nützlich sind sie für Berechnungen mit Daten und Uhrzeiten, die anders nicht ohne Weiteres möglich wären. Sie lassen sich auch in gültige Ausgabetypen (Zahlen oder Texte) umwandeln. Siehe dazu die - Dokumentation der DateTime-Klasse + Dokumentation der DateTime-Klasse und das Anwendungsbeispiel "Feiertag". Korrekt formatierte Texte kann der Gira-Typumwandler auch wieder in DateTime-Datenpunkte umwandeln. @@ -577,10 +566,10 @@

Beschreibung

-

"Text"

+

"Text"

-

string

+

string

@@ -590,7 +579,7 @@

Beschreibung

-

null

+

null

@@ -618,32 +607,20 @@

Operatoren

Die wichtigsten davon sind: - - - - + + + + - - - - - - + + + + + + @@ -693,7 +671,7 @@

Beschreibung

Von rechts nach links

@@ -719,7 +698,7 @@

Beschreibung

Von links nach rechts

@@ -776,7 +755,7 @@

Beschreibung

Von links nach rechts

@@ -798,20 +777,23 @@

Beschreibung

Von links nach rechts

@@ -820,7 +802,7 @@

Beschreibung

  6

@@ -861,7 +843,7 @@

Beschreibung

  8

@@ -908,7 +891,7 @@

Beschreibung

11

-

Rang-folge

-
-

Assozia-tivität

-
-

Operator

-
-

Bezeichnung

-
-

Datentypen

-
-

Beschreibung

-
Rang-folgeAssozia-tivitätOperatorBezeichnungDatentypenBeschreibung und Beispiel
@@ -653,7 +630,7 @@

Beschreibung

Von rechts nach links

-

+   -

+

+   -

Vorzeichen

@@ -663,25 +640,26 @@

Beschreibung

- Kein Vorzeichen oder + wertet den nachfolgenden Ausdruck
- positiv, - negativ. + Kein Vorzeichen oder + wertet den nachfolgenden Ausdruck + positiv, - negativ. Beispiel: -1.6

-

!

+

!

NICHT

-

bool

+

bool

- Invertiert den nachfolgenden booleschen Ausdruck
(true - → false; falsetrue). + Invertiert den nachfolgenden booleschen Ausdruck (true + → false; falsetrue). + Beispiel: !{offen:B}

-

(T)

+

(T)

Typumwand-
lung (Cast)

@@ -703,12 +681,13 @@

Beschreibung

- Erzwingt eine Typumwandlung des nachfolgenden Ausdrucks
auf + Erzwingt eine Typumwandlung des nachfolgenden Ausdrucks auf T. Für T können – über die an Ein- und Ausgängen möglichen Typen hinaus – auch viele andere Werttypen von C# stehen.

+

Beispiel: (int)Math.Round({x:N})

-

*   /

+

*   /

Punkt-Grund-rechenarten

@@ -737,11 +716,11 @@

Beschreibung

abgeschnitten. Man vergleiche die folgenden Beispiele:

    -
  • -3 / 2   →   -1
  • -
  • -3.0 / 2   →   -1.5
  • +
  • -3 / 2   →   -1
  • +
  • -3.0 / 2   →   -1.5
  • - Math.Round(((double)-3) / 2)   → -   -2.0 + Math.Round(((double)-3) / 2)   → +   -2.0

@@ -753,18 +732,18 @@

Beschreibung

-

%

+

%

Divisionsrest

-

int

+

int

Ergibt den Divisionsrest einer ganzzahlingen Division.
- Beispiel: 5 % 32. + Beispiel: 5 % 32

-

+   -

+

+   -

Strich-Grund-rechenarten

@@ -786,7 +765,7 @@

Beschreibung

- + dient auch zur Verkettung von Texten (string). + + dient auch zur Verkettung von Texten (C#-Typ string).

-

<  >  <=  >=

+

<  >  <=  >=

Relational

- alle
Zahltypen

bool + alle
Zahltypen

bool

-

- Vergleicht zwei Werte und ergibt true, wenn der - Vergleichsoperator zutrifft, sonst false. +

+ Vergleicht zwei Werte und ergibt true, wenn der + Vergleichsoperator zutrifft, sonst false. +

+

+ Beispiel: {temperatur:N} > 21.5

-

==   !=

+

==   !=

Gleichheit,
Ungleichheit

@@ -836,23 +818,23 @@

Beschreibung

-

&

+

&

UND

-

bool

+

bool

-

+

Logische Operatoren mit vollständiger Auswertung.

Hinweis:
- Der sonst übliche Operator x^y (xy) für + Der sonst übliche Operator x^y (xy) für Zahlen steht nicht zur Verfügung. Man verwendet dazu die - Funktion Math.Pow. + Funktion Math.Pow.

-

^

+

^

Exklusiv-ODER

@@ -872,7 +854,7 @@

Beschreibung

  9

-

|

+

|

ODER

@@ -888,19 +870,20 @@

Beschreibung

-

&&

+

&&

UND

-

bool

+

bool

-

+

Logische Operatoren mit bedingter Auswertung, d. h. die Auswertung erfolgt nur so weit, bis das Ergebnis feststeht.

+

Beispiel: /* Fenster geschlossen */ !{offen:B} && !{gekippt:B}

-

||

+

||

ODER

@@ -916,31 +899,34 @@

Beschreibung

-

12

+

12

-

Von rechts nach links

+

Von rechts nach links

-

b ? x : y

+

b ? x : y

-

Bedingung

+

Bedingung

-

boolalle

+

boolalle

-

Gibt x zurück, wenn b true ist, sonst y.

+

+ Gibt x zurück, wenn b true ist, sonst y. +

+

Beispiel: ({istVerriegelt:B} ? "verriegelt" : "offen"

Die ersten beiden Spalten der Tabelle geben an, wie nicht geklammerte Ausdrücke ausgewertet werden. Darin ist z. B. auch die bekannte Regel - "Punkt vor Strich" enthalten: * und / werden vor - + und - ausgewertet. Geklammerte Ausdrücke - (...) werden "von innen nach außen" berechnet. + "Punkt vor Strich" enthalten: * und / werden vor + + und - ausgewertet. Geklammerte Ausdrücke + (...) werden "von innen nach außen" berechnet. Weitere Angaben dazu finden sich im Abschnitt Operatorrangfolge der C#-Sprachreferenz. @@ -948,7 +934,7 @@

Beschreibung

Obwohl Variablendeklarationen und Zuweisungen in Formeln generell nicht erlaubt sind, können dennoch temporäre Objekte mit dem - new-Operator + new-Operator erzeugt und innerhalb einer Formel verwendet werden. Das Beispiel UNIX-UTC-Zeitstempel umwandeln zeigt eine nützliche Anwendung. @@ -957,7 +943,7 @@

Funktionen

Soweit ihre Parameter- und Rückgabetypen sinnvoll verwendbar sind, stehen viele Klassen des - gut und in deutscher Sprache dokumentierten .NET 4.0 APIs + gut in deutscher Sprache dokumentierten .NET 4.0 APIs mit ihren Funktionen zur Verfügung. Dieses Kapitel geht nur auf einige besonders nützliche Bereiche und Besonderheiten ein.

@@ -973,14 +959,14 @@

Mathematische Funktionen: Math-Bibliothek und Winkelfunktionen

können in den Formeln verwendet werden.

- Beispiel: Math.Pow({x:N}, {y:N}) berechnet aus den beiden Eingangswerten + Beispiel: Math.Pow({x:N},{y:N}) berechnet aus den beiden Eingangswerten x und y deren Potenz xy.

- Die trigonometrischen Funktionen der Math-Bibliothek verwenden + Die trigonometrischen Funktionen der Math-Bibliothek verwenden und liefern alle Winkelangaben im Bogenmaß. Zur Umrechnung zwischen Grad- und Bogenmaß stehen die folgenden beiden Funktionen der - Angle-Erweiterung zur Verfügung: + Angle-Erweiterung zur Verfügung:

@@ -989,22 +975,16 @@

Mathematische Funktionen: Math-Bibliothek und Winkelfunktionen

- - - + + +
-

Funktion

-
-

Datentyp

-
-

Beschreibung

-
FunktionDatentypBeschreibung
-

Angle.Deg(rad)

+

Angle.Deg(rad)

-

double

+

double

Rechnet den im Bogenmaß gegebenen Winkel rad ins Gradmaß um.

@@ -1012,10 +992,10 @@

Beschreibung

-

Angle.Rad(deg)

+

Angle.Rad(deg)

-

double

+

double

Rechnet den im Gradmaß gegebenen Winkel deg ins Bogenmaß um.

@@ -1023,7 +1003,7 @@

Beschreibung

- Mit den Math- und Angle-Funktionen sind trigonometrische, + Mit den Math- und Angle-Funktionen sind trigonometrische, logarithmische und andere gebräuchliche mathematische Anwendungen abgedeckt.

Stringfunktionen

@@ -1035,14 +1015,13 @@

Stringfunktionen

verwendet werden.

- Beispiel Textersetzung: Mit - {text:S}.Replace("alt","neu") + Beispiel Textersetzung: Mit {text:S}.Replace("alt","neu") wird der Eingangstext: "Alles alt macht der Mai" am Ausgang zu "Alles neu macht der Mai".

Funktionen zur Beleuchtungssteuerung

- Die Funktionen der Light-Erweiterung rechnen gängige Größen + Die Funktionen der Light-Erweiterung rechnen gängige Größen der Beleuchtungstechnik um:

@@ -1052,22 +1031,16 @@

Funktionen zur Beleuchtungssteuerung

- - - + + + @@ -1138,13 +1111,13 @@

Beschreibung

@@ -1266,7 +1239,7 @@

Beschreibung

Funktionen für die Heizungs-, Lüftungs- und Klimatechnik (HLK)

- Die Funktionen der Hlk-Erweiterung helfen bei der Realisierung + Die Funktionen der Hlk-Erweiterung helfen bei der Realisierung von Heizungs- und Lüftungsreglern.

-

Funktion

-
-

Datentyp

-
-

Beschreibung

-
FunktionDatentypBeschreibung
-

Light.HSV(h, s, v)

+

Light.HSV(h, s, v)

-

byteint

+

byteint

@@ -1084,7 +1057,7 @@

Beschreibung

Da Byte-Eingänge nicht vorgesehen sind, muss der Typumwandlungsoperator verwendet werden, um Integer-Eingänge als byte-Parameter verwenden zu können: -
Light.HSV((byte){h:I}, (byte){s:I}, (byte){v:I})
+
Light.HSV((byte){h:I}, (byte){s:I}, (byte){v:I})
  • Für Integer-Werte außerhalb des Wertebereichs 0..255 führt dies zu @@ -1099,13 +1072,13 @@

    Beschreibung

  • - Light.HSVToH(hsv) - Light.HSVToS(hsv) - Light.HSVToV(hsv) + Light.HSVToH(hsv) + Light.HSVToS(hsv) + Light.HSVToV(hsv)

    -

    intbyte

    +

    intbyte

    @@ -1118,10 +1091,10 @@

    Beschreibung

    -

    Light.RGB(r, g, b)

    +

    Light.RGB(r, g, b)

    -

    byteint

    +

    byteint

    @@ -1130,7 +1103,7 @@

    Beschreibung

    (3 Bytes, DPT 232.600) um.

    - Die bereits oben zu byte-Parametern gegebenen Hinweise gelten + Die bereits oben zu byte-Parametern gegebenen Hinweise gelten entsprechend.

    - Light.RGBToR(rgb) - Light.RGBToG(rgb) - Light.RGBToB(rgb) + Light.RGBToR(rgb) + Light.RGBToG(rgb) + Light.RGBToB(rgb)

    -

    intbyte

    +

    intbyte

    @@ -1157,12 +1130,12 @@

    Beschreibung

    - Light.RGBW(rgb) - Light.RGBW(r, g, b) + Light.RGBW(rgb) + Light.RGBW(r, g, b)

    -

    intlong
    bytelong

    +

    intlong
    bytelong

    @@ -1175,17 +1148,17 @@

    Beschreibung

    Alle vier Werte im erzeugten DPT 251.600 sind gültig (und auch so markiert). - Die bereits oben zu byte-Parametern gegebenen Hinweise gelten + Die bereits oben zu byte-Parametern gegebenen Hinweise gelten entsprechend.

    -

    Light.RGBW(r, g, b, w)

    +

    Light.RGBW(r, g, b, w)

    -

    intlong

    +

    intlong

    @@ -1199,14 +1172,14 @@

    Beschreibung

    - Light.RGBWToR(rgbw) - Light.RGBWToG(rgbw) - Light.RGBWToB(rgbw) - Light.RGBWToW(rgbw) + Light.RGBWToR(rgbw) + Light.RGBWToG(rgbw) + Light.RGBWToB(rgbw) + Light.RGBWToW(rgbw)

    -

    longint

    +

    longint

    @@ -1224,7 +1197,7 @@

    Beschreibung

    Ganzzahl-Eingänge mit dem benötigten Wertebereich nicht zur Verfügung stehen, muss ein Fließkommazahl-Eingang und ein Typumwandlungsoperator verwendet werden; z. B.: -
    RGBWToB((long){r:N})
    +
    RGBWToB((long){r:N})
  • Wenn im Eingabewert Intensitäten als ungültig markiert sein können, dann @@ -1237,16 +1210,16 @@

    Beschreibung

  • - Light.RGBToHSV(r, g, b) - Light.RGBToHSV(rgb) - Light.HSVToRGB(h, s, v) - Light.HSVToRGB(hsv) + Light.RGBToHSV(r, g, b) + Light.RGBToHSV(rgb) + Light.HSVToRGB(h, s, v) + Light.HSVToRGB(hsv)

    - byteint
    int
    int
    - byteint
    int
    int + byteint
    int
    int
    + byteint
    int
    int

    @@ -1254,7 +1227,7 @@

    Beschreibung

    Rechnet Farbangaben zwischen dem RGB-Farbraum und dem HSV-Farbraum um.

    - Die bereits oben zu byte-Parametern und DPT 232.600 gegebenen + Die bereits oben zu byte-Parametern und DPT 232.600 gegebenen Hinweise gelten entsprechend.

    @@ -1276,22 +1249,16 @@

    Funktionen für die Heizungs-, Lüftungs- und Klimatechnik (HLK)

    - - - + + + - - - + + + - - - + + + - - - + + + - - - - + + + + - - - + + + - - - + + + - - - - + + + +
    -

    Funktion

    -
    -

    Datentyp

    -
    -

    Beschreibung

    -
    FunktionDatentypBeschreibung
    -

    Hlk.HeatingCurve
    (
    TaAvg, ...)

    +

    Hlk.HeatingCurve
    (
    TaAvg, ...)

    -

    double

    +

    double

    @@ -1315,10 +1282,10 @@

    Beschreibung

    -

    Hlk.AbsHumidity(T, rf)

    +

    Hlk.AbsHumidity(T, rf)

    -

    double

    +

    double

    @@ -1331,10 +1298,10 @@

    Beschreibung

    -

    Hlk.DewPoint(T, rf)

    +

    Hlk.DewPoint(T, rf)

    -

    double

    +

    double

    @@ -1368,12 +1335,12 @@

    Beschreibung

    Kommentare

    Die Formeln können mit Kommentaren in der Form - /* ... */ dokumentiert - werden. Darin kann anstelle von ... nahezu beliebiger Text + /* ... */ dokumentiert + werden. Darin kann anstelle von ... nahezu beliebiger Text stehen. Solche Kommentare – auch mehrere davon – können am Anfang, am Ende oder an anderen Stellen der Formel stehen.

    -

    Beispiele

    +

    Beispiele

    Das Anwendungsbeispiel "Bedarfsgeführte Heizungsregelung" findet sich bei der @@ -1385,18 +1352,18 @@

    Feiertage

    Automatisierungsfunktionen anders ablaufen als an normalen Werktagen. Die folgende Formel berechnet dazu zunächst das morgige Datum als STRING:
    - DateTime.Today.AddDays(1).ToString("d") /* Datum für Morgen errechnen */
    + DateTime.Today.AddDays(1).ToString("d") /* Datum für Morgen errechnen */

    Dieses dient als Parameter für eine Web-Anfrage mittels Web Request oder HTTP GET Request. Der Request-Baustein wird mit folgender URL parametriert:
    - http://ipty.de/feiertag/api.php?do=isFeiertag&loc=BW&datum={Morgen}
    + http://ipty.de/feiertag/api.php?do=isFeiertag&loc=BW&datum={Morgen}
    Ein zweiter Request-Baustein verwendet fast die gleiche URL, aber ohne den Datumsparameter (was implizit "heute" bedeutet): - http://ipty.de/feiertag/api.php?do=isFeiertag&loc=BW
    - In beiden steht BW für das Bundesland Baden-Württemberg; + http://ipty.de/feiertag/api.php?do=isFeiertag&loc=BW
    + In beiden steht BW für das Bundesland Baden-Württemberg; die Kürzel für andere Bundesländer entnimmt man der Online-Dokumentation des Webservices. @@ -1424,8 +1391,8 @@

    UNIX-UTC-Zeitstempel umwandeln

    angegeben. Um solche Zeitangaben in einer Visualisierung verwenden zu können, muss man sie zu einem Text in lokaler Zeit wandeln. Das tut die folgende Formel:
    - (new DateTime(1970,1,1,0,0,0,0,DateTimeKind.Utc)).AddSeconds({unixUtcTimestamp:I}).ToLocalTime().ToString()
    - Der new-Operator erzeugt zunächst ein DateTime-Objekt + (new DateTime(1970,1,1,0,0,0,0,DateTimeKind.Utc)).AddSeconds({unixUtcTimestamp:I}).ToLocalTime().ToString()
    + Der new-Operator erzeugt zunächst ein DateTime-Objekt mit dem richtigen Startzeitpunkt. Nach dem Addieren der Sekunden des UTC-Zeitstempels wandeln zwei weitere Funktionen das Objekt in den gewünschten Text um. @@ -1434,23 +1401,23 @@

    UNIX-UTC-Zeitstempel umwandeln

    Da dieser kombinierte Datums- und Zeit-Text länger als 14 Zeichen ist, kann er nicht auf dem KNX-Bus versendet, sondern nur innerhalb des L1/X1 verwendet werden. Abhilfe schaffen im Bedarfsfall z. B. -
      -
    • - die Funktionen DateTime.ToShortDateString und - DateTime.ToShortTimeString, die kürzere Texte - getrennt nach Datum und Uhrzeit erzeugen -
    • -
    • - ein Typ-Konverter, der aus Text einen Datenpunkt vom Typ - "Datum und Uhrzeit" erzeugen kann. Dazu verwendet man - zweckmäßig folgenden Parameter im letzten Funktionsaufruf - der Formel: - ...ToString("s") . - (Ohne diesen werden evtl. Tag und Monat vertauscht, weil der - Gira-Typ-Konverter das Textformat nicht richtig erkennt.) -
    • -

    +
      +
    • + die Funktionen DateTime.ToShortDateString und + DateTime.ToShortTimeString, die kürzere Texte + getrennt nach Datum und Uhrzeit erzeugen +
    • +
    • + ein Typ-Konverter, der aus Text einen Datenpunkt vom Typ + "Datum und Uhrzeit" erzeugen kann. Dazu verwendet man + zweckmäßig folgenden Parameter im letzten Funktionsaufruf + der Formel: + ...ToString("s") . + (Ohne diesen werden evtl. Tag und Monat vertauscht, weil der + Gira-Typ-Konverter das Textformat nicht richtig erkennt.) +
    • +

    Verbesserter Schwellwert mit Hysterese

    Der Gira-Baustein "Schwellwert mit Hysterese" setzt seinen Ausgang nur @@ -1460,15 +1427,15 @@

    Verbesserter Schwellwert mit Hysterese

    gewünschte Verhalten zu erreichen. Man erhält in diesen Fällen übersichtlichere Logikblätter mit weniger Bausteinen, wenn man eine Formelberechnung mit folgenden Formeln einsetzt:
    - Formel 1: {Auslöser:N} > {ObereSchwelle:N}
    - Formel 2: {Auslöser:N} < {UntereSchwelle:N}
    - Formel 3: _out1_ ? (bool?)true : (_out2_ ? (bool?)false : /* nichts senden */ null) + Formel 1: {Auslöser:N} > {ObereSchwelle:N}
    + Formel 2: {Auslöser:N} < {UntereSchwelle:N}
    + Formel 3: _out1_ ? (bool?)true : (_out2_ ? (bool?)false : /* nichts senden */ null)

    Alle drei Ausgänge sind vom Typ BOOL. Der dritte gibt das gewünschte Endergebnis aus; die ersten beiden bleiben daher unbelegt. Solange der Auslöser zwischen den beiden Schwellwerten liegt, ergeben die - beiden ersten Formeln jeweils false. Formel 3 gibt in + beiden ersten Formeln jeweils false. Formel 3 gibt in diesem Fall nichts aus.

    Hinweise:

    @@ -1487,21 +1454,21 @@

    Verbesserter Schwellwert mit Hysterese

    wenn die Schwellwerte nicht vertauscht werden. Im einfachsten Fall legt man dazu direkt in der ersten Formel den oberen Schwellwert auf eine höhere Zahl als den unteren Schwellwert fest:
    - Formel 1: {Auslöser:N} > ({UntereSchwelle:N} + 2.0) /* obere Schwelle */
    + Formel 1: {Auslöser:N} > ({UntereSchwelle:N} + 2.0) /* obere Schwelle */
    Die beiden weiteren Formeln bleiben wie oben angegeben.

    Summenzähler

    - Die folgende Formel erhöht, beginnend bei 0, mit jedem - eintreffenden Telegramm am Eingang Erhöhung den Ausgang + Die folgende Formel erhöht, beginnend bei 0, mit jedem + eintreffenden Telegramm am Eingang Erhöhung den Ausgang um den eingehenden Wert:
    - {Neustart:B} ? 0 /* neu starten */ : (_previousOut1_ + {Erhöhung:I}) /* aufsummieren */
    + {Neustart:B} ? 0 /* neu starten */ : (_previousOut1_ + {Erhöhung:I}) /* aufsummieren */
    Aufgrund des Bedingungsoperators gilt dies jedoch nur so lange, - wie der Eingang Neustart den Wert false hat. - Wenn und solange Neustart den Wert true hat, - wird jede Erhöhung verworfen und der Ausgang wird (oder - bleibt bei) 0. + wie der Eingang Neustart den Wert false hat. + Wenn und solange Neustart den Wert true hat, + wird jede Erhöhung verworfen und der Ausgang wird (oder + bleibt bei) 0.

    Die angegebene Formel erzeugt am Ausgang eine Ganzzahl (z. B. diff --git a/VisuWebNodes/help/HeatingCurve.html b/VisuWebNodes/help/HeatingCurve.html index 270f1e5..3e3a6dd 100644 --- a/VisuWebNodes/help/HeatingCurve.html +++ b/VisuWebNodes/help/HeatingCurve.html @@ -29,28 +29,22 @@

    Die Funktion HeatingCurve

    -

    Funktion

    -
    -

    Datentyp

    -
    -

    Beschreibung

    -
    FunktionDatentypBeschreibung

    - + Hlk.HeatingCurve(
    -
    TaAvg, Tg, TaMin, + TaAvg, Tg, TaMin,
    -
    TSoll, TvMax, k) + TSoll, TvMax, k)

    -

    double

    +

    double

    @@ -268,16 +262,16 @@

    Beispiel: Bedarfsgeführte Heizungsregelung

    - Formel 1: /* Heizkurve */ Hlk.HeatingCurve({TaAvg:N}, 17, -10, {TSoll:N}, 70, 1.33) + Formel 1: /* Heizkurve */ Hlk.HeatingCurve({TaAvg:N}, 17, -10, {TSoll:N}, 70, 1.33)

    Dieses Zwischenergebnis vom Typ NUMBER wird nur für die Visualisierung verwendet.

    Bedarfsführung

    - Der tatsächliche Wärmebedarf ist als prozentualer Bedarf gegeben. Er senkt + Der tatsächliche Wärmebedarf ist als prozentualer Bedarf gegeben. Er senkt die Vorlauftemperatur aus Formel 1 wie folgt ab:
    - Formel 2: /* Bedarfsführung */ ({Bedarf:N} / 100) * (_out1_ - {TSoll}) + {TSoll}
    + Formel 2: /* Bedarfsführung */ ({Bedarf:N} / 100) * (_out1_ - {TSoll}) + {TSoll}
    Dieses Endergebnis vom Typ NUMBER wird als Soll-Vorlauftemperatur an den Heizungsregler weiter gegeben.

    diff --git a/VisuWebNodes/help/Index.html b/VisuWebNodes/help/Index.html index 4c9fdf3..701e049 100644 --- a/VisuWebNodes/help/Index.html +++ b/VisuWebNodes/help/Index.html @@ -13,14 +13,6 @@

    Paketinhalt

    -

    ACHTUNG – Neue Versionen des Textformatierers sind inkompatibel zu Versionen vor 0.9.x

    -

    - Benutzer, die bisher den Textformatierer aus einer Version vor 0.9.x verwendet - haben, müssen unbedingt die Update-Anleitung - beachten! Ansonsten kann es zu Fehlern im GPA kommen, die sich nur durch - Löschen ganzer Logikblätter – oder im schlimmsten Fall Neuanlegen des - Projekts – beheben lassen. -

    Übersicht

    Die Logikbausteine in diesem Paket unterstützen Berechnungen und diff --git a/VisuWebNodes/help/StringFormatter.html b/VisuWebNodes/help/StringFormatter.html index a27f40f..3545602 100644 --- a/VisuWebNodes/help/StringFormatter.html +++ b/VisuWebNodes/help/StringFormatter.html @@ -15,19 +15,11 @@

     Textformatierer

    -

    ACHTUNG – Neue Versionen sind inkompatibel zu Versionen vor 0.9.x

    -

    - Benutzer, die bisher eine Version vor 0.9.x verwendet haben, müssen - unbedingt die Update-Anleitung beachten! - Ansonsten kann es zu Fehlern im GPA kommen, die sich nur durch Löschen - ganzer Logikblätter – oder im schlimmsten Fall Neuanlegen des - Projekts – beheben lassen. -

    Beschreibung

    - +

    Dieser Baustein setzt einen oder mehrere Ausgabetexte aus Formatvorlagen und den darin referenzierten Eingangswerten zusammen. Formatvorlagen @@ -63,7 +55,7 @@

    Eingänge

    Solange keine gültige(n) Formatvorlage(n) festgelegt wurde(n), hat der Baustein keine Eingänge. - Eingänge werden nur durch gültige Platzhalter in den Formatvorlagen angelegt. + Eingänge werden nur durch gültige Platzhalter in den Formatvorlagen angelegt. Ihre Reihenfolge ergibt sich – für jeden Porttyp getrennt – aus der Reihenfolge der entsprechenden Platzhalter in den Formatvorlagen. In der Tabelle sind die automatisch vergebenen Eingangsnamen genannt. Diese werden @@ -76,15 +68,9 @@

    Eingänge

    -

    Bezeichnung

    -
    -

    Porttyp

    -
    -

    Beschreibung

    -
    BezeichnungPorttypBeschreibung
    @@ -147,15 +133,9 @@

    Ausgänge

    -

    Bezeichnung

    -
    -

    Porttyp

    -
    -

    Beschreibung

    -
    BezeichnungPorttypBeschreibung
    @@ -200,18 +180,10 @@

    Parameter

    -

    Bezeichnung

    -
    -

    Porttyp

    -
    -

    Als Eingang zuschaltbar?

    -
    -

    Beschreibung

    -
    BezeichnungPorttypAls Eingang zuschaltbar?Beschreibung
    @@ -383,12 +355,12 @@

    Platzhalter in der Formatvorlage

  • Definition – definiert erstmals einen Eingang mit Namen und Typ und hat die folgende Form:
    -     {[Eingangsname]:T[Format]} +     {[Eingangsname]:T[Format]}
  • Referenz – bezieht sich auf einen vorher definierten Eingang, dessen Typ bereits festgelegt ist:
    -     {Eingangsname[:T[Format]]} +     {Eingangsname[:T[Format]]}
  • @@ -409,8 +381,8 @@

    Platzhalter in der Formatvorlage

    Eingangsname muss mit einem Buchstaben beginnen. Weiter kann er auch Ziffern, Leer- und Interpunktionszeichen enthalten, mit - Ausnahme von geschweiften Klammern ({ und }) und - Doppelpunkt (:). Leerzeichen am Anfang oder am Ende + Ausnahme von geschweiften Klammern ({ und }) und + Doppelpunkt (:). Leerzeichen am Anfang oder am Ende werden nicht in den Namen übernommen.

    Datentyp und Formatierung

    @@ -424,42 +396,42 @@

    Datentyp und Formatierung

    • - B – Wahrheitswert (Bool) + B – Wahrheitswert (Bool)
      • - Ohne Formatparameter wird false - als 0, true als 1 dargestellt. + Ohne Formatparameter wird false + als 0, true als 1 dargestellt.
      • Mit zwei ASCII- oder Unicode-Zeichen - als Formatparameter (z. B. B☁☀) - wird false als das erste (im Beispiel ☁), - true als das zweite Zeichen (im Beispiel ☀) + als Formatparameter (z. B. B☁☀) + wird false als das erste (im Beispiel ☁), + true als das zweite Zeichen (im Beispiel ☀) dargestellt. (Manche Unicode-Zeichen führen zu Fehlern; man kann sie – wie im nächsten Punkt beschrieben – als Text-Parameter meist dennoch verwenden.)
      • Mit zwei Unicode-Texten als Formatparameter (z. B. - B|Aus|Ein) wird false als der erste - (im Beispiel "Aus"), true als der zweite Text + B|Aus|Ein) wird false als der erste + (im Beispiel "Aus"), true als der zweite Text (im Beispiel "Ein") dargestellt. Die Texte dürfen alle Sonderzeichen mit Ausnahme von geschweiften Klammern - ({ und }), Doppelpunkt (:), - Gleichheitszeichen (=) und senkrechtem Strich - (|) enthalten, also auch Leerzeichen. + ({ und }), Doppelpunkt (:), + Gleichheitszeichen (=) und senkrechtem Strich + (|) enthalten, also auch Leerzeichen.
    • - I – Ganzzahl (Integer). Zu möglichen + I – Ganzzahl (Integer). Zu möglichen Formatparametern siehe im Abschnitt Textdarstellungen numerischer Werte weiter unten.
    • - F – Fließkommazahl (Number), ohne + F – Fließkommazahl (Number), ohne Gruppentrennzeichen (Tausendertrennzeichen) formatiert
      • @@ -480,13 +452,13 @@

        Datentyp und Formatierung

    • - N – Fließkommazahl (Number), mit dem + N – Fließkommazahl (Number), mit dem parametrierten Gruppentrennzeichen - (Tausendertrennzeichen) formatiert. Ansonsten wie F. + (Tausendertrennzeichen) formatiert. Ansonsten wie F.
    • - G – Fließkommazahl, formatiert ähnlich wie - F, jedoch mit zwei Abweichungen: + G – Fließkommazahl, formatiert ähnlich wie + F, jedoch mit zwei Abweichungen:
      • Die Format-Ziffer gibt nicht die Zahl der @@ -503,7 +475,7 @@

        Datentyp und Formatierung

        dargestellt.
      • - P – Fließkommazahl, als Prozentwert formatiert: + P – Fließkommazahl, als Prozentwert formatiert: 1.0 wird z. B. als "100.00%" dargestellt.
        • @@ -522,7 +494,7 @@

          Datentyp und Formatierung

      • - S - Variabler Text. Zu möglichen Formatparametern + S - Variabler Text. Zu möglichen Formatparametern siehe den Abschnitt Textersetzungen in Text-Platzhaltern weiter unten. @@ -538,7 +510,7 @@

        Textdarstellungen numerischer Werte

        Soll ein einzelner Zahlenwert auf einen Text abgebildet werden so folgt die Zuweisung dieser Form:
        -     [Wert=][Text]
        +     [Wert=][Text]
        Darin ist Wert eine Dezimalzahl, bei der ggf. als Dezimaltrennzeichen ein Komma (,) vor den Nachkommastellen steht. Gruppentrennzeichen (Tausendertrennzeichen) dürfen @@ -549,12 +521,12 @@

        Textdarstellungen numerischer Werte

        Um einen Wertebereich (Intervall) auf einen Text abzubilden, folgt die Zuweisung dieser Form:
        -     [[>]Wert]..[[<]Wert]=[Text]
        +     [[>]Wert]..[[<]Wert]=[Text]
        Dabei ist der erste Wert der untere Grenzwert des Intervalls, der zweite der obere.

        - Die optionalen Zeichen > bzw. < + Die optionalen Zeichen > bzw. < geben an, dass der Grenzwert selbst ausgeschlossen ist (also ein offenes Intervall festgelegt werden soll). Ohne sie ist der Grenzwert jeweils enthalten (geschlossenes Intervall). @@ -573,9 +545,9 @@

        Textdarstellungen numerischer Werte

        Text darf – wie schon bei Wahrheitswerten – alle Sonderzeichen mit Ausnahme von geschweiften Klammern - ({ und }), Doppelpunkt (:), - Gleichheitszeichen (=) und senkrechtem Strich - (|) enthalten, also auch Leerzeichen. Wenn ein Wert + ({ und }), Doppelpunkt (:), + Gleichheitszeichen (=) und senkrechtem Strich + (|) enthalten, also auch Leerzeichen. Wenn ein Wert oder Bereich angegeben ist, darf der Text auch leer sein, um die Ausgabe zu unterdrücken.

        @@ -584,22 +556,22 @@

        Beispiele

      • Den HVAC-Modus eines Raumtemperaturreglers (1 Byte, DPT 20.102) als Text ausgeben:
        -
        {HVAC-Modus:I|Auto|Komfort|Bereitschaft|Eco|Gebäudeschutz}
        +
        {HVAC-Modus:I|Auto|Komfort|Bereitschaft|Eco|Gebäudeschutz}
      • Die ganzzahlig in Grad gegebene meteorologische Windrichtung als Pfeilrichtung in 45°-Schritten ausgeben (0 Grad entspricht Nord; Werte steigen im Uhrzeigersinn, -1 bedeutet "unbestimmt, wechselnd"):
        -
        {Windrichtung(Grad):I|-1=↻|0..22=↓|23..67=↙|68..112=←|113..157=↖|158..202=↑|203..247=↗|248..292=→|293..337=↘|338..360=↓}
        +
        {Windrichtung:I|-1=↻|0..22=↓|23..67=↙|68..112=←|113..157=↖|158..202=↑|203..247=↗|248..292=→|293..337=↘|338..360=↓}
      • Eine in m/s als Fließkommazahl gegebene Windgeschwindigkeit umgerechnet nach Beaufort ausgeben:
        -
        {Windgeschwindigkeit(m/s):F|..<0,3=0|0,3..<1,54=1|1,54..<3,3=2|3,3..<5,47=3|5,47..<8=4|8..<10,8=5|10,8..<13,86=6|13,86..<17,17=7|17,17..<20,72=8|20,72..<24,48=9|24,48..<28,44=10|28,44..<32,6=11|32,6..=12}
        +
        {Windgeschwindigkeit(m/s):F|..<0,3=0|0,3..<1,54=1|1,54..<3,3=2|3,3..<5,47=3|5,47..<8=4|8..<10,8=5|10,8..<13,86=6|13,86..<17,17=7|17,17..<20,72=8|20,72..<24,48=9|24,48..<28,44=10|28,44..<32,6=11|32,6..=12}
      • OpenWeather-Wettercode als Unicode-Piktogramm ausgeben:
        -
        {Wettercode:I|210..211=🌩|200..299=⛈|500..504=🌦|300..599=🌧|600..699=🌨|771..781=🌪|700..799=🌫|800=☼|801=🌤|802=⛅|803=🌥|804=☁}
        +
        {Wettercode:I|210..211=🌩|200..299=⛈|500..504=🌦|300..599=🌧|600..699=🌨|771..781=🌪|700..799=🌫|800=☼|801=🌤|802=⛅|803=🌥|804=☁}
        Die Bereichsüberschneidungen sind beabsichtigt: Kleinere Bereiche für spezielle Piktogramme stehen vor größeren Bereichen mit allgemeineren Piktogrammen. Die Spezialfälle haben dadurch Vorrang, @@ -618,10 +590,10 @@

        Textersetzungen in Text-Platzhaltern

        Die einzelnen Textersetzungen haben dabei folgende Form:
        -     Originaltext=[Ersetzungstext]
        +     Originaltext=[Ersetzungstext]
        Die Texte dürfen alle Sonderzeichen mit Ausnahme von geschweiften - Klammern ({ und }), Doppelpunkt (:), - Gleichheitszeichen (=) und senkrechtem Strich (|) + Klammern ({ und }), Doppelpunkt (:), + Gleichheitszeichen (=) und senkrechtem Strich (|) enthalten, also auch Leerzeichen und Unicode-Zeichen. Der Originaltext muss mindestens ein Zeichen umfassen. Der Ersetzungstext darf auch leer sein. @@ -637,8 +609,10 @@

        Textersetzungen in Text-Platzhaltern

        Beispiel

        Den Wetterkurztext eines Internet-Wetterdienstes als Unicode-Piktogramm - ausgeben:
        -

        {cond:S|sunny=☀️|partly cloudy=⛅|cloudy=☁️|rainy=🌧|snowy=❄️|thunderstorm=🌩️}
        + ausgeben: +

        +
        {cond:S|sunny=☀️|partly cloudy=⛅|cloudy=☁️|rainy=🌧|snowy=❄️|thunderstorm=🌩️}
        +

        Für das gewünschte Verhalten ist es wichtig, dass die Ersetzung von "partly cloudy" vor der für "cloudy" steht.

        @@ -654,13 +628,13 @@

        Anwendungsbeispiel

        Die verwendete Formatvorlage ist: -

        {Bedarf:B|⚪|🔴} ({BedarfSeit:S}) | {Pumpe:B⋅✇} | ▲{TvsIst:N0}/{TvsSoll:N0}°C | ▽{TrsIst:N0}°C

        +
        {Bedarf:B|⚪|🔴} ({BedarfSeit:S}) | {Pumpe:B⋅✇} | ▲{TvsIst:N0}/{TvsSoll:N0}°C | ▽{TrsIst:N0}°C

        Sechs Eingangsgrößen verschiedener Typen und (sehr wenig) Festtext setzen den Ausgabetext zusammen. Dieser zeigt – durch senkrechte Striche getrennt – die folgenden Daten: -

        +

        • Ob Heizwärmebedarf vorliegt (🔴) oder nicht (⚪) und seit wann @@ -679,8 +653,8 @@

          Anwendungsbeispiel

        Der fertig formatierte Ausgabetext sieht dann z. B. so aus: -

        🔴 (6:35) | ✇ | ▲42/43°C | ▽38°C

        +
        🔴 (6:35) | ✇ | ▲42/43°C | ▽38°C

        Eine Kachel (Statusanzeige Text) der X1-Visualisierung kann so kompakt und übersichtlich alle Kenngrößen des Heizkreises anzeigen. diff --git a/VisuWebNodes/help/XmlJsonParser.html b/VisuWebNodes/help/XmlJsonParser.html index 6d42294..fcc54df 100644 --- a/VisuWebNodes/help/XmlJsonParser.html +++ b/VisuWebNodes/help/XmlJsonParser.html @@ -15,14 +15,14 @@

          XML/JSON-Parser

        Beschreibung

        - +

        Dieser Baustein extrahiert aus einem XML- oder JSON-Datensatz am Eingang anhand einer oder mehrerer @@ -48,15 +48,9 @@

        Eingänge

    -

    Bezeichnung

    -
    -

    Porttyp

    -
    -

    Beschreibung

    -
    BezeichnungPorttypBeschreibung
    @@ -82,15 +76,9 @@

    Ausgänge

    -

    Bezeichnung

    -
    -

    Porttyp

    -
    -

    Beschreibung

    -
    BezeichnungPorttypBeschreibung
    @@ -108,8 +96,8 @@

    Beschreibung

    Sollte die Eingabe benannte HTML-Zeichen (HTML entities) enthalten, so werden - diese in Ausgabetexten dekodiert. (z. B. wird &auml; zu - ä). + diese in Ausgabetexten dekodiert. (z. B. wird &auml; zu + ä).

    Ausgabewerte konvertieren bei Weitergabe an nachfolgende Eingänge automatisch @@ -144,18 +132,10 @@

    Parameter

    -

    Bezeichnung

    -
    -

    Porttyp

    -
    -

    Als Eingang zuschaltbar?

    -
    -

    Beschreibung

    -
    BezeichnungPorttypAls Eingang zuschaltbar?Beschreibung
    diff --git a/VisuWebNodes/help/default.css b/VisuWebNodes/help/default.css index cb3b8dd..c667ea6 100644 --- a/VisuWebNodes/help/default.css +++ b/VisuWebNodes/help/default.css @@ -117,7 +117,7 @@ h3 { h4 { font-family: Arial; - font-size: 14px; + font-size: 13px; line-height: 15px; margin: 2px 0 4px 0; padding: 2px 0 3px 0; @@ -199,17 +199,25 @@ td { table.Tabelle_Logicnode { width: 100%; max-width: 900px; - margin: 0 0 8px 0; + margin: 8px 0 8px 0; } table.Tabelle_Logicnode th { + font-family: Arial; + font-size: 15px; + line-height: 20px; text-align: left; - vertical-align: top; - padding: 0 4px 2px 4px; + vertical-align: baseline; + padding: 6px 4px 8px 4px; border-bottom: 1px solid #cccccc; border-right: none; } + table.Tabelle_Logicnode th.small { + font-size: 13px; + line-height: 16px; + } + table.Tabelle_Logicnode td { vertical-align: top; padding: 0 4px 0 4px; @@ -218,11 +226,13 @@ table.Tabelle_Logicnode { } table.Tabelle_Logicnode td.group { - vertical-align: top; - padding: 0 4px 0 4px; border-bottom: none; } + table.Tabelle_Logicnode td.group p { + margin: 6px 0 2px 0; + } + img { border: none; margin: 0 0 0 0; diff --git a/VisuWebNodes/help/update.html b/VisuWebNodes/help/update.html deleted file mode 100644 index e6a23d9..0000000 --- a/VisuWebNodes/help/update.html +++ /dev/null @@ -1,143 +0,0 @@ - - - - - Recomedia Visu- & Web-Logikbausteine - Hilfe - Textformatierer - - - - -
    - Recomedia Visu- & Web-Logikbausteine - Hilfe -
    -
    -
    - -

    Textformatierer

    -

    Anleitung zum Update von Versionen vor 0.9.x

    -

    Einleitung

    -

    - Wer bisher nicht den Textformatierer-Baustein in einer - Version vor 0.9.x verwendet hat, benötigt diese Update-Anleitung - nicht. -

    -

    - Die vorliegende Baustein-Version hat durch die Unterstützung von - mehreren Ausgängen und Formatvorlagen andere interne Namen für die - Ausgänge und Formatvorlagen. (Versionen vor 0.8.0 haben zudem eine - andere Platzhalter-Syntax.) Nichtbeachtung der folgenden Anleitung - führt deshalb zu -

    -
      -
    • - Verlust von Formatvorlagen, Ausgängen und Eingängen, und daraus - folgend zu -
    • -
    • - inkonsistenten Verbindungen zu nicht mehr existierenden Ein- und - Ausgängen, die weder angezeigt noch gelöscht werden können -
    • -
    • - und daher nicht mehr benutzbaren Logikblättern und - Projekten! -
    • -
    -

    Update Schritt für Schritt

    -

    - Um Probleme und Datenverluste zu vermeiden, beim Update bitte - genau wie folgt vorgehen: -

    -

    Play it safe – Backup und Dokumentation

    -
      -
    • - Das Projekt duplizieren und die Kopie des Projekts öffnen; - darin den Logik-Editor öffnen. -
    • -
    • - Für alle vorhandenen Textformatierer-Bausteinen auf allen - Logikblättern die vorhandenen Verbindungen an den Ein- und - Ausgängen dokumentieren (z. B. durch Bildschirmfotos). -
    • -
    • - Die Formatvorlagen aus den Eingabefeldern der - Baustein-Eigenschaften in einen Texteditor kopieren. -
    • -
    • - Falls die Formatvorlagen noch die alte Syntax mit \\ als - Platzhalterbegrenzung verwenden: Im Texteditor an die - neue Syntax - mit geschweiften Klammern ({}) anpassen. Dazu im einfachsten - Fall -
        -
      • - Den Rückwärts-Schrägstrich (\) am Anfang jedes - Platzhalters durch {: ersetzen
      • -
      • - Den Rückwärts-Schrägstrich (\) am Ende jedes - Platzhalters durch } ersetzen -
      • -
      - Die neue Syntax erlaubt, jedem Eingang einen sprechenden Namen - zu geben. Dieser steht ggf. zwischen der öffnenden geschweiften - Klammer ({) und dem Doppelpunkt (:) am Anfang des Platzhalters.
      -   Beispiel: Aus (alt) \P1\ wird (neu) {Stellgröße:P1} -
    • -
    -

    Projektkopie aktualisieren

    -
      -
    • - Bei allen vorhandenen Textformatierer-Bausteinen auf allen - Logikblättern die Verbindungen aller Ein- und Ausgänge löschen. -
    • -
    • - Erst wenn sicher keine Ein- und Ausgänge mehr angeschlossen sind: - Mit "Logikbausteine hinzufügen" die neue Version in den GPA - importieren und die "Logikbausteine aktualisieren". -
    • -
    • - Im Dialog den Update bestätigen. (Das Projekt schließt sich.) -
    • -
    • - Die Kopie des Projekts und darin den Logik-Editor erneut öffnen. -
    • -
    • - Alle Logikblätter, die Textformatierer-Bausteine enthalten, erneut - öffnen. (Die Formatvorlagen und Eingänge sind verschwunden.) -
    • -
    • - Die Formatvorlage in neuer Syntax aus dem Texteditor ins - entsprechende Eingabefeld der Baustein-Eigenschaften kopieren. - Wenn die Syntax richtig ist, erscheinen die Eingänge wieder - (möglicherweise mit anderen Namen). -
    • -
    • - Die vorher dokumentierten Verbindungen aller Ein- und Ausgänge - wieder herstellen. -
    • -
    • - Wenn alle Logikblätter aktualisiert worden sind, das Projekt - auf Fehler prüfen und ggf. nacharbeiten. -
    • -
    -

    - Sollte dieses Vorgehen nicht zum gewünschten Erfolg führen – - oder gar zu Logikblättern, die sich nicht mehr öffnen lassen – - dann sind sehr wahrscheinlich Ein- oder Ausgänge vergessen worden, - die nach dem Update verwaiste – nicht darstellbare und nicht - löschbare – Verbindungen haben. Dann hilft nur: Diese Anleitung - nochmal von vorne abarbeiten, und diesmal wirklich keinen - einzigen Baustein und keine einzige Verbindung - vergessen. -

    -
    -
    - - -