UPGRADE IP 9 verfügbar!
Timberwolf VISU jetzt mit NEUEM Layout Editor
Freie Anordnung, Reihenfolge und Größe der Widgets - viele weitere Verbesserungen
Infos im Wiki: https://elabnet.atlassian.net/l/cp/06SeuHRJ

NEU! Insider & Leistungsmerkmale FÜR ALLE freigeschaltet
Damit kann nun jeder das Upgrade vornehmen und VISU & IFTTT testen. Alle Info hier: viewtopic.php?f=8&t=5074

LE: Ideen für Sensorausfall-Überwachung

Informationen und Diskussionen über Logik-Engine und Logik-Editor
Forumsregeln
  • Denke bitte an aussagekräftige Titel und gebe dort auch die [Firmware] an. Wenn ETS oder CometVisu beteiligt sind, dann auch deren Version
  • Bitte mache vollständige Angaben zu Deinem Server, dessen ID und dem Online-Status in Deiner Signatur. Hilfreich ist oft auch die Beschreibung der angeschlossener Hardware sowie die verwendeten Protokolle
  • Beschreibe Dein Projekt und Dein Problem bitte vollständig. Achte bitte darauf, dass auf Screenshots die Statusleiste sichtbar ist
  • Bitte sei stets freundlich und wohlwollend, bleibe beim Thema und unterschreibe mit deinem Vornamen. Bitte lese alle Regeln, die Du hier findest: https://wiki.timberwolf.io/Forenregeln

Ersteller
Robosoc
Reactions:
Beiträge: 1876
Registriert: Di Okt 09, 2018 9:26 am
Hat sich bedankt: 635 Mal
Danksagung erhalten: 775 Mal

LE: Ideen für Sensorausfall-Überwachung

#1

Beitrag von Robosoc »

Ich arbeite gerade an einem universellen Raumtemperaturregler in einer Custom Logik (werde ich gleich gesondert auch posten). In der Logik möchte ich Überwachen ob Temperatur-Telegramme ausfallen und dann einen boolschen Alarmausgang beschalten (Anwendungsfall Sensorausfall).

Im Moment überwache ich das mit

Code: Alles auswählen

["Monoflop","$VAR<TempIn!>",0,"$internStatus","$watchdogTime",1],
So lange ich nur den einen, ersten Temperatur-Sensorwert verwende, den

Code: Alles auswählen

"$VAR<TempIn!>"
erstellt, funktioniert es.
Parametriere ich in dem Logikzelle jedoch einen zweiten Temp-Eingang, kann ich die Logik aufgrund eines Fehlers nicht mehr starten.

Hat jemand eine Idee, warum? Und wie ich es umgehen kann.
VG, Sven - TWS 950Q ID:335 & 291, VPN offen, Reboot OK

StefanW
Elaborated Networks
Reactions:
Beiträge: 9689
Registriert: So Aug 12, 2018 9:27 am
Wohnort: Frauenneuharting
Hat sich bedankt: 4831 Mal
Danksagung erhalten: 7633 Mal
Kontaktdaten:

#2

Beitrag von StefanW »

Hallo Sven,

wunderbar.

Da am Ende des Tages alles ausfallen kann, ist es sehr wichtig, dass Regelungen nicht gegen einen Anschlag (alles auf oder alles zu) fahren, nur weil ein Sensor ausgefallen ist.


Vorschläge:

- Bei Heizungen kann man sich bei Ausfall eines Sensors auch der Werte aus anderen Räumen bedienen, es ist - wenn nicht gerade das Fenster auf ist - meist kein großer Unterschied - oder dem Mittelwert aller Werte. (d.h. man hat eine Logik, welche die Mittelwerte berechnet und diese als "Not-Ist-Temperatur" dem eigentlichen RTR zur Verfügung stellt, für den Fall, das vom eigentlich Ist-Wert kein Datum mehr kommt.

- Bei bei Ausfall aller Sensoren könnte man bei Heizungen - als eine Art Notprogramm - den Mittelwert der Ventilstellungen der letzten Tage senden


lg

Stefan
Stefan Werner
Product Owner für Timberwolf Server, 1-Wire und BlitzART
Bitte WIKI lesen. Allg. Support nur im Forum. Bitte keine PN
Zu Preisen, Lizenzen, Garantie, HW-Defekt an service at elabnet dot de

Link zu Impressum und Datenschutzerklärung oben.
Benutzeravatar

773H
Reactions:
Beiträge: 428
Registriert: Mo Okt 15, 2018 9:24 pm
Hat sich bedankt: 103 Mal
Danksagung erhalten: 208 Mal

#3

Beitrag von 773H »

StefanW hat geschrieben: So Sep 15, 2019 8:09 am auch der Werte aus anderen Räumen bedienen, es ist - wenn nicht gerade das Fenster auf ist...
... oder die Tür zu!
TWS 2500 ID:677, PBM ID:495 & ID:632, TWS 2500 ID:574, TWS 2500 ID:220, PBM ID:1022, VPN offen, Neustart kein Problem

S. Kolbinger
Elaborated Networks
Reactions:
Beiträge: 588
Registriert: Mi Aug 15, 2018 11:34 am
Hat sich bedankt: 82 Mal
Danksagung erhalten: 558 Mal

#4

Beitrag von S. Kolbinger »

Hi Sven,
Robosoc hat geschrieben: So Sep 15, 2019 7:33 am Hat jemand eine Idee, warum? Und wie ich es umgehen kann.
Die VAR<...!?> Darstellung ist ein Platzhalter für eine Reihe mehrerer Levels.
Und das klappt nur richtig an Stellen, an denen eine variable Anzahl von Levels angeben werden kann.
Wie z.B. beim Statistic Modul: ein Array mit beliebig vielen Eingängen:
["Statistic",["$VAR<TempIn!>"],0,0,"$Controlled",0]

Das Modul Monoflop erwartet keine variable Anzahl von Levels. Darum geht das hier nicht.
["Monoflop","$Trigger","$Reset","$State","$Time",1]

Aber es kommt noch schlimmer:
Als Trigger wird ein Boolscher Wert erwartet, also nur True/False.
Wenn du hier einen Float-Wert verwendet, kommt es zu einer impliziten Typumwandlung, d.h. der Wert 0.0 wird zu False und alles ungleich 0.0 wird zu True.
Mit anderen Worten, deine Sensorausfall-Überwachung funktioniert so nicht.

Eine einfache Überwachung, die nur auswertet, ob irgendein Wert die Logik regelmäßig triggert wäre folgende:
["Monoflop","$KonstTrue",0,"$internStatus","$watchdogTime",1] // mit $KonstTrue fest auf true

Dann würde der Watchdog zuschlagen wenn eine "$watchdogTime" lange kein Trigger die Logik angestoßen hat.
Gruß,
Stefan K.

Ersteller
Robosoc
Reactions:
Beiträge: 1876
Registriert: Di Okt 09, 2018 9:26 am
Hat sich bedankt: 635 Mal
Danksagung erhalten: 775 Mal

#5

Beitrag von Robosoc »

Alles klar, danke für die ausführliche Antwort.
Vollständig verstanden.

@Robert_Mini : Ich glaube die Antwort kann Teil des KB-Kapitel 4.6.6 werden, also im Abschnitt zu Monoflop...was meinst Du?
VG, Sven - TWS 950Q ID:335 & 291, VPN offen, Reboot OK

Ersteller
Robosoc
Reactions:
Beiträge: 1876
Registriert: Di Okt 09, 2018 9:26 am
Hat sich bedankt: 635 Mal
Danksagung erhalten: 775 Mal

#6

Beitrag von Robosoc »

@S. Kolbinger
Hallo Stefan,

kann man
A) mit irgendeinem Baustein auswerten, wieviele Levels ein Anwender einer flexiblen Variable angelegt hat
z.B.

