Communication entre deux S7-1200

Forum traitant des automates industriels de marque Siemens.
Johnny03
Code sa première boucle
Code sa première boucle
Messages : 16
Enregistré le : 13 mars 2017, 12:25

Communication entre deux S7-1200

Message par Johnny03 »

Bonjour à tous,

j'explique mon projet et mon problème.

Je veux lire des variables (dans un DB) d'un automate S7-1200 avec un autre automate S7-1200.
J'ai testé la boite GET et PUT mais sans succès (possible erreur de ma part).

Je viens vers vous si vous avez la solution, exemple pour m'aider a réaliser cela.

Merci d'avance
Johnny
Avatar du membre
Cyril93
Maître du binaire
Maître du binaire
Messages : 484
Enregistré le : 29 oct. 2015, 14:22
Localisation : IDF

Re: Communication entre deux S7-1200

Message par Cyril93 »

Salut,

La communication c'est via les port Ethernet Intégré j'imagine ?
Sinon GET et PUT se sont les bons blocs pour les faire communiquer, il doit y avoir un problème dans ton paramétrage, met nous un imprime écran que l'on puisse t'aider
Johnny03
Code sa première boucle
Code sa première boucle
Messages : 16
Enregistré le : 13 mars 2017, 12:25

Re: Communication entre deux S7-1200

Message par Johnny03 »

Bonjour,

merci de la réponse. Oui c'est en profinet (ethernet).
J'ai créer la boite GET dans une CPU et mon autre CPU est dans un autre projet (aucune boite dans ce projet la)

voici des photos :
http://www.hostingpics.net/viewer.php?id=915181PLC.jpg

http://www.hostingpics.net/viewer.php?id=758727PRG.jpg

Le système est très simple dans un premier temps, je veux juste lire un bool. J'ai forcé le bool dans la CPU distante sur true "DB6.DBX0.2" mais dans ma variable de réception rien ne change, elle reste sur false.

par moment j'ai un code erreur mais très très rapide, dur a voir, il me semble lire le code : 16#0019

Merci
Johnny
bidouille
Apprend le binaire
Apprend le binaire
Messages : 6
Enregistré le : 13 mars 2017, 15:19

Re: Communication entre deux S7-1200

Message par bidouille »

bonjour,
il me semble que la fréquence est grande une requête tous les 100ms ça fait beaucoup si tu n'en a pas besoin. surtout que dans ton code tu ne t'assure pas que la première requête est parti.
teste de mettre un bit sur Req que tu Set pour le moment et qui est remis a 0 par le NDR.
Tu t'assures comme ça que ta com est en place.
j'ai déjà fait des com entre 1200 ( 3 cpu) mais jamais sans déclarer la liaison dans le projet ...

bon courage.
Tout seul on va plus vite, ensemble on va plus loin !
Avatar du membre
Cyril93
Maître du binaire
Maître du binaire
Messages : 484
Enregistré le : 29 oct. 2015, 14:22
Localisation : IDF

Re: Communication entre deux S7-1200

Message par Cyril93 »

Comme dit bidouille, normalement il faut configurer la liaison S7 dans Devices & Network et récupérer l'ID de la connexion local, aussi il ne faut en aucun cas relancer une requête tant que la précédente n'est pas fini, le bit NDR permet de tester l'échange.

Pour tester les erreurs, lorsque le bit Error monte à 1 copier la sortie STATUS dans une variable pour pouvoir lire le code, aussi j'ai jamais fait en interrogeant un bool au milieux du tableau. En général on interroge une suite d'octet, je ne sais pas si cela peux avoir une incidence sur le fonctionnement.
Avatar du membre
Damall
Codeur fou
Codeur fou
Messages : 233
Enregistré le : 13 janv. 2016, 09:22
Localisation : Luxembourg

Re: Communication entre deux S7-1200

Message par Damall »

Salut,

je n'ai jamais fait de com sur S7-1200, mais en S7-300 ou 400, je déclare d'abord mes liaisons en "Protocole S7", et ensuite je programme mes blocs.
Avant même de programmer, vérifier l'état des liaisons, si elles ne sont pas établi, ce n'est pas la peine d'aller plus loin.

Sur les blocs GET ou PUT, tu doit obligatoirement déclarer l'ID de la liaison, sinon ça ne fonctionne pas.
Bloc l'envoi des requêtes avec le bit NDR.
Et l'envoi de requête à 100ms ne pose pas de souci.

@+
Johnny03
Code sa première boucle
Code sa première boucle
Messages : 16
Enregistré le : 13 mars 2017, 12:25

Re: Communication entre deux S7-1200

Message par Johnny03 »

Donc si j'ai bien compris il faut que les CPU soient dans le même projet ?
Dans mon cas c'est des projets différents, la solution du GET et PUT n'est peut-être pas la bonne. J'avais également vu le Modbus TCP
Avatar du membre
Damall
Codeur fou
Codeur fou
Messages : 233
Enregistré le : 13 janv. 2016, 09:22
Localisation : Luxembourg

Re: Communication entre deux S7-1200

Message par Damall »

Salut,

non, tu n'est pas obliger d'avoir les deux cpu dans le même projet, car tu peux déclarer un partenaire distant en renseignent son adresse IP.
Attention à la CPU qui initialise la liaison. Une seule CPU, pas les deux.
L'état des liaisons fonctionne même avec des CPU dans un autre projet.
Johnny03
Code sa première boucle
Code sa première boucle
Messages : 16
Enregistré le : 13 mars 2017, 12:25

Re: Communication entre deux S7-1200

Message par Johnny03 »

salut,

je viens de tester avec les 2 cpu dans le même projet et j'ai le même problème. J'ai en status cela : 16#0019
Le ndr reste sur false

Je test toujour avec variable en bool
Avatar du membre
JC87
Mi homme - Mi automate
Mi homme - Mi automate
Messages : 2230
Enregistré le : 20 oct. 2015, 13:00
Localisation : Nouvelle Aquitaine

Re: Communication entre deux S7-1200

Message par JC87 »

Bonjour,

Tu devrai regarder les FAQ sur le site de Siemens en cherchant "communication entre deux 2 S7-1200" tu trouvera plusieurs méthodes y compris en Modbus, avec ce protocole je suis un peu sceptique mais peut être ont ils fait des progrès depuis la gamme 300/400.

JC
"On veut faire du zéro défaut mais on a zéro bonhomme et zéro budget, et bien à la fin on a zéro résultat..."
Répondre