LabVIEWForum.de
Wiederholung - Druckversion

+- LabVIEWForum.de (https://www.labviewforum.de)
+-- Forum: LabVIEW (/Forum-LabVIEW)
+--- Forum: LabVIEW Allgemein (/Forum-LabVIEW-Allgemein)
+---- Forum: Signaldarstellung (/Forum-Signaldarstellung)
+---- Thema: Wiederholung (/Thread-Wiederholung)

Seiten: 1 2 3 4


RE: Wiederholung - ewiebe - 10.09.2014 15:46

Zum Thema RFID:

Welche RFID Hardware nutzt du / ihr?

Danke und Gruß
Eugen


RE: Wiederholung - Galle - 06.10.2014 09:23

Hallo GerdW,

danke für deine Antwort. Das bestehende VI reiche ich schnellstmöglich nach. Grund, ich arbeite nicht nur an diesem Projekt, sondern auch noch an 2-3 anderen dingen ohne LV. ;-)

Nochmal zum besseren Verständnis. Mit dem ausgelesen RFID soll ein Fahrzeug gesteuert werden. Es wird eine ID gelesen, und dazu ist eine Geschwindigkeit hinterlegt. Diese gilt aber nicht nur wenn das Fahrzeug genau neben dem Chip ist sondern auch noch für ein paar Meter dahinter. Es stellt also ein Art "elektronisches Verkehrsschild" dar, welches z.B. anzeigt: 30 km/h für 200m! Nach den 200m kann das Fahrzeug wieder die Geschw. fahren, die hienter der "0000" hinterlegt ist.
Gleichzeitig befindet sich aber das Fahrzeug nicht mehr an dem Chip (dem Verkehrsschild!) und empfängt hier also eine "0000"

Ich hoffe es ist nun besser zu verstehen.

Danke und viele Grüße
(10.09.2014 15:46 )ewiebe schrieb:  Zum Thema RFID:

Welche RFID Hardware nutzt du / ihr?

Danke und Gruß
Eugen

Hallo Eugen,
ich nutze ein Mifare Classic 1K Chip.
Wofür ist die Info wichtig?
Viele Grüße Galle


RE: Wiederholung - GerdW - 06.10.2014 09:26

Hallo Galle,

Zitat:Es stellt also ein Art "elektronisches Verkehrsschild" dar, welches z.B. anzeigt: 30 km/h für 200m!
Das hört sich nach einer Statemachine an - oder eine einfache Case-Struktur…
Du musst also wissen, wo sich dein Fahrzeig befindet und anhand dieser Information entscheiden, welche Geschwindigkeit nun gilt:
Code:
IF (Fzg in speed limit range)
   THEN v := v_limited
   ELSE v := v_0000
ENDIF
Ist das so schwer?


RE: Wiederholung - Galle - 13.10.2014 06:59

So, hier nun mal mein Blockdiagramm:

Dazu mal ein paar Fragen:
Die Variable wird erst ausgegeben, wenn die For-Schleife komplett (alle Durchläufe) durchlaufen ist. Gibt es eine Möglichkeit, dies auch schon eher auszugenen? z.B. bei jede, Durchlauf? Ich möchte gern diesen Wert in einer anderen While-Schleife verarbeiten.

Wie kann ich es lösen, dass der linke Teil (die Schreib- und Leseaufforderung an VISA) auch abläuft, wenn die For-Schleife noch arbeitet? Bis jetzt beginnt die While-Schleife erst von Neuem, wenn die Case-Struktur und damit auch die For-Schleife fertig durchlaufen ist.

Gibt es eine andere Möglichkeit, dein Signal (hier Variable Geschw. Ausgang2) für eine fest definierte Zeit zu halten?

Danke schon mal für Eure Hilfe.
Viele Grüße Galle


RE: Wiederholung - GerdW - 13.10.2014 07:26

Hallo Galle,

Zitat:Wie kann ich es lösen, dass der linke Teil (die Schreib- und Leseaufforderung an VISA) auch abläuft, wenn die For-Schleife noch arbeitet?
THINK DATAFLOW!
Wenn Dinge parallel ablaufen sollen, musst du sie auch parallel programmieren, d.h. OHNE Datenabhängigkeit!

Zitat:Gibt es eine andere Möglichkeit, dein Signal (hier Variable Geschw. Ausgang2) für eine fest definierte Zeit zu halten?
- Ausgabe von Waveforms mit definiertem Signalverlauf
- Nutzung von Statemachines

