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 

Eventzähler bei 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!

17.05.2017, 15:20
Beitrag #1

1990 Offline
LVF-Neueinsteiger


Beiträge: 6
Registriert seit: Apr 2017

2014
2017
DE



Eventzähler bei Wertänderung
Hallo Leute,

ich habe folgendes Problem. Ich möchte Messwerte, welche in einem 1D-Array vorliegen, bei Wertänderung in ein 2D-Array speichern. Die Messwerte bekomme ich über die Com-Schnittstelle. Jedoch scheitere ich aktuell bereits an der Stelle die Messwerte in dem 1D-Array bei Wertänderung in ein 2D-Array zu speichern.
Mein Ansatz ist dies mittels einer Wertänderungs-Eventstruktur zu lösen, in der ich einen Zähler einbaue, der die Anzahl der Wertänderungen zählt. Mit diesem Zähler möchte ich dann die Messwerte über "In-Array-einfügen" dem 2D-Array hinzuzufügen. Nur leider funktioniert dieser Zähler noch nicht. Vielleicht denke ich auch zu kompliziert und das ganze geht auch einfacher. Ich hoffe ihr könnt mir helfen.

Gruß 1990


Angehängte Datei(en)
8.6 .vi  Event Counter.vi (Größe: 20,52 KB / Downloads: 256)
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
Anzeige
17.05.2017, 16:50
Beitrag #2

GerdW Offline
______________
LVF-Team

Beiträge: 17.480
Registriert seit: May 2009

LV2021
1995
DE_EN

10×××
Deutschland
RE: Eventzähler bei Wertänderung
Hallo 1990,

was genau soll dein VI eigentlich machen?
Momentan verhinderst DU durch THINK DATAFLOW leider, dass es vernünftig arbeiten kann…

- Wozu eine Wartezeit von 50ms neben einer Eventstruktur mit einem Timeout von 50ms?
- WARUM eine WHILE-Loop innerhalb einer anderen WHILE-Loop?
- Warum verwendest du KEIN Schieberegister für deinen Event-Counter?
- Warum gibt es kein Event für den Stop-Button?
- Warum gibt es kein Schieberegister für dein 2D-Array? Wo soll es denn gespeichert/"gemerkt" werden? THINK DATAFLOW!
- Wieso soll das 2D-Array jedesmal transponiert werden? Hmm

Idee:
   

Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
18.05.2017, 15:41 (Dieser Beitrag wurde zuletzt bearbeitet: 18.05.2017 18:01 von jg.)
Beitrag #3

1990 Offline
LVF-Neueinsteiger


Beiträge: 6
Registriert seit: Apr 2017

2014
2017
DE



RE: Eventzähler bei Wertänderung
Hallo GerdW,

