J'utilise un automate Schneider M241 équipé d'un port série, entre autre pour envoyer à une Arduino Mega 2560 R3 les chaines de caractère ASCII.
Dans un premier temps, j'ai testé l'envoie d'une chaine de caractère "Hello", à chaque appuis sur un bouton poussoir depuis le M241 vers mon PC que je réceptionne grâce à Putty via le port com. Çà fonctionne parfaitement bien, message reçu dans la console Putty "Hello".
J'ai bien vérifier mes configurations port série soient identiques sur le M241, Putty et le port com virtuel pour Arduino:
Bauds /s : 9600
Bits de données : 8
Parité : Aucune
Bits d'arrêt : 1
Contrôle de flux : Aucune
Mais coté console Arduino, c'est pas bon, je reçois des messages que je n'arrive pas à conformer correctement.
Je n'ai pas utilisé SofwareSerial, inutile je pense, car je suis sur le port com 0 du Mega 2560r3.
1 question, il est bien en interface 5V le lien série qui sort de ton automate?
Dans le principe, en utilisant Serial, tu as un conflit entre le lien série du processeur, le FTDI qui assure l'interface entre le processeur et le PC et ton automate.
Sur une Mega tu as 4 liens série, il faut connecter ton automate sur Serial1 par exemple et renvoyer vers le PC par Serial pour affichage.
Si ton automate peux communiquer directement avec le port com d'un PC c'est qu'il est en RS232. Les ports séries de la mega sont en logique CMOS 0-5V, il te faut une adaptation de niveau (autrement risque de destruction de la carte mega)
Pour ta première question, voici les infos dont je dispose :
Ports de communication intégrés Document Schneider EIO0000001457 10/2016 Page 224
La ligne série 1 :
peut être utilisée pour communiquer avec des équipements qui prennent en charge le protocole Modbus, en tant que maître ou qu'esclave, le protocole ASCII (imprimante, modem, etc.) et le protocole SoMachine (IHM, etc.).
distribue une alimentation de 5 VCC.
En fait, je pense ne pas avoir de problème avec la technologie du port com du M241, car en montage M241 -> port com 1 du PC avec Putty, je reçois bien les chaines de caractères que j'envoie depuis le M241.
Je vais tout de même fouiller du coté tension des ports série...
Ce que tu me propose, si j'ai bien capté, c'est de connecter le M241 sur Serial1 du Mega, et le Serial (0) le connecter au port Com 1 du PC afin que je receptionne avec Putty le renvoi de la réception du Serial1 sur le Serial, via SoftwareSerial pour gerer les deux port série de l'Arduiono...?
gerard13300:
En fait, je pense ne pas avoir de problème avec la technologie du port com du M241, car en montage M241 -> port com 1 du PC avec Putty, je reçois bien les chaines de caractères que j'envoie depuis le M241.
Oui mais le port COM du PC fonctionne en interface RS232 donc avec des niveaux +/-12V et non pas 0/5V.
Edit: je viens de regarder la doc de ton automate. Page 225 il est indiqué que l'interface est soit en RS232 soit en RS485, configurable par logiciel.
Le RS232 délivre des signaux avec des tensions qui ne sont pas compatibles de l'Arduino +/-12V.
Le RS485 utilise une interface en niveau 0/5V mais en différentielle donc ce n'est pas directement compatible avec l'Arduino.
Dans un cas comme dans l'autre il faudrait utiliser un circuit qui fasse l'adaptation de niveau.
fdufnews:
Oui mais le port COM du PC fonctionne en interface RS232 donc avec des niveaux +/-12V et non pas 0/5V.
Edit: je viens de regarder la doc de ton automate. Page 225 il est indiqué que l'interface est soit en RS232 soit en RS485, configurable par logiciel.
Le RS232 délivre des signaux avec des tensions qui ne sont pas compatibles de l'Arduino +/-12V.
Le RS485 utilise une interface en niveau 0/5V mais en différentielle donc ce n'est pas directement compatible avec l'Arduino.
Dans un cas comme dans l'autre il faudrait utiliser un circuit qui fasse l'adaptation de niveau.
En montant un Max232 ou un shield arduino alors ...?