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 

Parallele FOR-Schleife: Parallel in gleiches Array schreiben..?



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!

29.09.2016, 16:29
Beitrag #1

wassersebastian Offline
LVF-Neueinsteiger


Beiträge: 6
Registriert seit: Apr 2014

2013
2014
DE



Question Parallele FOR-Schleife: Parallel in gleiches Array schreiben..?
Hallo,

so, jetzt hab ich ganz schön lange verzweifelt rumgewurzelt - jetzt wende ich mich mal an die Experten:

Ich möchte mehrere Drucksensoren PARALLEL auslesen.
Versucht habe ich das ganze über eine parallelisierte FOR-Schleife. In der Schleife soll über VISA der jeweilige COM-Port angesprochen, der Wert ausgelesen und in ein Array geschrieben werden. Das Array soll ein 1D-Array sein mit 4 Werten (jeweils ein Wert pro Sensor). Dann beginnt das Spiel über eine WHILE-Schleife von vorne bis die Messzeit abgelaufen ist. Das 1D-Array mit den 4 Werten wird dabei am Ausgang der WHILE-Schleife indiziert und nach Ablauf der Messzeit in eine Textdatei geschrieben.

Das Ding ist aber, dass ich es nicht hinkriege das Array PARALLEL zu beschreiben. Ich habe den P-Anschluss (Ausgang) auf "P-ID" gestellt und mittels der ID und "Teil-Array ersetzen" versucht an die jeweilige Position im Array zu schreiben. Das klappt aber nicht.

Habt Ihr Tipps für mich?

Ganz liebe Grüße und einen schönen Abend!
Sebastian
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
Anzeige
29.09.2016, 18:16
Beitrag #2

jg Offline
CLA & CLED
LVF-Team

Beiträge: 15.864
Registriert seit: Jun 2005

20xx / 8.x
1999
EN

Franken...
Deutschland
RE: Parallele FOR-Schleife: Parallel in gleiches Array schreiben..?

Akzeptierte Lösung

Dein Ansatz ist eine nette Idee, hat aber IMHO ein paar Schwächen. Aber mit etwas Glück funktioniert er sogar. Voraussetzung ist, dass du mindestens 4 CPU-Kerne auf deinem Rechner brauchst, ansonsten funktioniert es nicht. Falls du deine VISA-Abfrage in ein Sub-VI gepackt hast, dann muss dieses Sub-VI reentrant sein. Um die Reihenfolge musst du dich aber nicht groß kümmern (wie ein paar schnelle Versuche gezeigt haben). Erstell einfach ein auto-indiziertes Array am Ausgang der FOR-Loop, die Ergebnisse entsprechen deinen SubVI-Aufrufen - wenn du zur Sicherheit die Chunk-Size explizit auf 1 einstellst. Hierzu ein kleines Bsp:
   
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
30.09.2016, 16:43
Beitrag #3

wassersebastian Offline
LVF-Neueinsteiger


Beiträge: 6
Registriert seit: Apr 2014

2013
2014
DE



Question RE: Parallele FOR-Schleife: Parallel in gleiches Array schreiben..?
Hallo,

danke schonmal für Deine Antwort! Das hat mein Problem gelöst, dass ich mein Messwertearray anständig gefüllt bekomme! Ganz herzlichen Dank!

Allerdings bekomme ich beim Auslesen von z.B. 4 Drucksensoren immer noch nur 1/4 der möglichen Messfrequenz hin, was für mich dafür spricht, dass die FOR-Schleife doch noch nicht parallel ausgeführt wird..(?). Oder muss ich - neben der Sub-VI-Einstellung "reentrant" - LabView auch noch an anderer Stelle sagen, dass es bitte parallel mit mehreren Kernen arbeiten soll? Ich benutze LabView 2013 32-bit auf einem 64-bit Windows8.1-System mit 6 Kernen und 12 logischen Prozessoren.

