|
|
Tixi.ComDas User-Forum |
|
|
Seite 1 von 1
|
[ 6 Beiträge ] |
|
Autor |
Nachricht |
Tixi-Support
|
Verfasst: Do Okt 27, 2005 2:04 pm |
|
Registriert: Mo Jul 11, 2005 5:50 pm Beiträge: 1351 Wohnort: Berlin
|
radprax hat geschrieben: - Event wird erst ausgelöst, wenn Flanke time Sekunden lang auf low liegt und dann auf high geht
Ah, großes Sorry ! War ein Denkfehler meinerseits. Sie benötigen ja eine "Ausschaltverzögerung", also D_OFF statt _ON !
Ihre PV müsste natürlich lauten:
<Melder>
<Value>
<LDN _="/Process/C42/I/P0"/>
<D_OFF time="30s"/>
</Value>
</Melder>
Die können den Zustand der PV manuell prüfen:
[<Get _="/Process/PV/Melder" ver="y"/>]
Im Normalfall, d.h. Eingang nicht geschlossen, müsste die Get-Abfrage eine "1" liefern.
Sobald der Eingang geschlossen wird (auch nur kurz!), liefert die Get-Abfrage eine "0"....und diese bleibt für 30s anliegen.
Dadurch, daß der EventState diesen Wechsel auf "0" überwacht, wird der Alarm nur einmal in 30s ausgelöst.
_________________ Tixi Support Team
E-Mail-Support, Mo-Fr, 9:00 - 17:00: Tixi-Support@tixi.com
techn. Hotline, Mo-Fr, 9:00 - 12:00 und 13:00 - 17:00: 0900-100 90 11 für 2€/min
|
|
|
|
|
radprax
|
Verfasst: Do Okt 27, 2005 1:15 pm |
|
Registriert: Mi Aug 17, 2005 12:11 pm Beiträge: 22 Wohnort: Wuppertal
|
Entschuldigung, ich hatte tatsächlich vergessen, die Flanke zu definieren.
Es funktioniert leider trotzdem noch nicht. Ich nehme an, weil meine Konfiguration eine andere ist als angenommen. Schade, die Idee mit der Ausschaltverzögerung ist wirklich gut.
Originalsituation :
- Prozeßvariable wird mit LDN geladen (nicht LD)
- Eventstate ohne Flankenangabe definiert
Ergebnis Originalsituation :
- Event wird ausgelöst, wenn Flanke auf low geht, Prozeßvariable somit True
neue Situation :
- Prozeßvariable wird weiterhin mit LDN geladen, aber gefolgt von einem D_ON(time)
- Eventstate ist nun mit Flankenangabe low definiert
Ergebnis neue Situation :
- Event wird erst ausgelöst, wenn Flanke time Sekunden lang auf low liegt und dann auf high geht
Der Sensor erzeugt also kein Event mehr, da die Signalzeit zu kurz ist. Ich muß den Eingang nun manuell time Sekunden lang schließen und dann wieder öffnen, um das Event auszulösen.
Leider kann ich die Lösung nicht an meine Konfiguration anpassen, so daß sie funktioniert, weil ich diesen Lösungsweg noch nicht verstehe.
_________________ Hardware : HG27 + XP84D
Firmware : 2.1.15.0
Software : Tico 1.2.4.0
|
|
|
|
|
Tixi-Support
|
Verfasst: Do Okt 27, 2005 11:58 am |
|
Registriert: Mo Jul 11, 2005 5:50 pm Beiträge: 1351 Wohnort: Berlin
|
radprax hat geschrieben: Habe ich jetzt ausprobiert, funktioniert leider nicht. Ich habe den bisherigen Code ... durch ... ersetzt, mit dem Ergebnis, daß gar kein Event mehr ausgelöst wurde.
Haben Sie auch, wie in meinem Beispiel angegeben, im EventState die Flanke "low" definiert ? Sonst funktioniert das ganze nämlich nicht wie gewollt. radprax hat geschrieben: Vielleicht habe ich mich mißverständlich ausgedrückt.
Mit D_ON kann man doch nur definieren, wie lang das neue Signal nach einem Flankenwechsel bestehen muß, damit ein Event ausgelöst wird.
Nein, ich habe Ihr Problem schon verstanden. D_ON und D_OFF sind Ein- und Ausschaltverzögerungen. Sie hatten nur die "Einschaltverzögerung" angesprochen, bei dieser wird ein Signal erst nach einer geweissen Zeit als "TRUE" angenommen.
Mein Beispiel ergibt aber durch das LDN eine "Ausschaltverzögerung", d.h. das Signal wird sofort als "TRUE" angenommen, fällt aber erst nach einer gewissen Zeit wieder auf "FALSE" zurück.
_________________ Tixi Support Team
E-Mail-Support, Mo-Fr, 9:00 - 17:00: Tixi-Support@tixi.com
techn. Hotline, Mo-Fr, 9:00 - 12:00 und 13:00 - 17:00: 0900-100 90 11 für 2€/min
|
|
|
|
|
radprax
|
Verfasst: Do Okt 27, 2005 11:52 am |
|
Registriert: Mi Aug 17, 2005 12:11 pm Beiträge: 22 Wohnort: Wuppertal
|
Habe ich jetzt ausprobiert, funktioniert leider nicht.
Ich habe den bisherigen Code
<Melder>
<Value>
<LDN _="/Process/C42/I/P0"/>
</Value>
</Melder>
durch
<Melder>
<Value>
<LDN _="/Process/C42/I/P0"/>
<D_ON time="30s"/>
</Value>
</Melder>
ersetzt, mit dem Ergebnis, daß gar kein Event mehr ausgelöst wurde. Ich habe innerhalb von mehreren Minuten den Sensor immer wieder ausgelöst. Bei den eingebenen 30 Sekunden, hätte ich also zumindest ein Event im Log finden müssen.
Vielleicht habe ich mich mißverständlich ausgedrückt.
Mit D_ON kann man doch nur definieren, wie lang ein Signal anliegen muß, damit ein Event ausgelöst wird. In diesem Fall müßte also P0 30 Sekunden lang geschlossen sein, damit das Event ausgelöst wird. Da der Sensor P0 aber immer nur für ein, zwei Sekunden schließt, bringt die Ladeverzögerung nicht das gewünschte Ergebnis.
Angenommen der Zeitverlauf sieht z.B. so aus :
t (s) | Signal
--------------
01 | high
02 | high
03 | low
04 | low
05 | high
06 | high
07 | high
08 | low
09 | low
10 | high
Flanke low liegt also nur sehr kurz an und sorgt dafür, daß bei t = 3 Sekunden und t = 8 Sekunden Event E ausgelöst wird.
Ziel soll nun sein, daß E zwar bei t(3) ausgelöst wird, aber nicht bei t(8), sondern z.B. erst wieder bei t(3 + 300) (5 Minuten später).
Daher die resourcenbelastende Idee mit dem Minutenzähler.
Alternativen ?
_________________ Hardware : HG27 + XP84D
Firmware : 2.1.15.0
Software : Tico 1.2.4.0
Zuletzt geändert von radprax am Do Okt 27, 2005 12:00 pm, insgesamt 2-mal geändert.
|
|
|
|
|
Tixi-Support
|
Verfasst: Do Okt 27, 2005 10:38 am |
|
Registriert: Mo Jul 11, 2005 5:50 pm Beiträge: 1351 Wohnort: Berlin
|
radprax hat geschrieben: Angenommen ein Event E wird durchschnittlich jede Minute ein Mal ausgelöst. Dann möchte ich verhindern, daß dieses Event abgearbeitet wird, wenn innerhalb der letzten 5 min. wegen E schon ein Mal eine Alarmmeldung versendet wurde.
Da gibt es m.E. tatsächlich eine einfachere Lösung, die das System auch nicht unnötig belastet, und zudem mit der Firmware 2.0.0.0 funktioniert:
Nehmen wir an, Eingang P0 soll der Alarm-Trigger bei Flanke "low" (Eingang geschlossen) sein.
Wenn der Alarm eintritt, soll für die nächsten 5 Minuten ein erneuter doppelter Flankenwechsel an P0 keinen weiteren Alarm auslösen.
Dazu verwenden Sie einen EventState, der nicht direkt den Eingang P0 adressiert, sondern diesen in einer ProzessVariable (Flanke "low" !) mit Einschaltverzögerung lädt:
Der EventState:
<Alarm_1>
<Event _="Alarm_1"/>
<ProcessVar _="/Process/PV/Alarm_1_ProcVar" flank="low"/>
<Enabled _="TRUE"/>
</Alarm_1>
Die Prozessvariable (im Normalbetrieb "1", im Alarmfall bleibt sie 5min auf "0"):
<Alarm_1_ProcVar>
<Value>
<LDN _="MB/IO/I/P0"/>
<D_ON time="5m"/>
</Value>
</Alarm_1_ProcVar>
_________________ Tixi Support Team
E-Mail-Support, Mo-Fr, 9:00 - 17:00: Tixi-Support@tixi.com
techn. Hotline, Mo-Fr, 9:00 - 12:00 und 13:00 - 17:00: 0900-100 90 11 für 2€/min
|
|
|
|
|
radprax
|
Verfasst: Do Okt 27, 2005 8:02 am |
|
Registriert: Mi Aug 17, 2005 12:11 pm Beiträge: 22 Wohnort: Wuppertal
|
Ich möchte das Abarbeiten eines Events verhindern, wenn es vor kurzer Zeit schon mal ausgelöst wurde.
Angenommen ein Event E wird durchschnittlich jede Minute ein Mal ausgelöst. Dann möchte ich verhindern, daß dieses Event abgearbeitet wird, wenn innerhalb der letzten 5 min. wegen E schon ein Mal eine Alarmmeldung versendet wurde.
Effektiv möchte ich also erreichen, daß maximal alle 5 Minuten durch E ein Alarm versendet wird und nicht öfters.
Dazu habe ich folgende Idee :
- es gibt einen Zähler Z5 für die 5-Minuten-Intervalle
- es gibt einen Zähler Z0 als Hilfszähler
- Z5 wird mit 1 initialisiert
- Z0 wird mit 0 initialisiert
- per Scheduler wird Z5 alle 5 Minuten um 1 erhöht
Tritt nun E ein, wird folgendes abgearbeitet :
- prüfe, ob Z5 > Z0
- falls ja, setze Z0 = Z5 und versende den Alarm
- falls nein, tue nichts
Es wird also immer geprüft, ob schon 5 Minuten seit dem letzten Mal (Z0) vergangen sind.
Ich hoffe, ich bekomme das so umgesetzt.
Gibt es eine andere / leichtere / elegantere Lösung ?
_________________ Hardware : HG27 + XP84D
Firmware : 2.1.15.0
Software : Tico 1.2.4.0
|
|
|
|
|
|
|
Seite 1 von 1
|
[ 6 Beiträge ] |
|
Mitglieder in diesem Forum: 0 Mitglieder und 3 Gäste |
|
|
|
Du darfst keine neuen Themen in diesem Forum erstellen. Du darfst keine Antworten zu Themen in diesem Forum erstellen. Du darfst deine Beiträge in diesem Forum nicht ändern. Du darfst deine Beiträge in diesem Forum nicht löschen. Du darfst keine Dateianhänge in diesem Forum erstellen.
|
|
|