M241 – Communication ASCII RS232 en langage ST avec Arduino

Forum traitant des automates industriels de marque Schneider - Telemecanique
gerard13
Code sa première boucle
Code sa première boucle
Messages : 13
Enregistré le : 09 janv. 2017, 08:10

Re: M241 – Communication ASCII RS232 en langage ST avec Arduino

Message par gerard13 »

Bernardo59 a écrit :Salut,

Le plus simple aurait été de brancher ton M241 sur un PC en ouvrant le terminal.

Tu fais comment sur le Arduino pour récupérer ta trame ? Via SoftwareSerial ?

Vérifie la parité, la vitesse de transmission également.
Slt Bernardo59,

Oui avec Putty, je reçois parfaitement la trame ASCII du M241.

Non, je n'utilise pas SofwareSerial, inutile, je suis sur le port com 0 du Mega 2560r3.

Le code du Mega:

Code : Tout sélectionner

String ChaineRecue = "";

void setup() 
{Serial.begin(9600);}

void loop()
{delay(100);}

void serialEvent() 
{while (Serial.available()>0)
  { char CaractereRecu = (char)Serial.read();
    ChaineRecue += CaractereRecu;}
  Serial.print("Reception -> ");
  Serial.println(ChaineRecue);
  ChaineRecue = "";
}

Le terminal d'Arduino :
Reception -> «::
Reception -> «::
Reception -> «::
Reception -> «::


Je fouille maintenant uniquement coté Arduino... Si vous avez une idée...?

Je vous dis quand c'est réglé,

Merci de votre aide
Avatar du membre
Relax1485
Codeur fou
Codeur fou
Messages : 206
Enregistré le : 02 oct. 2017, 11:45
Localisation : OCCITANIE

Re: M241 – Communication ASCII RS232 en langage ST avec Arduino

Message par Relax1485 »

déterrage :D

Je n'arrive pas à obtenir une réception de message envoyé par un lecteur de code barre.

Est ce que dans ce mode là, la led "SL1" du 241 s'agite ? car chez moi c'est le néant total...
On perd sa vie à vouloir bien la gagner... 8-)
Avatar du membre
itasoft
Mi homme - Mi automate
Mi homme - Mi automate
Messages : 7805
Enregistré le : 20 oct. 2015, 10:15
Localisation : Lyon
Contact :

Re: M241 – Communication ASCII RS232 en langage ST avec Arduino

Message par itasoft »

Slts,
Pour réaliser une communication ASCII RS232 il faut un équipement maître, un équipement esclave et mettre en place un protocole de communication.
Exemple pour une requête de lecture vu du maître :
Le maître avec SEND_RECV_MSG envoi un code requête et attend la réponse de l’esclave (pas oublier le time_out)
L’esclave est à l’écoute permanente, à la réception du code requête du maître il envoie les données au maître et se remet en écoute permanente
Automaticien privé (de tout)
itasoft@free.fr
Avatar du membre
Relax1485
Codeur fou
Codeur fou
Messages : 206
Enregistré le : 02 oct. 2017, 11:45
Localisation : OCCITANIE

Re: M241 – Communication ASCII RS232 en langage ST avec Arduino

Message par Relax1485 »

Salut Itasoft,
Ok j'ai bien compris ton explication .
J'ai suivi le tuto Schneider pour la mise en place de la com ASCII RS232. mais pourtant rien n'y fait...
je n'arrive ni à envoyer, ni à recevoir quoi que ce soit, meme pas un clignotement de led sur l'automate.
Par contre en Modbus RS485 avec le même port (SL1 en RJ45) du M241 aucun problème.
On perd sa vie à vouloir bien la gagner... 8-)
Avatar du membre
itasoft
Mi homme - Mi automate
Mi homme - Mi automate
Messages : 7805
Enregistré le : 20 oct. 2015, 10:15
Localisation : Lyon
Contact :

Re: M241 – Communication ASCII RS232 en langage ST avec Arduino

Message par itasoft »

slts,
Si le maître est un lecteur de code barre , l'automate est esclave en écoute permanente et repasse en écoute après la réception du code barre, ça veut dire sans time-out ou time-out à zéro
Automaticien privé (de tout)
itasoft@free.fr
Avatar du membre
Relax1485
Codeur fou
Codeur fou
Messages : 206
Enregistré le : 02 oct. 2017, 11:45
Localisation : OCCITANIE

Re: M241 – Communication ASCII RS232 en langage ST avec Arduino

Message par Relax1485 »

On est absolument d'accord ;)

Pour donner plus d'infos:
Le CB fonctionne parfaitement sur un PC vers un "terminal", il n'est donc pas en cause.
Il y a un câblage DB9 RS232 standard : ( 2= RxD / 3= TxD / 5= GND)

Le SL1 en RJ45 sur le 241 en RS232 donne : ( 1= RxD / 2= TxD / 8= GND ).

J'ai donc cablé:
RJ45 PLC pin 1 <-> DB9 CB pin 3
RJ45 PLC pin 2 <-> DB9 CB pin 2
RJ45 PLC pin 8 <-> DB9 CB pin 5

Jusque là on est toujours d'accord ?
On perd sa vie à vouloir bien la gagner... 8-)
Avatar du membre
itasoft
Mi homme - Mi automate
Mi homme - Mi automate
Messages : 7805
Enregistré le : 20 oct. 2015, 10:15
Localisation : Lyon
Contact :

Re: M241 – Communication ASCII RS232 en langage ST avec Arduino

Message par itasoft »

jusque là oui
Automaticien privé (de tout)
itasoft@free.fr
Avatar du membre
Relax1485
Codeur fou
Codeur fou
Messages : 206
Enregistré le : 02 oct. 2017, 11:45
Localisation : OCCITANIE

Re: M241 – Communication ASCII RS232 en langage ST avec Arduino

Message par Relax1485 »

Ok merci :D
Reste la config de la com dans le 241.. :idea:

le SL1 est en RS232 vitesse, parité, bits de data, et de stop réglé idem comme dans "terminal" sur le PC
ASCII manager est enfant de SL1 avec 0 partout sauf en time out de trame reçu = 250ms

Ensuite dans le POU exemple repris de la doc Schneider j'ai tout conservé sauf que je ne fait pas d'envoi mais de la réception.
SEND_RECV_MSG
Timeout =0
QuantityToSend := 0
BufferToSend := 0
SizeRecvBuffer := 10
BufferToRecv := ADR (tableau de 1 à 255 byte)

:?:
On perd sa vie à vouloir bien la gagner... 8-)
Avatar du membre
JC87
Mi homme - Mi automate
Mi homme - Mi automate
Messages : 2231
Enregistré le : 20 oct. 2015, 13:00
Localisation : Nouvelle Aquitaine

Re: M241 – Communication ASCII RS232 en langage ST avec Arduino

Message par JC87 »

Bonjour,

Tu n'a pas un bloc qui ne ferait que du "receive" que tu activerai périodiquement ou sur un top de lecture ? parce que là vu que tu n’envoie rien peut être que la réception ne se fait pas la foulée, ça dépend peut être de la façon comment est traité le buffer de réception.

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..."
Avatar du membre
Relax1485
Codeur fou
Codeur fou
Messages : 206
Enregistré le : 02 oct. 2017, 11:45
Localisation : OCCITANIE

Re: M241 – Communication ASCII RS232 en langage ST avec Arduino

Message par Relax1485 »

Salut JC87,

La doc de la bibli du bloc SEND_RECV_MSG explique bien que si on force à 0 le buffer d'envoi alors on est en réception simple.
On perd sa vie à vouloir bien la gagner... 8-)
Répondre