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

Exercice : Écrire le dossier de lot au fur et à mesure: formation SCADA pour automate

Numéro de lot, temps de chaque phase, totaux et température maximale, clos à l'instant où le lot se termine.

Fais tenir au réacteur son propre dossier de lot. Numérote chaque lot, chronomètre chaque phase pendant qu'elle tourne, garde les totaux chargés, le temps en attente et la température maximale, et clos le dossier avec son résultat quand le lot se termine, terminé ou abandonné.

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 commande de réacteur discontinu 3D sur lequel tourne cette missionPRO (nécessite Pro) mission
Comment le test se déroule

Un nouveau lot démarre un dossier propre

Test 1 sur 3
Réglé par le testVérifié par le testPas 8 sur 8 · 5.3 s
Level
Avancé
Durée
À propos 45 min
Récompense
+650 XP
Installation
commande de réacteur discontinu en 3D
Éditeurs Siemens
Schéma à contacts (CONT), SCL
Éditeurs Rockwell
Schéma à contacts, Texte structuré
Éditeurs Beckhoff
Texte structuré
Étape
46. SCADA 4 : un enregistrement de lot au fil de l’eau
Comportement exigé

Écrire le dossier de lot au fur et à mesure: ce que ton code doit faire

La commande du lot est écrite et fonctionne. Écris le relevé en dessous. Un lot est en cours tant que State vaut 10 ou 20 : garde cela dans InBatch. Quand InBatch s'active, un nouveau relevé commence : ajoute 1 à BatchNo, mets Result à 0, ReportReady à FALSE, chaque durée à 0.0 et PeakTemp à Temp. Tant que Run est actif, ajoute 0.02 à chaque cycle à la durée de la phase en cours : TimeA en phase 1, TimeB en 2, TimeHeat en 3, TimeReact en 4, TimeCool en 5, TimeDrain en 6. Tant que State vaut 20, ajoute plutôt 0.02 à TimeHeld. Tant que InBatch est actif, PeakTemp suit Temp vers le haut et jamais vers le bas, TotalA copie VolA et TotalB copie VolB. Le lot se termine quand State atteint 40 ou 30 : mets Result à 1 pour terminé ou à 2 pour abandonné, et ReportReady à TRUE. Ensuite, rien dans le relevé ne change avant le début du lot suivant. Dans l'onglet Écran opérateur, choisis comment le rapport écrit une durée, ce qu'il montre à côté de chaque valeur, et ce que reçoit un lot abandonné.

Nouveau lot
Quand InBatch s’active : BatchNo + 1, Result 0, ReportReady désactivé, temps à 0, PeakTemp := Temp.
Durées
Ajoute 0.02 par cycle à la phase en cours tant que Run est actif ; à TimeHeld quand State vaut 20.
Fin
State 40 : Result 1. State 30 : Result 2. Les deux activent ReportReady, et le dossier s'arrête.
Table des variables

Écrire le dossier de lot au fur et à mesure: entrées et sorties

Ton programme lit 9 entrées et pilote 23 sorties. Une entrée de plus pilote la simulation ou affiche une mesure, 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 besoinLancer un lot
HoldBOOLLitUne entrée dont ton code a besoinMettre le lot en attente
RestartBOOLLitUne entrée dont ton code a besoinRedémarrer un lot en attente
AbortBOOLLitUne entrée dont ton code a besoinAbandonner le lot
ResetBOOLLitUne entrée dont ton code a besoinRéinitialiser à Idle
ChargeFlowREALLitUne entrée dont ton code a besoinDébitmètre de charge, L/s
LevelREALLitUne entrée dont ton code a besoinContenu, L
TempREALLitUne entrée dont ton code a besoinTempérature du lot, °C
AgitatorRunningBOOLLitUne entrée dont ton code a besoinAgitateur à vitesse
CoolingFailBOOLPas nécessairePour tester ou observer ; ton code peut s'en passerEssaie : l'eau de refroidissement manque
ValveABOOLÉcritUne sortie que ton code commandeCharger depuis le bac A
ValveBBOOLÉcritUne sortie que ton code commandeCharger depuis le bac B
AgitatorBOOLÉcritUne sortie que ton code commandeFaire tourner l'agitateur
SteamBOOLÉcritUne sortie que ton code commandeVapeur vers la double enveloppe
CoolingBOOLÉcritUne sortie que ton code commandeEau de refroidissement vers la double enveloppe
DrainBOOLÉcritUne sortie que ton code commandeVanne de sortie du fond
RunLampBOOLÉcritUne sortie que ton code commandeColonne d'état : Running
HeldLampBOOLÉcritUne sortie que ton code commandeColonne d'état : Held
AbortLampBOOLÉcritUne sortie que ton code commandeColonne d'état : Aborted
CompleteLampBOOLÉcritUne sortie que ton code commandeColonne d'état : Complete
BatchNoINTÉcritUne sortie que ton code commandeDossier : numéro de lot
ResultINTÉcritUne sortie que ton code commandeDossier : 0 en cours, 1 terminé, 2 abandonné
ReportReadyBOOLÉcritUne sortie que ton code commandeDossier : le lot est terminé et son dossier est clos
TotalAREALÉcritUne sortie que ton code commandeDossier : A chargé, L
TotalBREALÉcritUne sortie que ton code commandeDossier : B chargé, L
TimeAREALÉcritUne sortie que ton code commandeDossier : secondes de chargement de A
TimeBREALÉcritUne sortie que ton code commandeDossier : secondes de chargement de B
TimeHeatREALÉcritUne sortie que ton code commandeDossier : secondes de chauffage
TimeReactREALÉcritUne sortie que ton code commandeDossier : secondes de réaction
TimeCoolREALÉcritUne sortie que ton code commandeDossier : secondes de refroidissement
TimeDrainREALÉcritUne sortie que ton code commandeDossier : secondes de vidange
TimeHeldREALÉcritUne sortie que ton code commandeDossier : secondes en attente
PeakTempREALÉcritUne sortie que ton code commandeDossier : température la plus haute du lot, °C

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

Écrire le dossier de lot au fur et à mesure: ce que vérifient les tests

  1. Chaque Start ouvre un nouveau dossier : BatchNo augmente de un et chaque valeur repart de zéro.
  2. Le temps de chaque phase ne compte que pendant que cette phase tourne ; le temps en attente est compté à part.
  3. PeakTemp est la température la plus haute du lot ; TotalA et TotalB sont les litres chargés.
  4. Quand le lot se termine ou est abandonné, Result dit lequel, ReportReady s'active, et le dossier ne change plus.
  5. Le rapport écrit les temps en minutes et secondes, montre chaque cible à côté de sa valeur, et donne aussi un rapport à un lot abandonné.
  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

Dans une usine pharmaceutique ou agroalimentaire, chaque lot laisse un dossier que le personnel qualité relit avant la libération du produit. Le SCADA le collecte auprès de l'automate à l'instant où le lot se termine.

Un lot sans dossier ne peut pas être libéré, et un dossier écrit après coup n'est pas fiable. Dans les deux cas, la production d'une journée est bloquée ou mise au rebut.

Où tu trouverais çaFabriquer le lot, garder la réaction bien en main et s'arrêter en sécurité à tout instant

Les usines de lots chimiques, pharmaceutiques et alimentaires suivent des recettes par phases. Les opérateurs peuvent mettre un lot en attente et le relancer, ou l'abandonner ; l'automate doit savoir exactement ce qui est sûr dans chaque état. Certaines réactions dégagent de la chaleur, et si le refroidissement prend du retard, elles s'emballent.

  1. ChargementA, puis B
  2. Réagir80 °C pendant 30 sTu es ici
  3. RefroidirJusqu'à 40 °C
  4. RefoulementVers le récepteur
Sur un vrai site : lieux, pièces et sécurité
  • Produits chimiques de spécialité et résines
  • Suites de lots pharmaceutiques et biotechnologiques
  • Ingrédients alimentaires et arômes

Des réactions emballées ont provoqué des catastrophes comme Seveso (1976) et T2 Laboratories (2007). Les vrais réacteurs ont des déclenchements indépendants de température haute et des systèmes de décharge.

L'ISA-88 définit le modèle d'états utilisé ici, pour que les opérateurs partout sachent ce que veulent dire Hold et Abort.

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