Discussions au sujet de NI LabVIEW

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

Error 56 - Lecteur Automate IPX800

Bonjour à tous,

Je travaille actuellement sur l'automate IPX800 qui récupère des informations de plusieurs capteurs. Cet automate me sert à asservir et automatiser la mesure d'un Lidar.

Je récupère le status.xml que je lis en permanence dans mon programme LabVIEW pour l'écrire dans un fichier log.

Ce programme est un sous-VI de mon projet LabVIEW « Superviseur Lidar », il lance le programme cadencé à la seconde. J'utilise HTTP GET pour lire le status.xml, mais j'obtiens une erreur 56 environ chaque semaine qui provoque l'arrêt du programme au niveau de la requête HTTP :

 

 

Capture.PNG

 

 

Vous trouverez le snippet ci-dessous : en v2019

Snippet_LILAS.png

 

Je vous remercie pour votre aide !

0 Compliments
Message 1 sur 7
147 Visites

Bonjour,

 

Quel comportement souhaiterais-tu avoir ?

Seconde tentative directement après l'erreur de timeout, arrêt propre du programme, etc.

 

Ma première proposition serai de désactiver la gestion automatique des erreurs dans ce VI-ci, en câblant l'erreur en sortie pour que le VI appelant s'occupe de la gestion d'erreur.

Ca évitera que le programme se bloque avec la pop-up.

 

PinguX_0-1747656097679.png

 

0 Compliments
Message 2 sur 7
127 Visites

Bonjour,

 

Je pense que le problème vient du IPX800Pour avoir déjà joué avec cette plateforme, je crois qu'il y a un nombre de requête autorisées par jour ou semaine. C'est d'ailleurs ce que suggère le message d'erreur comme possibilité. Cela sert à se protéger d'attaques sur l'automate. D'ailleurs, à la lecture de votre code, je pense que vous désactivé toutes les sécurités.

Pour ce qui est de la lecture du status, vous récupéréez une réponse en XML et vous parsez le texte, il doit y avoir plus efficace, soit en parsant le XML avec les fonctions xml soit en demandant les réponses en JSON et en utilisant les fonctions JSON.

 

J'attache un bout d'encapsulation de l'API IXP800 v4 que j'avais commencé à faire il y a quelques temps. Il faut renseigner la clé d'api disponible sur le serveur pour que cela fonctionne.

 

Cordialement

Maxime R.  

  CLA - Certified LabVIEW Architect / Architecte LabVIEW Certifié
  CTA - Certified TestStand Architect / Architecte TestStand Certifié

0 Compliments
Message 3 sur 7
113 Visites

Merci pour la réponse !

 

Je vais tester votre programme.


Par contre, j'ai le IPX800 V3. Je ne sais pas si cela aura un impact.


J'ai besoin de consulter l'automate au moins toutes les 30 secondes, 24 heures sur 24. J'obtiens cette erreur au bout d'un moment, mais après le crash, je relance le programme et on repart pour une semaine. Le compteur de requêtes se remettrait-il à zéro à la suite du crash ? Comment le réinitialiser manuellement ?

 

Sinon, je ne comprends pas :


D'ailleurs, à la lecture de votre code, je pense que vous désactivé toutes les sécurités.

Cordialement,

 

 

 

 

 

 

0 Compliments
Message 4 sur 7
97 Visites

Bonjour,

 

Je ne connais pas le v3, mais sur le V4, il faut une clé d'api par défaut pour pouvoir communiquer avec l'automate. Sinon, on ne rien demander.

Dans votre, vous avez juste une URL et vous faites la requête et vous obtenez un réponse. Il ne semble pas y avoir d'authentification particulière dans votre cas.

 

Pour ce qui est des limites de requêtes, j'ai souvenir que sur le V4 on pouvait configurer un nombre de requêtes par jour. à regarder dans la configuration de l'IPX800.

 

Cordialement

Maxime R.  

  CLA - Certified LabVIEW Architect / Architecte LabVIEW Certifié
  CTA - Certified TestStand Architect / Architecte TestStand Certifié

0 Compliments
Message 5 sur 7
94 Visites

Bonjour,


J'aimerais qu'il n'arrête pas mon programme principal et que je puisse lancer mes requêtes en permanence.

Je vais tester cette gestion, mais qu'arrivera-t-il après une erreur ? Le sous-VI va-t-il répondre un moment ?

Cordialement,

 

 

0 Compliments
Message 6 sur 7
92 Visites

Il y a plusieurs questions dans votre sujet. La première question est l'origine de cette erreur 56. Je pense que cela vient de la configuration de l'IPX800. Peut être aussi de la gestion de la connexion HTTP dans LabVIEW. vous ouvrez et fermez à chaque requête votre sessions HTTP ce qui ne semble pas optimal.

 

Pour ce qui es de la gestion de cette erreur dans l'application plus globale. Il y a plusieurs solutions, soit déjà on règle le problème source de cette erreur ce qui limitera sa gestion, soit on gère l'erreur tout court. Dans votre cas, je pense qu'il serait pertinant de suivre des cours de formations LabVIEW qui pourraient vous aider à mieux architecturer votre code pour le rendre plus robuste.

 

Vous pouvez également faire appel à des partenaires certifiés de NI pour vous aider dans ce développement. 

Maxime R.  

  CLA - Certified LabVIEW Architect / Architecte LabVIEW Certifié
  CTA - Certified TestStand Architect / Architecte TestStand Certifié

0 Compliments
Message 7 sur 7
75 Visites