Chargement de la progression locale…
PLC Gym
Accueil PLC GymNiveau 1, 0 XP · ta progression
Mission 87 · PRO (nécessite Pro)

Exercice : Journaliser ce qui explique un arrêt: formation SCADA pour automate

Enregistre une valeur quand elle change assez, ne te tais jamais, puis lis la tendance pour trouver ce qui a lâché.

Donne à l'historique de l'usine ce qu'il faut pour expliquer un arrêt. Écris l'enregistrement de deux variables : la pression d'air, gardée quand elle bouge de 0.2 bar ou après 10 s, et l'état de la ligne, gardé à chaque changement ou après 10 s. Puis choisis quoi journaliser et comment, et lis un arrêt enregistré pour en trouver la cause.

Cette mission fait partie de ProCrée un compte gratuit : chaque compte a un essai Pro gratuit jusqu'au 5 décembre.

Sans carte bancaire. Rien à payer. Rien à annuler.

Official release: 5 December. Prends la tête du classement ce jour-là et gagne 3 mois de Pro, plus 2 semaines de Pro à offrir à un ami. La 2e place gagne 4 semaines. La 3e place gagne 2 semaines. Règlement

  • Toutes les leçons, depuis zéro
  • Toutes les missions et leçons, au fil de ta montée de niveau
  • Un test pratique pour chaque titre, avec un certificat
  • Rembobine n'importe quel test, un cycle à la fois
  • Des solutions commentées quand tu es bloqué
  • Le convertisseur de code, autant que tu veux
Le usine modèle 3D sur lequel tourne cette missionPRO (nécessite Pro) mission
Comment le test se déroule

Même une ligne plate envoie son signal de vie

Test 1 sur 3
Réglé par le testVérifié par le testPas 9 sur 9 · 21 s
Level
Avancé
Durée
À propos 45 min
Récompense
+500 XP
Installation
usine modèle en 3D
Éditeurs Siemens
Schéma à contacts (CONT), SCL
Éditeurs Rockwell
Schéma à contacts, Texte structuré
Éditeurs Beckhoff
Texte structuré
Étape
45. SCADA 3 : enregistrer ce qui explique un arrêt
Comportement exigé

Journaliser ce qui explique un arrêt: ce que ton code doit faire

La commande de l'installation est écrite et fonctionne. Un historien ne peut pas garder chaque cycle de chaque variable, donc chaque variable est stockée sur changement, avec une cadence minimale pour qu'une ligne plate soit reconnue comme vivante. Écris ce stockage dans l'automate, comme le fait un poste distant, pour que seul ce qui compte soit envoyé. Pression d'air : ajoute 0.02 à AirAge à chaque cycle. Quand AirPressure est supérieure ou inférieure de 0,2 bar ou plus à AirStored, ou que AirAge atteint 10.0 s, stocke-la : copie AirPressure dans AirStored, ajoute 1 à AirSamples et mets AirAge à 0. La ligne : ajoute 0.02 à LineAge à chaque cycle. Quand LineRun diffère de LineStored, ou que LineAge atteint 10.0 s, stocke-la : copie LineRun dans LineStored, ajoute 1 à LineSamples et mets LineAge à 0. L'onglet Écran opérateur dessine ce que ton automate stocke par-dessus le vrai signal. Là, choisis quelles variables l'historique garde, à quelle fréquence et avec quelle bande morte. Lis ensuite l'arrêt enregistré la nuit dernière et dis ce qui a échoué.

Air
Enregistre sur un changement de 0.2 bar dans un sens ou l'autre, ou après 10 s.
Ligne
Enregistre sur tout changement de LineRun, ou après 10 s.
Un enregistrement
Copie la valeur, ajoute 1 au compteur, remets l'âge à 0.
Table des variables

Journaliser ce qui explique un arrêt: entrées et sorties

Ton programme lit 17 entrées et pilote 18 sorties. 2 entrées de plus pilotent la simulation ou affichent des mesures, pour que tu puisses tester. Les noms sont les mêmes dans l'éditeur de chaque constructeur.

VariableType de donnéesTon codeCe que ça signifie sur la machine
StartBOOLLitUne entrée dont ton code a besoinDémarrer l'usine
StopBOOLLitUne entrée dont ton code a besoinArrêter l'usine là où elle est
ResetBOOLLitUne entrée dont ton code a besoinRéarmer après un arrêt d'urgence ou un déclenchement du rideau lumineux
EStopBOOLLitUne entrée dont ton code a besoinArrêt d'urgence enfoncé
AirPressureREALLitUne entrée dont ton code a besoinPression du réservoir d'air, bar
SteamPressureREALLitUne entrée dont ton code a besoinPression de vapeur de la chaudière, bar
VesselLevelREALLitUne entrée dont ton code a besoinNiveau de la cuve de mélange, %
VesselTempREALLitUne entrée dont ton code a besoinTempérature du lot, °C
SugarAddedREALLitUne entrée dont ton code a besoinSucre ajouté à ce lot par le doseur pondéral, kg
BufferLevelREALLitUne entrée dont ton code a besoinNiveau du bac tampon de la remplisseuse, %
BadBottleBOOLLitUne entrée dont ton code a besoinCaméra : une bouteille sans étiquette passe
GateEyeBOOLLitUne entrée dont ton code a besoinUne bouteille est devant la porte de rejet
AccumFullBOOLLitUne entrée dont ton code a besoinTrois packs attendent le robot
CurtainClearBOOLLitUne entrée dont ton code a besoinFaisceaux du rideau lumineux non coupés
PalletFullBOOLLitUne entrée dont ton code a besoinUne palette pleine attend ou est en route vers la fardeleuse
PalletOnWrapperBOOLLitUne entrée dont ton code a besoinUne palette est sur le plateau de la fardeleuse
WrapDoneBOOLLitUne entrée dont ton code a besoinLa palette sur la fardeleuse est filmée
PersonInCellBOOLPas nécessairePour tester ou observer ; ton code peut s'en passerEssaie : quelqu'un entre dans la cellule du robot
CompressorFaultBOOLPas nécessairePour tester ou observer ; ton code peut s'en passerEssaie : le compresseur déclenche
CompressorBOOLÉcritUne sortie que ton code commandeFaire tourner le compresseur d'air
BoilerOnBOOLÉcritUne sortie que ton code commandeAllumer la chaudière
WaterValveBOOLÉcritUne sortie que ton code commandeEau dans la cuve de mélange
FeederBOOLÉcritUne sortie que ton code commandeFaire tourner le doseur pondéral de sucre
AgitatorBOOLÉcritUne sortie que ton code commandeFaire tourner l'agitateur
SteamValveBOOLÉcritUne sortie que ton code commandeVapeur vers la double enveloppe de la cuve
TransferPumpBOOLÉcritUne sortie que ton code commandePomper le lot vers le bac tampon
LineRunBOOLÉcritUne sortie que ton code commandeFaire tourner la ligne d'embouteillage
RejectGateBOOLÉcritUne sortie que ton code commandeActionner la porte de rejet
RobotEnableBOOLÉcritUne sortie que ton code commandeLaisser le robot palettiser
PalletOutBOOLÉcritUne sortie que ton code commandeAmener la palette pleine à la fardeleuse
WrapBOOLÉcritUne sortie que ton code commandeFaire tourner la fardeleuse
AGVCallBOOLÉcritUne sortie que ton code commandeAppeler l'AGV pour récupérer la palette filmée
GreenLampBOOLÉcritUne sortie que ton code commandeColonne lumineuse : en production
AmberLampBOOLÉcritUne sortie que ton code commandeColonne lumineuse : démarrage ou attente
RedLampBOOLÉcritUne sortie que ton code commandeColonne lumineuse : arrêt d'urgence ou déclenchement du rideau lumineux
AirStoredREALÉcritUne sortie que ton code commandeHistorique : dernière pression d'air enregistrée, bar
LineStoredBOOLÉcritUne sortie que ton code commandeHistorique : dernier état de ligne enregistré

