Chapitre 5
COMMANDE DES SYSTEMES AUTOMATISES (partie 3/6)
Lecture : 17 minQuiz de 10 questions
## Objectifs et prérequis
**Objectifs** : À la fin de ce chapitre, l’élève sera capable de :
- Décrire l’architecture interne d’un microprocesseur et d’un système microprogrammé, ainsi que leurs applications dans les dispositifs médicaux.
- Observer, mesurer et analyser les signaux d’une carte à microprocesseur à l’aide d’un oscilloscope ou d’un analyseur logique.
- Expliquer le fonctionnement d’un automate programmable industriel (API), ses langages de programmation (IEC 61131‑3) et son cycle de lecture‑exécution‑mise à jour.
- Réaliser un schéma de câblage simple d’une API pour une commande de moteur ou d’une pompe à perfusion, en respectant les normes de sécurité et d’hygiène applicables au Cameroun.
**Prérequis** :
- Notions de base en électronique numérique (portes logiques, bascules, bus).
- Connaissance des composants discrets (résistances, condensateurs, diodes) et de leur utilisation dans des circuits d’alimentation.
- Familiarité avec les instruments de mesure (multimètre, oscilloscope) et les consignes de sécurité en atelier.
---
## Introduction contextualisée
Au Cameroun, l’industrie médicale et les lignes de production agro‑alimentaire s’appuient de plus en plus sur des systèmes automatisés pour garantir la qualité, la traçabilité et la sécurité des produits. Un tensiomètre automatique utilisé dans les centres de santé de Yaoundé ou une pompe à perfusion dans un hôpital de Douala repose sur un microcontrôleur programmé selon un firmware spécifique. De même, les usines de conditionnement de boissons à Bafoussam ou les stations de traitement d’eau à Garoua emploient des API pour piloter des convoyeurs, des vannes et des capteurs. Maîtriser le fonctionnement interne de ces équipements permet au technicien de diagnostiquer rapidement une panne, de proposer une mise à jour du firmware ou de reprogrammer un automate sans interrompre la production. Ce chapitre présente, de façon progressive, les concepts du microprocesseur au système microprogrammé, puis l’observation pratique sur carte à microprocesseur, enfin l’automate programmable industriel, en illustrant chaque notion par des exemples professionnels camerounais.
---
## I. Leçon13 : Du microprocesseur au système microprogrammé appliqué aux dispositifs médicaux
### 1.1 Microprocesseur vs microcontrôleur
> Un microprocesseur est un circuit intégré qui exécute des instructions stockées en mémoire externe, tandis qu’un microcontrôleur intègre processeur, mémoire (ROM/RAM) et périphériques d’entrée/sortie sur une même puce.
| Caractéristique | Microprocesseur (ex. Intel 8085) | Microcontrôleur (ex. ATmega328P) |
|-----------------|----------------------------------|-----------------------------------|
| Mémoire programme | Externe (ROM/EPROM) | Interne (Flash) |
| Mémoire données | Externe (RAM) | Interne (SRAM) |
| Périphériques I/O | Externalisés (CI) | Intégrés (timers, ADC, UART) |
| Consommation | Généralement plus élevée | Optimisée pour l’embarqué |
| Application typique | Systèmes généraux, ordinateurs | Dispositifs médicaux, électroménager |
### 1.2 Architecture von Neumann et Harvard
- **Von Neumann** : un seul bus mémoire pour les instructions et les données → risque de goulot d’étranglement.
- **Harvard** : bus séparés pour instructions et données → accès simultané, utilisé dans la plupart des microcontrôleurs modernes (ex. STM32).
> Dans un dispositif médical où la déterminisme temporel est critique (ex. détection d’une arythmie), l’architecture Harvard est privilégiée pour garantir un temps d’accès prévisible.
### 1.3 Système microprogrammé (microcode)
Le microcode est une couche logicielle de bas niveau qui traduit les instructions machine en séquences de micro‑opérations contrôlant le datapath (ALU, registre, bus).
- **Mémoire de contrôle** (ROM) contient les mots de microcode.
- **Sequencer** génère l’adresse du prochain mot de microcode en fonction du drapeau d’état et de l’opcode.
> Le temps d’exécution d’une instruction = (nombre de cycles microcode) × période d’horloge.
### 1.4 Application aux dispositifs médicaux
**Exemple : tensiomètre automatique**
- Capteur de pression → signal analogique → conditionnement (amplificateur, filtre passe‑bas) → conversion analogique‑numérique (ADC 12 bits, 10 kS/s).
- Microcontrôleur (ex. STM32L0) traite le signal, applique l’algorithme d’oscillométrie, affiche la systole/diastole sur écran LCD.
- Alimentation par batterie Li‑ion 3,7 V, régulateur LDO 3,3 V avec protection contre les surtensions (conforme à la clause 8.4 de la norme IEC 60601‑1).
**Exemple chiffré** :
Le microcontrôleur fonctionne à f = 8 MHz → période T = 1/f = 0,125 µs.
Une instruction d’addition nécessite 4 cycles microcode → temps d’exécution = 4 × 0,125 µs = 0,5 µs.
### 1.5 Normes de sécurité médicale et hygiène
- **IEC 60601‑1** : exigences générales de sécurité pour les équipements médicaux électriques.
- **IEC 60601‑1‑2** : compatibilité électromagnétique (CEM).
- Nettoyage des surfaces avec solution alcoolique 70 % après chaque patient (protocole d’hygiène hospitalière).
- Mise à la terre de l’appareil et utilisation de fusibles de protection contre les courants de fuite (< 0,5 mA).
> Tout technicien doit vérifier la continuité de la terre avec un ohmmètre (< 1 Ω) avant la mise en service d’un dispositif médical.
---
## II. Leçon14 : TD observation et analyse du fonctionnement de cartes à microprocesseurs
### 2.1 Objectif du TD
Permettre à l’élève de :
- Identifier les broches d’adresse, de données et de contrôle d’une carte à microprocesseur.
- Mesurer les périodes et les fronts de signaux d’horloge, de lecture/écriture et de bus.
- Détecter des anomalies (crosstalk, bruit, mauvaise configuration d’horloge).
### 2.2 Matériel utilisé
- Carte d’évaluation **STM32F401RE** (Cortex‑M4, 84 MHz) montée sur une platine de prototypage.
- Alimentation réglable 0‑30 V, 0‑5 A (réglée à 5 V DC).
- Oscilloscope numérique 2 canaux, bande passante ≥ 100 MHz.
- Analyseur logique 8 canaux (facultatif).
- Câbles de test, pinces crocodile, résistances de tirage (10 kΩ).
- Module SRAM série 23K256 (SPI) monté sur breadboard.
### 2.3 Procédure d’observation
1. **Mise sous tension** : vérifier la présence de 5 V sur les broches VDD et GND avec le multimètre.
2. **Configuration de l’horloge** : activer l’oscillateur interne HSI (8 MHz) via le registre RCC_CFGR.
3. **Configuration du SPI1** : configurer le SPI1 en maître, mode 0 (CPOL=0, CPHA=0), préscaler 2 → fréquence SCK = 4 MHz (exemple).
4. **Acquisition du signal d’horloge SPI (SCK)** : placer la sonde du canal 1 de l’oscilloscope sur la broche PA5 (SCK) configurée en fonction alternée AF5.
5. **Mesure des signaux SPI** :
- MOSI (PA7) – sortie maître,
- MISO (PA6) – entrée maître,
- CS (PA4) – sortie GPIO maître (activé bas).
6. **Enregistrement** : capturer une trame SPI de lecture d’un octet depuis la SRAM 23K256 (instruction 0x03, adresse 24 bits, puis donnée) sur les canaux MOSI, MISO et SCK avec l’analyseur logique ou l’oscilloscope.
### 2.4 Analyse des signaux
- **Période d’horloge SPI** : mesure sur l’oscilloscope → T_SCk ≈ 250 ns (f_SCk = 4 MHz).
- **Front de CS** : durée active pendant la trame, typique plusieurs µs selon le nombre de bits (ex. ≈ 20 µs pour une lecture d’un octet).
- **Temps de setup MOSI** relativement au front montant de SCK : respecter tSU ≥ 5 ns (spécification de la SRAM 23K256).
- **Temps de hold MOSI** : respecter tH ≥ 5 ns.
> Un écart supérieur à 20 % entre le temps mesuré et le temps théorique indique soit une mauvaise configuration du prescaler SPI, soit une capacité parasite sur les lignes MOSI/MISO/SCK.
### Tableau récapitulatif des broches STM32F401RE utilisées
| Fonction | Broche | Mode | Commentaire |
|----------|--------|------|-------------|
| Horloge système (MCO) | PA8 | Alternate Function AF0 | Sortie HSI/2 = 4 MHz (configurable) |
| SPI1 – Horloge (SCK) | PA5 | Alternate Function AF5 | Horloge SPI maître |
| SPI1 – MOSI | PA7 | Alternate Function AF5 | Maîtres → esclave |
| SPI1 – MISO | PA6 | Alternate Function AF5 | Esclave → maître |
| SPI1 – Sélection esclave (CS) | PA4 | Sortie GPIO | Activé bas pour sélectionner la SRAM 23K256 |
| Alimentation | VDD, GND | Power | 5 V DC, découplage 0,1 µF + 10 µF |
---
## III. Leçon15 : Automates programmables industriels (API)
### 3.1 Définition et rôle de l’API
> Un automate programmable industriel (API) est un ordinateur industriel destiné à commander des processus de fabrication en temps réel, résistant aux chocs, aux vibrations, aux températures extrêmes et aux interférences électromagnétiques.
### 3.2 Architecture matérielle
- **CPU** : cœur de traitement (ex. processeur embarqué ARM Cortex‑A9).
- **Mémoire** : RAM volatile pour les variables, ROM/Flash pour le programme utilisateur et le système d’exploitation.
- **Entrées/Sorties (E/S)** : modules discret (24 V DC) et analogique (0‑10 V, 4‑20 mA) connectés via un bus de terrain (Profibus, Modbus TCP, EtherCAT).
- **Alimentation** : bloc d’alimentation redondante 24 V DC avec protection contre les surtensions et les inversions de polarité.
- **Interface de programmation** : port Ethernet ou USB pour le transfert du projet depuis un PC d’ingénierie.
> La redondance de l’alimentation et l’utilisation de relais à contacts forcés garantissent la disponibilité du système même en cas de défaillance d’un composant.
### 3.3 Langages de programmation (IEC 61131‑3)
| Langage | Paradigme | Utilisation typique |
|---------|-----------|---------------------|
| Ladder Diagram (LD) | Schéma à relais | Logique de commande simple (start/stop, interlocks). |
| Structured Text (ST) | Texte structuré (type Pascal) | Algorithmes complexes, calculs PID. |
| Function Block Diagram (FBD) | Blocs fonctionnels | Régulation, blocs de déplacement. |
| Sequential Function Chart (SFC) | Étapes et transitions | Séquences de batch, lignes d’assemblage. |
| Instruction List (IL) | Code assembleur léger | Optimisation de temps critique (rare). |
> Le choix du langage dépend de la formation du personnel et de la complexité de l’application. Au Cameroun, le Ladder reste largement privilégié pour sa lisibilité par les techniciens de maintenance.
### 3.4 Cycle de fonctionnement de l’API
1. **Lecture des entrées** : acquisition de l’état des capteurs (fin de course, pression, niveau).
2. **Exécution du programme** : traitement logique selon le langage choisi.
3. **Mise à jour des sorties** : activation des actionneurs (moteurs, vannes, relais).
4. **Temps de cycle** : somme des temps de lecture, exécution et écriture ; typiquement 1‑10 ms pour un API moyen.
> Le temps de cycle doit être inférieur au temps de réponse requis par le processus (ex. < 20 ms pour un convoyeur à vitesse variable).
### 3.5 Exemple d’application industrielle au Cameroun
**Station de conditionnement de boissons à Bafoussam**
- **Objectif** : remplir, boucher et étiqueter 240 bouteilles/min sur une ligne linéaire.
- **Capteurs** :
- Photoélectrique de présence bouteille (entrées I0.0‑I0.3).
- Détecteur de niveau de remplissage (entrée analogique IW0).
- Fin de course du bouchon (entrée I0.4).
- **Actionneurs** :
- Moteur de convoyeur (sortie Q0.0, PWM 0‑10 V).
- Électrovanne de remplissage (sortie Q0.1).
- Serre‑joint de bouchage (sortie Q0.2).
- Étiqueteuse (sortie Q0.3).
- **Programme Ladder simplifié** :
- **Rung 1** : I0.0 (bouteille détectée) → Q0.1 (ouverture vanne remplissage) tant que IW0 < 80 % (niveau).
- **Rung 2** : I0.4 (bouchon en place) → Q0.2 (activation serre‑joint) pendant 300 ms.
- **Rung 3** : I0.3 (bouteille remplie) → Q0.3 (déclenchement étiqueteuse) après délai de 150 ms (timer TON).
- **Sécurité** : arrêt d’urgence (E‑Stop) câblé en série avec toutes les sorties via un relais de sécurité conforme à la norme ISO 13849‑1 (PL e).
**Exemple chiffré** :
Le moteur du convoyeur doit tourner à 0,5 m/s pour atteindre 240 bouteilles/min avec un pas de 125 mm entre deux bouteilles.
Vitesse linéaire v = (pas × débit) / 60 = (0,125 m × 240) / 60 = 0,5 m/s.
Si le réducteur fournit un rapport de 20:1 et le moteur tourne à 3000 tr/min, la vitesse de sortie du réducteur = 3000/20 = 150 tr/min.
Le diamètre de la poulie moteur est de 50 mm → vitesse linéaire = π·D·N = π·0,05 m·(150/60) ≈ 0,39 m/s.
Il faut donc augmenter le diamètre de la poulie à 65 mm pour atteindre 0,5 m/s (vérifié).
> Le technicien doit valider le calcul sur le terrain avec un tachymètre laser avant la mise en production.
### 3.6 Normes et sécurité spécifiques aux API
- **IEC 61131‑2** : exigences mécaniques et environnementales (température −25 °C à +70 °C, humidité ≤ 95 % sans condensation).
- **IEC 62061** : sécurité des machines – commande électrique, électronique et programmable.
- **ISO 13849‑1** : niveaux de performance (PL) pour les fonctions de sécurité (arrêt d’urgence, garde‑fou).
- Maintenance préventive : vérification mensuelle du serrage des borniers, test de continuité des câbles de terre, nettoyage des filtres d’air des armoires.
> Toute intervention sur l’alimentation d’un API doit être effectuée sous tension nulle, avec mise à la terre du châssis et port de gants isolants.
---
## Synthèse du chapitre
- **Microprocesseur** : exécute des instructions depuis une mémoire externe ; architecture von Neumann ou Harvard.
- **Système microprogrammé** : microcode stocké en ROM de contrôle, séquenceur génère les micro‑opérations.
- **Application médicale** : tensiomètre, pompe à perfusion – respect de IEC 60601‑1, algorithmes de traitement du signal, alimentation sécurisée.
- **TD carte à microprocesseur** : observation de l’horloge SPI, des signaux MOSI, MISO et CS ; utilisation d’oscilloscope et analyseur logique ; vérification des temps de setup/hold selon la spécification de la mémoire externe.
- **Automate programmable industriel (API)** : matériel robuste, E/S discrètes/analogiques, langages IEC 61131‑3 (Ladder, ST, FBD, SFC, IL).
- **Cycle API** : lecture → exécution → mise à jour ; temps de cycle typique 1‑10 ms.
- **Exemple camerounais** : ligne de conditionnement de boissons à Bafoussam – programmation Ladder, calcul de vitesse de convoyeur, normes de sécurité (ISO 13849‑1, IEC 62061).
- **Sécurité** : mise à la terre, découplage, vérification de continuité, arrêt d’urgence, respect des normes CEM et environnementales.
---
## Glossaire
| Terme | Définition |
|-------|------------|
| Microprocesseur | CI qui exécute des instructions stockées en mémoire externe. |
| Microcontrôleur | CI intégrant processeur, mémoire et périphériques sur une même puce. |
| Architecture Harvard | Séparation physique des bus d’instructions et de données. |
| Microcode | Niveau de firmware qui traduit les instructions machine en micro‑opérations. |
| IEC 60601‑1 | Norme internationale de sécurité de base pour les équipements médicaux électriques. |
| Oscilloscope | Instrument qui visualise la variation de tension en fonction du temps. |
| Analyseur logique | Outil qui capture et affiche l’état logique de plusieurs signaux numériques. |
| API (Automate Programmable Industriel) | Ordinateur industriel destiné à la commande en temps réel de processus de fabrication. |
| IEC 61131‑3 | Norme définissant les langages de programmation des API. |
| Ladder Diagram (LD) | Langage à schéma de relais utilisé pour la programmation des API. |
| Temps de cycle | Durée totale d’une itération lecture‑exécution‑mise à jour d’un API. |
| PL (Performance Level) | Niveau de sécurité attribué à une fonction de sécurité selon ISO 13849‑1. |
| E‑Stop (Arrêt d’urgence) | Fonction qui coupe immédiatement l’alimentation des actionneurs en situation de danger. |
| Découplage | Condensateur placé proche d’une alimentation pour filtrer les hautes fréquences. |
| Redondance | Duplication d’un élément critique (alimentation, CPU) pour augmenter la fiabilité. |
---
## Exercices d'application corrigés
### Exercice 1 – Dimensionnement d’une horloge pour un tensiomètre
**Énoncé** : Un tensiomètre doit mesurer la pression artérielle avec une résolution de 1 mmHg. Le capteur de pression délivre une tension variant de 0 à 3,3 V pour une pression de 0 à 300 mmHg. Le microcontrôleur utilise un ADC de 12 bits. Déterminer la fréquence d’échantillonnage minimale nécessaire pour suivre une variation de pression de 5 mmHg/s sans aliasing, puis choisir une fréquence d’horloge adaptée sachant que chaque conversion ADC nécessite 13 cycles d’horloge.
**Corrigé** :
1. Résolution du capteur : 3,3 V / 300 mmHg = 0,011 V/mmHg.
2. Variation de 5 mmHg/s → ΔV = 5 × 0,011 = 0,055 V/s.
3. L’ADC de 12 bits a un pas de quantification (LSB) : 3,3 V / 2¹² = 3,3 V / 4096 ≈ 0,000805 V ≈ 0,805 mV.
4. Pour détecter une variation de 0,055 V/s, il faut au moins un échantillon chaque Δt = LSB / (ΔV/s) = 0,000805 V / 0,055 V/s ≈ 0,0146 s ≈ 14,6 ms.
5. Fréquence d’échantillonnage fₑ ≥ 1/0,0146 s ≈ 68,5 Hz. On choisira fₑ = 100 Hz pour marge.
6. Chaque conversion ADC = 13 cycles d’horloge → période d’horloge Tₕ = 1 / fₕ.
Temps de conversion = 13 × Tₕ ≤ période d’échantillonnage = 1/100 s = 0,01 s.
Donc Tₕ ≤ 0,01 / 13 ≈ 0,000769 s → fₕ ≥ 1/0,000769 s ≈ 1300 Hz.
7. On choisira une horloge standard de 1 MHz (fₕ = 1 MHz) largement suffisante ; le temps de conversion sera alors 13 µs, bien inférieur à 10 ms.
**Conclusion** : Une horloge de 1 MHz permet un échantillonnage à 100 Hz avec une marge importante.
### Exercice 2 – Programmation Ladder d’une API pour une pompe à perfusion
**Énoncé** : Une pompe à perfusion doit délivrer un débit de 5 mL/h. Elle possède un capteur de débit (impulsions : 2000 pulses / mL) et une électrovanne de commande (sortie Q0.0). L’API travaille en cycle de 10 ms. Écrire un programme Ladder qui :
- Compte les impulsions du capteur sur une entrée I0.0.
- Active l’électrovanne tant que le volume délivré est inférieur à 5 mL.
- Coupe l’électrovanne dès que le volume atteint 5 mL, puis attend 30 s avant de reprendre un nouveau cycle.
**Corrigé** (description du schéma Ladder) :
| Rung | Condition (entrées) | Action (sorties) | Commentaire |
|------|----------------------|------------------|-------------|
| 1 | I0.0 (impulsion) | CTU (compteur up) : PV = 10000 (5 mL × 2000 pulses/mL) | Le compteur incrémente à chaque front montant de l’impulsion. |
| 2 | CTU.DN = 1 (volume atteint) | Q0.0 = 0 (vanne fermée) ; TON (timer on delay) : PT = 30 s | Dès que le compteur atteint sa préset, on ferme la vanne et on lance un timer de 30 s. |
| 3 | TON.Q = 1 (timer écoulé) | CTU.RESET = 1 ; Q0.0 = 1 (vanne ouverte) | Après l’attente, on remet le compteur à zéro et on rouvre la vanne pour un nouveau cycle. |
| 4 | CTU.DN = 0 (volume < 5 mL) | Q0.0 = 1 (vanne ouverte) | Tant que le volume n’est pas atteint, la vanne reste ouverte (on peut aussi laisser le rung 2 gérer la fermeture et le rung 3 l’ouverture après attente). |
**Vérification** :
- 5 mL × 2000 pulses/mL = 10 000 impulsions → préset du compteur = 10 000.
- Cycle API = 10 ms → le compteur peut suivre des fréquences d’impulsion jusqu’à 100 Hz (periode 10 ms), largement suffisante pour un débit de 5 mL/h (≈ 0,0028 pulses/ms).
---
## Erreurs fréquentes et règles de sécurité
| N° | Erreur fréquente | Conséquence | Règle de prévention / action corrective |
|----|------------------|-------------|----------------------------------------|
| 1 | Oubli de mettre à la terre le châssis d’un API ou d’un dispositif médical. | Risque de choc électrique, déclenchement de disjoncteur différentiel. | Vérifier la continuité terre (< 1 Ω) avec un ohmmètre avant chaque mise sous tension ; utiliser une borne de terre dédiée. |
| 2 | Alimentation d’une carte à microprocesseur avec une tension trop élevée (ex. 12 V au lieu de 5 V). | Détérioration irréversible du CI, fumée, risque d’incendie. | Toujours mesurer la tension d’alimentation au multimètre avant de connecter la carte ; utiliser un régulateur fixe ou une alimentation régulée avec protection contre surtension. |
| 3 | Négliger le temps de setup/hold lors de la lecture d’une mémoire externe sur un bus d’adresse/données. | Lecture de données erronées, comportement aléatoire du système. | Consulter la fiche technique du composant mémoire ; ajuster les registres de timing de l’API ou du microcontrôleur pour respecter les spécifications (ex. tSU ≥ 10 ns, tH ≥ 5 ns). |
| 4 | Utiliser un câble de liaison non blindé entre un API et un capteur analogique dans un environnement industriel fortement perturbé. | Bruit induit, mesures fausses, déclenchement intempestif d’actionneurs. | Employer des câbles blindés à paires torsadées, connecter le blindage à la terre d’un seul côté, ajouter des filtres passe‑bas (RC) près de l’entrée analogique. |
| 5 | Programmer une logique de sécurité (arrêt d’urgence) en Ladder sans utiliser un relais de sécurité certifié. | Défaillance de la fonction de sécurité en cas de collision de contacts. | Utiliser des relais de sécurité à contacts forcés (type SF) conformes à ISO 13849‑1, câbler l’E‑Stop en série avec toutes les sorties d’actionneurs. |
| 6 | Ne pas mettre à jour le firmware d’un microcontrôleur médical après la découverte d’une vulnérabilité. | Exposition à des attaques pouvant altérer les mesures (ex. tension artérielle affichée erronée). | Mettre en place une procédure de gestion de changement : vérifier les avis de sécurité du fabricant, valider le nouveau firmware sur un banc de test avant déploiement sur les appareils en service. |
Quiz du chapitre
10 questions — vérifie chaque réponse pour voir l'explication.