Jetzt mal ne ganz dämliche Frage / These:
Ich habe die 4 Drucksensoren jeweils per seriellem Kabel (RS-485) an einen Seriell-USB-Konverter angeschlossen, der vier serielle Anschlüsse und einen USB-Anschluss hat. Kann es sein, dass gar nicht mein Programm das Problem, sondern die ja auch "seriell" arbeitende Schnittstelle USB das Probem ist? Ich bin da von der Hardwareseite kein Experte, aber 4mal die Datenrate pro Drucksensor sollte deutlich geringer sein als die mögliche Datenrate von USB 2.0, oder? Oder ist vielleicht nicht die Datenrate, sondern die Anzahl an Paketen pro Sekunde das Problem...?

Hab mal ein Bild von meiner FOR-Schleife und dem Sub-VI inkl. dem VISA-Aufruf angefügt, vielleicht macht es das verständlicher.

Liebe Grüße und schönen Abend allerseits,
Sebastian


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

jg Offline
CLA & CLED
LVF-Team

Beiträge: 15.864
Registriert seit: Jun 2005

20xx / 8.x
1999
EN

Franken...
Deutschland
RE: Parallele FOR-Schleife: Parallel in gleiches Array schreiben..?

Akzeptierte Lösung

(30.09.2016 16:43 )wassersebastian schrieb:  Allerdings bekomme ich beim Auslesen von z.B. 4 Drucksensoren immer noch nur 1/4 der möglichen Messfrequenz hin, was für mich dafür spricht, dass die FOR-Schleife doch noch nicht parallel ausgeführt wird..(?). Oder muss ich - neben der Sub-VI-Einstellung "reentrant" - LabView auch noch an anderer Stelle sagen, dass es bitte parallel mit mehreren Kernen arbeiten soll?
Alles SubVIs müssen reentrant sein, nicht nur das direkt in der For-Loop. Auch die Sub-VIs in diesem VI.

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
04.10.2016, 11:18
Beitrag #5

wassersebastian Offline
LVF-Neueinsteiger


Beiträge: 6
Registriert seit: Apr 2014

2013
2014
DE



Thumbs Up RE: Parallele FOR-Schleife: Parallel in gleiches Array schreiben..?
Super, das war`s! Ganz herzlichen Dank!

Noch eine Frage, um sicher zu gehen:

- Da alles parallel läuft: Ist es gewährleistet, dass die Daten bei der Autoinduzierung am Eingang in der richtigen Reihenfolge mit denen am Ausgang verknüpft sind? Soll heißen, wenn das Sensoren-Verbindungsdatenarray am Eingang anliegt mit den Sensoren 0, 1, 2, 3; ist es sicher, dass am autoindizierten Ausgang die Messwerte der Sensoren 0, 1, 2 und 3 auch in dieser Reihenfolge geschrieben werden? Oder könnte da auch was durcheinander kommen, je nach dem welcher Drucksensor zufällig gerade einen Ticken schneller gearbeitet hat als die anderen?

Nochmals herzlichen Dank für die prompte, kompetente und erfolgreiche Hilfe.
Viele Grüße,
Sebastian
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
  Parallele Frequenz-Datenerfassung mit NI-9401 ArneS 5 4.010 18.02.2021 09:41
Letzter Beitrag: GerdW
  Aus 2D-Array jede x-te Zeile in weiteres 2D-Array schreiben P.J. 5 6.295 13.11.2020 09:05
Letzter Beitrag: GerdW
  Werte in Array schreiben- Mittelwert bilden und ausgeben um0k 10 8.678 25.08.2020 14:19
Letzter Beitrag: GerdW
  Werte nacheinander in Array schreiben über ein Schieberegister BlackEagle 5 8.557 13.12.2019 13:40
Letzter Beitrag: GerdW
  parallele Ausführung von for-loops stsc 5 5.008 24.07.2019 15:12
Letzter Beitrag: stsc
  Tabelle in Schleife schreiben steve_94 3 3.670 14.12.2018 08:48
Letzter Beitrag: Ralfk84

Gehe zu: