2008-10-22 16 views
8

He escrito una aplicación independiente que controla un dispositivo a través del puerto RS-232 y algunos clientes quieren poder usar el dispositivo con LabVIEW. He visto algunos hilos que describen por dónde empezar cuando aprendí a usar LabVIEW, pero me preguntaba si alguien tiene experiencia en escribir un plugin/driver (¿es la palabra correcta?) Para LabVIEW y tal vez apuntarme en la dirección correcta.LabVIEW "driver" - getting started

La aplicación existente es la GUI que permite a las personas controlar el dispositivo con conceptos de nivel superior, en lugar de tener que conocer la sintaxis y el protocolo de las comunicaciones del puerto serie. Quiero abstraer eso también para que los usuarios puedan simplemente enchufar algo en LabVIEW y supongo que expone algunos verbos y métodos que permiten manipular el dispositivo y también proporcionar datos a los clientes.

Creo que hay una interfaz de puerto serie de LabVIEW, pero estoy seguro de que las personas que usan este dispositivo no quieren tener que escribir el código (analizadores y etc.) para comunicarse con el dispositivo.

Respuesta

3

Hay dos opciones para lo que estás tratando de hacer.

  • Cree una DLL que los usuarios de su dispositivo puedan call from LabVIEW.

  • Vuelva a escribir su aplicación en LabVIEW.

Para llegar al mayor número posible de clientes potenciales, la opción n. ° 1 sería la mejor solución para usted. Si sus clientes están solicitando específicamente un controlador de LabVIEW, entonces la opción # 2 probablemente sea la menor molestia para ese cliente específico. La razón de esto es que LabVIEW es en gran medida un lenguaje de nicho (para automatización y adquisición de datos), y para muchos desarrolladores de LabVIEW es el único idioma que conocen (o el único que conocen bien).

2

El mejor recurso para los programadores de LabVIEW es National Instruments Knowledge Base. Debido a que LabVIEW solo es popular en un segmento tan pequeño, no hay muchos otros recursos web disponibles.

Un libro que leí cuando programé en LabVIEW fue LabVIEW Power Programming. Tiene muchos buenos códigos de ejemplo, y si no recuerdo mal, le muestra cómo usar DLL de terceros escritos en C++. Lo que definitivamente no muestra que es cómo escribir esos archivos DLL, sin embargo.

+0

Sí, ese es el problema que he encontrado. Trataré de buscar más información sobre ese sitio. – Tim

3

LabVIEW puede manejar la comunicación RS232 con pocos problemas, solo debe proporcionar al cliente una lista de los comandos y la sintaxis que utiliza el dispositivo, y quizás un pequeño marco o ejemplo VI con funcionalidad básica.

Lo aplaudo por querer proporcionar un controlador más robusto que no requiera que el usuario analice sus propios comandos; lo que usualmente se llama un 'controlador' de LabVIEW por la mayoría de los vendedores es poco más que unos pocos comandos ('init', 'read') incluidos en una GUI simple.

Usted no tiene que reconstruir su solicitud completa, sólo les dan lo suficiente como para empezar a trabajar en su propio =)

Para empezar, es probable que desee utilizar VISA in LabVIEW.

+0

gracias - Entiendo que LV tiene soporte para rs232, y como usted dijo, quiero que el uso del dispositivo sea muy simple. (No soy el dispositivo mnfgr, solo un desarrollador que satisface una (pequeña) necesidad) – Tim

8

Si está preparado para invertir un poco de tiempo en aprender a programar en LabVIEW, puede encontrar la información relevante sobre cómo desarrollar un controlador de instrumento here y here .

Esencialmente debe proporcionar un conjunto de VI (la unidad de código de LabVIEW) que implementa las diversas operaciones admitidas por su dispositivo. Los programadores de LabVIEW encadenarán una secuencia de estos utilizando el recurso VISA (es decir, el puerto serie) y los terminales de entrada/salida de error que deberían proporcionar los VI. Vea el segundo enlace para un ejemplo.

Si no desea aprender a hacerlo correctamente, lo que su segunda publicación sugiere que no haga, cree una DLL que exponga las funciones necesarias o encargue a un programador de LabVIEW que escriba el controlador para usted . Si puede proporcionar la documentación adecuada de su protocolo y no es terriblemente complicado, entonces debería llevarles una tarde. Si tiene usuarios que están interesados ​​en LabVIEW, entonces uno de ellos podría estar contento de hacer el trabajo por usted para obtener un descuento o incentivo apropiado; realmente no es difícil para alguien competente en LabVIEW y ellos son los que ya tienen sus manos. en su dispositivo y entienda lo que hace. Es posible que desee probar beta el resultado con sus otros usuarios de LabVIEW primero, ya que no estará en posición de evaluar la calidad de lo que ellos mismos hacen.

Si va por la ruta de la DLL, deberá verificar que los parámetros que necesita sean compatibles con los tipos de datos de LabVIEW. No soy un programador de C/C++, así que no puedo decirle en detalle lo que esto significa, pero this podría ser útil (Rolf Kalbermatter es el gurú en la interfaz de LabVIEW con código externo).

Si desea encontrar un programador de LabVIEW, National Instruments puede referirlo a uno a través de su esquema de alianza.

(Editado para añadir un enlace a LAVA mensaje del foro en la escritura de archivos DLL de LabVIEW)

+0

Gracias. Definitivamente lo haré de la manera correcta cuando tengamos tiempo para llegar a él. Simplemente asumí que sería bastante sencillo hacerlo funcionar. – Tim

0

Su cliente quiere usar su código con LabVIEW. Esto no significa que tenga que escribir el código de LabVIEW.

LabVIEW puede interactuar con DLL. El truco aquí es evitar las estructuras de datos más complicadas. Si mantiene el paso por el valor de los tipos de datos básicos, no tendrá ningún problema. LabVIEW también puede trabajar con matrices desde y hacia archivos DLL. Evite los punteros a punteros o punteros a las estructuras.

LabVIEW también puede interactuar con ensamblajes .NET.

Tampoco hay nada que le impida utilizar un modelo cliente/servidor sobre TCP/IP.