Le retrofit IoT de machines anciennes est généralement le moyen le plus rapide d'obtenir de vraies données de production, car les machines qui fabriquent la plupart de vos pièces ont souvent plusieurs décennies et ne seront pas remplacées de sitôt. Dans ce guide, vous verrez quels signaux non invasifs exploiter, comment choisir entre capteurs et interfaces du contrôleur, et comment construire un moniteur à pince ampèremétrique fonctionnel qui publie l'état de la machine via MQTT sans modifier la moindre logique d'automate.
Pourquoi moderniser plutôt que remplacer
Un tour, une presse ou une presse à injecter de vingt ans peut encore tenir parfaitement ses tolérances. Ce qui lui manque, c'est un port réseau, ou bien il en a un qui parle un protocole que personne côté IT ne reconnaît. Remplacer la machine pour obtenir des données se justifie rarement. La moderniser coûte une fraction du prix et peut se faire pendant une fenêtre de maintenance.
Le principe directeur d'un bon retrofit est : le non invasif d'abord. Chaque modification de la logique d'automate exige une validation, un plan de retour arrière et souvent l'intégrateur d'origine, qui n'existe parfois plus. Chaque capteur que vous fixez de l'extérieur n'exige rien de tout cela. Commencez par les signaux lisibles sans toucher au système de contrôle, et ne passez à l'intégration du contrôleur qu'une fois la valeur démontrée.
Que mesurer sur une machine ancienne
L'essentiel de la valeur d'un premier retrofit provient d'une poignée de signaux qui répondent à la question « la machine produit-elle des pièces, et sinon, pourquoi ? »
| Signal | Comment le capter | Ce qu'il vous apprend | Caractère invasif |
|---|---|---|---|
| Courant de broche ou de moteur | Transformateur de courant à noyau ouvrant (pince ampèremétrique) sur une phase | Arrêt, ralenti, production, surcharge | Aucun, la pince entoure un câble existant |
| État de la colonne lumineuse | Capteurs de lumière ou contacts secs sur la colonne | Production, attente, alarme, tels que l'opérateur les voit | Très faible |
| Comptage de pièces | Détecteur de proximité sur un éjecteur ou contact sur le signal de fin de cycle | Cadence et temps de cycle | Faible |
| Vibrations | Accéléromètre à fixation magnétique, filaire ou sans fil | Usure des roulements, balourd, état de l'outil | Aucun |
| Température | Sonde à collier ou adhésive | Moteurs en surchauffe, huile hydraulique, liquide de coupe | Aucun |
| Données du contrôleur | Lecture Modbus, Ethernet/IP, S7 ou série via une passerelle | Programme, alarmes, consignes, compteurs | Moyen, accès en lecture seule à l'automate |
La pince ampèremétrique mérite une attention particulière. Avec un seul capteur par machine, vous pouvez déduire l'état, le taux d'utilisation et même une estimation de la consommation d'énergie. Elle ne nécessite ni automate, ni port réseau sur la machine, ni la coopération du constructeur.
Choisir entre capteurs et interfaces du contrôleur
Il existe deux grandes voies de retrofit, qui se combinent bien.
Les capteurs additionnels sont indépendants du contrôleur de la machine. Ils fonctionnent sur des machines à logique à relais, des automates obsolètes ou des contrôleurs verrouillés. Ils vous donnent la réalité physique, par exemple si la broche a réellement tourné, mais aucun contexte comme le numéro de programme ou le texte d'alarme.
Les interfaces du contrôleur lisent des données dont la machine dispose déjà. De nombreux automates anciens exposent Modbus RTU sur un port série, et beaucoup de ceux des deux dernières décennies prennent en charge Modbus TCP, Ethernet/IP ou la communication S7. Une passerelle lit les registres ou les variables en lecture seule et les publie. Nos guides Modbus TCP vers MQTT et connectivité automate vers cloud détaillent cette voie.
Une séquence pragmatique consiste à poser des pinces d'abord, à démontrer la valeur avec des données d'utilisation, puis à ajouter la lecture du contrôleur sur les machines où les codes d'alarme et les compteurs justifient l'effort supplémentaire.
L'architecture du retrofit
Quoi que vous mesuriez, l'architecture reste la même :
- Les capteurs de la machine produisent des signaux analogiques, numériques ou de bus de terrain.
- Un équipement edge les lit. Il peut s'agir d'un microcontrôleur comme un ESP32 pour une seule machine, ou d'une passerelle edge IIoT pour toute une ligne.
- L'équipement edge publie en MQTT vers un broker, avec une hiérarchie de topics comme
site/area/line/machine/measurement. - Les consommateurs s'abonnent : tableaux de bord, calculs de TRS, historiens, systèmes de maintenance.
C'est le broker qui garantit la montée en charge. Ajouter la cinquantième machine revient au même qu'ajouter la première, et un nouveau consommateur n'a jamais besoin de savoir comment les données ont été collectées. Si MQTT est nouveau pour vous, commencez par ce qu'est un broker MQTT.
En pratique : un moniteur de machine à pince ampèremétrique avec ESP32
Cet exemple utilise un ESP32 et un transformateur de courant à noyau ouvrant à sortie tension comme le SCT-013-030, qui délivre 1 V RMS pour 30 A. La pince est reliée au GPIO34 via un circuit de polarisation à point milieu (deux résistances identiques entre 3,3 V et GND avec un condensateur à la masse, la pince entre le point milieu et la broche ADC), de sorte que le signal alternatif oscille autour d'environ 1,65 V.
La sécurité d'abord : la pince se place autour d'un seul conducteur isolé à l'intérieur de l'armoire de la machine. Ce travail doit être réalisé par un électricien qualifié, machine consignée. Ne placez jamais la pince autour d'un câble multiconducteur transportant toutes les phases : les champs s'annulent et vous lirez une valeur proche de zéro.
#include <WiFi.h>
#include <PubSubClient.h>
const char* WIFI_SSID = "plant-iot";
const char* WIFI_PASS = "your-wifi-password";
const char* MQTT_HOST = "broker.connectmq.com";
const int MQTT_PORT = 1883;
// Utilisez un préfixe unique sur le broker public ; il est lisible par tous
const char* BASE = "connectmq/demo/k7q2x9/factory1/turning/lathe07";
const int CT_PIN = 34;
const float AMPS_PER_VOLT = 30.0; // SCT-013-030 : 1 V RMS = 30 A
const float IDLE_AMPS = 1.0; // en dessous, la machine est à l'arrêt
const float RUN_AMPS = 4.0; // au-dessus, la broche est en train d'usiner
WiFiClient net;
PubSubClient mqtt(net);
String lastState = "";
unsigned long lastReport = 0;
float readAmpsRms() {
const int N = 2000;
static float samples[N];
float sum = 0;
for (int i = 0; i < N; i++) {
samples[i] = analogReadMilliVolts(CT_PIN) / 1000.0;
sum += samples[i];
delayMicroseconds(100); // fenêtre d'environ 200 ms, 10 périodes secteur à 50 Hz
}
float mean = sum / N;
float sq = 0;
for (int i = 0; i < N; i++) {
float v = samples[i] - mean;
sq += v * v;
}
return sqrt(sq / N) * AMPS_PER_VOLT;
}
void connectMqtt() {
String clientId = "lathe07-" + String((uint32_t)ESP.getEfuseMac(), HEX);
String stateTopic = String(BASE) + "/state";
while (!mqtt.connected()) {
// Le last will signale le moniteur hors ligne en cas de perte d'alimentation ou de Wi-Fi
if (mqtt.connect(clientId.c_str(), stateTopic.c_str(), 1, true, "UNKNOWN")) {
lastState = "";
} else {
delay(5000);
}
}
}
void setup() {
Serial.begin(115200);
analogSetPinAttenuation(CT_PIN, ADC_11db);
WiFi.begin(WIFI_SSID, WIFI_PASS);
while (WiFi.status() != WL_CONNECTED) delay(500);
mqtt.setServer(MQTT_HOST, MQTT_PORT);
connectMqtt();
}
void loop() {
if (!mqtt.connected()) connectMqtt();
mqtt.loop();
float amps = readAmpsRms();
String state = amps < IDLE_AMPS ? "OFF" : (amps < RUN_AMPS ? "IDLE" : "RUNNING");
// Publier l'état à chaque changement, en retained pour que les tableaux de bord le voient tout de suite
if (state != lastState) {
mqtt.publish((String(BASE) + "/state").c_str(), state.c_str(), true);
lastState = state;
}
// Publier le courant toutes les 10 secondes pour les tendances
if (millis() - lastReport > 10000) {
char buf[64];
snprintf(buf, sizeof(buf), "{\"amps\":%.2f}", amps);
mqtt.publish((String(BASE) + "/current").c_str(), buf);
lastReport = millis();
}
}
Remplacez k7q2x9 par votre propre chaîne aléatoire, flashez la carte et abonnez-vous depuis un ordinateur portable au serveur MQTT public gratuit, lisible par tous et réservé aux tests :
mosquitto_sub -h broker.connectmq.com -p 1883 -i lathe-watch-$RANDOM \
-t 'connectmq/demo/k7q2x9/#' -v
Étalonnez les seuils en observant le courant lorsque la machine est éteinte, au ralenti broche arrêtée, puis en cours d'usinage. Chaque machine a sa propre consommation au ralenti due aux pompes, ventilateurs et circuits hydrauliques : IDLE_AMPS et RUN_AMPS doivent donc être réglés machine par machine. En production, passez à WiFiClientSecure sur le port 8883 et utilisez le nom d'utilisateur, le mot de passe et le client ID de votre portail ConnectMQ.
Pièges courants du retrofit
- Seuils mal réglés. Une machine dont la pompe hydraulique tourne en continu semblera « en production » toute la journée si le seuil de production est trop bas. Étalonnez d'après le comportement observé.
- Bruit électrique. Les variateurs et les contacteurs injectent du bruit. Gardez un câblage capteur court, utilisez du câble blindé et moyennez les mesures sur plusieurs périodes secteur, comme le fait l'exemple.
- Wi-Fi dans les armoires en acier. Une carte enfermée dans une armoire peut perdre sa connexion. Utilisez une antenne externe ou montez l'électronique à l'extérieur de l'armoire.
- Pas d'état hors ligne. Sans last will, un moniteur qui perd son alimentation affiche indéfiniment le dernier état. L'exemple publie
UNKNOWNcomme message will retenu pour l'éviter. - Topics non structurés. Choisissez la hiérarchie avant la deuxième machine. Renommer cinquante appareils plus tard est pénible.
D'une machine à tout l'atelier
Une fois que quelques machines remontent leurs données, les questions passent du câblage à l'exploitation : combien de connexions, qui peut lire quelles données, comment alerter en cas d'arrêt. Un broker MQTT managé supprime le travail côté serveur pour que vous puissiez vous concentrer sur les capteurs. Avec ConnectMQ, vous pouvez suivre chaque machine modernisée dans l'explorateur de topics en direct, les regrouper par niveau ISA-95 dans la vue des équipements et définir des règles d'alerte à seuil, par exemple lorsque le courant de broche dépasse une limite de surcharge. L'offre Serverless gratuite gère jusqu'à 25 connexions, de quoi couvrir une cellule pilote. Pour le parcours complet, du retrofit aux données à l'échelle de l'usine, lisez notre guide de l'IoT industriel avec MQTT et le plan de preuve de concept IIoT.
Démarrer avec ConnectMQ
Créez un broker Serverless gratuit sur app.connectmq.com, sans carte bancaire. Remplacez le serveur MQTT public gratuit par votre propre point de connexion ConnectMQ avec TLS, et vos machines modernisées deviennent des données structurées et en direct auxquelles n'importe quel tableau de bord, jumeau numérique ou outil d'analyse peut s'abonner.
Questions fréquentes
Peut-on faire le retrofit IoT de machines anciennes sans modifier l'automate ?
Oui. Pinces ampèremétriques, capteurs de colonne lumineuse, capteurs de vibration et capteurs de comptage de pièces s'installent tous en dehors de la logique de commande. Ils vous donnent l'état de la machine et son taux d'utilisation sans aucune modification de l'automate.
Quel est le moyen le moins cher de surveiller l'état d'une machine ?
Une seule pince ampèremétrique à noyau ouvrant sur l'alimentation du moteur principal ou de la broche, lue par un petit microcontrôleur, est généralement l'option la moins coûteuse. Le niveau de courant distingue l'arrêt, le ralenti et la production.
Est-il sans danger d'installer une pince ampèremétrique sur une machine en fonctionnement ?
La pose d'une pince dans une armoire électrique doit être réalisée par un électricien qualifié, selon les procédures de consignation. La pince elle-même n'ouvre pas le circuit, mais l'armoire contient des pièces sous tension.
Quand faut-il plutôt lire les données directement dans l'automate ?
Lorsque vous avez besoin de contexte, comme les codes d'alarme, les numéros de programme ou des compteurs de pièces exacts. Utilisez une passerelle avec un accès en lecture seule, et commencez une fois que les capteurs additionnels ont démontré la valeur des données.



