7Piccolo7
Messages postés2Date d'inscriptionsamedi 28 avril 2007StatutMembreDernière intervention 7 janvier 2009
-
10 mars 2008 à 12:28
cs_chamicki
Messages postés28Date d'inscriptionmardi 14 octobre 2008StatutMembreDernière intervention15 avril 2011
-
3 févr. 2010 à 11:16
Bonjour,
Je suis en BTS (IRIS 2nd année), pour mon projet j'aurai besoin d'information sur le protocole modbus TCP.
Si vous avez des exemples de code (C++), je suis preneur !
j'ai commencé à développer en utilisant les sockets, mais pour la trame du protocole modbus TCP, c'est pas très clair ....
kertimanoff
Messages postés75Date d'inscriptionsamedi 3 décembre 2005StatutMembreDernière intervention30 juin 2013 6 janv. 2009 à 16:12
bonjour,
bien que votre post dans ce forum n'est pas sussiter beaucoup de réponse, je me permet de poster ici dans l'espoir que vous receviez ce message et que vous acceptiez de m'aider, car je me trouve aujourd'hui dans la même situation que vous le 10 mars 2008.
je suis en 2eme année de bts informatique et mon projet de bts consiste a programmer un serveur sur windows CE et un client sur une machine du reseau, le tout communiquant par Modbus/TCP.
ma requête est simple: avez vous dans vos archives des exemples de programmes qui gére la communication Modbus/tcp a me transmettre?
A l'attention de 7piccolo7 et de tout le monde sur ce forum!
merci d'avance.
7Piccolo7
Messages postés2Date d'inscriptionsamedi 28 avril 2007StatutMembreDernière intervention 7 janvier 2009 7 janv. 2009 à 22:11
Salut !
Bon c'est vrais que ce post est carrément vieux (je l'avais zappé complet)!
Depuis j'ai réussi a me sortir de la m***e !
Bien sur je peut te donner des exemples de code (c'est opensource ) tu en feras ce que tu veux.
Fait moi savoir si tu es toujours intéressé. Je te répondrai dans les plus bref délais.
Enfin voila,
By
PS : Au fait entre temps j'ai eu mon BTS et j'ai pas trop mal réussi en info !
kertimanoff
Messages postés75Date d'inscriptionsamedi 3 décembre 2005StatutMembreDernière intervention30 juin 2013 8 janv. 2009 à 11:47
et oui quand on post sur des forums il arrive qu'on soit surpris lontemps aprés! en tout cas merci de me répondre.
Si t'a des exemples de code qui sont ou peuvent être mis en ligne, en cas si t'as la motive de mettre les liens sur le forum, mais sinon je t'es envoyer un message privé avec mes coordonnées electronique.
Cdt
Maj62
Messages postés4Date d'inscriptionjeudi 1 février 2007StatutMembreDernière intervention21 janvier 2009 21 janv. 2009 à 11:19
voila
a mon tour de passer le bts iris
et comme vous je dois utiliser le modbus tcp,je n'arrive pas a envoyer des trames correct pour qu'il me reponde petit exemple de code :
-------------------------------------------------------------------------------------------------------
#include <winsock2.h> // pour les fonctions socket
#pragma comment(lib,"ws2_32.lib") //pour l'ajout de la librairie au projet
#include <stdio.h>
int TailleSocket=sizeof(SocketInf);
char Trame[8]={0x01,0x03,0x00,0x02,0x00,0x01,0x25,0xCA};
char buffer[8000];
int Start=WSAStartup(MAKEWORD(2,2),&Struct);
if(!Start)
{
printf("Initialisation de la socket ok!\n");
// Creation de la socket
ID=socket(AF_INET,SOCK_STREAM,0);
if(ID==INVALID_SOCKET)
printf("Probleme de creation de la socket\n");
else
{
printf("Creation de la Socket ok !\n");
//Liaison de la socket avec un port et une adresse ip
SocketInf.sin_family=AF_INET;
SocketInf.sin_addr.s_addr=inet_addr("172.16.4.5");// ip de l'automate
SocketInf.sin_port=htons(502);// port protocole modbus
if(connect(ID,(sockaddr*)&SocketInf,sizeof(SocketInf))==INVALID_SOCKET)
printf("Pb Liaison !\n");
else
printf("Liaison ok !\n");
//fermeture de la socket
if(!closesocket(ID))
printf("Socket de communication Ferme\n");
else
printf("Socket de communication ouvert\n");
if(!WSACleanup())
printf("DLL Fermer\n");
else
printf("Socket de communication ouvert\n");
}
}
}
----------------------------------------------------------------------------------------------------------------------
autre code pour calculer le crc que j'ai developper depuis l'algo du site :http://thierry.coten.free.fr/modbus.html ------------------------------------------------------------------------------------
#include "stdio.h"
do
{
crc = (crc^TrameSansCrc[i]); // XOR entre le crc et l'octet
n=1; // n a 1
do
{
flag=(crc & 0x0001);// Récupere le dernier bit
crc=crc>>1;// Décalage a droite,perte du bit de droite qui a était récupéré dans flag
if (flag) // Si le bit contenu dans flag vaut 1
crc=crc^0xA001; // Alors on fait un Xor avec le polynome A001 // Polynôme 2^15 + 2^13 + 2^0 0xA001.
n=n+1;
}while(!(n>8));// Parcour les bits de l'octet
i++;
}while(i!=5); // Parcour la trame
printf("Crc obtenu sans inversion PF pf : %x\n",crc);
}
voila si qqun pourrait m'aider svp
merci
Vous n’avez pas trouvé la réponse que vous recherchez ?