NI Home > Community > NI Discussion Forums

Discusiones sobre Productos NI

Mostrando los resultados de 
Buscar en lugar de 
Querías decir 
Responder
Member
Mensajes publicados: 49
0 kudos

incluir funcion matlab en LabVIEW

Hola,

me gustaria introducir en un Vi de Labview, codigo escrito en una funcion .m de matlab. He probado con MathScript y MatlabScript e incluir la función dentro del nodo, y aunque funciona, es muy lento. Me gustaria poder generar una dll a partir de una función .m e introducirla en el Vi mediante call library function node ¿alguna ayuda de como se hace esto? gracias

 

Member
FightOnSCTrojan
Mensajes publicados: 168
0 kudos

Re: incluir funcion matlab en LabVIEW

Elisa:

 

Aqui tienes un tutorial que te va a enseñar como puedes compilar tu archivo .m en formato dll.

http://www.codeproject.com/KB/DLL/MatlabSharedLib.aspx 

Despues de hacerlo, puedes llamar al archivo dll como si fuera de formato C en Call Library Node, de acuedo a la siguiente configuración

http://zone.ni.com/reference/en-XX/help/371361B-01/lvexcodeconcepts/configuring_the_clf_node/

 

Suerte,


Santiago

Member
jrafa
Mensajes publicados: 165
0 kudos

Re: incluir funcion matlab en LabVIEW

 

Además de lo que te han comentado antes te cuento mi experiencia en ese tema: yo hace tiempo hice una comparativa de varios métodos para comunicar LabVIEW y MATLAB: con un ActiveX, con DLL y mediante MATLAB NODE.En el primer caso tienes que construir un componente ActiveX con el comando comtool en MATLAB, ahí creas un nuevo proyecto y añades tu fichero .m, luego construyes una dll y registras el componente. En LabVIEW podrás usar ese componente como cualquier otro ActiveX.

 

Para crear una DLL, además de los enlaces que te han pasado antes puedes ver http://forums.ni.com/ni/board/message?board.id=170&message.id=7344.

 

La tercera forma, el MATLAB NODE, no tiene mucha historia...

 

En cuanto a rendimiento, el usar ficheros mex añade mejoras respecto a usar directamente los ficheros .m sobre MATLAB (por supuesto también cuando el código se llama directamente y no a través de MATLAB). Sobre los otros dos a mi me funcionó unas 6 veces más rápido el ActiveX que el MATLAB NODE, aunque en ambos casos la primera vez que lo llamaba tardaba mucho tiempo (más de 100 ms) mientras que las siguientes llamadas eran mucho más rápidas (3 y 18 ms respectivamente); imagino que se debe a que se deben cargar el ActiveX y MATLAB la primera vez, pero en las siguientes llamadas ya no es necesario, quizás éste sea el motivo por el que te funciona tan lento.

Member
delavega
Mensajes publicados: 39
0 kudos

Re: incluir funcion matlab en LabVIEW

Hola!

 

Alguien me puede ayudar. Tengo problemas con los ejemplos de llamar a una dll de Matlab con LV. En el caso del ejemplo: HOW TO GENERATE A DLL FROM A MATLAB FUNCTION
SCRIPT TO RUN IN LABVIEW, tengo problemas con la inicialización de la instancia "mclInitializeApplication", ya que me devuelve -1. Si no pongo la llamada a la instancia, el ejemplo no me hace nada.

 

Me pueden hechar una mano en solucionar el problema. Si es posible, me gustaría probar un ejemplo con las versiones actuales de matlab y labview, haber si el problema viene de que estoy utilizando líneas de compilación antiguas.

 

Muchas gracias

 

Saludos

Member
Celuti
Mensajes publicados: 10
0 kudos

Re: incluir funcion matlab en LabVIEW

Hola;

Sé que ha pasado bastante tiempo, pero, alguién sigue trabajando en este tema?

Podríais contar vuestras experiencias?

Yo estoy empezando a necesitar convertir un programa realizado a base de sripts .m a una libriría interpretable por LabView. He conseguido que me las reconozca MSVS, pero no LabView/VeriStand.

Alguien me puede ayudar?

 

Un saludo.