⚙️ Un premier projet concret en Ladder Diagram sur automate industriel Siemens – programmé avec TIA Portal V20, câblé sur une plaque électronique. L’équivalent du « Hello World » en automatisme industriel !
💡 Pourquoi ce projet ?
Je suis diplômé en informatique industrielle et je continue à développer mes compétences en programmation d’automates. Le chenillard est le projet classique de démarrage en automatisme — l’équivalent du « Hello World » en programmation.
J’ai choisi de commencer par le Ladder Diagram (LD), le langage graphique le plus utilisé dans l’industrie, avant de progresser vers le SCL (Structured Control Language), dont la syntaxe est proche du Pascal que je connais déjà.
💡 Ce projet me permet de comprendre les bases du Ladder : contacts, bobines, compteurs et comparateurs — les mêmes blocs qu’on retrouve dans les machines industrielles réelles.
🔧 Matériel utilisé
Siemens S7-1200
CPU 1212C DC/DC/RLY
6ES7 212-1HE31-0XB0
Programmé via TIA Portal V20
Wanptek DPS3010U
Alimentation de laboratoire réglable
24V DC pour le PLC
6 LEDs + résistances
LEDs colorées sur plaque électronique
Résistances 10kΩ pour limiter le courant
TIA Portal V20
Logiciel de programmation Siemens
Connexion WiFi via PROFINET
🔌 Connexion des LEDs
Chaque LED est connectée à une sortie relais du S7-1200. Le circuit suit le même schéma pour les 6 LEDs :
| Sortie PLC | LED | Résistance | Connexion |
|---|---|---|---|
| Q0.0 | LED 1 | 10kΩ | +24V → R → LED+ → LED- → Q0.0 → 1M → GND |
| Q0.1 | LED 2 | 10kΩ | +24V → R → LED+ → LED- → Q0.1 → 1M → GND |
| Q0.2 | LED 3 | 10kΩ | +24V → R → LED+ → LED- → Q0.2 → 1M → GND |
| Q0.3 | LED 4 | 10kΩ | +24V → R → LED+ → LED- → Q0.3 → 1M → GND |
| Q0.4 | LED 5 | 10kΩ | +24V → R → LED+ → LED- → Q0.4 → 1M → GND |
| Q0.5 | LED 6 | 10kΩ | +24V → R → LED+ → LED- → Q0.5 → 1M → GND |
📝 D’abord en Pascal – pour comprendre la logique
Avant de coder en Ladder, voici comment ce programme s’écrirait en Pascal. Cela permet de comprendre clairement la logique avant de la traduire graphiquement en Ladder :
{ Chenillard 6 LEDs : équivalent Pascal du programme Ladder }
program Chenillard;
var
compteur : Integer; { valeur de MW100, position de la LED active }
clock_1hz : Boolean; { bit M0.5, clignote 1 fois par seconde }
reset : Boolean; { bit M20.0, signal de remise à zéro }
Q : array[0..5] of Boolean; { sorties Q0.0 à Q0.5 }
begin
compteur := 0;
while True do
begin
{ === NETWORK 1 : Compteur CTU ===
À chaque front montant de clock_1hz (M0.5),
on incrémente le compteur }
if clock_1hz then
compteur := compteur + 1;
{ === NETWORK 2 : Reset automatique ===
Quand le compteur atteint 6, on remet à zéro }
reset := (compteur >= 6);
if reset then
compteur := 0;
{ === NETWORKS 3 à 8 : Allumage des LEDs ===
Une seule LED allumée à la fois }
Q[0] := (compteur = 0); { Q0.0 → LED 1 }
Q[1] := (compteur = 1); { Q0.1 → LED 2 }
Q[2] := (compteur = 2); { Q0.2 → LED 3 }
Q[3] := (compteur = 3); { Q0.3 → LED 4 }
Q[4] := (compteur = 4); { Q0.4 → LED 5 }
Q[5] := (compteur = 5); { Q0.5 → LED 6 }
{ Attendre 1 seconde (géré par le bit M0.5) }
Wait(1000);
end;
end.
💡 Le SCL de TIA Portal a une syntaxe quasi identique au Pascal. C’est le chemin naturel vers lequel je me dirige après avoir maîtrisé le Ladder.
📊 Le programme en Ladder – Network par Network
Voici chaque réseau du programme expliqué. Chaque Network correspond à une étape de la logique Pascal ci-dessus.
COMPTEUR – Compteur CTU cadencé par M0.5
Le bit d’horloge %M0.5 (Clock_1Hz) est généré automatiquement par le CPU. Il bascule entre 0 et 1 toutes les 500ms. À chaque front montant, le compteur CTU incrémente sa valeur %MW100 de 1. La valeur maximale PV est fixée à 6.
%M0.5 "Clock_1Hz" CTU Int %MW100 ─| |─ ──────────────► CU CV ──────► "Tag_5" %M20.0 "Tag_4" ────────────────────► R 6 ──────────────────► PV
RESET – Remise à zéro automatique
Quand %MW100 >= 6, le comparateur active le bit %M20.0. Ce bit est connecté à l’entrée R (Reset) du compteur — il remet CV à zéro. Le cycle recommence indéfiniment : 0 → 1 → 2 → 3 → 4 → 5 → 0…
%MW100 >= 6 %M20.0 "Tag_4" ──┤ >=Int ├──────────────────────────( )──
LED 1 – Allumage Q0.0
Quand %MW100 == 0, la sortie relais %Q0.0 s’active. Le relais ferme le circuit → la LED 1 s’allume. Dès que le compteur passe à 1, Q0.0 s’éteint et Q0.1 s’allume.
%MW100 == 0 %Q0.0 "Tag_2" ──┤ ==Int ├──────────────────────────( )──
LEDs 2 à 6 – Q0.1 à Q0.5
Même logique répétée 5 fois, avec les valeurs 1, 2, 3, 4 et 5. Chaque réseau compare %MW100 avec une valeur fixe et active la sortie correspondante.
MW100==1 → ( Q0.1 ) LED 2 MW100==2 → ( Q0.2 ) LED 3 MW100==3 → ( Q0.3 ) LED 4 MW100==4 → ( Q0.4 ) LED 5 MW100==5 → ( Q0.5 ) LED 6
🎯 Ce que ça donne en pratique
Une fois le programme téléchargé dans le PLC via TIA Portal et le câblage vérifié, les 6 LEDs s’allument l’une après l’autre toutes les secondes, créant un effet chenillard continu.
🎯 Ce projet m’a permis de maîtriser les bases du Ladder : le bit d’horloge, le compteur CTU, le comparateur et les sorties relais. La prochaine étape est de refaire ce programme en SCL — dont la syntaxe Pascal rendra la transition naturelle.
💻 Stack technique
🖥️ TIA Portal V20
📊 Ladder (LAD)
📝 SCL
🔌 Sorties Relais
⏱️ Timers CTU
📡 PROFINET
🔢 IEC 61131-3
📚 Ce que j’ai appris
Programmation Ladder avec compteur CTU et comparateurs
Utilisation du bit d’horloge M0.5 (Clock_1Hz)
Utilisation de TIA Portal V20
Gestion des sorties relais DC/DC/RLY
Câblage électrique industriel 24V DC
Connexion PROFINET WiFi entre PC et automate
Simulation et débogage en mode RUN avec TIA Portal
🚀 Prochaine étape
Refaire ce programme en SCL dont la syntaxe Pascal rendra la transition naturelle
Communication PROFINET avec d’autres automates
Interface HMI pour visualisation et contrôle
Intégration avec Home Assistant via Modbus TCP
📦 Code source disponible !
Le programme TIA Portal et les schémas de connexion sont disponibles gratuitement sur GitHub !
Projet réalisé par Angelbert Fankepa · Diplômé en Informatique Industrielle
Siemens S7-1200 · TIA Portal V20 · Ladder Diagram · IEC 61131-3