snakzbenjy
Messages postés32Date d'inscriptionlundi 27 novembre 2006StatutMembreDernière intervention23 avril 2009
-
7 juin 2007 à 10:33
ujyh_cc -
26 août 2015 à 11:14
Bonjour à tous,
Alors voilà je suis en stage (BAC+2) et celà fait plusieurs jours que je m'arrache les cheveux.
Je doit faire un petit programme en Visual Basic (d'où mon post ici ) qui doit envoyer une trame modbus sur mon automate TWIDO. Avec "winsock" j'arrive a envoyer sur mon port ETHERNET. Je le vois grâce à ethereal. Mais imposible de trouver la synthaxe modbus à envoyer. Je pense avoir compris que en ETHERNET il n'y a pas de CRC?
Exemple je veut envoyer la valeur "10" dans le mot %MW25 celà donne :
snakzbenjy
Messages postés32Date d'inscriptionlundi 27 novembre 2006StatutMembreDernière intervention23 avril 2009 7 juin 2007 à 11:02
Merci de ta réponse jrivet.
Mais les liens que tu m'as donné, ne me donne pas la synthaxe du modbus en ETHERNET.
En faite le serveur OPC je ne pense pas en avoir besoin(de plus il est payant je crois ). J'arrive à envoyer mes trames via winsock.
Je souhaitrai connaitre quoi envoyer sur le réseau pour que mon automate affecte 10 au mot %MW25 (exemple)
Codialement Benjamin
Vous n’avez pas trouvé la réponse que vous recherchez ?
j'ai ecris une petite supervision en VB6 vers des appareils modbus via le port Com, a l'aide d'un convertisseur du style aksys j'aimerais modifier mon application pour l'utiliser comme toi via ethernet et modbus TCP,
je vois qu'avec l'aide de Akim77 tu as bien avancé, as tu trouvé de la doc sur la trame ? longueur ? etc... si oui pourrais tu me l'envoyer ? ou alors detailler ta trame avec une petite explication sur chaque donnée..
snakzbenjy
Messages postés32Date d'inscriptionlundi 27 novembre 2006StatutMembreDernière intervention23 avril 2009 13 juin 2007 à 09:12
D'après mes souvenirs déja en Ethernet il n'y a pas de CRC à mettre bonne nouvelle.
Aprés je vais te donnée de tête ma trame
chr(00)+chr(01) ===> La valeur de l'esclave
+chr(00)+chr(00) ===> ????
+chr(00)+chr(06) ===> écriture(6)/lecture(3 je crois)
+chr(01)+chr(06)
+chr(00)+chr(25)===> Le mot à affecter ici pour télémecanique ce serra %MW25
+chr(00)+chr(88)===> La valeur a mettre dans le mot
alainpollet
Messages postés3Date d'inscriptionmardi 21 octobre 2003StatutMembreDernière intervention25 juin 2007 25 juin 2007 à 10:16
Bonjour,
je suis devans mon PC et mon TWIDO... mais j'arrive pas à faire communiquer tout ce petit monde...
je ne maitrise malheureusement pas l'outils WINSOCK !!!
avez vous la possibilité de me faire une copie de la zone programme consernant l'ouverture de la COM ETHERNET et son paramétrage (N° de port)
Un grand merci
PS j'ai mis un petit prog dans le TWIDO + configurer un adresse IP d'ailleur si je fait un PING il me réponds...
donc j'en déduit que le HARD est bon... et mon problème viens du SOFT...
alainpollet
Messages postés3Date d'inscriptionmardi 21 octobre 2003StatutMembreDernière intervention25 juin 2007 25 juin 2007 à 10:52
Re,
Bon j'ai trouver mon bonheur sur le WEB ==> http://www.modbus.pl/vb.htm dans ces deux exemples VB + sources avec WINSOCK (donc pas besoin de serveur OPC payant...)
on trouve donc 2 exemples de programmation 1 RTU (RS232) et 1 ETHERNET...
alainpollet
Messages postés3Date d'inscriptionmardi 21 octobre 2003StatutMembreDernière intervention25 juin 2007 25 juin 2007 à 10:52
Re,
Bon j'ai trouver mon bonheur sur le WEB ==> http://www.modbus.pl/vb.htm dans ces deux exemples VB + sources avec WINSOCK (donc pas besoin de serveur OPC payant...)
on trouve donc 2 exemples de programmation 1 RTU (RS232) et 1 ETHERNET...
weedy78955
Messages postés5Date d'inscriptionjeudi 19 janvier 2006StatutMembreDernière intervention15 novembre 2010 27 mai 2008 à 11:48
Salut, je souhaite réaliser exactement la même chose avec la nouvelel gamme d'automate M340 de chez Schneider Electric.
Je réalise par contre le programme en C mais bon ce n'est pas la programmation qui me pose problème dans ce cas-ci.
En effet, j'ai créer mon socket et tout le buiseness qui va avec, mais le soucis c'est lorsque j'observe ce que j'envoie avec Ethereal il m'informe que j'ai un problème de CHECKSUM, or cette partie ej en la gère pas du tout dans mon programme étant donné que je transmet en TCP et que le protocle MODBUS stipule que le format d'une trame MODBUS TCP laisse de côté le CRC qui est gérer par la couche TCP.
De plus, je me demande si j'arrive bien à me connecter au port 502 et j'aimerais savoir si il n'existerait pas uen solution (en C ou autre) qui me permettrait de vérifier que je suis bien connecter à ce port ?
Mes trames ressemble énormément à celles de Benjy donc je pense être dans le vrai à ce niveau là...
Merci beaucoup
PS : j'irais tester un programlme en VB que j'ai trouvé sur CS tout à l'heure...
cs_akim77
Messages postés73Date d'inscriptionlundi 12 avril 2004StatutMembreDernière intervention17 septembre 20084 27 mai 2008 à 20:27
En fait il n'y a pas d'erreur de checksum, c'est une erreur d'interprétation
d'Ethereal et de tous les outils d'analyse réseau.
C'est toujours le cas quand Ethereal est installé sur le PC qui genere les trames.
Le checksum est généré par la carte Ethernet du PC, Ethereal qui est en amont
ne peut donc pas le connaitre, d'où son erreur.
voir la doc sur http://www.wireshark.org/docs/ (Wireshark est le nouveau nom de Ethereal)
L'idéal est d'installer Ethereal sur un PC indépendant, connecté par un Hub
(pas un Switch).
weedy78955
Messages postés5Date d'inscriptionjeudi 19 janvier 2006StatutMembreDernière intervention15 novembre 2010 27 mai 2008 à 23:32
Aaaah Ok !!!!
Merci de l'explication Akim, franchement je trouvais ça tellement bizarre et étant donné mon manque de connaissance sur le sujet je n'avais pas du tout penser que el soucis pouvais venir du logiciel, moi j'ai direct pensé que l'erreur venait de ma trame...