INFO: Dieses Forum nutzt Cookies...
Cookies sind für den Betrieb des Forums unverzichtbar. Mit der Nutzung des Forums erklärst Du dich damit einverstanden, dass wir Cookies verwenden.

Es wird in jedem Fall ein Cookie gesetzt um diesen Hinweis nicht mehr zu erhalten. Desweiteren setzen wir Google Adsense und Google Analytics ein.


Antwort schreiben 

Dieses Thema hat akzeptierte Lösungen:

Schieberegler Wertänderung



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!

05.11.2015, 17:55
Beitrag #1

Hydrogencarbonat Offline
LVF-User
**


Beiträge: 187
Registriert seit: Apr 2014

2013,2014
2014
DE

XXXXX
Deutschland
Schieberegler Wertänderung
Hi,

ich habe einen Schieberegler mit zwei Cursern mit denen ich die X Achse eines XY Graphen (Min-Max)Wert verändern kann.
Dazu habe ich ein Event in der Eventstruktur für den Schiebregler angelegt, indem ich den alten und neuen Wert der Cursor 1 und 2 als Min und Max Werte des XY Graphen verwende.

Das lief alles 1a bis ich mein Timeoutcase für eine Datenverarbeitung verwendeten muss und ich das Ereignistimeout der Event Struktur von -1 auf 1 setzen musste.

Nun laggt der Schieberegler und das ist unschön.

Andere Ereignisse im Eventcase Schieberegler wie Ziehen führten leider nicht zum Erfolg.

Was kann man tun?

Gruß HCO
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
Anzeige
05.11.2015, 18:02 (Dieser Beitrag wurde zuletzt bearbeitet: 05.11.2015 18:06 von GerdW.)
Beitrag #2

GerdW Online
______________
LVF-Team

Beiträge: 17.469
Registriert seit: May 2009

LV2021
1995
DE_EN

10×××
Deutschland
RE: Schieberegler Wertänderung

Akzeptierte Lösung

Hallo HCO,

Zitat:Das lief alles 1a bis ich mein Timeoutcase für eine Datenverarbeitung verwendeten muss und ich das Ereignistimeout der Event Struktur von -1 auf 1 setzen musste.
Einfache Lösung: die Datenverarbeitung aus dem Timeout heraus nehmen und wieder -1 als Timeout-Wert einstellen!
Dass du die Datenverarbeitung im Timeout-Event durchführen MUSST, bezweifle ich. Oder zwingt man dich dazu?

Wenn du den timeout auf 1 (ms!) stellst, wird deine Datenverarbeitung nach spätestens 1ms aufgerufen. Wenn diese Datenverarbeitung nun etwas Zeit benötigt (es reichen schon 10ms, aber es fehlt mal wieder ein VI, um das zu beurteilen), wird die Abarbeitung anderer Events entsprechend verzögert: ein ValueChange eines Schiebereglers wird als stark verzögert wahrgenommen… (Hinzu kommt der unschöne Nebeneffekt von Schiebern mit Defaulteinstellungen, das du wahnsinnig viele ValueChange-Events erzeugst: für jedes Pixel, um das sich der Schieber bewegt, gibt es ein Event!)

Wenn du wirklich mit 1kHz Daten verarbeiten musst, dann mach das in einer parallel laufenden Schleife!
Grundregel Event-Struktur: die Abarbeitung von Events sollte so kurz wie möglich dauern, damit es nicht zu Verzögerungen bei anderen Events kommt…

Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
05.11.2015, 18:11
Beitrag #3

Hydrogencarbonat Offline
LVF-User
**


Beiträge: 187
Registriert seit: Apr 2014

2013,2014
2014
DE

XXXXX
Deutschland
RE: Schieberegler Wertänderung
Ok, verstehe ich.

Danke für die Hilfe.

Gruß HCO
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
05.11.2015, 18:13
Beitrag #4

jg Offline
CLA & CLED
LVF-Team

Beiträge: 15.864
Registriert seit: Jun 2005

20xx / 8.x
1999
EN

Franken...
Deutschland
RE: Schieberegler Wertänderung
Ich habe von "könnte im Timeout-Case" geschrieben. Und von 1 ms Sekunde Time-out habe ich auch nichts geschrieben. Ist ja auch völlig unsinnig, wenn dir erstens die Queue das Buffern übernimmt und zweitens nur jede Sekunde ein neuer Datensatz in der Queue landet.

