Discussions au sujet de NI LabVIEW

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

Question déplacement de fichier cRIO vers PC hôte (FTP ou autre)

Résolu !
Accéder à la solution

Bonjour à tous,

 

Je sollicite votre aide sur un projet.

 

Pour résumer: un cRIO 9063 s'occupe de récupérer des données (via la partie FPGA), ces données sont écrites à interval régulier sur un fichier (disons toutes les secondes). Une fois que le fichier a atteint une certaine taille, un nouveau fichier est créé (avec un nouvel indice, date ...) et ainsi de suite.

Une option peut être coché pour que le fichier précédent soit déplacé sur le PC hôte.

 

Mon système fonctionne, néanmoins il présente un problème:

Pour que la copie se fasse sans erreur, je dois au préalable au démarrage du PC hôte avoir ouvert une fenêtre windows qui pointe sur le dossier d'enregistrement sur le cRIO et renseigner les paramètres de session du cRIO, dés que c'est fait une fois, après plus de soucis (j'ai connecté un emplacement réseau pour simplifier la manip de la forme http:\\[adresse_IP]\files\C\ni-rt\DATA).

Je voudrais m'affranchir de cette manip pour l'utilisateur final...

Dans le passé je crois me souvenir avoir vu un moyen d'automatiser ça en passant par du ftp (je crois ... je suis pas sur sur).

 

J'ai essayé en vain différents codes glanés ici et là mais sans succès.

 

Avez vous une idée ?

 

Merci.

0 Compliments
Message 1 sur 14
1 799 Visites

Bonjour,

 

Pour copier par programmation des fichiers d'une cible RT vers un PC hôte la méthode la plus simple est de créer un programme hôte labVIEW avec les fonctions FTP. Voici un code d'exemple https://forums.ni.com/t5/Example-Code/Programmatic-FTP-file-transfer/ta-p/3526707?profile.language=e...

Il faut bien faire attention au nom et mot de passe pour l'accès sinon une erreur est retournée.

Si on ne sait pas depuis l'hôte l'adresse du cRIO et que l'on veux l'ajouter "dynamiquement" alors on peut utiliser la bibliothèque NI System Configuration API qui permet par exemple de voir tous les cRIO ou cibles connectées sur le sous-réseau. (comme dans MAX)

https://forums.ni.com/t5/Community-Documents/Welcome-to-the-NI-System-Configuration-API/ta-p/3526512...

Lien pour la télécharger https://www.ni.com/en-us/support/downloads/drivers/download.system-configuration.html#371210

La fonction Find systems permet de savoir par ex. tout ce qui est connecté et en ligne ou pas avec les IP et bien d'autres informations retournées sous forme de chaine http://zone.ni.com/reference/en-XX/help/373107N-01/nisyscfg/find_systems/

 

 

0 Compliments
Message 2 sur 14
1 748 Visites

Merci pour la réponse.

 

C'est un peu ce que j'avais essayé.

J'ai l'erreur 63 qui est renvoyé quand j'essaie d'exécuter le code. Cela bloque dés l'ouverture de session ftp...

0 Compliments
Message 3 sur 14
1 746 Visites

Oui c'est normal car le serveur FTP n'est pas installé et démarré sur le cRIO. Normalement on utilise le WebDAV pour accéder directement à un disque en remote dans une fenêtre Windows. 

Voici comment l'installer, il faut faire un custom install car c'est un composant un peu ancien (deprecated)

https://knowledge.ni.com/KnowledgeArticleDetails?id=kA00Z000000g01rSAA&l=en-US

Normalement nous sommes à la version 1.4 

0 Compliments
Message 4 sur 14
1 743 Visites

Super j'arrive maintenant à ouvrir une session, par contre je dois utiliser le login par défaut ("anonymous" et chaine vide pour le password) et non pas le login pour accéder au cRIO, est ce normal?

 

J'ai maintenant l'erreur 15550 "FTP Transaction:550 Failed to open file" ... pourtant j'ai utiliser le format donnée dans l'aide pour cibler le fichier.

0 Compliments
Message 5 sur 14
1 738 Visites

Pour le login, par FTP par défaut le mot de passe est vide. C'est pour cela que l'authentification par WebDAV est conseillée pour gérer les accès. Mais il y a moyen de le redéfinir maintenant que vous avez installé le driver. A essayer:

https://knowledge.ni.com/KnowledgeArticleDetails?id=kA03q000000x54pCAA&l=en-US

 

Pour l'erreur 15550 c'est surement le chemin d'accès qui n'est pas juste et a vérifier comme expliqué ici:

https://knowledge.ni.com/KnowledgeArticleDetails?id=kA00Z0000004BD4SAM&l=en-US

 

0 Compliments
Message 6 sur 14
1 727 Visites

Pour le login je l'ai vu dans l'aide entre temps merci.

 

 

Je pensais bien que c'était la syntaxe de mon chemin mais j'ai vérifié et essayé différente manière sans succès.

 

J'ai juste fait un petit VI qui utilise FTP Get File.vi, J'ai comme chemin:

Remote path (cible cRIO): c:\ni-rt\DATA\fichier_data.txt (j'ai aussi essayé /c/ni-rt/DATA)

Local path (PC hote) : D:\ (directement à la racine de ma partition de données).

 

Mais sans succès ....

0 Compliments
Message 7 sur 14
1 725 Visites

Normalement sur le host il doit y avoir le nom du serveur : par exemple "ftp.ni.com" puis sur Remote read juste le chemin relatif "/ni-rt/DATA/Nom du fichier.txt". Le fichier de sortie est alors en dur sur le lecteur local. Attention 😧 "à la racine" on a pas toujours les droits racine sur les OS, un répertoire simple temporaire est mieux.

C'est la même chose que dans la barre d'un navigateur quand on cherche un ftp:// puisque maintenant il s'agit d'un serveur.

Il y a un exemple dans LabVIEW nommé FTP put and Get Files.vi qui le montre, mais le serveur ni a changé d'adresse et il ne fonctionne plus

0 Compliments
Message 8 sur 14
1 719 Visites

J'ai mis le chemin relatif comme indiqué et j'ai changé mon dossier de destination pour éviter de mettre à la racine.

Sur le host j'ai mis directement l'adresse IP du cRIO (sinon tout autre chose donne l'erreur 54).

 

Rien de plus 🤔

0 Compliments
Message 9 sur 14
1 711 Visites

C'est étrange, voyez-vous le fichier en tapant dans un navigateur web le chemin du serveur?  ftp://xxx.xxx.xxx.xxx etc..

suivi des répertoires? ou avec un logiciel type Filezilla

0 Compliments
Message 10 sur 14
1 708 Visites