Objectif :
L’objectif de ce guide est de permettre aux apprenants de configurer, programmer et mettre en service une boucle de régulation PID (Proportionnel, Intégral, Dérivé) pour contrôler le niveau d’un réservoir industriel virtuel.
À l’issue de cette manipulation, l’apprenant sera capable de :
- Établir la communication logicielle entre l’environnement TIA Portal et le simulateur 3D Factory I/O.
- Identifier les contraintes de simulation matérielle et sélectionner la CPU adéquate pour les blocs technologiques.
- Intégrer et paramétrer le bloc de régulation PID_Compact dans un bloc d’organisation cyclique.
- Exploiter les outils de mise en service de TIA Portal pour effectuer l’optimisation (tuning) et analyser la réponse du système.
1. Présentation de la maquette virtuelle
Avant de procéder au paramétrage du régulateur PID sous TIA Portal, il est primordial de bien comprendre le système physique (ici virtualisé) que nous cherchons à asservir, ainsi que l’interface qui nous permettra de le contrôler.
1.1. Le processus sous Factory I/O
Le système étudié est un réservoir industriel modélisé dans l’environnement 3D Factory I/O. L’objectif de notre système de contrôle-commande sera de maintenir le niveau d’eau dans ce réservoir à une valeur souhaitée (la consigne), indépendamment des perturbations (comme une vidange en cours).
Comme illustré sur la maquette, le système est composé des éléments suivants :
- Les Actionneurs (Grandeurs de commande – Output) :
- Vanne de remplissage (Fill Valve) : Il s’agit d’une vanne proportionnelle. Contrairement à une vanne Tout-Ou-Rien (TOR), son ouverture peut varier de 0 % à 100 % grâce à un signal analogique, permettant un remplissage progressif.
- Vanne de vidange (Discharge Valve) : Également proportionnelle, elle simule la consommation d’eau ou la perturbation du système (fuite, soutirage).
- Les Capteurs (Grandeurs mesurées – Input) :
- Capteur de niveau (Level Meter) : Ce transmetteur analogique mesure en continu la hauteur du liquide dans la cuve. C’est notre variable de processus (Process Value – PV).
- Débitmètre (Flow Meter) : Mesure le débit du fluide dans la conduite.
1.2. L’interface Homme-Machine (IHM)
Pour piloter ce processus de manière intuitive, une interface de supervision (SCADA) a été développée via WinCC RT Simulator.
Cette vue d’exploitation permet à l’opérateur de :
- Visualiser le processus de manière dynamique.
- Surveiller la variable régulée : le Niveau actuel du réservoir.
- Observer le comportement de la commande : le pourcentage d’ouverture de la Vanne de Remplissage.
- Surveiller le Débit dans le circuit.
- Accéder à l’outil d’analyse temporel via le bouton « Courbes ».
Note importante pour le TP : L’accès aux courbes de tendance sera strictement indispensable dans les prochaines étapes de ce guide. C’est grâce à ces tracés que nous pourrons observer le comportement dynamique du système, évaluer les dépassements, le temps de réponse, et ainsi affiner les paramètres (P, I et D) de notre régulateur.
1.3. Tableau d’affectation des variables (Adressage)
Afin d’établir la communication entre TIA Portal et Factory I/O, voici le tableau d’adressage des signaux analogiques (de type Real ou Word selon le bloc de communication utilisé) à respecter lors de la création de votre table de variables automate.
2. Préparation de la communication Factory I/O – TIA Portal
Pour que la maquette virtuelle 3D et l’automate virtuel (S7-PLCSIM) puissent interagir de manière fluide, ils doivent échanger les états des capteurs (entrées) et des actionneurs (sorties) en temps réel. Cette liaison nécessite une configuration spécifique côté TIA Portal.
2.1. Téléchargement du projet « Template » (modèle)
Comme l’indique la documentation officielle de Factory I/O, il est strictement obligatoire d’utiliser un projet TIA Portal préconfiguré (Template) pour établir la connexion avec S7-PLCSIM. Sans ce modèle, Factory I/O ne sera pas en mesure de communiquer avec votre automate simulé.
Procédure à suivre pour les stagiaires :
- Rendez-vous sur le site officiel de la documentation de Factory I/O, dans la section des tutoriels pour Siemens : Setting up S7-PLCSIM V13-19.
- Identifiez la version de TIA Portal installée sur votre poste (V13, V14, ou V15/V16/V17/V18/V19).
- Attention : Bien que des modèles existent pour la gamme S7-1200, vous devez impérativement télécharger le fichier correspondant à une CPU S7-1500 (ex: FactoryIO_Template_S7-1500_V15.zip). Nous expliquerons la raison technique de ce choix dans la section suivante du TP.
(Voir l’illustration ci-dessous montrant la page de téléchargement des Templates).

2.2. Intégration et rôle du bloc fonctionnel (FC) dédié
Une fois l’archive téléchargée et le projet modèle désarchivé (ouvert) sous TIA Portal, vous remarquerez la présence d’un bloc fonctionnel spécifique dans l’arborescence du programme (généralement nommé FC9000 ou Factory I/O).
Quel est le rôle de ce bloc FC ? Ce bloc agit comme un pont de communication (une passerelle) entre les deux logiciels.
- En lecture : Il scrute la mémoire des sorties de l’automate (les commandes calculées par votre programme, comme l’ouverture de la vanne) et les transmet à Factory I/O.
- En écriture : Il récupère les états physiques de la maquette (comme la valeur analogique de notre capteur de niveau) depuis Factory I/O et les écrit directement dans les adresses d’entrées correspondantes sous TIA Portal.
Règle d’intégration : Pour que ce processus d’échange de données s’exécute en continu, il est impératif d’appeler ce bloc FC dans le bloc d’organisation cyclique principal (OB1 : Main). C’est la toute première ligne de code que vous devez placer dans votre réseau 1 avant de commencer à programmer la régulation.


3. Choix du matériel : Les contraintes de la simulation PID
Lorsqu’on débute avec les blocs technologiques sous TIA Portal, il est une erreur très fréquente qui empêche la réalisation du TP : le mauvais choix de l’automate pour la simulation virtuelle.
3.1. Le point de blocage : Le S7-1200 et PLCSIM
Dans la majorité de nos exercices, nous utilisons les automates de la gamme S7-1200, qui sont parfaitement adaptés aux applications industrielles standards. Cependant, dans le cadre strict d’une simulation virtuelle sans matériel physique (avec S7-PLCSIM), une contrainte technique majeure apparaît.
Il est techniquement impossible de simuler correctement un régulateur PID (bloc PID_Compact) avec une CPU S7-1200 sous PLCSIM classique. La raison vient du fonctionnement interne du simulateur : l’objet technologique PID a besoin de s’exécuter à des intervalles de temps réels extrêmement précis (via des alarmes cycliques). L’architecture matérielle simulée du S7-1200 sous PLCSIM ne permet pas de gérer ces interruptions temporelles avec la rigueur nécessaire au calcul de l’algorithme PID.
Conséquence si vous essayez : Le bloc PID restera inactif (en mode Inactive), la sortie de commande restera figée à 0%, et l’optimisation (tuning) sera impossible à lancer.
3.2. La solution : Basculer sur un automate S7-1500
Pour contourner cette limitation logicielle et garantir le bon fonctionnement de notre simulation avec Factory I/O, la solution est simple : nous devons utiliser une CPU de la gamme supérieure, le S7-1500.
L’environnement de simulation pour les S7-1500 est conçu pour prendre en charge intégralement les objets technologiques complexes, y compris la régulation PID et les axes de mouvement.
Action à réaliser pour la suite du TP :
- Si vous partez d’un projet vide, veillez à « Ajouter un nouvel appareil » en sélectionnant impérativement une CPU de la famille SIMATIC S7-1500 (par exemple, la CPU 1511-1 PN).
- Si vous utilisez le projet « Template » téléchargé à l’étape précédente, assurez-vous d’avoir bien ouvert la version spécifiée pour le S7-1500 (le fichier FactoryIO_Template_S7-1500_Vxx.zip).
Note : Même si la syntaxe et la programmation seront identiques à ce que vous feriez sur un S7-1200 physique, ce changement de CPU est l’étape clé qui vous permettra de voir votre régulateur prendre le contrôle du niveau d’eau virtuellement.

4. Configuration logicielle et mise à l’échelle
Dans l’industrie, les automates programmables Siemens lisent les signaux analogiques standards (comme le 0-10V ou le 4-20mA fournis par Factory I/O) sous la forme d’un nombre entier (type Int). Pour les modules analogiques Siemens, cette valeur brute varie de 0 à 27648.
Pour que notre régulateur PID et notre supervision (IHM) affichent des valeurs qui ont un sens physique (comme des centimètres pour le niveau, ou des litres/minute pour le débit), nous devons convertir cette valeur brute en nombre réel (à virgule flottante) et la mettre à l’échelle. Pour cela, nous utiliserons l’association des instructions NORM_X (Normaliser) et SCALE_X (Mettre à l’échelle) dans le bloc d’organisation principal Main [OB1].
4.1. Traitement du signal analogique du niveau (Mesure principale)
Le capteur de niveau est notre variable de processus (la grandeur que l’on souhaite réguler). Son traitement se fait dans le Réseau 2 :
- Normalisation (NORM_X) : L’instruction lit la valeur entière d’entrée %IW32 (nommée « Niveau Réservoir ») qui évolue entre 0 (MIN) et 27648 (MAX). Elle convertit cette plage en un pourcentage allant de 0.0 à 1.0 (type Real). Le résultat est stocké dans la variable %MD100 (« Valeur intermédiaire »).
- Mise à l’échelle (SCALE_X) : L’instruction prend la valeur normalisée %MD100 et la transpose dans la plage physique réelle de notre cuve, qui va de 0.0 à 200.0 (représentant la hauteur maximale en cm). Le résultat final est envoyé dans le double mot %MD0 (« Valeur Actuelle Niveau »). C’est cette variable %MD0 que nous injecterons plus tard dans notre bloc PID.

4.2. Traitement du signal analogique du débitmètre
Bien que le débit ne soit pas directement la variable régulée par le PID dans cette configuration, il est essentiel de l’afficher sur la supervision pour que l’opérateur puisse surveiller les flux. Ce traitement est réalisé dans le Réseau 3 :
- Normalisation (NORM_X) : La valeur brute du capteur de débit, lue sur l’adresse %IW34 (« Capteur de débit ») entre 0 et 27648, est convertie en une valeur réelle de 0.0 à 1.0. Ce résultat transite par la mémoire %MD104 (« Valeur intermédiaire2 »).
- Mise à l’échelle (SCALE_X) : La valeur intermédiaire %MD104 est ensuite mise à l’échelle sur une plage de 0.0 à 100.0. Le débit physique actuel est enfin stocké dans l’adresse %MD20 (« Valeur actuelle débit »), prête à être animée sur l’IHM.

Note : Avant de passer à l’étape suivante, assurez-vous de compiler votre bloc OB1 et de vérifier qu’aucune erreur de type de données n’est signalée. Vos variables d’entrée (%IW) doivent être de type Int, tandis que vos mémentos de sortie (%MD) doivent être configurés en Real dans votre table des variables.
5. Programmation de la boucle de régulation
Maintenant que nos signaux sont traités et mis à l’échelle, nous pouvons intégrer le « cerveau » de notre asservissement : le régulateur PID. Sous TIA Portal, Siemens propose le bloc technologique PID_Compact, spécialement conçu pour les processus proportionnels continus.
5.1. Création du bloc d’organisation d’interruption cyclique (OB30)
Il s’agit d’une règle d’or en automatisme : un régulateur PID ne doit jamais être appelé dans le bloc cyclique principal (OB1).
Le temps de cycle de l’OB1 est variable, car il dépend de la quantité de code exécutée à chaque instant. Or, l’algorithme d’un PID (en particulier pour ses actions intégrale et dérivée) a besoin de calculer l’évolution de l’erreur sur des intervalles de temps stricts et constants.
Consigne pour les stagiaires :
- Dans l’arborescence de votre projet, double-cliquez sur « Ajouter nouveau bloc ».
- Sélectionnez Bloc d’organisation (OB).
- Choisissez Cyclic interrupt (Interruption cyclique), qui correspond à l’OB30.
- Laissez le temps d’exécution par défaut (généralement 100 ms) et validez. C’est dans ce bloc que nous allons programmer notre PID.
5.2. Appel et câblage du bloc technologique PID_Compact
Dans l’OB30 que vous venez de créer, insérez le bloc PID_Compact depuis le volet des instructions (dossier Technologie > PID Control > Compact PID). TIA Portal va générer un bloc de données d’instance (DB1) pour stocker tous les paramètres du régulateur.
Comme illustré ci-dessous, voici comment réaliser le câblage de votre bloc :
- EN (Bit d’activation) : Connectez un contact normalement ouvert lié à un mémento (ex: %M10.0 « Activation PID »). Cela permettra de lancer ou de stopper la régulation depuis la supervision.
- Setpoint (La consigne) : Reliez la variable %MD4 (« Consigne IHM »). C’est le niveau d’eau souhaité que l’opérateur saisira sur l’écran WinCC.
- Input (La mesure) : Connectez la variable %MD0 (« Valeur Actuelle Niveau »).
Remarque pédagogique : Nous utilisons l’entrée Input (format Réel) et non Input_PER (format Périphérie brute), car nous avons déjà pris le soin de normaliser et mettre à l’échelle notre capteur dans l’OB1 à l’étape précédente.
- Output_PER (La commande) : Le régulateur calcule l’ouverture de la vanne de remplissage. En utilisant la sortie Output_PER, le PID génère directement une valeur entière comprise entre 0 et 27648, format idéal pour une sortie analogique standard. Stockez cette valeur dans un mot mémoire %MW8 (« Controle Vanne Remplissage »).
- Transfert vers l’actionneur : Utilisez ensuite une fonction MOVE pour envoyer le résultat du calcul (%MW8) vers la sortie physique de la maquette %QW30 (« Ouvrir Actionneur »).

5.3. Configuration de base du régulateur
Le bloc est câblé, mais il faut maintenant le paramétrer. Cliquez sur l’icône en forme de petite « valise/boîte à outils » située dans le coin supérieur droit du bloc PID_Compact pour ouvrir la fenêtre de configuration.
Vous devez y définir les paramètres fondamentaux suivants :
- Type de grandeur de régulation : Sélectionnez « Longueur » ou « Volume » pour correspondre à un niveau d’eau.
- Limites de la valeur réelle (Input) : Définissez la plage de fonctionnement de votre capteur mis à l’échelle (de 0.0 à 200.0 cm).
- Limites de la valeur de réglage (Output) : Laissez les valeurs par défaut (0% à 100% de puissance d’ouverture pour la vanne).
- Sens d’action du régulateur : C’est un point critique. Ici, si le niveau d’eau (mesure) est inférieur à la consigne, le régulateur doit ouvrir la vanne de remplissage pour faire monter l’eau. Il s’agit d’un sens d’action normal (ou direct). L’augmentation de la commande entraîne l’augmentation de la mesure.




6. Mise en service et Réglage du PID
Nous arrivons à l’étape décisive de ce TP : faire communiquer l’ensemble de notre architecture virtuelle, confier le contrôle au régulateur, et observer son comportement dynamique.
6.1. Chargement du programme et configuration du pilote
Avant de pouvoir optimiser le PID, nous devons démarrer nos environnements virtuels et les lier.
- Côté TIA Portal (PLCSIM) : Sélectionnez votre dossier de projet dans l’arborescence et cliquez sur « Démarrer la simulation ». L’automate virtuel S7-PLCSIM s’ouvre. Chargez votre programme complet (configuration matérielle et logicielle) et assurez-vous de passer la CPU en mode RUN (les voyants verts doivent être allumés, comme l’illustre la figure ci-dessous où l’on voit la CPU 1511-1 PN active). Activez ensuite la visualisation dynamique (lunettes) dans votre bloc OB30.

- Côté Factory I/O (Configuration) : Ouvrez le menu Fichier > Pilotes (Drivers), puis accédez à Configuration. En vous référant à la figure ci-dessous, vérifiez impérativement les paramètres suivants :
- Automate : Sélectionnez la gamme S7-1500.
- Type de donnée Numérique : Choisissez WORD.
- Points E/S (Offsets) : Paramétrez les décalages (Offset) d’Entrées MOT et Sorties MOT à la valeur 30 pour correspondre à notre adressage TIA Portal.

- Vérification des E/S et Connexion : Revenez sur l’écran précédent du pilote. Vérifiez que le câblage virtuel correspond bien à vos adresses (la figure ci-dessous montre l’affectation correcte : Tank 0 (Level Meter) sur %IW32, Tank 0 (Flow Meter) sur %IW34 et Tank 0 (Fill Valve) sur %QW30). Cliquez enfin sur CONNECTER. Le symbole de validation vert doit apparaître.

7. Visualisation et Supervision sur l’IHM (Interface Homme-Machine)
L’outil de mise en service (Commissioning) de TIA Portal est parfait pour l’automaticien, mais un opérateur de production a besoin d’une interface simplifiée pour surveiller et interagir avec la machine. Nous allons donc configurer une vue de courbes sur notre pupitre virtuel (WinCC) pour visualiser le comportement du régulateur en temps réel.
7.1. Ajout et paramétrage de la « Vue de courbes »
Dans l’arborescence de votre projet, ouvrez la vue de l’IHM dédiée aux courbes (par exemple, la vue Courbes).
- Insertion de l’objet : Depuis la fenêtre des boîtes à outils (à droite), glissez-déposez l’objet Vue de courbes (Trend view) sur votre écran.
- Affectation des variables : Sélectionnez l’objet, puis rendez-vous dans la fenêtre des Propriétés > Propriétés > Courbe. C’est ici que nous allons lier nos variables automates aux tracés graphiques.
Comme illustré ci-dessous, configurez trois courbes distinctes avec des couleurs contrastées pour faciliter la lecture :
- Courbe 1 – Consigne (Rouge) :
- Nom : Consigne
- Style : Ligne rouge
- Paramétrages source : Pointez vers la variable de consigne saisie par l’opérateur [Consigne IHM].
- Courbe 2 – Mesure (Verte) :
- Nom : Niveau Actuel
- Style : Ligne verte
- Paramétrages source : Pointez vers la variable du capteur mis à l’échelle [Valeur Actuelle Niveau].
- Courbe 3 – Commande (Bleue) :
- Nom : Sortie
- Style : Ligne bleue
- Paramétrages source : Pointez vers la sortie de votre bloc technologique [PID_Compact_Réservoir_Output].

7.2. Lancement du Runtime et analyse opérationnelle
Une fois l’écran configuré, lancez la simulation de l’IHM en cliquant sur l’icône Démarrer la simulation (RT). Le simulateur WinCC RT s’ouvre.
La figure ci-dessous, montre le résultat attendu lors du pilotage du système :
- Saisie de la consigne : L’opérateur peut entrer une nouvelle valeur cible (ex: 120.0 m) dans le champ « Consigne ». Sur le graphique, la ligne rouge effectue un saut immédiat vers cette nouvelle valeur (échelon de consigne).
- Réponse du système : La ligne bleue (Sortie) réagit instantanément pour ouvrir la vanne de remplissage (ici affichée à 34.7 %). En conséquence, la ligne verte (Niveau Actuel) entame sa montée pour rejoindre doucement la ligne rouge.
- Ajustement en direct : L’interface permet également d’exposer les paramètres du régulateur (Gain, Ti, Td). Cela offre la possibilité aux stagiaires de modifier le coefficient proportionnel (Gain = 1.0) ou le temps d’intégration (Ti = 20.0 s) en direct, et d’observer immédiatement l’impact de ces modifications sur le temps de réponse et la stabilité de la courbe verte.
Besoin d’aide pour vos TP ? Contactez-moi !
La maîtrise de la régulation PID demande de la pratique, et il est tout à fait normal de rencontrer quelques blocages lors des premières configurations sous TIA Portal ou lors du couplage avec Factory I/O.
Si vous avez la moindre question, si vous rencontrez des difficultés lors de la réalisation de cette manipulation, ou si vous souhaitez simplement échanger sur d’autres sujets liés à l’automatisation industrielle, n’hésitez pas à me joindre directement.
Vous pouvez me contacter par e-mail à l’adresse suivante : 📧 contact@electutor.com (M.Mouchrif)
Je me ferai un plaisir de vous répondre et de vous accompagner dans vos projets.








