Com TCP ASCI Buffer réception tournant AG_RECV

Forum traitant des automates industriels de marque Siemens.
Avatar de l’utilisateur
bipcoyote
Codeur fou
Codeur fou
Messages : 203
Inscription : 16 janv. 2018, 13:19
Localisation : Dunkerque

Com TCP ASCI Buffer réception tournant AG_RECV

Message par bipcoyote »

Bonjour,

J'ai établi une communication TCP ASCII avec un DL1000 de Sick.
la communication est établie.
Lorsque que je lui pose une question (exemple : donne moi la distance), il me réponds correctement avec la bonne réponse.

Le problème est que mon buffer de réception m'affiche les valeurs de façon tournante, il ne commence pas au 1er byte inscris dans le AG_RECV (P#DB301.DBX100.0 BYTE 100) et la valeur LEN est de 100.

Une idée ?

En attente de vous lire et répondre aux questions, si besoin.

Merci.
Avatar de l’utilisateur
djé
Dieu du process
Dieu du process
Messages : 776
Inscription : 20 oct. 2015, 09:55
Localisation : Bretagne, Pays de la Loire, Nantes

Re: Com TCP ASCI Buffer réception tournant AG_RECV

Message par djé »

Salut,

Dans le cas d'un échange de données par une liaison TCP, le paramètre de sortie "NDR" n'est mis à 1 que lorsque le tampon de réception est complètement rempli ! La valeur du paramètre de sortie "LEN" indique donc la longueur totale du tampon de réception !

Si la trame reçue n'est pas un multiple de la taille de ton buffer, les données de réception se décalent.
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 ...
Avatar de l’utilisateur
ProfnovA
Créateur de langage
Créateur de langage
Messages : 525
Inscription : 21 oct. 2015, 08:21

Re: Com TCP ASCI Buffer réception tournant AG_RECV

Message par ProfnovA »

Je crois que le sujet avait été aussi abordé ici (mais non résolu), si ça peux t'aider:

http://forum-automatisme.net/viewtopic.php?t=849
Avatar de l’utilisateur
djé
Dieu du process
Dieu du process
Messages : 776
Inscription : 20 oct. 2015, 09:55
Localisation : Bretagne, Pays de la Loire, Nantes

Re: Com TCP ASCI Buffer réception tournant AG_RECV

Message par djé »

Salut,

Sur une communication TCP en ASCII avec un équipement j'avais utilisé les blocs TSEND et TRCV et je n'avais pas eu de soucis.
J'envoyais un trame pour les valeurs que je souhaitais récupérer et en retour il me répondait.
Il y a avait une petite routine de décodage de la trame reçue pour isoler les valeurs et les retransformer en réél/décimal.
Je n'ai pas rencontré de problème particulier, peut-être peux tu te diriger vers ces blocs.

La gestion de la liaison se fait de manière applicative (pas de configuration dans les « liaisons » de la CPU ; on utilise pour cela une instance du bloc « Établissement d'une liaison avec le FB "TCON" ». On utilise l’UDT « TCP_conn_passive », pour l’ordonnancement et le paramétrage des données.
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 ...
Avatar de l’utilisateur
bipcoyote
Codeur fou
Codeur fou
Messages : 203
Inscription : 16 janv. 2018, 13:19
Localisation : Dunkerque

Re: Com TCP ASCI Buffer réception tournant AG_RECV

Message par bipcoyote »

Bonjour,
Rappel : DL1000 Sick en liaison TCP ASCII. (CPU 315-2DP avec coupleur 343-1)
1er partie résolue sur la lecture de la donnée retour et la mise en forme de cette donnée ASCII de forme REAL au standard IEEE754 (et oui !).
Reste à faire:
Mise ne place de TCON et Tdisconnect car elle ne se relance pas toute seule (dommage),
Pouvoir faire différentes requêtes sans que l'on soit obliger de rebooter l'un des équipements.

Prochain épisode Dallas à suivre.
Malheureux que de nos jours, on soit obliger de revenir sur des com TCP en ASCII (ca me rappel le S5, PL73 ......) :?

+
Avatar de l’utilisateur
bipcoyote
Codeur fou
Codeur fou
Messages : 203
Inscription : 16 janv. 2018, 13:19
Localisation : Dunkerque

Re: Com TCP ASCI Buffer réception tournant AG_RECV

Message par bipcoyote »

Bonjour

Suite et fin.
Petit rappel, les blocs Tcon et Tdiscon, ne sont valable que sur des CPU avec PN pas sur des CP343 (on ne peux se rappeler de tout).

Quant aux informations reçues en mode chenillard dans le DB de réception proviens du fait que la requête envoyé au destinataire avait une certaine longueur (A), que le destinataire réponds avec une longueur moindre ce qui provoque le tassement dans le buffer de la CP343 qui renvoie les informations une fois son buffer plein (A), ce qui provoquait dans notre DB de travail un effet chenillard.

Nota: Après recherche et demande, le buffer de la CP343 n'est pas accessible au programmateur.

Bon courage.
A+
Répondre