Gruß, Jens

Wer die erhabene Weisheit der Mathematik tadelt, nährt sich von Verwirrung. (Leonardo da Vinci)

!! BITTE !! stellt mir keine Fragen über PM, dafür ist das Forum da - andere haben vielleicht auch Interesse an der Antwort!

Einführende Links zu LabVIEW, s. GerdWs Signatur.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
05.11.2015, 18:43
Beitrag #5

Hydrogencarbonat Offline
LVF-User
**


Beiträge: 187
Registriert seit: Apr 2014

2013,2014
2014
DE

XXXXX
Deutschland
RE: Schieberegler Wertänderung
Hi Jens,

stimmt, da gebe ich dir recht.

Das Problem ist ja immer noch mit dem Dateneinlesen in die Txt. Datei, da ich ja wie schon bekannt in der Eventstruktur
eine neue Logdatei anlege(Event) und die Referenz dann über das Scheiberegister in den Timeoutcase schiebe, wo ich die Daten kontinuierlich in die TXT.datei schreibe und bei dem Event " In Txt. Datei schreiben beenden " dann die Referenz über das Schieberegister in "Datei schließen" gesendet wird.

Habe ja deswegen auch die Speicherloop (Element aus Queue entfernen) in den Timeoutcase der Ereignisstruktur gepackt. (siehe Anhang)
So läuft zwar jetzt alles was mit der Stringtabelle zutun hat, zieht aber auf der anderen Seite negative Aspekte auf andere Parameter wie das mit dem
Schieberegler.

Die Operation die ich auch nur einmal ausführe können ja gut im jedem Eventcase bleiben.

