le 04-21-2016 10:10 AM
Bonjour à tous,
Je suis actuellement en train d'essayer de faire tourner une fonction matlab (.m) sur LabVIEW. J'ai vu qu'il était possible de générer un fichier dll avec Matlab et de l'utiliser ensuite dans LabVIEW. J'ai donc suivi ce tutoriel : http://ch.mathworks.com/help/compiler_sdk/dotnet/simple-plot.html qui me permet de générer différents fichiers. J'ai pu tester le programme sous VS et ça fonctionne correctement.
J'ai essayé d'intégrer le fichier dll dans LabVIEW en utilisant le "Constructor node". J'ajoute le fichier PlotComp.dll, LabVIEW trouve bien le constructor "Plotter". J'ajoute ensuite le bloc "Invoke node" dans le quel je peux slectionner la fonction drawgraph (correspondant à la fonction drawgraph.m initiale de Matlab). Jusque-là, tout semble fonctionner. Cependant, quand je lance la simulation, j'obtiens cette erreur :
Error 1172 occurred at Constructor Node Error creating instance of Plotter in assembly PlotComp.Plotter, PlotComp, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null, (System.TypeInitializationException: Une exception a été levée par l'initialiseur de type pour 'PlotComp.Plotter'. Inner Exception: System.TypeInitializationException: Une exception a été levée par l'initialiseur de type pour 'MathWorks.MATLAB.NET.Utility.MWMCR'. Inner Exception: System.TypeInitializationException: Une exception a été levée par l'initialiseur de type pour 'MathWorks.MATLAB.NET.Arrays.MWArray'. Inner Exception: System.BadImageFormatException: Tentative de chargement d’un programme de format incorrect. (Exception de HRESULT : ... (source truncated; see Context Help window) LabVIEW: A .NET exception occurred in an external assembly. For information about correcting this error, copy the following exception (in bold), and search the Microsoft Developer Network (MSDN) Web site or the Web for a possible explanation. System.BadImageFormatException in Test.vi
J'ai cherché un peu partout sur internet mais je ne vois pas vraiment d'où peut venir le problème.
Il semblerait que le fichier "MWArray.dll" pose problème. J'ai essayé de l'inclure dans le dossier du VI mais ça n'a rien changé.
Une autre chose, j'utilise Matlab 64 bits alors que LabVIEW tourne en 32 bits. Le fichier dll générait est donc en 64 bits. Est-ce que ça pourrait être la source du problème ? Pourtant LabVIEW semble être capable de lire le fichier puisqu'il trouve les class à l'intérieur.
Je vous remercie pour votre aide.
Edouard