Projet BTS - Wago 750-881

Forum traitant des automates industriels de marque Wago et du logiciel codesys
Avatar du membre
didi2211
Code sa première boucle
Code sa première boucle
Messages : 11
Enregistré le : 15 mars 2016, 14:34

Projet BTS - Wago 750-881

Message par didi2211 »

Bonjour,

Je suis actuellement en BTS Systèmes Numériques et mon projet de fin d'année consiste à contrôler une barrière de parking via un programme écrit en C++ en utilisant le protocole Modbus TCP, la barrière nous a été livrée avec un programme Codesys fonctionnel, je dois donc le reproduire en C++.

La barrière est composée d'un Wago 750-881, j'ai bien lu la doc et j'ai trouvé les variables internes ainsi que leurs adresses, maintenant il me faudrait envoyer les bonnes trames pour pouvoir les modifier et donc contrôler la barrière.

Malheureusement je ne trouve pas de quel format doit-être la trame, j'ai déjà fait un programme en reprenant le format de trame Modbus TCP mais je n'arrive pas à agir dessus.

Je suis donc à la recherche d'un modèle de trame Modbus me permettant de communiquer avec mon Wago.

Merci d'avance !
Avatar du membre
Bernardo59
Mi homme - Mi automate
Mi homme - Mi automate
Messages : 1054
Enregistré le : 20 oct. 2015, 05:48
Localisation : Nimes
Contact :

Re: Projet BTS - Wago 750-881

Message par Bernardo59 »

Bonjour,

Je pense que pour toi, il serait plus simple d'utiliser une DLL "toute prête" pour utiliser le protocole MODBUS TCP.
Avatar du membre
Mantysse
Dieu du process
Dieu du process
Messages : 757
Enregistré le : 20 oct. 2015, 08:17
Localisation : MiP

Re: Projet BTS - Wago 750-881

Message par Mantysse »

Hello

+1 avec Bernardo.
J'eut eu a faire un jour le calcul d'un CRC en C++ pour des trames Modbus, ça se fait mais c'est pas simple...

Pour une trame Modbus, tu veux faire quoi? Ecriture? Lecture? 1 seul mot ou bit? ou plusieurs mots ou bits?

Bon courage.
"Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément." Nicolas Boileau

L'urgence, c'est fait!
L'impossible, c'est en cours!
Pour les miracles, il faut prévoir un délai!
Avatar du membre
didi2211
Code sa première boucle
Code sa première boucle
Messages : 11
Enregistré le : 15 mars 2016, 14:34

Re: Projet BTS - Wago 750-881

Message par didi2211 »

Bernardo59 a écrit :Bonjour,

Je pense que pour toi, il serait plus simple d'utiliser une DLL "toute prête" pour utiliser le protocole MODBUS TCP.
Oui j'ai vu la librairie libmodbus qui avait l'air de correspondre à mes besoins mais je n'ai pas réussi à la faire marcher avec QT :?
Mantysse a écrit :Hello

+1 avec Bernardo.
J'eut eu a faire un jour le calcul d'un CRC en C++ pour des trames Modbus, ça se fait mais c'est pas simple...

Pour une trame Modbus, tu veux faire quoi? Ecriture? Lecture? 1 seul mot ou bit? ou plusieurs mots ou bits?

Bon courage.
Pour le CRC en C++ ça a été le sujet d'un TP que j'ai déjà fait en cours donc pas de soucis là dessus, cependant pour communiquer avec le wago j'utilise du Modbus TCP et le CRC n'est utilisé qu'en Modbus RTU donc je n'ai pas à m'en soucier.

Voici la liste des variables que j'ai à ma disposition pour interagir avec la barrière :

Image

On peut donc voir que les variables sont représenter par des bits qu'il faut mettre à 0 ou 1 selon l'action que l'on veut faire, mon objectif est donc de pouvoir modifier la valeur de ces bits.
Avatar du membre
Bernardo59
Mi homme - Mi automate
Mi homme - Mi automate
Messages : 1054
Enregistré le : 20 oct. 2015, 05:48
Localisation : Nimes
Contact :

Re: Projet BTS - Wago 750-881

