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 

Dieses Thema hat akzeptierte Lösungen:

matlab-scriptknoten oder dll?



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!

28.07.2011, 10:41
Beitrag #1

Hep Offline
LVF-Grünschnabel
*


Beiträge: 20
Registriert seit: Oct 2007

2009
2008
DE

80339
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
Anzeige
28.07.2011, 10:59
Beitrag #2

GerdW Offline
______________
LVF-Team

Beiträge: 17.427
Registriert seit: May 2009

LV2021
1995
DE_EN

10×××
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

2009
2008
DE

80339
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-Team

Beiträge: 17.427
Registriert seit: May 2009

LV2021
1995
DE_EN

10×××
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

2009
2008
DE

80339
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-Team

Beiträge: 17.427
Registriert seit: May 2009

LV2021
1995
DE_EN

10×××
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
Anzeige
29.07.2011, 07:09
Beitrag #7

rolfk Offline
LVF-Guru
*****


Beiträge: 2.302
Registriert seit: Jun 2007

alle seit 6.0
1992
EN

2901GG
Niederlande
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
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
29.07.2011, 10:05
Beitrag #8

Hep Offline
LVF-Grünschnabel
*


Beiträge: 20
Registriert seit: Oct 2007

2009
2008
DE

80339
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: 128
Registriert seit: Feb 2008

8.2.1, 2012, 2017, 2020
2007
EN

7206
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: 2.302
Registriert seit: Jun 2007

alle seit 6.0
1992
EN

2901GG
Niederlande
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
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 


Möglicherweise verwandte Themen...
Themen Verfasser Antworten Views Letzter Beitrag
  Matlab in Labview newbiedubie 1 4.833 04.09.2012 06:43
Letzter Beitrag: rolfk
  dll vonLabVIEW in Matlab Simulink verwenden /LabVIEW -> Matlab XPC hans_p 0 4.768 10.12.2009 10:19
Letzter Beitrag: hans_p
  mxarray und Matlab hepman 3 6.703 11.03.2008 12:08
Letzter Beitrag: rolfk
  MATLAB und LabVIEW Anderli 1 5.909 15.02.2008 17:45
Letzter Beitrag: thomas.sandrisser
  Matlab Skript aktivieren abi 0 4.088 14.03.2006 12:06
Letzter Beitrag: abi

Gehe zu: