Précédent   Forum des professionnels en informatique > Systèmes > Hardware > Dépannage et Assistance > Périphériques
Périphériques Lecteur (CD,DVD), DD, DD externe, clavier, souris, imprimante, scanner, clé USB...
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 04/03/2006, 14h29   #1
Invité régulier
 
Inscription : novembre 2004
Messages : 30
Détails du profil
Informations forums :
Inscription : novembre 2004
Messages : 30
Points : 9
Points : 9
Par défaut Liaison modbus ( automates TSX3722 +ETZ 510 )

Bonjour,

J'ai actuellement un projet industriel qui utilise un automate modicon TSX 3722 et un coupleur ethernet ETZ 510 .
Ils sont reliés entre eux par RS485, en modbus.

J'aurais voulut savoir si quelqu'un etait calé sur ce genre de systèmes pour quelques questions, pour lesquelles je n'ai pas trouvé de réponse dans les différentes documentations constructeur, car j'en fait une utilisation relativement particulière.


Merci

Matthieu
Moutonstar est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 05/03/2006, 00h27   #2
Administrateur
 
Avatar de netah25
 
Inscription : avril 2004
Messages : 3 239
Détails du profil
Informations personnelles :
Âge : 27

Informations forums :
Inscription : avril 2004
Messages : 3 239
Points : 3 172
Points : 3 172
Envoyer un message via MSN à netah25 Envoyer un message via Skype™ à netah25
tu devrais poser des questions, avec 60 000 visiteurs, t'as surement une chance ;-)
__________________
Netah - admin
mon site
Linux & Mac
netah25 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 05/03/2006, 10h52   #3
Invité régulier
 
Inscription : novembre 2004
Messages : 30
Détails du profil
Informations forums :
Inscription : novembre 2004
Messages : 30
Points : 9
Points : 9
Ok

Je savais pas qu'il y avais 60 000 visiteurs :p

Il y a toute une partie de programmation en C++ que je vais passer, car ce n'est pas elle qui est problématique pour le moment.

Je dois pouvoir piloter l'automate a partir d'un programme en C++ (Activer les différentes sorties), a travers un réseau ethernet avec des trame au format modbus

Mais en bref , ça qui me pose le plus problème pour continuer l'avancée de mon projet :

- Quelle adresse XWAY faut il assigner au TSX 3722 et à la Carte ETZ 510.
- Faut il que l'automate soit en maître ?

- Pour faire ces modifs sur PL7 pro, sur quel prise de l'automate faut il se brancher ?
( la j'ai essayer de faire les modifs a distance par ethernet grace au driver XIP mais apparemment il y a impossibilité de modifier les paramètres de la liaison RS485 lorsque l'on est connecté dessus , ce qui est normal dans un sens . )

Pour le moment la trame que j'envoye a la carte ETZ est il me semble pas mal : une trame de lecture de mot avec le CRC calculé.

Cependant je ne recoit aucune reponse .
Moutonstar est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/03/2006, 00h16   #4
Responsable outils internes
 
Avatar de Nono40
 
Homme Bruno Guérangé
Ingénieur développement logiciels
Inscription : mai 2002
Messages : 7 871
Détails du profil
Informations personnelles :
Nom : Homme Bruno Guérangé
Âge : 44
Localisation : France, Loir et Cher (Centre)

Informations professionnelles :
Activité : Ingénieur développement logiciels
Secteur : Industrie

Informations forums :
Inscription : mai 2002
Messages : 7 871
Points : 11 850
Points : 11 850
Citation:
Envoyé par Moutonstar
- Quelle adresse XWAY faut il assigner au TSX 3722 et à la Carte ETZ 510.
- Faut il que l'automate soit en maître ?
Attention, le coupleur ETZ501 est en ethernet d'un coté avec Modbus/tcp et les trames XWAY par contre du coté de l'automate il est en Unitelway. Tu n'as donc pas à changer la configuration du 37.
Comme tu dis plus bas que tu arrives à te connecter au 37 avec PL7-PRO via XIP c'est que les adresses XWAY sont bonnes. Il te suffit donc de les relever ( en fait il suffit juste que le numéro de réseau soit le même sur tous les éléments d'un même réseau et les numéros de station soient différents )


Citation:
Envoyé par Moutonstar
- Pour faire ces modifs sur PL7 pro, sur quel prise de l'automate faut il se brancher ?
( la j'ai essayer de faire les modifs a distance par ethernet grace au driver XIP mais apparemment il y a impossibilité de modifier les paramètres de la liaison RS485 lorsque l'on est connecté dessus , ce qui est normal dans un sens . )
Celle du haut, toujours. ( celle marquée TER ) Mais si tu arrives à communiquer avec PL7-PRO via XIP, ne change rien. Tout est déjà bien paramétré.

Citation:
Envoyé par Moutonstar
Pour le moment la trame que j'envoye a la carte ETZ est il me semble pas mal : une trame de lecture de mot avec le CRC calculé.

Cependant je ne recoit aucune reponse .
Comment envoies-tu tes trames ? Quel est leur format ? Sur quelle adresse IP et quel port tu te connectes ?
Attention les trames MODBUS sur TCP sont légèrement différentes de MODBUS sur liaison série.
__________________
Delphi :
La F.A.Q. , 877 réponses à vos questions !
264 sources à consulter/télécharger !
Nono40 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/03/2006, 14h14   #5
Invité régulier
 
Inscription : novembre 2004
Messages : 30
Détails du profil
Informations forums :
Inscription : novembre 2004
Messages : 30
Points : 9
Points : 9
la trame que j'envoie est la suivante

{**,0x03,0x00,0x02,0x00,0x01,**,**}

( j'ai mis un boucle for qui teste toutes les adresses Xway entre 0 et 254 , et donc le CRC est calculé en conséquence )

j'envoie ca sur 192.168.64.123 port 502
C'est la bonne Ip , et le bon port

J'ai essayéde debrancher le cable entre l' ETZ et le TSX 37, ca me fait exactement la meme chose , c'est ca qui me faisais pensera un problème de configuration de l'automate.

Je viens de voir dans la configuration de l'automate, a un endroit j'ai une listbox qui me permet de choisir mon protocole, actuellement il est a Uni-telway , je suppose qu'il faut que je le mette en modbus ?

voici le codeque j'ai actuellement pour dialoguer avec mon automate.
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
	char nomfichier[9]={0xFE,0x03,0x00,0x02,0x00,0x01,0x25,0xCA} ;
        char nomfichier2[9]={0,0,0,0,0,0,0,0,0};
	WSADATA WSAData;
	WSAStartup(MAKEWORD(2,0), &WSAData);
	SOCKET sock;
	SOCKADDR_IN sin;
    sock = socket(AF_INET, SOCK_STREAM, 0);
	
	     // les proprietes du socket du server
	sin.sin_addr.s_addr = inet_addr("192.168.64.123");
	sin.sin_family	    = AF_INET;
	sin.sin_port	    = htons(502);
	if(connect(sock, (SOCKADDR *)&sin, sizeof(sin)) == INVALID_SOCKET)
	{
		printf("la connection a echoué\n") ;
		getchar() ;
		return 1 ;
	}


   Modbus M;
	printf("connection etablie\n") ;
 for(int i=0;i<254;i++)
 {
   nomfichier[0]=i;   //permet d'essayer toutes les trames possibles
         M.CRC16(nomfichier,6,true);
        send(sock,nomfichier,8,0) ;
	recv(sock,nomfichier2,8,0) ;
         
  }
	closesocket(sock) ;
	WSACleanup() ;
Moutonstar est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/03/2006, 15h43   #6
Invité régulier
 
Inscription : novembre 2004
Messages : 30
Détails du profil
Informations forums :
Inscription : novembre 2004
Messages : 30
Points : 9
Points : 9
J'ai voulut modifier le protocole pour le mettre en modbus, mais pl7 me sort un message :

" Pour les voies de communication du module courant, la reconfiguration en connecté est impossible ! " .

Ce qui dans un sens est normal , mais qui ne m'arrange pas

[Edit]

Je précise que mon ETZ est branché sur la prise TER de l'automate
[Re Edit]

Problème résolut puisqu'il me suffisais de clicker sur deconnecter , de faire mes modifs puis de reconnecter !

Mais ca ne change pas le fait que l'automatene reponde pas a mes ordres

Je vais mettres qques screenshots si jamais ca peut aider


[Re Re Edit ]

Config de l'ETZ par l'interface web



Config du TSX par PL7

Moutonstar est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 07/03/2006, 00h43   #7
Responsable outils internes
 
Avatar de Nono40
 
Homme Bruno Guérangé
Ingénieur développement logiciels
Inscription : mai 2002
Messages : 7 871
Détails du profil
Informations personnelles :
Nom : Homme Bruno Guérangé
Âge : 44
Localisation : France, Loir et Cher (Centre)

Informations professionnelles :
Activité : Ingénieur développement logiciels
Secteur : Industrie

Informations forums :
Inscription : mai 2002
Messages : 7 871
Points : 11 850
Points : 11 850
Je passe en coupe de vent, je n'ai que très peu de temps mais :
Ta trame MODBUS est fausse dans le cas de Modbus sur TCP
Cherche sur Google les trames exactes avant de continuer.
__________________
Delphi :
La F.A.Q. , 877 réponses à vos questions !
264 sources à consulter/télécharger !
Nono40 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 07/03/2006, 09h01   #8
Invité régulier
 
Inscription : novembre 2004
Messages : 30
Détails du profil
Informations forums :
Inscription : novembre 2004
Messages : 30
Points : 9
Points : 9
D'ac merci , je regarde ca
Moutonstar est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/03/2006, 15h07   #9
Invité régulier
 
Inscription : novembre 2004
Messages : 30
Détails du profil
Informations forums :
Inscription : novembre 2004
Messages : 30
Points : 9
Points : 9
Bon , j'ai du mieux , mais ce n'est pas encore ca...



Avec pl7 j'ai observé les trames recues ( avec et sans erreurs de CRC )
Mais apparement il n'y en as aucune.

Pourtant l'ETZ me renvoie bien des trames maintenant .



Mon code est le suivant :

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
int main()
{
	char buffer[8000] ;
       	char nomfichier[20]={0x00,0x01,0x00,0x00,0x00,8,0xFE,0x03,0x00,0x02,0x00,0x01,0x25,0xCA} ;
        char trame[20]={0xFE,0x03,0x00,0x02,0x00,0x01,0x25,0xCA};

       //char nomfichier[16]={0x03,0x06,0xFF,0xCA} ;
        char nomfichier2[20]={0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0};

           printf("%d ",nomfichier[0]);
           printf("%d ",nomfichier[1]);
           printf("%d ",nomfichier[2]);
           printf("%d ",nomfichier[3]);
           printf("%d ",nomfichier[4]);
           printf("%d ",nomfichier[5]);
           printf("%d ",nomfichier[6]);
           printf("%d ",nomfichier[7]);
           printf("\n");
	WSADATA WSAData;
	WSAStartup(MAKEWORD(2,0), &WSAData);
	SOCKET sock;
	printf("Ip : ") ;
//	scanf("%s",buffer) ;
	SOCKADDR_IN sin;
    sock = socket(AF_INET, SOCK_STREAM, 0);

	     // les proprietes du socket du server
	sin.sin_addr.s_addr = inet_addr("192.168.64.123");
	sin.sin_family	    = AF_INET;
	sin.sin_port	    = htons(502);
	if(connect(sock, (SOCKADDR *)&sin, sizeof(sin)) == INVALID_SOCKET)
	{
		printf("la connection a echoué\n") ;
		getchar() ;
		return 1 ;
	}

        Modbus M;
	printf("connection etablie\n") ;
 for(int i=0;i<256;i++)
 {
   nomfichier[6]=i;
  //permet d'essayer toutes les trames possibles
        M.CRC16(nomfichier,12,true);


        send(sock,nomfichier,14,0) ;
    //    printf("%d ",nomfichier[3]);
           printf("%d ",nomfichier[0]);
           printf("%d ",nomfichier[1]);
           printf("%d ",nomfichier[2]);
           printf("%d ",nomfichier[3]);
           printf("%d ",nomfichier[4]);
           printf("%d ",nomfichier[5]);
           printf("%d ",nomfichier[6]);
           printf("%d ",nomfichier[7]);
           printf("%d ",nomfichier[8]);
           printf("%d ",nomfichier[9]);
           printf("%d ",nomfichier[10]);
           printf("%d ",nomfichier[11]);
           printf("%d ",nomfichier[12]);
           printf("%d ",nomfichier[13]);
           printf("%d ",nomfichier[14]);
           printf("%d ",nomfichier[15]);

           printf("\t \t");
	recv(sock,nomfichier2,16,0) ;

           printf("%d ",nomfichier2[0]);
           printf("%d ",nomfichier2[1]);
           printf("%d ",nomfichier2[2]);
           printf("%d ",nomfichier2[3]);
           printf("%d ",nomfichier2[4]);
           printf("%d ",nomfichier2[5]);
           printf("%d ",nomfichier2[6]);
           printf("%d ",nomfichier2[7]);
           printf("%d ",nomfichier2[8]);
           printf("%d ",nomfichier2[9]);
           printf("%d ",nomfichier2[10]);
           printf("%d ",nomfichier2[11]);
           printf("%d ",nomfichier2[12]);
           printf("%d ",nomfichier2[13]);
           printf("%d ",nomfichier2[14]);
           printf("%d ",nomfichier2[15]);

           printf("\n");

           }
	int SizeReaded = 1 ;
	long SizeSended = 1 ;


	closesocket(sock) ;
	WSACleanup() ;

}

L'execution du programme me donne le resultat suivant :



J'ai un peu de mal a interpreter la reponse.

deja je n'ai pas de CRC calculé , et en plus le code d'erreur ne me parait pas honnete !
Si il y a une erreur le code fonction devrais etre implémenté de 128? ce qui n'est pas le cas .
Si j'ai bien compris ce serais 02 mon code d'erreur ?

Citation:
Le code 02 signifie que les adresses ne sont pas de 00 à 0CHEX pour les mots ou de 00 à 0FHEX pour les bits en protocole
Modbus® (rappelons, que pour le protocole Jbus® les adresses sont supérieures de + 1 à celles de Modbus® ).

Bref ce modbus commence a m'enerver un peu
Moutonstar est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/03/2007, 16h11   #10
Membre du Club
 
Padawan Informaticien en recherche d'emploi (Bac+3 Administration des Systèmes et des Réseaux)
Inscription : novembre 2006
Messages : 67
Détails du profil
Informations professionnelles :
Activité : Padawan Informaticien en recherche d'emploi (Bac+3 Administration des Systèmes et des Réseaux)

Informations forums :
Inscription : novembre 2006
Messages : 67
Points : 51
Points : 51
Je fais aussi un projet avec a peu près les mêmes choses que vous sauf que je dois développer une applet Java.

@x2bf3 De ce que j'ai pu lire dans les doc on peut utiliser une base de donnée MySQL mais je n'en ai pas lu beaucoup plus.
Pasokoniidesuka est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/05/2008, 09h46   #11
Invité de passage
 
Inscription : avril 2008
Messages : 20
Détails du profil
Informations personnelles :
Âge : 27

Informations forums :
Inscription : avril 2008
Messages : 20
Points : 4
Points : 4
@Moutonstar :

Salut,

Moi je suis actuellement en train de faire un projet sur le M340 qui utilise aussi le protocole Modbus/TCP, étant donné que le SNMP ne fonctionne pas sur cette automate enfin pas comme je le souhaite, enfin bref, j'ai regardé ton programme et je suis à peu près d'accord sur ce que tu fais (normal je fais la même chose ) et par contre moi le soucis viens du port 502 qui me rejette dès que je tente de m'y connecter

Comment as-tu fais pour que le port 502 te laisse passer sachant qu'avec le logiciel de Schneider je n'ai aucun soucis au niveau du port lorsque je teste la connexion Modbus/TCP ?
B-NeT est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 20h39.


 
 
 
 
Partenaires

Hébergement Web