le 11-03-2015 04:53 AM
Bonjour,
Je veux réaliser une communication TCP/IP entre 2PC. Le PC serveur contient une application d'un fournisseur qui controle un microscope et le PC client correspond à mon programme LabVIEW. L'entreprise nous a fournis un code python qui montre comment prendre la main sur le microscope par TCP/IP. Malheuresement je n'arrive pas à trouver un VI qui me permet d'effectuer la fonction "socket(AF_INET,SOCK_STREAM)" sous LabVIEW.
Je transmet en pièce jointe le programme en python, si quelqu'un pourrai m'aider sur la traduction python -> LabVIEW.
Merci d'avance pour votre aide.
le 11-03-2015 05:11 AM
Au vu de la documentation python (je ne suis pas expert), je ne pense pas que tu es un équivalent direct en labiew.
As tu essayé d'utiliser directement la fonction TCP Connect, pour voir si cela fonctionne ?
De ma vue, j'ai l'impression que cette étape sert juste à indiquer le type de communication (TCP, UDP, ....), or ce choix est fait au travers de la fonction labview que tu vas utiliser.
Cdt,
Michael
le 11-03-2015 06:33 AM
Oui j'ai éssayé avec la fonction TCP connect mais pour moi, je pense que la fonction TCP connect sous LabVIEW permet d'effectuer à la fois les fonction python socket, bind et connect . Sauf que moi dans mon cas il faut que je fasse uniquement socket et aprés avoir envoyé une ligne de commande je dois me connecter.
le 11-03-2015 06:44 AM
Tu as testé déjà avec le programme python, pour être sur que ton installation hardware est bonne ?
le 11-03-2015 06:47 AM
Oui le fournisseur nous a fourni un exécutable qui permet de récupérer l'image du microscope par TCP/IP pour nous montrer que cela était possible de faire. Et normalement l'executable est codé en python.
le 11-03-2015 06:52 AM
Peux tu partager ton programme ? Et préciser ton environnement de travail (version de windows, labview, driver,....)
Cdt,
Michael
le 11-03-2015 07:48 AM
Je suis sous windows seven avec LabVIEW 2013. Mon programme est en pièce jointe
le 11-03-2015 08:26 AM
Alors j'ai quelques remarques générales :
-Ton initialisation avec le "start" à faux volant n'est pas bon. Il peut y avoir des moments ou celui-ci sera exécuté après ta boucle while, le rendant inutile.
-La structure sequence unique dans la boucle while est inutile.
- Ta boucle while interne ne sert à rien puisque tes conditions de sortie font qu'elle ne s'exécute qu'une seule fois.
Pour valider un principe de communication, je te conseille plutôt de remontrer de manière continu tout octet sur la communication, et par la suite tu joueras sur l'optimisation du nombre d'octet relu.
Ta temporisation de vrait être avant la lecture et pas avant la fermeture.
Fait le test avec ce VI est dit nous si tu remontes des données.
11-03-2015 08:49 AM - modifié 11-03-2015 08:50 AM
Mince désolé de cette erreur mais je me suis trompé dans l'envoie du fichier --' c'est ca de mettre les meme noms a tous ces fichier --'
Je retransmet en piece jointe le bon fichier!
Encore désole de cette erreur michael 😕
le 11-04-2015 04:01 AM
Tu as fait le test de voir si de la data est retournée sur le port 8301 ? Il se pourrait qu'il te retourne l'acquittement par la connection "data".