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 

Zykluszeit passt nicht



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!

21.07.2011, 08:29
Beitrag #11

win98 Offline
LVF-Gelegenheitsschreiber
**


Beiträge: 64
Registriert seit: Jun 2011

2010 SP1
2010
DE



RE: Zykluszeit passt nicht
Naja gut, das Anzeigeelement ist eigentlich egal wo es steht (ob's jetzt immer aktuell ist, oder nur dann wenn ich's brauch angezeigt wird). Ich bin ja mit den LV Programm noch nicht fertig, deswegen ist das noch "unbenutzt". Hab da mal zwei Textboxen hingeschrieben, wo dann meine Operationrn kommen würden. Es ging mir jetzt in erster Linie darum das mit dieser blöden Laufzeitfehler und Verzögerungen zu umgehen.

Ich denke schon, dass das ein Create Task Icon ist Tongue
Ich habe: Einen Task hinzugefügt, den Task aus dem MAX gewählt und dann Programmcode erzeugen --> Beispiel und Konfiguration.
Dann hab ich das Icon bekommen. Ich habs nur anders genannt, weil der Name vorher "Unbenannt 3" war und so weiß ich für was das gut ist Tongue
Gibt es eine besser Methode, weil du meinst das ist besser aber nicht gut?

Ich hab jetzt nochmal eine Que entsprechend umgekehrt für den Write Task erstellt, ich hoffe es ist richtig, weil ich jetzt keine reine Erzeuger und keine reine Verbaucherschleife hab.

Die Task hab ich jetzt auch zu gemacht. Big Grin
   
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
Anzeige
21.07.2011, 08:33
Beitrag #12

GerdW Offline
______________
LVF-Team

Beiträge: 17.469
Registriert seit: May 2009

LV2021
1995
DE_EN

10×××
Deutschland
RE: Zykluszeit passt nicht

Akzeptierte Lösung

Hallo Win,

Zitat:ich hoffe es ist richtig, weil ich jetzt keine reine Erzeuger und keine reine Verbaucherschleife hab.
Nö - jetzt hast du eine potentielle Deadlock-Situation: Du wartest in beiden Schleifen auf neue Daten in einer Queue, die in der jeweils anderen Schleife erzeugt werden. Worst case: beide Schleifen warten auf Daten und keine produziert welche - DEADLOCK!

Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
21.07.2011, 08:44
Beitrag #13

win98 Offline
LVF-Gelegenheitsschreiber
**


Beiträge: 64
Registriert seit: Jun 2011

2010 SP1
2010
DE



RE: Zykluszeit passt nicht
Ich weiß zwar was ne Deadlock ist, sehe die aber gerade nicht. Ich mein der Schreib- und Lese Task wartet ja nicht auf ein Event oder so, sondern werden doch alle 25ms ausgeführt, oder?

Habs aber trotzdem nochmal getauscht.

   
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
21.07.2011, 08:47
Beitrag #14

GerdW Offline
______________
LVF-Team

Beiträge: 17.469
Registriert seit: May 2009

LV2021
1995
DE_EN

10×××
Deutschland
RE: Zykluszeit passt nicht
Hallo Win,

Zitat:Ich mein der Schreib- und Lese Task wartet ja nicht auf ein Event oder so, sondern werden doch alle 25ms ausgeführt, oder?
Die Tasks warten nicht, aber deine QueueRead-Funktionen! Da hilft dir auch nicht, die Schleife mit 25ms zu takten...

Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
21.07.2011, 08:50
Beitrag #15

win98 Offline
LVF-Gelegenheitsschreiber
**


Beiträge: 64
Registriert seit: Jun 2011

2010 SP1
2010
DE



RE: Zykluszeit passt nicht
Oh, ok Tongue
Da hätte mir jetzt mein Prof n Vortrag drüber gehalten Big Grin

Aber so ist es jetzt richtig, oder?

Vielen Dank für deine Hilfe Smile
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
22.07.2011, 10:46 (Dieser Beitrag wurde zuletzt bearbeitet: 22.07.2011 10:56 von win98.)
Beitrag #16

win98 Offline
LVF-Gelegenheitsschreiber
**


Beiträge: 64
Registriert seit: Jun 2011

2010 SP1
2010
DE



RE: Zykluszeit passt nicht
so langsam aber sicher werde ich verrückt Tongue

also: Ich spiele in main Import Array Daten rein, die meine Eingänge setzen (mit SetTestArray.vi) und die Ausgänge vergleichen sollen (mit GetCheckArray)

ich habe z.B. solche Daten in meinem Import Array aus Excel eingelesen:
DI1.1 Tmax(ms) DO1.1 DO1.2 DO1.3 DO1.4 DO1.5 DO1.6
0 3333 0 0 0 0 0 0
1 2000 1 0 0 0 0 0
1 2000 1 1 0 0 0 0
1 1000 1 1 1 0 0 0
1 1000 1 1 1 1 0 0
1 500 1 1 1 1 1 0
1 500 1 1 1 1 1 1

das sind 6 einschaltverzögerungen hintereinander mit 2x2s, 2x1s und 2x0,5s Verzögerung. Dann vergleiche ich die Erwartungswerte (DO Array aus der Excel Liste) und dem wirklichen Prozesswerten.

Natürlich muss ich noch eine Zeile angeben, in der ich gerade bin.

Vorher hatte ich das so, das ich die Zeit Tmax als Verzögerung in die Verbraucherschleife eingestellt hatte. Das Problem, ich musste bei einer Einschaltverzögerung die Zeile um 2 dekrementieren (einmal klar, weil ich erst nach dem Setzen den Ausgang lesen kann und einmal weil nach Punkt 2000ms der Ausgang noch nicht da war, sondern nach ca 2050ms).
Ich könnte jetzt die 50ms konstant immer zur Verzögerung dazuaddieren, aber dann krieg ich Probleme wenn ich einen Taktgenerator habe wegen der Abtastung.

Jetzt will ich das so machen, dass ich Permanent (alle 25ms oder so) Lese und Schreibe, und nur die Zeile nach 2000ms erhöhe. Weil dann kann ich nochmal eine Abfrage machen ob der Zustand stimmt und ggf nochmal kruz warten und Abfragen.

Dafür muss ich aber die Erhöhung der Zeile anhalten und trotzdem das Lesen und Schreiben aktiv halten. Also quasi parallel. Leider kann ich keine Ereignisse einsetzen, sonst wäre das kein Problem. Ich habs bis jetzt so:
   
und das klappt noch nich ganz.

Ich bin miserabel im erklären. Ich suche sowas wie ein "Backgroundworker" wo ich ständig meine Daten abfrage (aus dem Controller) und schreibe (von meine Schalter Array). Im Hauptprozess mache ich dann meine Auswertung (Schalter Array setzen, Controllerwerte vergleichen).

Das Problem mit beim Erzeuger-Verbraucher-System ist, dass wenn ich das "Element aus Queue entfernen" verzöger, bzw. nich benutzen möchte, auch das "Element einfügen" anhält.
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
  Zykluszeit bei DAQmx messen Matze 12 12.162 03.05.2010 16:52
Letzter Beitrag: Matze

Gehe zu: