From Friday, April 19th (11:00 PM CDT) through Saturday, April 20th (2:00 PM CDT), 2024, ni.com will undergo system upgrades that may result in temporary service interruption.

We appreciate your patience as we improve our online experience.

Discussions au sujet de NI LabVIEW

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

Problème de reconnexion sur automate TM258 via ethernet/TCP - Erreur 66/62

Bonjour à toutes et à tous,

 

J'ai développé une application pour communiquer via ethernet avec différents automates (TLCC et TM258 de chez S.E.). Le code côté serveur est identique sur les TLCC et les TM258.

 

Mon application utilise les fonctions TCP Open Connection, TCP Write et TCP Read afin de communiquer avec les automates.

 

Lorsque je clique sur un bouton "Connexion" de ma face-avant, j'envoie une liste d'instructions dans une file d'attente qui seront lues et exécutées dans mon autre boucle. (voir Capture 1 et 2)

Chaque instruction exécute les mêmes fonctions : envoi d'une commande via TCP Write, puis lecture de la réponse via TCP Read. (voir Capture 3)

 

Mon problème est le suivant :

 

Lorsque je me connecte une première fois à un TM258, tout fonctionne correctement.

 

Si je me déconnecte via TCP Close Connection (bouton Disconnect sur ma face-avant), puis que j'essaie de me reconnecter au même automate TM258, le VI TCP Open Connection ne me renvoie aucune erreur, mais lorsque je lui envoie une commande via TCP Write, puis que j'attends la réponse avec TCP Read, ce dernier VI me retourne une erreur 66 (l'erreur sort du TCP Read, et non du TCP Write). Dans les instructions suivantes, les VI me renvoient l'erreur 62.

 

Le problème survient peu importe l'ordre des instructions. Si l'on reprend la Capture 1, que ce soit "read param 1" ou "get feedback mode" en premier, ce sera toujours dans la première instruction que l'erreur 66 apparaîtra au TCP Read.

 

Il n'y a aucun problème si j'essaie de me connecter/reconnecter plusieurs fois de suite sur un TLCC avec cette application.

 

Nous avons une ancienne appli (développée en CVI) obsolète pour communiquer avec ces automates, il n'y a aucun problème pour me connecter aux automates via cette ancienne appli, même quand je rencontre l'erreur 66 sur mon appli LabVIEW.

 

Je suis obligé de redémarrer l'automate pour pouvoir à nouveau communiquer avec lui via mon appli LabVIEW.

 

Auriez-vous des pistes de réflexions pour résoudre ce bug ?

 

N'hésitez pas à me demander des infos complémentaires 🙂

 

Thibaut M.

Tout télécharger
0 Compliments
Message 1 sur 4
975 Visites

Bonjour,

 

Je me permets de  remonter ce sujet, car je n'ai toujours pas trouvé de solution 🙂

0 Compliments
Message 2 sur 4
893 Visites

Bonjour,

 

Avez-vous isolé les fonctions de communication avec cet automate afin de s'affranchir du reste du code ?

 

Vous pouvez réaliser ces modifications :

- Ajouter des temporisations entre open / Write / read / close

- Répéter les actions après erreur 

 

Bonne journée!

0 Compliments
Message 3 sur 4
889 Visites

Bonjour,

 

J'ai un timer de 500ms après la fonction Open, mais je n'ai pas encore testé entre les fonction Write, Read et Close. Je testerai ça 🙂

0 Compliments
Message 4 sur 4
883 Visites