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 

Multiprozessor - denken ist notwendig



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!

10.01.2011, 09:05 (Dieser Beitrag wurde zuletzt bearbeitet: 10.01.2011 09:09 von rolfk.)
Beitrag #10

rolfk Offline
LVF-Guru
*****


Beiträge: 2.302
Registriert seit: Jun 2007

alle seit 6.0
1992
EN

2901GG
Niederlande
Multiprozessor - denken ist notwendig
' schrieb:Also.....

die ungedrehten Bilder kamen (manchmal) _nach_ dem Dreh-VI wobei die Dinger verbunden waren .... sonst kann man ja das Zeug nicht schreiben (OK eine Global mit der Referenz wäre möglich)

die falschen Bilder kamen am Indikator (ich erinnere) Indikator in einem nicht wirksamen if _nachdem_ die Richtigen gezeigt wurden

Jens hat es schon einmal angetönt. IMAQ Refnums sind echte Referenzen (Pointer). Das ist zwar sehr LabVIEW atypisch, und daher oft alles ausser intuitiv für einen gestandenen LabVIEW Programmierer, aber die einzige Art um in LabVIEW (und überhaupt in Software) effizient Bildverarbeitung zu machen. Der Unterschied ist nur dass man bei den meisten anderen Sprachen für komplexe Datentypen so oder so mit Referenzen arbeitet und bei LabVIEW halt fast immer mit Values (fast weil es ja in den neusten Versionen auch noch Datenreferenzen gibt).

D.h. wenn Du eine IMAQ Referenz hast und diese nicht explizit deletetest bleibt sie einfach im Speicher (das IMAQ Control hat ja auch noch eine Referenz dazu offen) und obwohl der Code nicht ausgeführt wurde im nächsten Schlaufendurchlauf, siehst Du noch die alten Daten. Auch kann eine Operation auf eine Referenz irgendwo ganz anders im Program das Bild in einem IMAQ Control, dass diese Referenz darstellt urplötzlich veränderen, ohne irgendwelche ersichtliche Datenabhängigkeit.

Das Fehlen von Datenreferenzen in LabVIEW war einer der Gründe dass Multithreadingsupport in LabVIEW relativ einfach einzubauen war (einfach von einem prinzipiellen Gesichtspunkt, nicht unbedingt einfach als technische Herausforderung!). Die Datenflussprogrammierung eignet sich perfekt für Multiprocessing und Multithreading (was wohl bei der Erfindung von LabVIEW kaum ein entscheidender Faktor war:Dsondern eher eine glückliche Fügung).

Rolf Kalbermatter
Technische Universität Delft, Dienst Elektronik und Mechanik
https://blog.kalbermatter.nl
Webseite des Benutzers besuchen Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
Antwort schreiben 


Nachrichten in diesem Thema
Multiprozessor - denken ist notwendig - rolfk - 10.01.2011 09:05

Möglicherweise verwandte Themen...
Themen Verfasser Antworten Views Letzter Beitrag
Brick IMAQ notwendig? lennox_mcdough 4 5.150 28.05.2013 20:23
Letzter Beitrag: Y-P

Gehe zu: