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.
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.
Écrivez un programme en langage structuré pour piloter cette séquence.
Données :
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;
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.
Écrivez un programme en langage structuré pour gérer cette séquence.
Données :
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 :
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.
Écrivez un programme en langage structuré pour gérer cette commande de chauffage.
Données :
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 :
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é.
Écrivez un programme en langage structuré pour gérer cette séquence.
Données :
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 :
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.
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.
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;
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.
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;
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.
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;
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.
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;
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.
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;
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.
// 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.
Introduction L’Art de la Guerre (Dell’arte della guerra), publié en 1521, est l’un des ouvrages…
1. Informations Générales Nom complet : Niccolò Machiavelli (en français : Nicolas Machiavel) Date de…
1. Informations Générales Nom complet : Albert Camus Date de naissance : 7 novembre 1913…
La méthode Thèse, Antithèse, Synthèse (TAS) est un outil incontournable pour structurer une dissertation, particulièrement…
1. Informations Générales Nom complet : Émile Édouard Charles Antoine Zola Date de naissance :…
1. Informations Générales Nom complet : Victor-Marie Hugo Date de naissance : 26 février 1802…
This website uses cookies.