Code: Alles auswählen

["Count_Var","$VAR<TempIn!>"]
und

B) kann man gezielt eine Variable aus einem solchen Array auslesen?
z.B.

Code: Alles auswählen

"$VAR<TempIn!><0>"
VG, Sven - TWS 950Q ID:335 & 291, VPN offen, Reboot OK

S. Kolbinger
Elaborated Networks
Reactions:
Beiträge: 588
Registriert: Mi Aug 15, 2018 11:34 am
Hat sich bedankt: 82 Mal
Danksagung erhalten: 558 Mal

#7

Beitrag von S. Kolbinger »

Hallo Sven,

leider nein!
Das "$VAR<...!?>"-Konstrukt ist nur für gleichartige, austauschbare Levels gedacht, bei denen die Reihenfolge egal ist.
Aber bei der Auswahl eines bestimmten Levels könntest du evtl. über einen Mutliplexer gehen. Dafür sollte aber die Anzahl der Eingänge bekannt sein.
Gruß,
Stefan K.

Ersteller
Robosoc
Reactions:
Beiträge: 1876
Registriert: Di Okt 09, 2018 9:26 am
Hat sich bedankt: 635 Mal
Danksagung erhalten: 775 Mal

#8

Beitrag von Robosoc »

Ja, das war auch schon meine Idee. Ich überlege mir mal was.
VG, Sven - TWS 950Q ID:335 & 291, VPN offen, Reboot OK

Ersteller
Robosoc
Reactions:
Beiträge: 1876
Registriert: Di Okt 09, 2018 9:26 am
Hat sich bedankt: 635 Mal
Danksagung erhalten: 775 Mal

#9

Beitrag von Robosoc »

Ich hätte glaube ich eine Idee, wie man Sensorausfälle über fehlende Telegramme auch bei variablen Levels umsetzen könnte. Aber das wird eine ziemliche Bausteinschlacht aus

Polynom, Statsistic, Ratio, Monoflop oder Stopuhr, Counter und AND's (also recht viele integer und float operationen). Dazu kommen ja ohnehin noch die PID Regler, Limiter, Polynom Bausteine aus dem Skalierten PID-Baustein von S. Kolbinger.
Wenn man sowas dann x mal (in meinem Fall vermutlich >22x) ausführt, würdet Ihr dann erwarten, dass ich damit schon nennenswert Leistung meines TWS verbrauche?

Andere Frage:
Ist durch Euch eine in der LE auswertbare Fehlererkennung von 1-wire Sensoren konkret geplant? Dann würde ich mir eine Umsetzung im LE jetzt sparen, weil ich damit zu 95% 1-wire Sensoren überwachen wollen würde.
VG, Sven - TWS 950Q ID:335 & 291, VPN offen, Reboot OK

Robert_Mini
Reactions:
Beiträge: 3741
Registriert: So Aug 12, 2018 8:44 am
Hat sich bedankt: 1164 Mal
Danksagung erhalten: 2058 Mal

#10

Beitrag von Robert_Mini »

Willst du auch den Fall erkennen, dass der „teildefekte“ Sensor falsche Werte weiterschickt?

Ansonsten Sensoren alle 10min zyklisch Senden und mit pegelgetriggerten Timer kombinieren. Dabei am Eingang ein “in Bereich” => macht die float => bool Umwandlung und zusätzliche Plausibilisierung!

Hab ich was übersehen?

Lg
Robert
Timberwolf Server 2500 / #117 (VPN offen + reboot nach Rückfrage) / zusätzlich: 3500M/#935, 3500L/#1297
Antworten

Zurück zu „Logikengine & Logik-Editor“