dans ce cas je n'ai pas d'explication à la déconnection, d'autres ici auront sans doute des idées
si tu débranches temporairement la carte ESP32 reliée à /dev/ttyACM0 le problème subsiste-t-il ?
dans ce cas je n'ai pas d'explication à la déconnection, d'autres ici auront sans doute des idées
si tu débranches temporairement la carte ESP32 reliée à /dev/ttyACM0 le problème subsiste-t-il ?
Bonjour felvicfelvic
Sais tu si ton automate utilise le protocole Modbus ou une simple liaison série;
Cordialement
jpbbricole
Par les deux je pense, car pour le programmer je branche un câble avec un adaptateur USB/DB9 sur le connecteur ( celui sur lequel je recupere 0V, Tx et Rx ).
MODBUS il faut apparemment une extension
14.2
Extensionn esclave Modbus
L’extension Modbus connectée à un XT 20 offre 8 bits et 3 mots de lecture
et 8 bits et 3 mots de sortie.
Il y a le même problème sur ttyACM0
5226.477446] usb 3-1: new full-speed USB device number 3 using xhci_hcd
[45226.614596] usb 3-1: New USB device found, idVendor=303a, idProduct=1001, bcdDevice= 1.01
[45226.614618] usb 3-1: New USB device strings: Mfr=1, Product=2, SerialNumber=3
[45226.614625] usb 3-1: Product: USB JTAG/serial debug unit
[45226.614630] usb 3-1: Manufacturer: Espressif
[45226.614635] usb 3-1: SerialNumber: 34:85:18:71:4E:D4
[45226.714381] cdc_acm 3-1:1.0: ttyACM0: USB ACM device
[45226.714446] usbcore: registered new interface driver cdc_acm
[45226.714449] cdc_acm: USB Abstract Control Model driver for USB modems and ISDN adapters
[45503.352570] usb 3-1: USB disconnect, device number 3
J'ai changé de PC:
[ 31.968863] usb 1-4.2: new full-speed USB device number 7 using xhci_hcd
[ 32.058759] usb 1-4.2: New USB device found, idVendor=1a86, idProduct=7523, bcdDevice= 2.54
[ 32.058781] usb 1-4.2: New USB device strings: Mfr=0, Product=2, SerialNumber=0
[ 32.058788] usb 1-4.2: Product: USB2.0-Ser!
[ 32.102291] usbcore: registered new interface driver usbserial_generic
[ 32.102310] usbserial: USB Serial support registered for generic
[ 32.106908] usbcore: registered new interface driver ch341
[ 32.107019] usbserial: USB Serial support registered for ch341-uart
[ 32.107040] ch341 1-4.2:1.0: ch341-uart converter detected
[ 32.108197] ch341-uart ttyUSB0: break control not supported, using simulated break
[ 32.108350] usb 1-4.2: ch341-uart converter now attached to ttyUSB0
Bon je suis arrivé à monitorer l'ESP8266, mais je pense que c'est l'interrogation des trames qui ne va pas.
J'utilise un programme que j'ai récuperé mais qui est pour un millenium 3.
Les millenium 3 ont des blocs metiers serie ( graphset ) ce qui n'est pas le cas des millenium 2.
Du coup il faudrait corriger le programme, mais je ne sais pas comment proceder
include <ESP8266WiFi.h>
#include <WiFiUdp.h>
const char* ssid = "Livebox-97BC";
const char* password = "caché";
const char* host = "192.168.1.42";
const int httpPort = 23;
WiFiUDP udp;
WiFiUDP udp2;
IPAddress debugadr(192, 168, 1, 44);
WiFiClient client;
///////////////////////////////////////////////////
// Routine SETUP //
///////////////////////////////////////////////////
void setup() {
Serial.begin(115200,SERIAL_7E1);
delay(10);
// We start by connecting to a WiFi network
Serial.println();
Serial.println();
Serial.print("Connecting to ");
Serial.println(ssid);
WiFi.begin(ssid, password);
while (WiFi.status() != WL_CONNECTED) {
delay(500);
Serial.print(".");
}
Serial.println("");
Serial.println("WiFi connected");
Serial.println("IP address: ");
Serial.println(WiFi.localIP());
Serial.print("connecting to ");
Serial.println(host);
delay(2000);
// Use WiFiClient class to create TCP connections
//WiFiClient client;
//const int httpPort = 80;
if (!client.connect(host, httpPort)) {
Serial.println("connection failed");
//return;
}else Serial.println("connection OK");
}
void loop() {
// This will send the request to the server
if(Serial.available()){
String sline =Serial.readStringUntil('\n');
size_t lon = sline.length();
char sbuf[lon+2];
sline.toCharArray(sbuf, lon+1);
sbuf[lon]=0x0A;
lon++;
client.write(sbuf, lon);
udp.beginPacket(debugadr, 1111); //udp requests are to port 123
}
// delay(10);
// Read all the lines of the reply from server and print them to Serial
while(client.available()){
String line = client.readStringUntil('\n');
line += '\n';
Serial.print(line);
udp2.beginPacket(debugadr, 1112); //udp requests are to port 123
udp2.print(line);
udp2.endPacket();
}
J'ai fait un code très simple:
Code : Tout sélectionner
#include <ESP8266WiFi.h>
#include <WiFiUdp.h>
const char* ssid = "Livebox-97BC";
const char* password = "caché";
const char* host = "192.168.1.42";
const int httpPort = 23;
WiFiUDP udp;
WiFiUDP udp2;
IPAddress debugadr(192, 168, 1, 38);
WiFiClient client;
int inByte ;
void setup() {
// initialize both serial ports:
Serial.begin(115200, SERIAL_7E1);
delay(10);
Serial.print("Connecting to ");
Serial.println(ssid);
WiFi.begin(ssid, password);
while (WiFi.status() != WL_CONNECTED) {
delay(500);
Serial.print(".");
}
Serial.println("");
Serial.println("WiFi connected");
Serial.println("IP address: ");
Serial.println(WiFi.localIP());
Serial.print("connecting to ");
Serial.println(host);
delay(2000);
// Use WiFiClient class to create TCP connections
//WiFiClient client;
//const int httpPort = 80;
}
void loop() {
// read from port Tx, send to port USB:
if (Serial.available()) {
inByte = Serial.read();
Serial.print("MY SERIAL a bien Recu en RX");
Serial.print(inByte);
Serial.println(Serial.read());
delay(300);
}
// read from port USB, send to port 1:
if (Serial.available()) {
int inByte = Serial.read();
Serial.write("j'ai saisi: ");
Serial.write(inByte);
Serial.println();
Serial.write("sur le serial1 il y a :");
Serial.println(Serial1.read());
Serial.println();
delay(300);
}
}
C'est tout ce que j'ai sur Putty:
il semblerait donc que l'automate n'envoie pas 'spontanément' des données .....
en attente de commandes venue du PC ?
(cette liaison série servait à piloter le Millenium 2 à partir d'un logiciel disponible ici chez Crouzet en archives )
En installant ce (vieux) logiciel il serait sans soute possible d'intercepter les trames émises et reçues
Bonsoir
Il est aussi possible que cette transmission doit etre initiée dans le programme executé par l automate genre fonction facultative qui si elle est pas implantée il ne se passe rien
En effet quel interet de sortir les valeurs tout levtemps si elles ne sont pas utilisées
J'ai ce logiciel avec lequel je communique avec l'automate.
Ce câble se termine par une DB9 série sur laquelle j'ai un adaptateur USB FDTI.
Ce qui voudrait dire que les données passent bien par le connecteur interne sur Tx/Rx.
Le tout est de savoir si le transfert de données est déclenché au chargement du logiciel ou du monitoring
Bonjour
Tu as donc l'automate, son logiciel et le câble d'orifine (qui contient 2 optocoupleurs)
Tu veux découvrir la nature des échanges d'information , leur protocole, le contenu des trames échangées
Pour moi le plus court chemin passe par l'utilisation d'un petit analyseur logique 8 bits de ce type
En raccordant 2 des 8 lignes de cet analyseur aux signaux TX et RX côté automate (niveaux logiques 0 et 5V) et en demandant au logiciel de l'analyseur de traiter des signaux Série avec le bon débit, nombre de bits, parité et stop...... tu pourras faire de longs enregistrements où tu verras la chronologie des échanges, les caractères échangés . Il sera plus facile de comprendre complètement la logique du dialogue PC-Automate.
Sous condition !
Une remarque sur le câble Crouzet Millenium 2 <-> PC DB9
il contient 2 optocoupleurs qui doivent ếtre alimentés tous les deux (c'est un câble 'actif')
l'un , côté PC par le signal DTR de la prise DB9
l'autre , côté automate , par la borne +5V
source : https://www.forum-automatisme.net/viewtopic.php?t=279&start=10
SI l'optocoupleur PH1 n'est pas alimenté en 5V , il n'envoie rien sur le RX de l'automate, c'est peut être ce qui se passe avec ton FTDI...
Et bien entendu si ton objectif et d'écouter les échanges Automate - PC la sortie TX du FTDI n'est pas utilisée, son entrée RX suit ce qui se passe sur l'une ou l'autre des deux lignes de communication (pas les 2 à la fois comme le ferait l'analyseur logique )
Je suis directement branché sur le connecteur à gauche sur Tx, Rx et 0V
J'ai procedé de la même façon que sur cette page: Connecter un automate Millenium 3 ou Zelio à Internet par wifi pour 10 €
OK , je crois compre maintenant ce que tu veux faire
= remplacer le câble par une liaison 'sans fil' te permettant d'observer et comprendre les échanges automate <-> PC, puis faire un affichage déporté
C'est bien ça ?
L'info donnée tardivement au message #34 avait toute sa place dans le message initial, pour éviter le temps passé à répondre 'hors sujet'
oui c'est ça!
Oui j'aurais du le faire avant, je suis désolé
Sur un vieux message de forum solaire, j'ai pioché cette info ( mais sans garantie ):
la pin 4 doit simplement être forcée à un niveau haut (pour montrer au millenium qu'il y a quelqu'un).
Mais le lien ci-dessus fonctionne sans cette broche mise à un niveau haut.
Je n'avance toujours pas...
J'ai envoyé sur un Millenium 3 un programme avec les blocs Slin et Slout. Sur Slout j'ai mis une entrée à 53 ( c'est juste pour avoir une donnée ).
Je suis donc dans le même cas de figure que sur cette page: Connecter un automate Millenium 3 ou Zelio à Internet par wifi pour 10 €
Et toujours rien sur le moniteur série ( Putty ).
Il y a quelque chose que je paramètre mal dans Putty?
Bonjour à tous,
Je cherche un programme qui configure une carte Wemos (ESP8266 ) comme un modem.
Merci d'avance ![]()