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.10.2007, 11:32 (Dieser Beitrag wurde zuletzt bearbeitet: 08.12.2007 12:42 von jg.)
@achim: bei dir wird das event ausgelöst,wenn du auf den "OK" Button drückst,dann werden die Zahlen verglichen und wenn sie gleich sind,geht die LED an,richtig!?
Bei mir werden die einzelnen Bits eines 8Bit registers verglichen,hab das dann so gemacht,dass ich dann den ist-wert mit einem soll-wert vergleiche und wenn das der fall is,dann wird TRUE ausgegeben und die LED leuchtet! geht die LED an,dann soll ein event ausgelöst werden!
Sorry,für meine komplizierte bzw. lückenhafte erklärung...muss das erstma lernen,was so alles wichtig is damit ihr helfen könnt.
Hab das jetzt ma mit Case gemacht...hab aba noch folgendes Problem:
1. Kann ich die ganzen Caseschleifen ni in einer zusammenfassen
2. wenn ich das VI "LPT->Motor" starte,es gegen ein engschalter fährt,das jeweilige programm startet,dann wird "LPT->Motor" fortgeführt,wenn das andere Unterprogramm fertig is....wie kann ich das dann stoppen?
(VI LV 8.2)
Anzeige
18.10.2007, 12:46 (Dieser Beitrag wurde zuletzt bearbeitet: 18.10.2007 12:52 von Lucki.)
' schrieb:Oder unterliegst du dem folgenden Denk-Fehler: Das Schreiben der Property Node (Value Signaling) löst auf JEDEN Fall das "Value Change" Event aus, auch wenn du per Property Node sozusagen gar keine Wertänderung durchführst, da du den schon anliegenden Wert in die Variable schreibst.
Genau so ist es aber. Wenn ich, z.B. bei der Initialisierung, einen Ereignis auslösen möchte, dann beschreibe ich den Property Node "Value Signaling" mit der Lokalen Variablen desselben Elementes. Es findet dann das Ereignis "Wertänderung" ohne Wertänderung statt. Das Verhalten steht im Gegensatz zur Bedienung: Wenn ich mit Tastatur oder Maus am Element herumfummele. ohne das es letztlich zur Wertänderung kommt, findet kein Ereignis statt.
Edit: Entschuldigung, der Beitrag ist wahrscheinlich null und nichtig. Ich dachte zuerst, Du beschreibst den "Denk-Fehler", beim nochmaligen Lesen meine ich aber eher, Du beschreibst den wahren Sachverhalt, also genau das was ich auch geschrieben habe.
OK..also is es deiner meinung nach klar,dass mein event dann immer wieder ausgeführt wird!?und wie kann ich das problem denn nun mit nem event lösen,so wie ichs brauche?
Mit Case gehts ja erstma...muss doch aba och mit nem Event gehn!?
' schrieb:@achim: bei dir wird das event ausgelöst,wenn du auf den "OK" Button drückst,dann werden die Zahlen verglichen und wenn sie gleich sind,geht die LED an,richtig!?
Ich weiß nicht, was du willst...
Ich löse ein Event per Button aus, um überhaupt mal (demo-mäßig) nen Vergleich zu starten. Wenn dieser Vergleich (der auch programmatisch in ner Schleife passieren kann) erfolgreich ist, dann wird ein WEITERES EVENT ausgelöst, indem auf ValueSignaling der LED geschrieben wird! Und genau dieses zweite Event willst du doch erreichen, oder?
A.
"Is there some mightier sage, of whom we have yet to learn?"
"Opportunity is missed by most people because it is dressed in overalls and looks like work." (Thomas Edison)
18.10.2007, 13:49 (Dieser Beitrag wurde zuletzt bearbeitet: 08.12.2007 12:43 von jg.)
Jo..sorry...genau das 2. event auslösen brauch ich....habs ma so versucht wie du...aba geht irgendwie doch nicht..also wird immer ausgelöst....aber vielleicht steh ich ja blos auf dem schlauch und checks ma wieder ni...
Am besten machst du dir aber selber mal ein einfaches Beispiel, das dein Problem demonstriert...vielleicht findest du den Fehler dann auch selber!
Es geht jedenfall, wie du an meinem Beispiel siehst...
Ach so, noch was...du darfst auf "ValueSignaling" natürlich nur dann schreiben, wenn du wirklich was auslösen willst, also wenn die Lampe TRUE=AN sein soll. Auch wenn du nämlich ein FALSE schreibst, es also eigentlich keine Veränderung des Status gibt, detektiert der Eingang ValueSignaling trotzdem einen Schreibvorgang. Du schreibst halt dann ein False...aber du schreibst auf jeden Fall irgendwas!
Platzier den Knoten ValueSignaling mal in ne CaseStruktur im Case True und schließ den Eingang der CaseStruktur an dem Draht an, an dem auch ValueSignaling angeschlossen wird! Ich hab so das Gefühl, das dein Fehler dann behoben ist...
Gruss
Achim
"Is there some mightier sage, of whom we have yet to learn?"
"Opportunity is missed by most people because it is dressed in overalls and looks like work." (Thomas Edison)
Anzeige
18.10.2007, 15:20 (Dieser Beitrag wurde zuletzt bearbeitet: 08.12.2007 12:44 von jg.)
' schrieb:Mit Case gehts ja erstma...muss doch aba och mit nem Event gehn!?
Gezeigt hast Du es aber nicht. Ein richtig funktionierendes Beispiel mit Cases hätte jedem, der Dir hier helfen will eine ganz klare Auskunft gegeben was Du eigentlich willst. So bleibt es beim Herumrätseln.
Ich halte das Einführen von Ereignissstrukturen in Deinem Fall für für Krampf und würde bei den Cases bleiben.
Beispiel mit Anmerkungen siehe unten.
(VI LV 8.2)
19.10.2007, 07:28 (Dieser Beitrag wurde zuletzt bearbeitet: 08.12.2007 12:44 von jg.)
Jepp..so passt das wie du es gemacht hast,danke.war ich ja mit meinem Case Konzept nah dran..ürimaaa
@Achim:
Ich lad mal die SubVI´s hoch (nur eins von dem Endschlater,die anderen ergeben sich ja dann von selbst!),hoffe du verstehst es dann. Das Problem bei mir mit dem Value(Sign.) is,dass ich immer ein FALSE schreibe,wenn sich nix verändert,deswegen wurde das SubVI immer wieder ausgeführt....danke für die erläuterung!!
Bin echt begeistert von der Hilfe hier....supii!
Achja....jetzt hab ich noch das Problem bei Lukis VI,dass ich das Programm immer neu starten muss um den motor zu starten.Wie kann ich das VI starten und dann den Motor mit einem Button in bewegung setzten ohne das VI wieder abzubrechen und neu zu starten!?