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 

Parallelisierung von DLLs



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.08.2012, 09:32
Beitrag #11

Herm Offline
LVF-Grünschnabel
*


Beiträge: 24
Registriert seit: Jun 2011

LV 2009 & 2012
2011
DE


Deutschland
RE: Parallelisierung von DLLs
(20.08.2012 15:00 )GerdW schrieb:  Hallo Herm,

deine Erzeugerschleife sieht schon sehr "kompliziert" aus.
Wozu schreibst du in eine Queue, um dann in der gleichen Schleife und sofort danach wieder aus dieser Queue auszulesen??? Warum dann nicht einfach einen Draht nehmen? Außerdem verteilst du munter "Bilder" an alle Verbraucherschleife, egal, wie schnell diese die Daten abarbeiten...

Überlege mal selbst, ob du das nicht einfacher hinbekommst...

Dass ich die Bilder munter verteile ist mir auch aufgefallen. Ich dachte die Ereignisstruktur läuft folgendermaßen: Wenn eine Schleife abgearbeitet ist, wird durch die Wertänderung des Ergebnisses in dieser Schleife die dazugehörige Ereignisstruktur ausgewählt, die die darin beinhaltete Zahl zum Zuweisen weitergibt. So wie es momentan implementiert ist, gibt die Ereignisstruktur die Werte einfach der Reihe nach weiter. Wenn eine Schleife dann länger benötigt, verfallen die übrigen "Bilder" einfach. Der Sinn dahinter sollte eigentlich sein, dass die Verbraucherschleifen nur angesteuert werden, wenn sie zuvor ein "Bild" verarbeitet haben und dies durch die Wertänderung am Ende bekannt gegeben haben.

Zum Aufbau: Die eine Queue, in der die Bilder gespeichert werden, war dazu gedacht, einen Puffer einzubauen, wenn die "Bilder" deutlich schneller geliefert werden, als die Schleifen diese abarbeiten können. Wenn sich zwei Schleifen innerhalb von 33 ms ein "Bild" abgreifen wollen, dann wäre bei einer normalen Verdrahtung bis dahin ja noch kein neues Bild angekommen. Was würde die zweite Schleife in dem Fall machen? Verwendet sie dasselbe Bild, wie die erste Schleife, oder wartet sie so lange, bis ein neues Bild anliegt?
Den restlichen Teil weis ich nicht zu vereinfachen. Die vier Schleifen müssen initialiisert werden, damit die Ereignisse überhaupt statt finden können, dafür sind die ersten vier Cases gedacht. Danach geht das Programm in den 5. Case und arbeitet ab da mit der Ereignisstruktur. Die Zuweisungswerte lasse ich in einer Queue speichern, ebenfalls als Puffer, falls ich langsamer "Bilder" bekomme, als ich abarbeiten kann.

Ich finde das selbst nich sonderlich schön, eigentlich wollte ich es so haben, dass nur so viele Schleifen angseteuert, wie gebraucht werden. Wenn meine Schleifen schnell arbeiten, reichen zwei davon, wenn sie langsamer sind, brauch ich 3 oder 4. Wenn sie noch langsamer sind, müssen die übrigen "Bilder" verfallen. Wenn ich auf 2 oder 3 Schleifen zurückfahre muss ich dann ja wieder die 3. bzw. 4. wieder neue initialisieren, wenn ich sie wieder brauche. Wenn ich langsamer Bilder geliefert kriege, als eine alleine abarbeiten kann, dann muss diese so lange Warten, bis wieder ein neues "Bild" anliegt. Momentan hört sie dann einfach auf, weil das Ereignis ja nicht gespeichert wird, dafür war die Queue gedacht.
Wenn ich das so haben will, geht das warscheinlich auf diesem Weg garnicht, ich habe aber keine Idee, wie ich das sonst machen soll.

Gruß

Herm
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
21.08.2012, 09:36
Beitrag #12

GerdW Offline
______________
LVF-Team

Beiträge: 17.412
Registriert seit: May 2009

LV2021
1995
DE_EN

10×××
Deutschland
RE: Parallelisierung von DLLs
Hallo Herm,

falls du Ideen brauchst, kann ich dich noch mal an Beitrag #3 erinnern...

Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
30.08.2012, 07:58
Beitrag #13

Jontef Offline
LVF-Grünschnabel
*


Beiträge: 26
Registriert seit: Jan 2011

2010
-
de


Deutschland
RE: Parallelisierung von DLLs
Hast du mittlerweile eine Lösung für dein Problem gefunden?
Könnte dir sonst heute Abend noch einen anderen Lösungansatz posten!

Gruß
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
  Parallelisierung von Schleifen =steffen= 2 3.629 15.08.2008 18:18
Letzter Beitrag: Kvasir
  Callback Mechanismus mit DLLs nachbilden eg 0 2.859 01.09.2006 10:54
Letzter Beitrag: eg
  Globale Variablen bzw. Queues in DLLs Winzler 1 3.792 11.10.2005 08:56
Letzter Beitrag: thomas.sandrisser

Gehe zu: