Chenillard LED avec Siemens S7-1200

⚙️ 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 !

🎥 Démonstration vidéo

💡 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.

N°1

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

N°2

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 ├──────────────────────────( )──

N°3

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 ├──────────────────────────( )──

N°4→8

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

⚙️ Siemens S7-1200
🖥️ 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

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Retour en haut