Wenn ich jetzt ne neue Loop erstelle zur "Datenspeicherung in die TXT. Datei", wie kann ich diese dann mit meiner Referenz verbinden? (Wieder über die oder eine neue Queue und die Referenz dann einmal reinschieben zu der anderen Loop, jedoch muss diese dann aber wieder zurück zu der Eventstruktur zum Event" Lesen in TXT Datei beenden"
Die Eventstruktur ist momentan in der Textdatei/datenverabreitung ein geschlossener Vorgang mit einem Schieberegister.

Was kann ich tun?

Gruß HCO


Angehängte Datei(en) Thumbnail(s)
   
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
06.11.2015, 07:56
Beitrag #6

jg Offline
CLA & CLED
LVF-Team

Beiträge: 15.864
Registriert seit: Jun 2005

20xx / 8.x
1999
EN

Franken...
Deutschland
RE: Schieberegler Wertänderung
Erstelle eine eigene Schleife für die Datenspeicherung, und in der führst du auch das Schieberegister mit deinem File-Pointer und packst auch die File-Erstellung mit rein (quasi eine State-Machine mit den Fällen: File erstellen, Daten speichern, File schließen). Das steuerst du dann per Queue. Dazu kannst du z.B. den Datentyp der Queue, die du schon jetzt für die Datenweitergabe verwendest, erweitern um weitere Kommandos und Elemente.

Gruß, Jens

Wer die erhabene Weisheit der Mathematik tadelt, nährt sich von Verwirrung. (Leonardo da Vinci)

!! BITTE !! stellt mir keine Fragen über PM, dafür ist das Forum da - andere haben vielleicht auch Interesse an der Antwort!

Einführende Links zu LabVIEW, s. GerdWs Signatur.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
06.11.2015, 11:00
Beitrag #7

GerdW Online
______________
LVF-Team

Beiträge: 17.469
Registriert seit: May 2009

LV2021
1995
DE_EN

10×××
Deutschland
RE: Schieberegler Wertänderung
Hallo HCO,

denkst du manchmal über das nach, was du so prorammierst?

Du hast einen Timeout-Eventcase, der nach 1ms ohne weitere Events aufgerufen wird. Im Event wartest du dann (bis zu) 500ms auf einen Queue-Eintrag, der nur im 1000ms-Takt zu erwarten ist…
Und du wunderst dich, warum deine ValueChange-Events des Schiebereglers stark verzögert abgearbeitet werden? Hmm

Und was soll der dieser RubeGoldberg: Da werden mehrere Datenarrays in einen Cluster geschrieben, um diesen Cluster dann Nanosekunden später wieder auszulesen? Warum nicht einfach (möglichst gerade) Drähte verwenden???

Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
06.11.2015, 11:24
Beitrag #8

jg Offline
CLA & CLED
LVF-Team

Beiträge: 15.864
Registriert seit: Jun 2005

20xx / 8.x
1999
EN

Franken...
Deutschland
RE: Schieberegler Wertänderung
Offtopic2
(06.11.2015 11:00 )GerdW schrieb:  Und was soll der dieser RubeGoldberg: Da werden mehrere Datenarrays in einen Cluster geschrieben, um diesen Cluster dann Nanosekunden später wieder auszulesen?
Daran bin wahrscheinlich ich Schuld: s. Anhang aus http://www.labviewforum.de/Thread-String...#pid179445
Allerdings bin ich bei diesem Bsp davon ausgegangen, dass die Spalten wie schon vorher unterschiedliche Breiten bekommen sollten, und dann wäre das mit mit 1x "Array to Spreadsheet-String" erledigt gewesen.

Gruß, Jens

Wer die erhabene Weisheit der Mathematik tadelt, nährt sich von Verwirrung. (Leonardo da Vinci)

!! BITTE !! stellt mir keine Fragen über PM, dafür ist das Forum da - andere haben vielleicht auch Interesse an der Antwort!

Einführende Links zu LabVIEW, s. GerdWs Signatur.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
06.11.2015, 14:18
Beitrag #9

Hydrogencarbonat Offline
LVF-User
**


Beiträge: 187
Registriert seit: Apr 2014

2013,2014
2014
DE

XXXXX
Deutschland
RE: Schieberegler Wertänderung
Hallo Gerd,

vielen Dank für die Kritik.
Du hast natürlich in allen Punkten recht und ich werde mich bessern.
Habe den Case nochmal überarbeitet (siehe Anhang) und versucht der diese Rube Goldberg entgegenzuwirken.
Ist es nun so in Ordung?
Nun habe ich alles auf 1 Sek. gesetzt und die Wertänderung macht keine Klagen mehr.

Jedoch ich verstehe ich nun die Problematik und versuche den Vorschlag von Jens umzusetzen.

Gruß HCO


Angehängte Datei(en) Thumbnail(s)
   
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
06.11.2015, 16:21
Beitrag #10

GerdW Online
______________
LVF-Team

Beiträge: 17.469
Registriert seit: May 2009

LV2021
1995
DE_EN

10×××
Deutschland
RE: Schieberegler Wertänderung
Hallo HCO,

ein Problem bleibt noch: deine Eventstruktur kann immer noch bis zu einer Sekunde lang blockiert sein - durch die Wartezeit beim Dequeue.
Nochmal eine der Grundregeln bei der Eventstruktur: Eventcases sollten so schnell wie möglich abgearbeitet sein!

Ich würde sowas nicht im Tiemout einer Event-Struktur erledigen, die sich um UI-Dinge kümmern soll. Die von Jens vorgeschlagene Statemachine wäre auch mein Favorit!
(Einer der Gründe: möglichst klare Trennung von UI-Handling und Datenverarbeitung…)

Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
Antwort schreiben 


Möglicherweise verwandte Themen...
Themen Verfasser Antworten Views Letzter Beitrag
  Skaleneinteilung Schieberegler Winterkind 3 3.607 19.04.2021 12:26
Letzter Beitrag: Winterkind
  Schieberegler modifizieren Lucki 4 4.365 05.10.2018 14:17
Letzter Beitrag: jg
  Schieberegler mit variablem Inkrement aw 9 6.220 20.09.2018 14:15
Letzter Beitrag: aw
  Farbe des Sliders am Schieberegler ändern Lucki 3 5.372 19.07.2017 21:32
Letzter Beitrag: GerdW
  Eventzähler bei Wertänderung 1990 8 6.282 22.05.2017 16:08
Letzter Beitrag: Freddy
Question Mit Wertänderung eine Case-Struktur ansteuern ChrisR_ 9 7.417 05.09.2016 11:21
Letzter Beitrag: TSC

Gehe zu: