Suivez-nous sur TikTok Astuces, pannes et automatisme industriel ```

Automaticien , prends ton café et laisses ton IA Programmer !

Le 24/04/2026 4

Programmer un automate Siemens en parlant à une IA — T-IA Connect
Industrie 4.0 Siemens TIA Portal IA & Automatisme

Programmer un automate Siemens
en parlant à une IA

Découverte de T-IA Connect : le pont entre Claude, le protocole MCP et TIA Openness. Et un exemple concret avec la régulation d'un château d'eau.

Lecture 12 minutes
Niveau Débutant / Intermédiaire
Stack Claude · MCP · Openness · SCL
Publication Avril 2026

De quoi parle-t-on, au juste ?

Imagine que tu puisses ouvrir une fenêtre de chat, écrire en français « crée-moi un bloc fonction pour gérer le remplissage d'un château d'eau avec une pompe, deux capteurs de niveau et une sécurité anti-débordement », et voir apparaître quelques secondes plus tard le code SCL prêt à être intégré dans TIA Portal.

C'est exactement ce que permet aujourd'hui une nouvelle génération d'outils qui connectent l'IA à ton environnement d'automatisme. Avant d'entrer dans le concret, posons les briques une par une.

Trois concepts à comprendre

Pour saisir ce qui se passe, il faut poser trois briques techniques. Rien de sorcier.

01

TIA Portal

L'environnement de développement Siemens pour programmer les automates SIMATIC (S7-1200, S7-1500), les IHM et la configuration réseau. Rien de nouveau ici — c'est l'outil quotidien de l'automaticien.

02

TIA Openness

Une API officielle Siemens qui permet à un programme externe de piloter TIA Portal : ouvrir un projet, créer des blocs, exporter du SCL, compiler. Jusqu'ici, il fallait écrire du C# ou du PowerShell.

03

MCP

Le Model Context Protocol, inventé par Anthropic, est un standard ouvert qui permet à une IA de dialoguer avec des outils externes. MCP donne des mains à l'IA : elle ne se contente plus de parler, elle peut agir.

Claudel'IA
+
MCPle pont
+
TIA Opennessla clé
Programmation d'automate
en langage naturel

Pour relier tout ça, il faut un serveur MCP dédié à TIA Portal. C'est là qu'entre en scène T-IA Connect.

T-IA Connect, c'est quoi exactement ?

Un outil développé par la société française FeelAutom. Son rôle est simple à décrire : c'est un serveur qui tourne sur ta machine, qui parle MCP d'un côté (avec Claude, ChatGPT, ou un modèle local) et qui parle Openness de l'autre (avec TIA Portal).

390+
Points d'API
V17→V21
Versions TIA
100%
On-premise
14j
Essai gratuit

Ce que ça permet concrètement

  • Lire ton projet

    Explorer l'arborescence, les blocs, les variables, les UDT existants.

  • Générer du code SCL

    Contextualisé, utilisant tes propres types et conventions de nommage.

  • Créer et modifier des blocs

    OB, FB, FC, DB — directement dans le projet ouvert.

  • Compiler et détecter les erreurs

    Validation automatique, feedback immédiat dans le chat.

  • Piloter PLCSim Advanced

    Pour tester le code virtuellement avant déploiement réel.

  • Gérer les IHM

    Tag tables, configuration réseau, écrans WinCC.

Les points qui plaisent aux industriels

  • Tout reste local

    Le serveur tourne sur ta station. Ton code PLC ne part pas sur un cloud tiers sans ton accord.

  • Choix du modèle IA

    Claude, GPT-4, ou des modèles locaux (Llama 3, Mistral, Qwen) via Ollama pour l'air-gapped.

  • BYOK (Bring Your Own Key)

    Licence unique + tes propres clés API. Pas d'abonnement SaaS récurrent par poste.

  • Génération déterministe

    Validation contre les schémas SimaticML : pas d'hallucination de syntaxe.

Comment ça s'installe

Le principe est comparable à n'importe quel serveur MCP. Après avoir installé T-IA Connect, tu ajoutes quelques lignes dans le fichier de configuration de Claude Desktop :

claude_desktop_config.json
{
  "mcpServers": {
    "tia-connect": {
      "command": "C:\\Program Files\\T-IA Connect\\TiaPortalApi.App.exe",
      "args": ["--mcp"]
    }
  }
}

Tu redémarres Claude Desktop, et l'IA voit apparaître les outils T-IA Connect dans sa panoplie. Tu peux commencer à lui parler de ton projet TIA comme tu parlerais à un collègue.

Exemple concret : la régulation d'un château d'eau

Un cas d'école classique en automatisme. L'objectif : maintenir un niveau d'eau correct dans un réservoir en haut d'une tour qui alimente un village ou une installation industrielle.

LSHH (sécurité) LSH (haut) LSL (bas) SOURCE P POMPE AU Schéma d'installation — Château d'eau automatisé RÉSERVOIR

Installation type : 3 capteurs de niveau, 1 pompe, 1 arrêt d'urgence

Le cahier des charges

Voici les fonctionnalités à implémenter dans le bloc fonction :

  • LSL — NIVEAU BAS Capteur qui déclenche le démarrage de la pompe quand l'eau descend sous le seuil.
  • LSH — NIVEAU HAUT Capteur qui arrête la pompe une fois le réservoir plein.
  • LSHH — SÉCURITÉ Anti-débordement : coupe immédiate en cas de dépassement critique.
  • AU — ARRÊT D'URGENCE Contact actif bas (sécurité positive). Coupe tout et passe en défaut.
  • MODE AUTO / MANU Commutation pour la maintenance ou les essais en mode manuel.
  • TEMPO ANTI-CYCLE 30 secondes minimum entre deux démarrages pour protéger le moteur.

Le prompt envoyé à Claude

— Toi, dans Claude Desktop Connecte-toi à TIA Portal et ouvre mon projet Chateau_Eau.als20. Crée un Function Block en SCL qui s'appelle FB_Gestion_Chateau_Eau pour piloter une pompe de remplissage. Entrées : LSL (niveau bas, Bool), LSH (niveau haut, Bool), LSHH (sécurité anti-débordement, Bool), AU (arrêt d'urgence actif bas, Bool), Mode_Auto (Bool), Cmd_Manu_Pompe (Bool). Sorties : Pompe_Marche (Bool), Defaut (Bool), Etat (Int : 0=arrêt, 1=remplissage, 2=défaut). La pompe démarre quand LSL passe à FALSE (eau basse) et s'arrête quand LSH passe à TRUE (eau haute). En cas de LSHH ou AU, coupe immédiate et passage en défaut. Ajoute une tempo anti-redémarrage de 30 secondes. Commente le code en français.

Ce que Claude fait en coulisses

L'IA enchaîne plusieurs appels aux outils MCP de T-IA Connect :

  1. Connect() — se relie à TIA Portal en cours d'exécution
  2. OpenProject("Chateau_Eau.als20") — ouvre le projet
  3. GetProjectOverview() — lit l'arborescence, les tag tables, les UDT existants
  4. CreateBlock(name, type="FB", language="SCL", code=...) — crée le bloc avec le code généré
  5. CompileBlock("FB_Gestion_Chateau_Eau") — compile et vérifie la syntaxe

Le code SCL généré

Voici ce que Claude renvoie (extrait), prêt à être intégré :

FB_Gestion_Chateau_Eau.scl
FUNCTION_BLOCK "FB_Gestion_Chateau_Eau"
{ S7_Optimized_Access := 'TRUE' }
VERSION : 0.1

VAR_INPUT
    LSL             : Bool;   // Capteur niveau bas (TRUE = eau présente)
    LSH             : Bool;   // Capteur niveau haut (TRUE = plein)
    LSHH            : Bool;   // Sécurité anti-débordement
    AU              : Bool;   // Arrêt d'urgence (actif bas)
    Mode_Auto       : Bool;   // TRUE = auto, FALSE = manuel
    Cmd_Manu_Pompe  : Bool;   // Commande manuelle de la pompe
END_VAR

VAR_OUTPUT
    Pompe_Marche    : Bool;   // Sortie vers le contacteur
    Defaut          : Bool;   // Défaut général
    Etat            : Int;    // 0=arrêt, 1=remplissage, 2=défaut
END_VAR

VAR
    Tempo_AntiCycle : TON;    // Tempo anti-redémarrage
    Memo_Arret      : Bool;   // Mémoire du dernier arrêt
END_VAR

BEGIN
    // --- Gestion des défauts (priorité absolue) ---
    IF #LSHH OR NOT #AU THEN
        #Pompe_Marche := FALSE;
        #Defaut       := TRUE;
        #Etat         := 2;
        #Memo_Arret   := TRUE;
        RETURN;
    END_IF;

    #Defaut := FALSE;

    // --- Tempo anti-cycle court : 30 s après un arrêt ---
    #Tempo_AntiCycle(IN := #Memo_Arret, PT := T#30S);

    IF #Tempo_AntiCycle.Q THEN
        #Memo_Arret := FALSE;  // Tempo écoulée, on peut redémarrer
    END_IF;

    // --- Mode automatique ---
    IF #Mode_Auto THEN
        // Démarrage quand eau basse ET tempo écoulée
        IF NOT #LSL AND NOT #Memo_Arret THEN
            #Pompe_Marche := TRUE;
            #Etat         := 1;
        END_IF;

        // Arrêt quand eau haute
        IF #LSH THEN
            #Pompe_Marche := FALSE;
            #Etat         := 0;
            #Memo_Arret   := TRUE;
        END_IF;
    ELSE
        // --- Mode manuel ---
        #Pompe_Marche := #Cmd_Manu_Pompe AND NOT #LSH AND NOT #LSHH;
        #Etat         := 0;
    END_IF;

END_FUNCTION_BLOCK
Claude — confirmation

J'ai créé le FB FB_Gestion_Chateau_Eau dans ton projet. Compilation réussie, aucune erreur. Le bloc est prêt à être appelé depuis ton OB1. Veux-tu que je génère aussi le DB d'instance associé et un exemple d'appel depuis l'OB1 ?

Tu réponds « oui », et en deux autres prompts tu obtiens le DB d'instance et le code d'appel. Le tout sans jamais quitter la conversation, sans écrire une ligne de code à la main, sans chercher dans la documentation Siemens.

Les limites à garder en tête

Même avec cet outillage, quelques règles de bon sens restent essentielles. Un automaticien reste indispensable.

Toujours relire le code

L'IA fait des erreurs, surtout sur des cas métier complexes ou des normes de sûreté. Un code SCL n'est jamais déployé sur un automate réel sans revue humaine.

Tester en simulation

PLCSim Advanced (supporté par T-IA Connect) permet de valider le comportement avant d'envoyer sur l'automate physique. Indispensable.

Attention aux applications SIL

Pour la sécurité fonctionnelle (SIL2, SIL3), l'IA peut dégrossir, mais la validation formelle reste une affaire d'ingénieurs certifiés.

Le facteur contexte

Plus tu donnes de contexte (UDT existants, conventions, normes ISA-88 / IEC 61131-3), plus le code sera pertinent. Un prompt vague = code générique.

Pour aller plus loin

Si l'idée t'intéresse, le chemin le plus rapide est le suivant. En une après-midi, tu auras une idée claire du gain de productivité.

ÉTAPE 01
Installer Claude Desktop
ÉTAPE 02
Télécharger T-IA Connect (essai 14j)
ÉTAPE 03
Ajouter la config MCP
ÉTAPE 04
Tester sur un petit projet

Le monde de l'automatisme industriel n'est pas près de disparaître, mais la manière de programmer les automates, elle, est en train de changer. Autant s'y mettre maintenant.

Aucune note. Soyez le premier à attribuer une note !

Commentaires

  • EvangerC

    1 EvangerC Le 06/05/2026

    Très intéressant !

    J'avais vu une vidéo sur une IA qui programmait sur TIA Portai mais j'y croyais pas...
    Il y a la même choses pour les automates Schneider ? Ahah
  • GAMA DE SOUSA

    2 GAMA DE SOUSA Le 04/05/2026

    Bonjour,

    Je ne suis pas forcément intéressé par la programmation automatique via l’IA, mais ce que recherchent les industriels, c’est de pouvoir prendre la main à distance sur les API de l’usine via les différente marque d'automates ( TIA ou Simatic Manager, Sysmac Studio, Automation Studio ) afin de lancer une campagne de comparaison des programmes et de la configuration matérielle, en mode masqué, afin d’être souverains sur nos machines.

    Est-ce possible avec ce que vous proposez, ou bien avez-vous une autre solution ?

    Merci pour votre sujet et pour votre retour.

    Cordialement,
    M. Gama de Sousa
  • Boulloud

    3 Boulloud Le 28/04/2026

    Bonjour
    Ce sujet m’intéresse
    Pierre
  • Boulloud

    4 Boulloud Le 28/04/2026

    Bonjour
    Ce sujet m’intéresse
    Pierre

Ajouter un commentaire