Page 2 sur 4
Re: M241 – Communication ASCII RS232 en langage ST avec Arduino
Posté : 22 janv. 2017, 11:42
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
Re: M241 – Communication ASCII RS232 en langage ST avec Arduino
Posté : 04 nov. 2020, 16:53
par Relax1485
déterrage
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...
Re: M241 – Communication ASCII RS232 en langage ST avec Arduino
Posté : 05 nov. 2020, 08:51
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
Re: M241 – Communication ASCII RS232 en langage ST avec Arduino
Posté : 05 nov. 2020, 09:07
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.
Re: M241 – Communication ASCII RS232 en langage ST avec Arduino
Posté : 05 nov. 2020, 09:17
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
Re: M241 – Communication ASCII RS232 en langage ST avec Arduino
Posté : 05 nov. 2020, 09:27
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 ?
Re: M241 – Communication ASCII RS232 en langage ST avec Arduino
Posté : 05 nov. 2020, 10:02
par itasoft
jusque là oui
Re: M241 – Communication ASCII RS232 en langage ST avec Arduino
Posté : 05 nov. 2020, 10:27
par Relax1485
Ok merci
Reste la config de la com dans le 241..
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)

Re: M241 – Communication ASCII RS232 en langage ST avec Arduino
Posté : 05 nov. 2020, 10:45
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
Re: M241 – Communication ASCII RS232 en langage ST avec Arduino
Posté : 05 nov. 2020, 10:50
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.