Zitat:Gibt es eine Möglichkeit, dies auch schon eher auszugenen? z.B. bei jede, Durchlauf?
Machst du doch schon mit deiner lokalen Variablen! Nur die Abfrage des geschriebenen Wertes hast du nicht korrekt programmiert…
Ansonsten: Queues, Notifier, FGVs, …

Tipps:
- Wenn du Stringkonstanten in Hex-Display nutzt, solltest du auch das "Radix" (bzw. den Darstellungsmodus) anzeigen lassen…
- Deine Skalierung im Case kann man mit einer CompoundArithmetik zusammenfassen. Deine freien Kommentare kannst du als Label der jeweiligen Konstante vergeben…
- AutoCleanup rulez! Big Grin
- Wozu schreibst du x*10ms lang immer wieder denselben Wert in deine "Variable"? Warum nicht einmal schreiben und dann einfach x*10ms lang warten?


RE: Wiederholung - jg - 13.10.2014 07:37

(13.10.2014 07:26 )GerdW schrieb:  Tipps:
- Wenn du Stringkonstanten in Hex-Display nutzt, solltest du auch das "Radix" (bzw. den Darstellungsmodus) anzeigen lassen…
- Deine Skalierung im Case kann man mit einer CompoundArithmetik zusammenfassen. Deine freien Kommentare kannst du als Label der jeweiligen Konstante vergeben…
- AutoCleanup rulez! Big Grin
- Wozu schreibst du x*10ms lang immer wieder denselben Wert in deine "Variable"? Warum nicht einmal schreiben und dann einfach x*10ms lang warten?
Noch ein Tipp:
"Bytes at Port" bei gleichzeitiger Verwendung des "Termination Char" in der VISA-Kommunikation ist in der Regel überflüssig und kontraproduktiv.

Gruß, Jens


RE: Wiederholung - Galle - 13.10.2014 07:42

- Wozu schreibst du x*10ms lang immer wieder denselben Wert in deine "Variable"? Warum nicht einmal schreiben und dann einfach x*10ms lang warten?


Da ich noch recht neu hier und generell keien Programmierleuchte bin geh ich mal Stück für Stück vor und entschuldige mich shcon mla für meine doofen Fragen:

Genau das wollte ich jer gern machen. Ich möchte das Ergebnis aus der For-Schleife für eine bestimmte festgelegte Zeit halten und solange kein anderen Wert zulassen. Aber eine Art "Merke" kenne/ finde ich nicht. Gleichzeitig soll aber die Abfrage (VISA) weiterlaufen.


RE: Wiederholung - GerdW - 13.10.2014 07:45

Hallo Galle,

Zitat:Ich möchte das Ergebnis aus der For-Schleife für eine bestimmte festgelegte Zeit halten und solange kein anderen Wert zulassen.
Du schreibst in den Indicator "Geschw. Ausgang 2". Dieser wird nirgendwo sonst beschrieben. Wieso sollte er also anderweitig verändert werden? Wo ergibt sich hir der Zwang, einen Wert im 10ms-Takt neu zu schreiben? Hmm

Zitat:Gleichzeitig soll aber die Abfrage (VISA) weiterlaufen.
Parallel laufende Schleifen… (Merke: Schleifen = Mehrzahl von nur einer Schleife!)


RE: Wiederholung - Galle - 13.10.2014 13:11

Doch, die Variable wird in jedem Case neu verwendet. Daher wird also, wenn sich mein Fahrzeug vom RFID runter bewegt hat, wieder die "0000" empfangen. (Genau über dem RFID z.B.: "1234") Allerdings soll noch für eine Weile (für z.B. 500m -> XY Sekunden) der Wert aus dem Case behalten bleiben. (ähnlich wie ein Verkehrsschild mit dem Zusatz: 30 für 500m)

Kannst du mir bitte ein kleinen Beispiel dazu schicken, vielleicht verstehe ich es einfach nur nicht! :-)


RE: Wiederholung - GerdW - 13.10.2014 13:14

Hallo Galle,

Zitat:Doch, die Variable wird in jedem Case neu verwendet.
Das kommt dabei heraus, wenn man nur ein Bild des Blockdiagramms frei gibt. Häng doch einfach mal dein VI hier an (LV2011 bevorzugt)!