Discussions au sujet de NI LabVIEW

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

Problème de communication via modbus

Résolu !
Accéder à la solution

Bonjour à tous,

 

J'essaye actuellement de commander un banc Superflow SF1020 via le protocole modbus et je fais face à un problème auquel je ne trouve pas solution, malgré les nombreux problèmes et solutions référencés sur le forum d'entraide. J'ai posté un topic sur le forum anglophone, le sujet est sur le lien est affiché ci-dessous, mais je tente également ma chance sur le forum francophone, au cas où.

 
 
La communication, si tant est qu'on puisse la définir actuellement en tant que telle, s'effectue par un câble USB 232 A vers B du banc vers l'ordinateur. Les drivers sont OK et le gestionnaire de périphérique le détecte normalement. J'ai eu un petit soucis de détection sous MAX, comme expliqué dans mon topic, mais rien qui n'entrave la communication j'espère. Ayant testé plusieurs programmes et exemples différents trouvés sur internet (sur NI et autres), aucun n'a fonctionné et m'a transféré des données, avec comme fatalité le code d'erreur -1073807298. J'ai bien cherché ce code d'erreur mais aucune des solutions proposées n'a fonctionné. J'aimerais obtenir vos lumières si possible car je suis coincé avec ce problème auquel je n'arrive pas à trouver d'issue. 
 
Je vous ai joint un programme dont je me sers pour tester la communication, afin que vous puissiez juger de mes erreurs. Par ailleurs, j'ai joint plusieurs documents sur le topic du forum anglophone dont le fichier NITrace obtenus sous MAX.
 
Je vous remercie pour le temps que vous me consacrerez.
0 Compliments
Message 1 sur 31
5 393 Visites

Bonjour,

Refais le test en mettant des temporisation dans ton programme.
Selon les équipements, il mette environ 50ms pour traiter une requête et y répondre.


Le problème de ton exemple, c'est que tu harcèles ta communication sans lui laisser le temps de respirer (boucle while non cadencée).

 

Cdt,


Michael

“En science, la phrase la plus excitante que l'on peut entendre, celle qui annonce des nouvelles découvertes, ce n'est pas "Eureka" mais c'est "drôle"
Isaac ASIMOV
0 Compliments
Message 2 sur 31
5 390 Visites

Oui, j'avais oublié de rajouter une temporisation mais au final, ça ne changeait rien.

En revanche, j'ai rajouté une image car j'ai remarqué un autre problème qui a peut-être une influence sur la communication, puisque mes variables "VISA ressource name" se multiplient .. Le problème se résout en rebootant l'ordinateur mais c'est la première fois que je vois ça.

 

Si quelqu'un a une solution, je suis toujours prenneur 😄

0 Compliments
Message 3 sur 31
5 386 Visites
Solution
Accepté par qsub-D

Salut, j’ai bien vu ton message personnel. N’étant pas très disponible actuellement, je ne sais pas si je pourrai t’aider.

Il me faudrait plus d’information sur ton appareil

  • modbus série ou TCP ? (série je pense)
  • série RTU, ASCII ?
  • si série paramètre de configuration du port
  • RS232 ou 485 ?
  • la table modbus des paramètres à lire est-elle connue ? je veux dire par cela, as-tu dans la spécification de l’appareil, le lien entre variable – adresse – longueur et fonction modbus à utiliser ? donner pour une variable précise, un exemple du document (par exemple lecture variable titi à adresse 0, longueur X, fonction Y)
  • version LabVIEW, OS, 32 ou 64 bits
  • version librairie modbus utilisée, laquelle

 

As-tu regardé les tutos mdobus du site NI ?

par exemple

https://decibel.ni.com/content/blogs/Luc_Desruelle/2013/06/20/modbus-et-labview

http://www.ni.com/white-paper/52135/fr/

http://www.ni.com/white-paper/7675/fr/

 

A+

banniere Luc Livre NXG Champion.png

Luc Desruelle | Mon profil | Mon blog LabVIEW | Auteur livre LabVIEW : Programmation et applications - G Web
Certified LabVIEW Architect (CLA) & Certified TestStand Developper (CTD) | LabVIEW Champion

MESULOG - LinkedIn site | NERYS - NERYS Group
| directeur CEO MESULOG
| CODIR - NERYS group

0 Compliments
Message 4 sur 31
5 326 Visites

Bonjour,

 

Il s'agit d'un protocole Modbus série de type RTU, dont les paramètres ne sont pas précisés mais dans un paragraphe de leur manuel d'utilisation, ils montrent une fenêtre standard du gestionnaire de périphériques :

bit per sec (baud) : 9600

data bits : 8

parity : none

stop bits : 1

flow control : none

La liaison s'effectue par un câble USB A vers B mais peut également être faite par un câble RS 232 vers usb B (en soudant le RS 232 sur des pins prévus à l'intérieur du banc). Je n'ai pas d'information concernant la longueur des trames transférées, le pdf joint à ma réponse est le seul document que j'ai reçu.

