!!

Willkommen Besucher...

...um das das LabVIEWForum.de als Benutzer in vollem Umfang nutzen zu können, ist eine kostenlose Registrierung nötig...
Registrierte Benutzer können Beiträge schreiben, Dateien uploaden, Beiträge lesen :) uvm.


Antwort schreiben 

Dieses Thema hat akzeptierte Lösungen:

matlab-scriptknoten oder dll?
28.07.2011, 10:41
Beitrag #1

Hep Offline
LVF-Grünschnabel
*


Beiträge: 20
Registriert seit: Oct 2007

LV-Version: 2009
LV-Erfahrung seit: 2008
LV-Sprachversion: DE

PLZ: 80339
Land: Deutschland
matlab-scriptknoten oder dll?
Hallo Zusammen!

ich programmiere ein größeres Programm zur Scanmirkoskopsteuerung. Es werden also daten aufgenommen und verwertet. Gerade versuche ich die Performance etwas zu verbessern, da ich über 6Mdatenpunkte(U16) Memory-Probleme bekomme.
Die Grobstruktur läuft folgendermaßen: ich initialisiere einen Array entsprechend der Aufnahmeparameter, lese innerhalb einer Schleife die neu dazu gekommenen Werte aus, schreibe diese in den Array und zeige jeweils das aktuelle Bild an.

Da ich fünfdimensional aufnehme (x,y,z,zeit,unterschiedliche Farben) wird die initialisierung mir zu unübersichtlich in Labview, und daher mache ich das mit Matlab. Ich rufe einen Matlab-Skriptknoten auf, von dem aus ein .m file aufgerufen wird, das mir einen Array erstellt, den ich aus dem Knoten auslese. Meine Daten sind U16, der Scriptknoten verwendet Double. Das braucht sicher einiges an Konvertierung. Außerdem benötige ich Speicher in LV für die Daten und redundant dazu auch in Matlab.
Nun war meine Idee, aus dem Matlab-code eine dll zu machen und die einzubinden. Hat da jemand erfahrung? geht das gut?

Und außerdem: kann man den LV zur verfügung stehenden Speicher erweitern?

LV version 2009
danke, viele Grüße H
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
. .
28.07.2011, 10:59
Beitrag #2

GerdW Offline
LVF-Guru
*****


Beiträge: 4.550
Registriert seit: May 2009

LV-Version: 8.5.1, 09SP1, 10SP1, 11SP1
LV-Erfahrung seit: 1995
LV-Sprachversion: DE_EN

PLZ: 10xxx
Land: Deutschland
RE: matlab-scriptknoten oder dll?
Hallo H,

Zitat:Da ich fünfdimensional aufnehme (x,y,z,zeit,unterschiedliche Farben) wird die initialisierung mir zu unübersichtlich in Labview,

Ähem:
   
Unübersichtlich?

Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
28.07.2011, 11:44
Beitrag #3

Hep Offline
LVF-Grünschnabel
*


Beiträge: 20
Registriert seit: Oct 2007

LV-Version: 2009
LV-Erfahrung seit: 2008
LV-Sprachversion: DE

PLZ: 80339
Land: Deutschland
RE: matlab-scriptknoten oder dll?
(28.07.2011 10:59 )GerdW schrieb:  Unübersichtlich?

das unübersichtliche ist ehrlich gesagt sogar nur 2dimensional - der ansteuerungsarray für die positionierung, der von vielen parametern abhängt.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
28.07.2011, 11:47
Beitrag #4

GerdW Offline
LVF-Guru
*****


Beiträge: 4.550
Registriert seit: May 2009

LV-Version: 8.5.1, 09SP1, 10SP1, 11SP1
LV-Erfahrung seit: 1995
LV-Sprachversion: DE_EN

PLZ: 10xxx
Land: Deutschland
RE: matlab-scriptknoten oder dll?
Hallo Hep,