danke für deine schnelle Antwort. Ich habe mich an folgendem Beispiel orientiert (http://digital.ni.com/public.nsf/allkb/5...DF0051A99E ). Dort war die Wartezeit mit dem Timeout von 50ms so eingebaut und hat funktioniert.
Ist es nicht von Vorteil eine Wartezeit in einer While-Schleife einzubauen, damit die Prozessorauslastung reduziert wird?
In dem Event-Counter habe ich ein Schieberegister eingebaut, bei dem 2D-Array jedoch nicht, danke für den Tipp.
Wozu sollte ich ein Stop-Button-Event einstellen? Sobald ich Stop drücke, verlasse ich die While-Schleife.

Ich habe dein Beispiel nachgebaut, das funktioniert soweit bis auf den Eventzähler. Der wird mit der Frequenz der While-Schleife inkrementiert. Um das zu veranschaulichen wird die Schleife alle 500ms aufgerufen. Ist es möglich, das Beispiel so zu verändern, dass nur bei tatsächlichen Wertänderungen die Werte in das 2D-Array geschrieben werden, damit ich keine doppelten Werte bekomme?

VG
1990


Angehängte Datei(en)
14.0 .vi  event_counter2.vi (Größe: 25,1 KB / Downloads: 248)
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
18.05.2017, 15:49
Beitrag #4

GerdW Offline
______________
LVF-Team

Beiträge: 17.480
Registriert seit: May 2009

LV2021
1995
DE_EN

10×××
Deutschland
RE: Eventzähler bei Wertänderung
Hallo​ 1990,

In jeder Iteration wird ein Event erzeugt, welches deinen counter hochzählt - so hast du es programmiert!
Und jetzt wunderst du dich, warum der counter hochzählt?
Hmm

Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
18.05.2017, 18:04
Beitrag #5

1990 Offline
LVF-Neueinsteiger


Beiträge: 6
Registriert seit: Apr 2017

2014
2017
DE



RE: Eventzähler bei Wertänderung
Dass der Counter hochzählt bei jeder Ausführung der While-Schleife ausgerufen wird, weiß ich, dieser dient aktuell nur als Platzhalter. Ich möchte jedoch nur den Zähler hochzählen, wenn das 1D-Array sich ändert und das Wertänderung-Event aufgerufen wird.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
18.05.2017, 21:45
Beitrag #6

GerdW Offline
______________
LVF-Team

Beiträge: 17.480
Registriert seit: May 2009

LV2021
1995
DE_EN

10×××
Deutschland
RE: Eventzähler bei Wertänderung
Hallo 1990,

momentan zählst du den Counter bei jedem Event hoch. Wenn er nur bei einem echten ValueChange hochzählen soll, dann musst du das auch so programmieren!

Du erzeugst ein Event mit der Post. Im Event dann noch old and new value vergleichen...

Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
Anzeige
19.05.2017, 08:41
Beitrag #7

Lucki Offline
Tech.Exp.2.Klasse
LVF-Team

Beiträge: 7.699
Registriert seit: Mar 2006

LV 2016-18 prof.
1995
DE

01108
Deutschland
RE: Eventzähler bei Wertänderung
Inirekt wurde es ja schon angedeutet, aber um es im Klartext zu formulieren: Der Eigenschaftstknoten "Wert(Sgnl)" feuert das Ereignis ""Initialisiertes Array":Wertänderung" nicht nur bei Wertänderung, sonderen bei jedem Aufruf dieses Eigenschaftsknotens.
Du köntest ja das Bedienelement "Input" bei Wertänderung das Ereignis auslösen lassen, das müsste eher gehen.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
22.05.2017, 15:02
Beitrag #8

1990 Offline
LVF-Neueinsteiger


Beiträge: 6
Registriert seit: Apr 2017

2014
2017
DE



RE: Eventzähler bei Wertänderung
Hallo Lucki,

danke für den Hinweis. Jedoch ist dieser bei meinem Problem nicht zielführend, da ohne den Eigenschaftenknoten "Wert(Sgnl)" nur direkte Wertänderungen über Bedienelemente erkannt werden. Bei direkten Wertänderungen über Bedienelemente im VI funktioniert dein Vorschlag ohne Probleme.
Die Messwerte, welche ich über einen COM-Server bekomme, möchte ich so bei Wertänderung in ein 2D-Array speichern.

VG,
1990
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
22.05.2017, 16:08
Beitrag #9

Freddy Offline
Oldtimer
****


Beiträge: 729
Registriert seit: Aug 2008

2019, 2020, 2021
1996
DE

76275
Deutschland
RE: Eventzähler bei Wertänderung
Wenn Du im Timeout Durchgang nicht die Leitungen durchverbindest, wird immer bei einem Timeout - Durchgang eine Null eingetragen.

Gruß
Freddy

Einführende Links zu LabVIEW, s. GerdWs Signatur.
Webseite des Benutzers besuchen 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
Question Mit Wertänderung eine Case-Struktur ansteuern ChrisR_ 9 7.501 05.09.2016 11:21
Letzter Beitrag: TSC
  Ereignis "Wertänderung" verzögern aw 3 4.938 11.08.2016 16:08
Letzter Beitrag: Trinitatis
  Schieberegler Wertänderung Hydrogencarbonat 37 20.659 12.11.2015 19:14
Letzter Beitrag: Lucki
  Wertänderung NUR durch Enterbestätigung Scuba 3 4.179 06.10.2015 12:18
Letzter Beitrag: Scuba
  Ereignis Wertänderung nur bei Eingabe über Frontpanel JanBurg 5 4.969 25.08.2015 09:06
Letzter Beitrag: JanBurg
  Wertänderung nach Neustart erhalten rabber 2 4.175 26.06.2014 11:34
Letzter Beitrag: rabber

Gehe zu: