Wenn dein Problem oder deine Frage geklärt worden ist, markiere den Beitrag als "Lösung",
indem du auf den "Lösung" Button rechts unter dem entsprechenden Beitrag klickst. Vielen Dank!
18.07.2011, 14:31 (Dieser Beitrag wurde zuletzt bearbeitet: 08.08.2011 10:43 von Blondchen.)
Ich habe ein Programm geschrieben, das u.a. Störungsmeldungen einer Anlage ausgeben kann. Nun habe ich diese Störungen in verschiedene Kategorien unterteilt und will, dass jeweils eine Lampe in der entsprechenden Farbe brennt - grün für alles in Ordnung, geld für Warnung und rot für Störung (soweit alles kein Problem).
Mein Problem ist folgendes:
Ich möchte, dass die Lampe nicht nur "an" ist, wenn das Problem direkt als Boolsches TRUE ansteht, sondern auch danach und zwar solange, bis ein Quittieren-Button gedrückt wurde.
Habe schon einiges mit verschiedenen Schaltverhalten usw. versucht, aber die zündende Idee blieb noch aus.
RE: Störungs soll bis zum Quittieren gemeldet werden
(18.07.2011 14:31 )Blondchen schrieb: Mein Problem ist folgendes:
Ich möchte, dass die Lampe nicht nur "an" ist, wenn das Problem direkt als Boolsches TRUE ansteht, sondern auch danach und zwar solange, bis ein Quittieren-Button gedrückt wurde.
Habe schon einiges mit verschiedenen Schaltverhalten usw. versucht, aber die zündende Idee blieb noch aus.
Hallo,
Im Prinzip müsste es doch reichen, sich den Zustand der Störung in einem Schieberegister zu merken und dann auf den Quittierbutton zu reagieren.
RE: Störungs soll bis zum Quittieren gemeldet werden
Hey!
Die Idee an sich ist wirklich gut, ich habe allerdings jetzt das Problem, dass ich die Signale so wie im angehängten Bild verarbeite. Ich lasse also abgleichen, ob das gesamte Array "FALSE" ist, wenn nicht, dann soll die Störungsmeldung erscheinen (dementsprechen deine Programmstruktur beginnen). Könntest du mir da vielleicht nochmals helfen mit dem Anschluss?
RE: Störungs soll bis zum Quittieren gemeldet werden
Hallo Blondchen,
soweit ich das Problem verstehe musst du das boolsche Array das aus deinem Soll/Ist-Vergleich bekommst, mit einem Array-Und oder mit einem Array-Oder verrechnen. So bekommst du einen (Fehler-)Zustand für alle boolschen Werte.
Das Array-Und wird nur TRUE, wenn wirklich alle Werte im Array TRUE sind.
Das Array-Oder wird schon TRUE, wenn mindestens 1 Wert im Array TRUE ist.
Hoffe das hilft.
Erik Brenncke
18.07.2011, 15:48 (Dieser Beitrag wurde zuletzt bearbeitet: 18.07.2011 15:50 von NWOmason.)
RE: Störungs soll bis zum Quittieren gemeldet werden
(18.07.2011 15:23 )Blondchen schrieb: Ich lasse also abgleichen, ob das gesamte Array "FALSE" ist, wenn nicht, dann soll die Störungsmeldung erscheinen (dementsprechen deine Programmstruktur beginnen). Könntest du mir da vielleicht nochmals helfen mit dem Anschluss?
Wenn ich dich richtig verstanden habe, ist nur ausschlaggebend, ob irgendein Arrayelement 'True' ist. Dies kannst auch folgendermaßen erreichen:
Beste Grüße,
NWO
@edit: Erik war schneller
9 von 10 Stimmen in meinem Kopf sagen: Ich bin nicht verrückt,
die andere summt die Melodie von Tetris.
NI schrieb:To use the abort button is like using a tree to stop a car!
RE: Störungs soll bis zum Quittieren gemeldet werden
Hey,
ihr habt das richtig verstanden! Mein Problem war jetzt nur, die beiden Programmteile sinnvoll zusammenzufügen. Also zum einen den Vorschlag der Registerkarte von NWO und den Abgleich, der schon für ein FALSE im Array ein TRUE ausspuckt.
Aber wahrscheinlich ist es irgendein Mittelding aus allem, welches zum Ziel führt Hängt auch vom Rest deines Programmaufbaus ab, also, ob du z.B. schon eine Eventstruktur benutzt, usw...
Beste Grüße,
NWO
9 von 10 Stimmen in meinem Kopf sagen: Ich bin nicht verrückt,
die andere summt die Melodie von Tetris.
NI schrieb:To use the abort button is like using a tree to stop a car!
RE: Störungs soll bis zum Quittieren gemeldet werden
Hallo und guten Morgen!
Entschuldigt bitte, wenn ich mich ein wenig anstelle, aber das ist meine erste Event-Struktur, die ich verbaue und das natürlich mal wieder unter Zeitdruck.
Die Lösung von NWO ist ja eigentlich sehr gut, nur mein Hauptprogramm wird dadurch natürlich so abgebremst, dass es nur anspringt, wenn sich eine Änderung ergibt.
Ich wollte nun eigentlich so eine Struktur daraus machen, die ein paar Millisekunden auf ein Event wartet oder ein Drücken des Quittieren-Knopfs wartet und wenn nichts passiert die alten Werte, bzw. hier die anliegenden Störungen übernimmt.
Könnt ihr mir nochmal aus der Patsche helfen? Das wäre echt klasse!