Zitat:der ansteuerungsarray für die positionierung, der von vielen parametern abhängt.
Wie wäre es mit einem 1D-Array of (typedef'd) Cluster?

Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
28.07.2011, 11:52
Beitrag #5

Hep Offline
LVF-Grünschnabel
*


Beiträge: 20
Registriert seit: Oct 2007

LV-Version: 2009
LV-Erfahrung seit: 2008
LV-Sprachversion: DE

PLZ: 80339
Land: Deutschland
RE: matlab-scriptknoten oder dll?
(28.07.2011 11:47 )GerdW schrieb:  (typedef'd)

Hallo Gerd,
wie meinst du das? Bzw was heißt denn das? kenn ich gar nicht..

H
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
28.07.2011, 11:56
Beitrag #6

GerdW Offline
LVF-Guru
*****


Beiträge: 4.550
Registriert seit: May 2009

LV-Version: 8.5.1, 09SP1, 10SP1, 11SP1
LV-Erfahrung seit: 1995
LV-Sprachversion: DE_EN

PLZ: 10xxx
Land: Deutschland
RE: matlab-scriptknoten oder dll?
Hallo Hep,

du kannst eigene Datentypen per Typdefinition festlegen - bewährt haben sich Cluster mit benannten Elementen...

Schön, dass es die Kontext-/Onlinehilfe gibt...

Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
.. .
29.07.2011, 07:09
Beitrag #7

rolfk Offline
LVF-Guru
*****


Beiträge: 1.836
Registriert seit: Jun 2007

LV-Version: alle seit 6.0
LV-Erfahrung seit: 1992
LV-Sprachversion: EN

PLZ: 2901GG
Land: Nierderlande
RE: matlab-scriptknoten oder dll?
(28.07.2011 10:41 )Hep schrieb:  Da ich fünfdimensional aufnehme (x,y,z,zeit,unterschiedliche Farben) wird die initialisierung mir zu unübersichtlich in Labview, und daher mache ich das mit Matlab. Ich rufe einen Matlab-Skriptknoten auf, von dem aus ein .m file aufgerufen wird, das mir einen Array erstellt, den ich aus dem Knoten auslese. Meine Daten sind U16, der Scriptknoten verwendet Double. Das braucht sicher einiges an Konvertierung. Außerdem benötige ich Speicher in LV für die Daten und redundant dazu auch in Matlab.
Nun war meine Idee, aus dem Matlab-code eine dll zu machen und die einzubinden. Hat da jemand erfahrung? geht das gut?

Die Matlab DLL wird an Deinem Performance Problem kaum etwas ändern. Der Transfer mit Datenkonvertierung wird im wesentlichen bestehen bleiben. Dein Problem ist ein typisches: will man während der Entwicklung Zeit und Gehirnschmalz sparen kostet das später jedesmal Zeit und Performance bei jedem Run. Wenn man sich dagegen hinsetzt und einmal genau darüber nachdenkt was wie getan werden muss, kann man mit etwas "trial and error" auch 5-dimensionale Arrays bändigen. Das geth in LaVIEW selbst sehr einfach da Du da ja auch nicht jedesmal crasht wenn etwas nicht stimmt. In C oder mit DLLs kann ein Byte zu wenig schon genug sein und Du darfst die Applikation wieder neu starten. Man macht sich diese Mühe einmal und hat dann eine Applikation die auch schnell läuft.

Zitat:Und außerdem: kann man den LV zur verfügung stehenden Speicher erweitern?

LabVIEW kann soviel Speicher benützen wie Windows per Applikation zur Verfügung stellt. Unter Windows 32 bit ist das 4GB von dem die Hälfte für Windows reserviert ist. Mit einem switch in boot.ini kann der verfügbare Speicher per App auf 3GB erhöht werden. Natürlich sollte die Maschine dann auch 4GB verfügbaren Speicher haben (eventuellen shared Video Speicher kann da ziemlich negativ reinschlagen) anders macht der 3GB Switch die Dinge nur noch schlimmer.
Unter 64 Bit Windows mit 64 Bit LabVIEW hast Du per Applikation erst mal beinahe soviel Speicher verfügbar wie die Maschine an physikalischem Memory zur Verfügung hat.

Rolf Kalbermatter
CIT Engineering Netherlands
Webseite des Benutzers besuchen Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
29.07.2011, 10:05
Beitrag #8

Hep Offline
LVF-Grünschnabel
*


Beiträge: 20
Registriert seit: Oct 2007

LV-Version: 2009
LV-Erfahrung seit: 2008
LV-Sprachversion: DE

PLZ: 80339
Land: Deutschland
RE: matlab-scriptknoten oder dll?
(29.07.2011 07:09 )rolfk schrieb:  Dein Problem ist ein typisches: will man während der Entwicklung Zeit und Gehirnschmalz sparen kostet das später jedesmal Zeit und Performance bei jedem Run.

na gut, dann investier ich mal Gehirnschmalz Undecided
Wie ist denn das, wenn ich zu test/alignment/überwachungszwecken in einer case struktur ein matlabskript aufrufe - dann sollte das meine Performance doch im normalbetrieb, wenn er also einen anderen case abarbeitet, nicht beeinträchtigen?

Danke für die hilfreiche Antwort!
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
29.07.2011, 15:53
Beitrag #9

BerndDasBrot Offline
LVF-Gelegenheitsschreiber
**


Beiträge: 105
Registriert seit: Feb 2008

LV-Version: 8.2.1, 2011
LV-Erfahrung seit: 2007
LV-Sprachversion: EN

PLZ: 7206
Land: Schweiz
RE: matlab-scriptknoten oder dll?
Hallo

Poste doch mal ein VI oder Bild, dann sieht man was Du meinst.

Gruss, BDB
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
01.08.2011, 12:31
Beitrag #10

rolfk Offline
LVF-Guru
*****


Beiträge: 1.836
Registriert seit: Jun 2007

LV-Version: alle seit 6.0
LV-Erfahrung seit: 1992
LV-Sprachversion: EN

PLZ: 2901GG
Land: Nierderlande
RE: matlab-scriptknoten oder dll?
(29.07.2011 10:05 )Hep schrieb:  
(29.07.2011 07:09 )rolfk schrieb:  Dein Problem ist ein typisches: will man während der Entwicklung Zeit und Gehirnschmalz sparen kostet das später jedesmal Zeit und Performance bei jedem Run.

na gut, dann investier ich mal Gehirnschmalz Undecided
Wie ist denn das, wenn ich zu test/alignment/überwachungszwecken in einer case struktur ein matlabskript aufrufe - dann sollte das meine Performance doch im normalbetrieb, wenn er also einen anderen case abarbeitet, nicht beeinträchtigen?

Danke für die hilfreiche Antwort!

Da könnte einmalig ein wenig Zeit anfallen beim Laden des VIs, aber zur Laufzeit sollte das tatsächlich keinen merkbaren Unterschied machen. Die Idee ist sogar sehr gut. Zum debuggen kannst Du schnell mal zwischen dem (hoffentlich als korrekt getestetem) Matlabskript und Deiner LabVIEW Implementation hin und herschalten. Wenn's denn korrekt läuft lässt Du die LabVIEW Variante aktiviert.

Rolf Kalbermatter
CIT Engineering Netherlands
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
  dll vonLabVIEW in Matlab Simulink verwenden /LabVIEW -> Matlab XPC hans_p 0 1.493 10.12.2009 10:19
Letzter Beitrag: hans_p
  mxarray und Matlab hepman 3 2.699 11.03.2008 12:08
Letzter Beitrag: rolfk
  MATLAB und LabVIEW Anderli 1 2.074 15.02.2008 17:45
Letzter Beitrag: thomas.sandrisser
  Matlab Skript aktivieren abi 0 1.232 14.03.2006 12:06
Letzter Beitrag: abi

Gehe zu: