Décalage Données

Forum traitant des automates industriels de marque Siemens.
Throkane
Première mise en service
Première mise en service
Messages : 51
Enregistré le : 14 avr. 2016, 20:49

Décalage Données

Message par Throkane »

Bonjour,

J'ai un phénomène que je ne parviens pas à expliquer, ni à corriger :

J'ai 2 CPU S7-300 (provenant de 2 projets différents) reliées par une liaison TCP (réseau éthernet).
Je dois transférer un DB de l'une vers l'autre avec les fonctions SEND/RECV.
Les DB Source et Destination sont strictement identiques et je n'ai aucune erreur de comm.
Si les données sont bien transmises, je constate néanmoins que le stockage de celles-ci est décalé dans mon DB Destination.
Voici une illustration :
Décalage Données.PNG
Vous pouvez voir que le décalage est de 32 octets.

DBW0 source copié dans le DBW32 Destination
...............
...............
DBW28 source copié dans le DBW60 Destination
etc...

Quelqu'un sait-il d'où peut provenir ce décalage ?

Cordialement
Avatar du membre
djé
Dieu du process
Dieu du process
Messages : 809
Enregistré le : 20 oct. 2015, 09:55
Localisation : Bretagne, Pays de la Loire, Nantes

Re: Décalage Données

Message par djé »

Salut,

Quels sont les blocs exact de communication que tu utilises?
Si c'est BSEND,BRCV ou USEND/URCV, vérifie le pointeur ANY de réception du bloc BRCV/URCV, paramètre "RD_1"
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 ...
Throkane
Première mise en service
Première mise en service
Messages : 51
Enregistré le : 14 avr. 2016, 20:49

Re: Décalage Données

Message par Throkane »

J'utilise les blocs AG_SEND/AG_RECV de la bibliothèque
Voici le bloc SEND paramètré sur la CPU Source :
SEND.PNG
SEND.PNG (11.48 Kio) Vu 4418 fois
Et voici le bloc RECV de la CPU Destination :
RECV.PNG
RECV.PNG (11.23 Kio) Vu 4418 fois
Avatar du membre
djé
Dieu du process
Dieu du process
Messages : 809
Enregistré le : 20 oct. 2015, 09:55
Localisation : Bretagne, Pays de la Loire, Nantes

Re: Décalage Données

Message par djé »

Oui c'est bizarre,

Donc pour résumer, tu fais une com en Ethernet, S7-300 vers S7-300 via des coupleurs CP sur une liaison configurée en TCP

Tu n'as aucune valeur dans STATUS?
Quelle est la valeur LEN retournée par ton FC7 AG-RECV
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 ...
philou77
Mi homme - Mi automate
Mi homme - Mi automate
Messages : 2089
Enregistré le : 21 oct. 2015, 10:00
Localisation : Ile de France

Re: Décalage Données

Message par philou77 »

Salut,

un peu de lecture, ça peut peut être aider..
apparemment, c'est pas si simple que cela de communiquer en siemens !

https://support.industry.siemens.com/cs ... 0&lc=fr-WW
Si vous avez compris tout ce que je viens d'écrire, c'est que j'ai dû faire une erreur quelque part ! :D
Throkane
Première mise en service
Première mise en service
Messages : 51
Enregistré le : 14 avr. 2016, 20:49

Re: Décalage Données

Message par Throkane »

Longueur renvoyée 584, c'est-à-dire la longueur de mon bloc.
Toutes les données sont transmises mais elles ne sont pas stockées correctement !
Lorent2
Maître du binaire
Maître du binaire
Messages : 484
Enregistré le : 27 déc. 2015, 08:52

Re: Décalage Données

Message par Lorent2 »

Déjà pourquoi tes données du bloc de com passent par des variables locales (ID, LADDR) ?
Ecrit les en dur pour être sur.

Après je dirai qu'il faut cadencer l’émission (fin d’émission autorise la suivante), et autoriser en permanence la réception (vire ton contact avant)
Si quelquefois tu te sens petit, inutile, démoralisé ou dépressif, n'oublies jamais que tu as été un jour le plus rapide et le meilleur spermatozoïde de ta bande ...
Avatar du membre
djé
Dieu du process
Dieu du process
Messages : 809
Enregistré le : 20 oct. 2015, 09:55
Localisation : Bretagne, Pays de la Loire, Nantes

Re: Décalage Données

Message par djé »

De ce que j'ai pu lire et comprendre, en liaison TCP le destinataire ne sait pas quand commence et ou fini le message, car ce type de communication est de type flux de données. Voir Ici.

J'ai cependant du mal à m'expliquer le décalage. Il y a un post pour un problème similaire sur le forum siemens ici

Les dernières valeurs de ton DB sources sont-elles à zéro? Je demande çà c'est pour voir si les 32 premiers octets de ton DB de réception ne serait pas en fait les 32 derniers de la sources.
La DB de reception fait-elle pile 584 octets?

Essaie en envoyant simplement 10 octets pour vérifier si le décalage existe toutjours.

Fais un test en ISO sur TCP si tu peux. Communication orientée paquets (voir ici)
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 ...
Throkane
Première mise en service
Première mise en service
Messages : 51
Enregistré le : 14 avr. 2016, 20:49

Re: Décalage Données

Message par Throkane »

Bon, j'ai essayé de mettre la réception en continue, ça ne change rien.

Pour répondre au dernier message, je confirme, les 32 premiers octets de destination sont bien les 32 derniers octets source...

Les DB de destination et source sont strictement identiques et font bien 584 octets.
Avatar du membre
djé
Dieu du process
Dieu du process
Messages : 809
Enregistré le : 20 oct. 2015, 09:55
Localisation : Bretagne, Pays de la Loire, Nantes

Re: Décalage Données

Message par djé »

Dans un des onglets des propriétés de la carte CP il y a une case à cocher pour autoriser des envois de longueurs supérieure à 240 octets.
Est-elle cochée?
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