Sinon, j'utilise un ordinateur fonctionnant sous Windows XP 64 bits pour communiquer avec le superflow, ma version de labview est la 2012 SP1 et j'ai installé plusisurs librairies dont la plus courante ( http://www.ni.com/example/29756/en/ ) , ainsi que deux autres autres, NI Modbus Library 1.1.3.32 et Plasmionique Modbus Master 1.0.1.1, qu'on installe via VIPM.

 

J'ai déjà regardé ces topics, qui m'ont d'ailleurs été très instructif, sachant que c'est la première fois que j'ai affaire au protocole modbus.

Par ailleurs, on m'a conseillé sur LAVAG d'utiliser un "serial sniffer" pendant que j'utilise le logiciel OEM afin de me faire une meilleur idée de l'état de la communication

0 Compliments
Message 5 sur 31
5 308 Visites

qsub-D a écrit :

Bonjour,

 

Il s'agit d'un protocole Modbus série de type RTU, dont les paramètres ne sont pas précisés mais dans un paragraphe de leur manuel d'utilisation, ils montrent une fenêtre standard du gestionnaire de périphériques :

bit per sec (baud) : 9600

 


salut, la documentation note : Baud Rate 9600 and 19200

tu as donc 1 chance sur 2.... tu devrais tenter avec 19200 (?) ou regarder la documentation pour comprendre comment fixer le baud rate

 

banniere Luc Livre NXG Champion.png

Luc Desruelle | Mon profil | Mon blog LabVIEW | Auteur livre LabVIEW : Programmation et applications - G Web
Certified LabVIEW Architect (CLA) & Certified TestStand Developper (CTD) | LabVIEW Champion

MESULOG - LinkedIn site | NERYS - NERYS Group
| directeur CEO MESULOG
| CODIR - NERYS group

0 Compliments
Message 6 sur 31
5 293 Visites

sinon je vois The FlowCom unit has an RS-232 serial port and a USB connection that emulates an RS-232 serial port.  To connect to a Modbus bus, you may need an adapter from either of these interfaces to your particular network. 

 

tu as tenté avec un port RS232 "natif"? sans le convertisseur USB (emulation port série)

 

en effet je viens de revoir ton code d'erreur Error -1073807298 

 

par exemple : When Using a Third-Party USB-Serial Adapter

http://digital.ni.com/public.nsf/allkb/0c2aba463217342686256e2e006df187

 

l'erreur et sur le fonction Init VISA ? ou uniquement sur la fonction modbus read register (sur le write ou read?)

 

As-tu une copie du texte de l'erreur LabVIEW?

A+

banniere Luc Livre NXG Champion.png

Luc Desruelle | Mon profil | Mon blog LabVIEW | Auteur livre LabVIEW : Programmation et applications - G Web
Certified LabVIEW Architect (CLA) & Certified TestStand Developper (CTD) | LabVIEW Champion

MESULOG - LinkedIn site | NERYS - NERYS Group
| directeur CEO MESULOG
| CODIR - NERYS group

Message 7 sur 31
5 283 Visites

bonsoir Luc,

 

Je viens de poster ... et tu as posté "derrière" moi ... à 00:16hr   Smiley tirant la langue

 

toujours à fond notre Luc  Smiley clignant de l'œil  .... kudo.

Message 8 sur 31
5 278 Visites

Tout d'abord, j'ai bien testé avec les deux baud rate différents et sans plus de succès.

Je ne peux pas tester avec un RS 232 complet car je n'ai pas de port disponible sur le pc de contrôle. J'utilisais jusqu'ici un câble USB A vers B du fournisseur avec les drivers correspondants.

En revanche, je vais tenter d'utiliser le câble suivant (http://uk.rs-online.com/web/p/kvm-mixed-cable-assemblies/6877819/) pour effectuer la liaison, dès que le contact OEM m'aura fournis le pinout du port série (le port du série du banc n'est en fait que 6 pins dont li pinout n'est pas précisé)

 

Pour ce qui est du code d'erreur, j'ai joint une première image d'un comTester où on peut voir que la communication est, selon le VI, bien établie, et qui illustre le code d'erreur 7298. Cette erreur arrivait généralement au premier VISA read ou write utilisé. 

En revanche, un code qu'on m'a fournis (et dont j'ai joint un impr-écran) m'a permis de constater que cette erreur n'est pas insolvable 🙂

 

Par ailleurs, j'ai essayé de tester la communication avec le soft OEM et elle ne fonctionne pas (j'ai testé le soft sur 2 pcs différents pour être sûr), alors que cela marchait il y a 2 ans, peut-être le câble est -il endommagé et c'est la raison pour laquelle je vais tester la communication avec le RS232.

 

N'hésitez pas à me reprendre si j'ai dit une bêtise ou si j'ai manqué quelque chose.

Tout télécharger
0 Compliments
Message 9 sur 31
5 253 Visites

ouadji a écrit :

bonsoir Luc,

 

Je viens de poster ... et tu as posté "derrière" moi ... à 00:16hr   Smiley tirant la langue

 

toujours à fond notre Luc  Smiley clignant de l'œil  .... kudo.


salut ouadji, j'ai "un peu de travail..."

J’espère que tu vas bien, et même si je n’écris pas beaucoup sur le forum, je passe toujours régulièrement pour lire tes incroyables posts ! bonne et très belle journée, avec lebeau temps. A+ luc

 

banniere Luc Livre NXG Champion.png

Luc Desruelle | Mon profil | Mon blog LabVIEW | Auteur livre LabVIEW : Programmation et applications - G Web
Certified LabVIEW Architect (CLA) & Certified TestStand Developper (CTD) | LabVIEW Champion

MESULOG - LinkedIn site | NERYS - NERYS Group
| directeur CEO MESULOG
| CODIR - NERYS group

0 Compliments
Message 10 sur 31
5 234 Visites