¿Por qué la llamada a una DLL provoca una falla en la descarga de mi VI de LabVIEW Real-Time?



Software Primario:
Versión de Software Primario: 6.1
Versión de Software Primario Corregido: 7.0
Software Secundario: LabVIEW Modules>>LabVIEW Real-Time Module

Problema:
Tengo un VI de LabVIEW Real-Time que llama una DLL. Cuando intento ejecutar el VI que debe correr en mi controlador RT obtengo un mensaje de error "Failed to download". Después de dar click en OK, se despliega una ventana con otro error que dice "Failed to load shared library :: on RT target device." ¿Qué podría estar causando esto?

Solución:
La causa más común de este error cuando se utiliza un controlador RT con LabVIEW RT 6.1 o anterior es que estos controladores RT utilizan DOS 8.3 como convención para nombres de archivos (los nombres de archivos no deben tener más de 8 caracteres y su extensión debe ser de 3 caracteres). Cuando ejecutas un VI que debe correr en un controlador RT, el VI se carga en la memoria del controlador y no se descarga al disco duro. Por tal motivo, los VIs que ejecutas pueden tener nombres de archivos muy largos, que incluyen espacios, al igual que en Windows. Sin embargo, si llamas DLLs desde tu VI, se descargan todas las DLLs al sistema de archivos del controlador, el cual únicamente acepta nombres de archivos DOS 8.3. Por lo tanto, la falla en la descarga puede ser causada por una DLL que tiene un nombre de archivo que no cumple con la convención DOS 8.3.

Por ejemplo, "my_rt_routine.dll" cumple con estas características. Si se renombra la DLL como "myrtapp.dll" y se vincula la misma al VI que la llama, no debería de presentarste el error. Se debe tener cuidado cuando se renombran DLLs en la computadora principal, ya que Windows podría utilizar también estas DLLS. Renombrarlas provocaría que Windows no las encontrará. Por tal motivo, se recomienda primero crear una copia de la DLL para después renombrar esta copia para utilizarla con LabVIEW RT.

Nota: Con LabVIEW RT 7.0 y superior, los nombres de los archivos no están restringidos por la convención DOS 8.3.

Ligas Relacionadas:
Error 6 Using Long File Names on a RT Series PXI Controller
KnowledgeBase[2UH9L2PK]: Error 6: Generic File I/O Error when Disk is Full in LabVIEW Real-Time
KnowledgeBase3BMI76L1] - ¿Como puedo verificar si mi DLL es Ejecutable en LabVIEW Real-Time?


Archivos Adjuntos:





Día del Reporte: 08/01/2002
Última Actualización: 06/30/2012
Identificación del Documento: 2O0DQKEW