Discussions au sujet des autres produits NI

annuler
Affichage des résultats de 
Rechercher plutôt 
Vouliez-vous dire : 

Copier un fichier depuis Windows 7 dans un cRIO-9066 via CVI

Résolu !
Accéder à la solution

Bonjour,

J'essai actuellement de copier un fichier texte vers un CompactRIO 9066 en passant par le logiciel CVI.

J'ai créé un lecteur réseau pointant vers un dossier du cRIO que j'utilise pour accéder depuis Windows 7 aux fichiers.

 

Le lecteur réseau a pour adresse: \\ni-crio-9066-030c6bf1.local\files ainsi qu'un mot de passe.

 

Mon problème est que n'importe quelle action prend énormément de temps. Que je veuille copier un fichier dans le cRIO ou supprimer un fichier, cela prend plusieurs dizaines de secondes à chaque fois.

Il me faut plus d'une minute pour copier un fichier de 1Mo.

 

Au début j'ai voulu utilisé la fonction CVI CopyFile mais cela a eu pour résultat de bloquer totalement mon application le temps que la copie se termine.

 

J'ai bricolé quelque chose soit utiliser une ligne de commande Windows (cmd.exe /c COPY Source Destination) lancée via la fonction LaunchExecutableEx afin que mon application ne se bloque pas pendant la copie.

 

Mais cette solution ne me convient pas et je cherche un autre moyen de copier mes fichiers vers le cRIO.

Quand je passe par MAX et le navigateur de fichiers distants, l'envoi du même fichier via Déployer un fichier est "instantané".

 

Je suppose donc qu'il y a une méthode plus rapide d'envoyer un fichier (autre protocole?).

 

Dans LabVIEW il y a la bibliothèque WebDAV par exemple mais qui ne semble pas présente dans les bibliothèques CVI.

 

Dans l'attente de vos réponses.

0 Compliments
Message 1 sur 5
4 269 Visites

Voici quelques précisions suite à mes essais.

La copie d'un fichier est toujours aussi lente sauf si je modifie un paramètre dans Internet Explorer.
Si je décoche Détecter automatiquement les paramètres de connexion dans Options Internet>>Connexions>>Paramètres réseau, la copie d'un fichier de 300ko passe de 25-30s à 1-2s.
Ce qui est déjà plus raisonable.

Pour faire la copie j'utilise la fonction CopyFile vers le lecteur réseau que j'a créé pointant vers le cRIO.

Par contre j'ai régulièrement des erreurs de copie suite à ce paramètre décoché.

Windows affiche par moment un popup indiquant un "Echec de l'écriture différée", le fichier fait alors 0ko dans le cRIO mais CopyFile ne renvoie pas de statut d'erreur donc je ne peux même pas gérer une tentative de renvoi du fichier.

Cette méthode vient d'un KnowledgeBase http://digital.ni.com/public.nsf/allkb/4EBE45E8A816B19386257B6C0071D025. Ils préviennent pour les erreurs de copie mais j'espérais au moins un statut d'erreur.

Cette méthode semble être une impasse à moins que j'ai manqué quelquechose?

 

Sinon y a-t-il d'autres moyens d'envoyer des fichiers dans un cRIO?

0 Compliments
Message 2 sur 5
4 238 Visites
Solution
Accepté par adenage

Bonjour,

 

Pour copier des fichiers sur un cRIO, on a 2 méthodes:

- WebDAV (méthode privilégiée depuis 2013), mais ce protocole n'a pas d'API en CVI

- FTP (moins sécurisé donc non préféré), à condition d'avoir installé le composant "Legacy FTP Server" sur le cRIO. Pour cela il y a une API dans CVI, donc c'est gagné.

 

Dans les deux cas, l'idée est de ne pas avoir un dossier partagé sur le réseau à créer/maintenir sur le PC windows. Avec ces deux protocoles, il suffit d'établir une connexion et écrire/lire les fichiers.

 

Cordialement,

Eric M. - Senior Software Engineer
Certified LabVIEW Architect - Certified LabVIEW Embedded Systems Developer - Certified LabWindows™/CVI Developer
Neosoft Technologies inc.

Message 3 sur 5
4 207 Visites

Merci de votre réponse.

 

Pour WebDAV c'est ce qu'il me semblait, dommage (surtout si c'est la méthode à privilégier dorénavant).

 

Pour le FTP, j'ai regardé la bibliothèque et les exemples CVI associés mais je n'ai pas encore eu le temps de le tester dans mon application.

Je devrais pouvoir tester cela lundi ou mardi. Je posterais le résultat à ce moment là.

 

PS: le lecteur réseau n'est de toute façon pas la solution que je souhaite privilégier. Je l'ai mis en place après être tombé sur une impasse avec WebDAV (pas vu que le FTP était possible).

 

 

 

 

0 Compliments
Message 4 sur 5
4 192 Visites

J'ai donc résolu mon problème comme vous l'avez sugéré en utilisant l'API FTP incluse dans CVI. Avec cette méthode je n'ai aucune lenteur et plus de problèmes de copie.

 

Par contre c'est dommage que NI privilégie WebDAV sans intégrer d'API dans CVI. Mais bon le FTP fait le job. J'espère juste qu'ils ne décideront pas de le supprimer des installations possibles sur le cRIO dans un futur proche. Sinon Obligation d'une API WebDAV externe?

 

Merci de votre aide. Je vais clore le sujet.

0 Compliments
Message 5 sur 5
3 977 Visites