En Siemens SCL, écris les variables propres à un bloc avec # devant, comme le fait TIA Portal : #Start. Rockwell et TwinCAT utilise le nom seul : Start.

Tests automatiques

Journaliser ce qui explique un arrêt: ce que vérifient les tests

  1. AirStored suit AirPressure à 0.2 bar près.
  2. Une pression stable est quand même enregistrée toutes les 10 s, donc on sait qu'une ligne plate est vivante.
  3. LineStored prend chaque changement de LineRun au cycle où il se produit, et un signal de vie toutes les 10 s.
  4. AirSamples et LineSamples comptent un par enregistrement : des dizaines par minute, pas des milliers.
  5. L'historique garde la mesure, la commande et l'état qui expliquent un arrêt, sur changement, avec une bande morte juste au-dessus du bruit du capteur.
  6. L'arrêt enregistré est lu correctement : le compresseur a été appelé et la pression a continué de baisser.
  1. Essaie Utilise les boutons sous le modèle et regarde l'installation réagir.
  2. Tester la solution Toutes les vérifications tournent sur ton code en un seul clic.
  3. Rembobiner PRO (nécessite Pro) Si l'une échoue, reviens en arrière cycle par cycle pour voir pourquoi.

Bloqué sur cette mission ? Demande aux membres dans le Vestiaire.

Pourquoi c'est important

Où tu verrais ça sur le terrain

Un historique d'usine (historian) garde des années de mesures de milliers de variables. Après chaque arrêt inexpliqué, la première chose qu'un ingénieur ouvre, c'est la courbe des minutes qui le précèdent.

Un déclenchement qui arrive la nuit sans personne pour le voir ne laisse que ce qui a été journalisé. Si la commande et la pression n'ont pas été gardées toutes les deux, à une cadence assez rapide pour voir laquelle a bougé la première, la cause est une devinette.

Où tu trouverais çaUn seul automate pour toute une usine : quand chaque machine peut tourner, et ce qui la garde sûre

Une petite usine de boissons fabrique une boisson à l'orange. Le sucre et l'eau sont dosés et pasteurisés, puis pompés vers une remplisseuse. Les bouteilles sont remplies, capsulées, étiquetées et inspectées, emballées par six, empilées sur des palettes par un robot, filmées et amenées au quai par un chariot sans conducteur. Chaque machine a ses propres commandes ; l'automate de l'usine décide quand chacune peut tourner, passe le travail de l'une à l'autre et arrête tout en sécurité.

  1. BatchMélanger et pasteuriser
  2. FillRemplir, capsuler, étiqueter
  3. InspecterRejeter les mauvaises bouteilles
  4. EmballerLe robot empile les packsTu es ici
  5. ExpédierFilmer, l'AGV vers le quai
Sur un vrai site : lieux, pièces et sécurité
  • Halls d'embouteillage de sodas et de jus
  • Usines de sauces, de produits laitiers et d'aliments liquides
  • Liquides ménagers et de soins personnels

Un arrêt d'urgence est câblé via un relais de sécurité qui coupe l'alimentation tout seul. Le programme doit alors tout maintenir à l'arrêt et attendre un Reset et un Start volontaires, pour que rien ne bouge par surprise.

Les cellules de robots sont clôturées. Les rideaux lumineux et les portes verrouillées arrêtent le robot quand quelqu'un entre, et un redémarrage demande un réarmement depuis l'extérieur de la cellule, dans l'esprit de l'ISO 10218 et de l'ISO 13849.

Les tailles, les temps et les vues en coupe sont des choix pédagogiques, pas le plan d'une installation réelle précise.

Continue

Prochaine étape sur la route