Discussions au sujet de NI LabVIEW

cancel
Showing results for 
Search instead for 
Did you mean: 

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

Solved!
Go to 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 Kudos
Message 1 of 14
(236 Views)

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 Kudos
Message 2 of 14
(186 Views)

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 Kudos
Message 3 of 14
(183 Views)

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 Kudos
Message 4 of 14
(180 Views)

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 Kudos
Message 5 of 14
(175 Views)

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 Kudos
Message 6 of 14
(164 Views)

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 Kudos
Message 7 of 14
(162 Views)

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 Kudos
Message 8 of 14
(156 Views)

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 Kudos
Message 9 of 14
(148 Views)

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 Kudos
Message 10 of 14
(145 Views)