Message par Bernardo59 »

Bonjour,

J'ai une .dll en C# si ça t’intéresse. Je m'en suis servis pour développer une simulation d'un programme automate.
Envoie moi un mail et je te la donnerai.

Amicalement,

Benoit
Avatar du membre
didi2211
Code sa première boucle
Code sa première boucle
Messages : 11
Enregistré le : 15 mars 2016, 14:34

Re: Projet BTS - Wago 750-881

Message par didi2211 »

Bernardo59 a écrit :Bonjour,

J'ai une .dll en C# si ça t’intéresse. Je m'en suis servis pour développer une simulation d'un programme automate.
Envoie moi un mail et je te la donnerai.

Amicalement,

Benoit
Bonjour,

Malheureusement je n'ai jamais développé en C# ni utilisé de .dll quand bien même j'arriverai à faire marcher mon projet je préfère utiliser les outils que j'ai appris durant mes 2 ans d'études et donc rester en C++.

Par contre j'ai avancé un peu sur mon problème de trame, j'ai utiliser le logiciel Wireshark pour analyser le trafic entre mon PC et le Wago, j'ai créer un programme Codesys qui ne fait qu'allumer un feu clignotant de sécurité qui est sur la barrière.
J'espérais pouvoir récupérer la trame qui fait allumer le feu pour analyser son format, le problème c'est que Wireshark affiche des centaines de trames à la minute comme si le Wago et le PC n'arrêtaient pas de communiquer (alors que je n'ai fait qu'envoyer un signal), savez vous d'où proviennent ces trames et s'il y a moyen de les supprimer pour n'avoir que la trame qui m'intéresse ?


Capture d'écran de Wireshark :
Image

Merci pour votre aide et l'attention que vous portez à mon problème ;)
Avatar du membre
didi2211
Code sa première boucle
Code sa première boucle
Messages : 11
Enregistré le : 15 mars 2016, 14:34

Re: Projet BTS - Wago 750-881

Message par didi2211 »

J'ai réussi ! :D

Après plusieurs analyses du trafic j'ai remarqué qu'une trame se différenciait des autres et revenait seulement lorsque j'actionnai le feu de signalement via mon programme Codesys.

J'ai reproduit la trame avec mon programme C++ et je peux désormais le contrôler avec mon interface QT, j'ai encore quelques soucis de connexion par contre :?

Merci pour votre aide, je vais continuer mon projet, je reviendrais vers vous si j'ai besoin d'aide ou pour vous tenir au courant ;)
Avatar du membre
djé
Dieu du process
Dieu du process
Messages : 864
Enregistré le : 20 oct. 2015, 09:55
Localisation : Bretagne, Pays de la Loire, Nantes
Contact :

Re: Projet BTS - Wago 750-881

Message par djé »

Salut,

Sur Wireshark tu devrais filtrer sur le port 501 uniquement, tu n'auras que le ModBus/TCP

Edit: c'est le port 502
Modifié en dernier par djé le 16 mars 2016, 11:55, modifié 1 fois.
Le monde se divise en 10 catégories:les personnes qui comprennent le binaire,et les autres.

Dans tout ce que vous apprenez, seuls 10% vont vous servir,mais vous ne savez pas lesquels ...
Avatar du membre
Bernardo59
Mi homme - Mi automate
Mi homme - Mi automate
Messages : 1054
Enregistré le : 20 oct. 2015, 05:48
Localisation : Nimes
Contact :

Re: Projet BTS - Wago 750-881

Message par Bernardo59 »

C'est pas le port 502 pour du Modbus TCP ?
Avatar du membre
djé
Dieu du process
Dieu du process
Messages : 864
Enregistré le : 20 oct. 2015, 09:55
Localisation : Bretagne, Pays de la Loire, Nantes
Contact :

Re: Projet BTS - Wago 750-881

Message par djé »

Oups
502 !

Je pensais au port du Levi's®.
Le monde se divise en 10 catégories:les personnes qui comprennent le binaire,et les autres.

Dans tout ce que vous apprenez, seuls 10% vont vous servir,mais vous ne savez pas lesquels ...
Répondre