Tous les cours gratuit

Test & QCM Métier

Exercices Corrigés : Langage Structuré en Automatisme

Le langage structuré est un langage de programmation utilisé dans le domaine de l’automatisme pour contrôler et piloter des automates programmables industriels (API/PLC). Il s’agit d’un langage textuel qui permet de structurer et d’organiser des programmes de manière logique et séquentielle. Ce type de langage est utilisé pour écrire des programmes plus complexes, avec des conditions, des boucles, et des blocs fonctionnels.

Voici une série d’exercices corrigés pour mieux comprendre la programmation en langage structuré dans le contexte des automatismes.


Exercice 1 : Commande d’un moteur avec une temporisation

Contexte :

Un moteur doit démarrer lorsque l’opérateur appuie sur un bouton de démarrage. Le moteur doit fonctionner pendant 10 secondes, puis s’arrêter automatiquement. Un bouton d’arrêt permet de stopper le moteur à tout moment.

Question :

Écrivez un programme en langage structuré pour piloter cette séquence.

Correction :

Données :

    • Entrée ( Start ) : Bouton de démarrage
    • Entrée ( Stop ) : Bouton d’arrêt
    • Sortie ( Motor ) : Commande du moteur
    • Temporisateur ( Timer ) : Temporisation de 10 secondes

    Programme en langage structuré :

      IF Start = TRUE THEN
          Motor := TRUE;               // Démarrer le moteur
          Timer := 10;                 // Démarrer la temporisation de 10 secondes
      END_IF;
      
      IF Timer = 0 THEN
          Motor := FALSE;              // Arrêter le moteur après 10 secondes
      END_IF;
      
      IF Stop = TRUE THEN
          Motor := FALSE;              // Arrêter immédiatement le moteur en cas de bouton Stop
      END_IF;
      1. Explication :
      • Lorsque le bouton Start est activé, le moteur démarre et un temporisateur est activé pour 10 secondes.
      • Une fois la temporisation écoulée, le moteur s’arrête automatiquement.
      • Si le bouton Stop est appuyé, le moteur s’arrête immédiatement, quelle que soit la temporisation.

      Exercice 2 : Gestion d’un convoyeur avec des capteurs

      Contexte :

      Un convoyeur doit transporter des objets. Le convoyeur doit s’arrêter si un objet est détecté par un capteur de fin de course. Il doit redémarrer automatiquement si le capteur ne détecte plus l’objet. Un bouton d’arrêt d’urgence permet d’arrêter immédiatement le convoyeur.

      Question :

      Écrivez un programme en langage structuré pour gérer cette séquence.

      Correction :

      Données :

        • Entrée ( Start ) : Bouton de démarrage
        • Entrée ( Stop ) : Bouton d’arrêt d’urgence
        • Entrée ( Sensor ) : Capteur de fin de course
        • Sortie ( Conveyor ) : Commande du convoyeur

        Programme en langage structuré :

          IF Start = TRUE AND Sensor = FALSE THEN
              Conveyor := TRUE;           // Démarrer le convoyeur si l'élément n'est pas détecté
          END_IF;
          
          IF Sensor = TRUE THEN
              Conveyor := FALSE;          // Arrêter le convoyeur si l'élément est détecté
          END_IF;
          
          IF Stop = TRUE THEN
              Conveyor := FALSE;          // Arrêt d'urgence du convoyeur
          END_IF;

          Explication :

            • Le convoyeur démarre lorsque le bouton Start est activé et que le capteur Sensor ne détecte pas d’objet.
            • Si un objet est détecté par le capteur, le convoyeur s’arrête.
            • Le convoyeur redémarre automatiquement si l’objet n’est plus détecté.
            • Le bouton Stop permet un arrêt d’urgence du convoyeur.

            Exercice 3 : Commande de chauffage avec thermostat

            Contexte :

            Un système de chauffage doit s’activer lorsque la température descend en dessous de 18°C et s’arrêter lorsque la température atteint 22°C. Le chauffage peut aussi être désactivé manuellement par l’opérateur.

            Question :

            Écrivez un programme en langage structuré pour gérer cette commande de chauffage.

            Correction :

            Données :

              • Entrée ( Temp ) : Température mesurée (en °C)
              • Entrée ( Stop ) : Commande manuelle d’arrêt
              • Sortie ( Heater ) : Commande du chauffage

              Programme en langage structuré :

                IF Temp < 18 THEN
                    Heater := TRUE;              // Activer le chauffage si la température est inférieure à 18°C
                END_IF;
                
                IF Temp >= 22 THEN
                    Heater := FALSE;             // Désactiver le chauffage si la température atteint 22°C ou plus
                END_IF;
                
                IF Stop = TRUE THEN
                    Heater := FALSE;             // Arrêter le chauffage manuellement
                END_IF;

                Explication :

                  • Le chauffage s’active automatiquement si la température descend en dessous de 18°C.
                  • Le chauffage s’arrête une fois que la température atteint 22°C.
                  • L’opérateur peut également arrêter manuellement le chauffage en utilisant le bouton Stop.

                  Exercice 4 : Commande de plusieurs moteurs en séquence

                  Contexte :

                  Deux moteurs ( Motor1 ) et ( Motor2 ) doivent être activés l’un après l’autre. Le moteur ( Motor2 ) ne doit démarrer que lorsque le moteur ( Motor1 ) a fonctionné pendant 5 secondes. Les moteurs doivent s’arrêter simultanément si un bouton d’arrêt est pressé.

                  Question :

                  Écrivez un programme en langage structuré pour gérer cette séquence.

                  Correction :

                  Données :

                    • Entrée ( Start ) : Bouton de démarrage
                    • Entrée ( Stop ) : Bouton d’arrêt
                    • Sortie ( Motor1 ) : Commande du moteur 1
                    • Sortie ( Motor2 ) : Commande du moteur 2
                    • Temporisateur ( Timer ) : Temporisateur pour la séquence de 5 secondes

                    Programme en langage structuré :

                      IF Start = TRUE THEN
                          Motor1 := TRUE;              // Démarrer Motor1
                          Timer := 5;                  // Démarrer le temporisateur pour 5 secondes
                      END_IF;
                      
                      IF Timer = 0 THEN
                          Motor2 := TRUE;              // Démarrer Motor2 après 5 secondes
                      END_IF;
                      
                      IF Stop = TRUE THEN
                          Motor1 := FALSE;             // Arrêter les deux moteurs simultanément
                          Motor2 := FALSE;
                      END_IF;

                      Explication :

                        • Lorsque le bouton Start est pressé, ( Motor1 ) démarre et un temporisateur de 5 secondes est lancé.
                        • ( Motor2 ) démarre une fois que les 5 secondes sont écoulées.
                        • Les deux moteurs s’arrêtent immédiatement si le bouton Stop est appuyé.

                        Ces exercices corrigés vous permettent de mieux comprendre la programmation en langage structuré dans le cadre des automatismes industriels. Ils couvrent des cas d’usage courants tels que la gestion de moteurs, de convoyeurs, de systèmes de chauffage et l’intégration de capteurs et temporisateurs. Ces exemples illustrent les principales fonctionnalités du langage structuré, telles que les conditions, les temporisations et la commande séquentielle d’équipements.

                        Voici quelques autres exemples d’automatismes courants que je pourrais expliquer, en mettant en œuvre des programmes en langage structuré pour chaque situation. Ces exemples sont largement utilisés dans les environnements industriels et domestiques.


                        1. Gestion de l’éclairage automatique avec détection de mouvement

                        Description :

                        Un système d’éclairage dans une pièce doit s’activer automatiquement lorsqu’un mouvement est détecté par un capteur infrarouge (PIR). L’éclairage doit rester allumé pendant 30 secondes après la dernière détection. Le système doit également inclure un bouton pour désactiver manuellement la lumière.

                        Explication :

                        • Le capteur de mouvement déclenche l’éclairage lorsqu’un mouvement est détecté.
                        • Un temporisateur est lancé pour maintenir la lumière allumée pendant 30 secondes après la détection.
                        • Un bouton manuel permet de désactiver l’éclairage immédiatement.

                        Programme en langage structuré :

                        IF MotionDetected = TRUE THEN
                            Light := TRUE;
                            Timer := 30;  // Démarrer la temporisation de 30 secondes
                        END_IF;
                        
                        IF Timer = 0 THEN
                            Light := FALSE;  // Éteindre la lumière après 30 secondes
                        END_IF;
                        
                        IF ManualOff = TRUE THEN
                            Light := FALSE;  // Désactiver la lumière manuellement
                        END_IF;

                        2. Contrôle d’un système de ventilation basé sur l’humidité

                        Description :

                        Un système de ventilation doit s’activer lorsque l’humidité dans une pièce dépasse un certain seuil (par exemple, 60%). Il doit s’arrêter automatiquement lorsque l’humidité descend en dessous de ce seuil. Un bouton manuel permet de forcer l’arrêt de la ventilation.

                        Explication :

                        • Un capteur d’humidité mesure le niveau d’humidité ambiante.
                        • Si l’humidité dépasse le seuil défini, la ventilation s’active.
                        • Lorsque l’humidité redescend, la ventilation s’arrête automatiquement.
                        • Un bouton manuel permet de désactiver la ventilation en cas de besoin.

                        Programme en langage structuré :

                        IF Humidity > 60 THEN
                            Ventilation := TRUE;  // Activer la ventilation si l'humidité dépasse 60%
                        END_IF;
                        
                        IF Humidity <= 60 THEN
                            Ventilation := FALSE;  // Désactiver la ventilation si l'humidité descend en dessous de 60%
                        END_IF;
                        
                        IF ManualOff = TRUE THEN
                            Ventilation := FALSE;  // Arrêt manuel de la ventilation
                        END_IF;

                        3. Gestion d’un feu tricolore

                        Description :

                        Un feu tricolore doit gérer le passage des véhicules en alternant entre les trois états : vert, orange, et rouge. Le feu vert reste allumé pendant 30 secondes, le feu orange pendant 5 secondes, et le feu rouge pendant 25 secondes. Un bouton d’urgence doit permettre de passer immédiatement au rouge.

                        Explication :

                        • Les feux alternent selon une séquence prédéfinie avec des durées différentes.
                        • Un bouton d’urgence force le passage immédiat au rouge.

                        Programme en langage structuré :

                        IF StartSequence = TRUE THEN
                            Green := TRUE;
                            Timer := 30;  // Démarrer le feu vert pour 30 secondes
                        END_IF;
                        
                        IF Timer = 0 AND Green = TRUE THEN
                            Green := FALSE;
                            Orange := TRUE;
                            Timer := 5;  // Passer au feu orange pendant 5 secondes
                        END_IF;
                        
                        IF Timer = 0 AND Orange = TRUE THEN
                            Orange := FALSE;
                            Red := TRUE;
                            Timer := 25;  // Passer au feu rouge pendant 25 secondes
                        END_IF;
                        
                        IF Timer = 0 AND Red = TRUE THEN
                            Red := FALSE;
                            Green := TRUE;
                            Timer := 30;  // Recommencer la séquence avec le feu vert
                        END_IF;
                        
                        IF EmergencyButton = TRUE THEN
                            Green := FALSE;
                            Orange := FALSE;
                            Red := TRUE;  // Passer immédiatement au feu rouge
                        END_IF;

                        4. Remplissage automatique d’un réservoir d’eau

                        Description :

                        Un système de remplissage automatique gère le niveau d’eau d’un réservoir à l’aide de deux capteurs : un capteur de niveau bas et un capteur de niveau haut. Le système doit activer une pompe lorsque le niveau est bas et désactiver la pompe lorsque le niveau est haut. Un bouton manuel permet de forcer l’arrêt de la pompe.

                        Explication :

                        • La pompe s’active lorsque le capteur de niveau bas est détecté.
                        • Lorsque le capteur de niveau haut est atteint, la pompe s’arrête.
                        • Un bouton permet d’arrêter la pompe à tout moment.

                        Programme en langage structuré :

                        IF LowLevelSensor = TRUE THEN
                            Pump := TRUE;  // Activer la pompe si le niveau est bas
                        END_IF;
                        
                        IF HighLevelSensor = TRUE THEN
                            Pump := FALSE;  // Désactiver la pompe si le niveau est haut
                        END_IF;
                        
                        IF ManualOff = TRUE THEN
                            Pump := FALSE;  // Arrêt manuel de la pompe
                        END_IF;

                        5. Contrôle d’un ascenseur à plusieurs étages

                        Description :

                        Un ascenseur dessert trois étages. L’utilisateur peut appeler l’ascenseur à partir de n’importe quel étage, et l’ascenseur doit se déplacer vers l’étage demandé. Lorsque l’ascenseur atteint un étage, la porte s’ouvre et se ferme après 5 secondes.

                        Explication :

                        • L’ascenseur se déplace en fonction de la demande de l’utilisateur (boutons d’appel).
                        • Lorsque l’ascenseur arrive à l’étage demandé, la porte s’ouvre et reste ouverte pendant 5 secondes avant de se refermer.
                        • L’ascenseur doit pouvoir gérer plusieurs appels dans des directions différentes.

                        Programme en langage structuré :

                        IF CallFloor1 = TRUE AND CurrentFloor <> 1 THEN
                            MoveToFloor(1);  // Déplacer l'ascenseur vers l'étage 1
                        END_IF;
                        
                        IF CallFloor2 = TRUE AND CurrentFloor <> 2 THEN
                            MoveToFloor(2);  // Déplacer l'ascenseur vers l'étage 2
                        END_IF;
                        
                        IF CallFloor3 = TRUE AND CurrentFloor <> 3 THEN
                            MoveToFloor(3);  // Déplacer l'ascenseur vers l'étage 3
                        END_IF;
                        
                        IF ArrivedAtFloor = TRUE THEN
                            OpenDoor := TRUE;  // Ouvrir la porte lorsqu'on arrive à l'étage
                            Timer := 5;  // Laisser la porte ouverte pendant 5 secondes
                        END_IF;
                        
                        IF Timer = 0 THEN
                            OpenDoor := FALSE;  // Fermer la porte après 5 secondes
                        END_IF;

                        6. Système de chauffage central avec zones

                        Description :

                        Un système de chauffage central doit contrôler la température de plusieurs zones dans un bâtiment (Zone 1, Zone 2, Zone 3). Chaque zone a un thermostat dédié et des vannes motorisées permettent de contrôler l’apport de chaleur dans chaque zone en fonction de la température demandée.

                        Explication :

                        • Chaque zone a sa propre consigne de température.
                        • Si la température dans une zone est inférieure à la consigne, la vanne de cette zone s’ouvre pour permettre l’apport de chaleur.
                        • Si la température dépasse la consigne, la vanne se ferme.

                        Programme en langage structuré :

                        // Contrôle de la Zone 1
                        IF TempZone1 < SetPointZone1 THEN
                            ValveZone1 := TRUE;  // Ouvrir la vanne si la température est inférieure à la consigne
                        END_IF;
                        
                        IF TempZone1 >= SetPointZone1 THEN
                            ValveZone1 := FALSE;  // Fermer la vanne si la température atteint ou dépasse la consigne
                        END_IF;
                        
                        // Contrôle des autres zones
                        // Répéter la logique pour Zone 2 et Zone 3

                        Ces exemples montrent la diversité des applications en automatisme, allant de la gestion de systèmes simples (éclairage, ventilation) à des systèmes plus complexes (ascenseurs, chauffage multi-zones). Les programmes en langage structuré permettent une gestion précise des processus automatisés en incluant des conditions, des boucles et des temporisations.

                        Autres articles

                        QCM Adjoint Administratif Catégorie C : Exemples
                        Testez des exemples de QCM Adjoint Administratif Catégorie C ...
                        Read more
                        Guide pour Préparer un QCM pour la...
                        Un questionnaire à choix multiples (QCM) est un outil d'évaluation...
                        Read more
                        Guide pour rédiger un QCM en microéconomie...
                        1. Structurer le QCM Un bon QCM doit être structuré autour...
                        Read more
                        AZ

                        Recent Posts

                        Fiche de Lecture et Citations Clés – L’Art de la Guerre de Nicolas Machiavel

                        Introduction L’Art de la Guerre (Dell’arte della guerra), publié en 1521, est l’un des ouvrages…

                        4 minutes ago

                        Guide : Fiche Auteur sur Machiavel

                        1. Informations Générales Nom complet : Niccolò Machiavelli (en français : Nicolas Machiavel) Date de…

                        34 minutes ago

                        Fiche Auteur : Albert Camus

                        1. Informations Générales Nom complet : Albert Camus Date de naissance : 7 novembre 1913…

                        42 minutes ago

                        Guide : Thèse, Antithèse, Synthèse – Exercices corrigés

                        La méthode Thèse, Antithèse, Synthèse (TAS) est un outil incontournable pour structurer une dissertation, particulièrement…

                        11 heures ago

                        Fiche Auteur : Émile Zola

                        1. Informations Générales Nom complet : Émile Édouard Charles Antoine Zola Date de naissance :…

                        12 heures ago

                        Fiche Auteur : Victor Hugo

                        1. Informations Générales Nom complet : Victor-Marie Hugo Date de naissance : 26 février 1802…

                        12 heures ago

                        This website uses cookies.