Chargement de la progression locale…
PLC Gym
Accueil PLC GymNiveau 1, 0 XP · ta progression
Défi 13 · Trouve le défaut · PRO (nécessite Pro)

Programme d’automate de remplissage de bouteilles : défaut expert

Retrouve la bonne phase sans compter une bouteille à moitié remplie.

Répare la logique de reprise du remplissage et de la sortie. State, Accepted, Rejected, FillValve, ConveyorOn et Done doivent rester corrects malgré les interruptions et les conditions concurrentes.

Ce défi 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 ligne de remplissage 3D sur lequel tourne ce défiPRO (nécessite Pro) défi
Comment le test se déroule

Resume ne peut pas l’emporter sur un bourrage actif ; Stop peut mettre fin à l’état Held

Test 1 sur 7
Réglé par le testVérifié par le testPas 13 sur 13 · 800 ms
Level
Difficile · 40 points
Type
Trouve le défaut
Durée
À propos 45 min
Taux de réussite
Nouveau
Machine
ligne de remplissage en 3D
Siemens
SCL
Rockwell
Texte structuré
Beckhoff
Texte structuré
Le rapport de l’opérateur · ligne de remplissage
Nous avons éliminé un bourrage et ça a redémarré tout seul. Le total du lot incluait une bouteille retirée à moitié pleine. À la fin, nous avions parfois moins de trois bonnes bouteilles.
Comportement exigé

La bouteille comptée deux fois: ce que ton code doit faire

Le brouillon réussit mal une série ininterrompue de trois bouteilles et sa reprise après bourrage n’est pas fiable. Trois défauts interagissent. Regarde une bouteille rester devant le capteur, s’arrêter au seuil de remplissage, puis partir pendant qu’elle est retenue. Volume est un pourcentage d’une bouteille de 1 L : 80% = 800 mL.

États et commandes
0 = repos, 10 = alimentation, 20 = remplissage, 30 = retenu, 40 = sortie, 50 = terminé. ConveyorOn est à ON seulement en 10 et 40. FillValve est à ON seulement en 20 avec BottlePresent. Done vaut TRUE seulement en 50. Les changements de phase ordinaires peuvent utiliser l’ensemble complet des commandes précédent ou nouveau au cycle d’entrée, puis doivent se stabiliser. Stop, une perte d’autorisation, Jam et Hold retirent immédiatement les deux commandes. Ne remplis jamais sans BottlePresent.
Une seule transition
Un nouveau front de Start mène à 10 seulement avec Permit, sans Stop, sans Jam et sans Hold. En 10, BottlePresent mène à 20. En 20, Volume >= 80 mène à 40. Ne traite qu’une seule transition de phase par cycle. Une bouteille doit rester présente pour être terminée.
Priorité et Hold
Stop ou une perte de Permit mène à 0 immédiatement. Jam/Hold a priorité sur la perte de bouteille et sur la fin dans les phases actives, mène à 30 et mémorise SavedPhase. Éliminer la cause ne fait rien tant que Resume n’est pas activé avec Jam/Hold levés. Resume entre dans la phase sauvegardée pendant un cycle avant de traiter de nouveau cette phase.
Acceptées et rejetées
En 40, BottlePresent à FALSE augmente Accepted exactement une fois et retourne à 10 ; le troisième départ accepté mène à 50. Une bouteille perdue pendant le remplissage ou le remplissage retenu augmente Rejected une fois. Le remplissage retenu mémorise alors l’alimentation et attend Resume. Une bouteille terminée retirée pendant la sortie retenue est comptée au prochain passage de la phase de sortie reprise.
Reset / redémarrage
Start doit être relâché puis pressé de nouveau après un Stop ou une perte de Permit. Reset ne fonctionne qu’en 0 ou 50, avec Start relâché, sans Stop et Permit à TRUE : efface Accepted et Rejected et reste au repos. Ignore Reset dans les phases actives. Une fin de cycle ne peut pas être relancée avec Start seul.

Utilise Exécuter et Start. Essaie Jam à 80% et élimine-le sans Resume : les deux commandes restent à OFF. Ensuite, utilise Entrées pour maintenir BottlePresent à FALSE pendant le Hold, au milieu d’un remplissage inachevé. Rejected augmente une fois, jamais Accepted. Rejoue chaque test échoué pour comparer la phase sauvegardée et les totaux de bouteilles.

Table des variables

La bouteille comptée deux fois: entrées et sorties

Ton programme lit 9 entrées et pilote 5 sorties. 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 besoinBouton poussoir Start
StopBOOLLitUne entrée dont ton code a besoinBouton poussoir Stop
ResetBOOLLitUne entrée dont ton code a besoinBouton-poussoir Reset
JamBOOLLitUne entrée dont ton code a besoinSignal de bourrage du convoyeur
BottlePresentBOOLLitUne entrée dont ton code a besoinCellule photoélectrique : une bouteille est devant le capteur
HoldBOOLLitUne entrée dont ton code a besoinBouton-poussoir Hold
ResumeBOOLLitUne entrée dont ton code a besoinBouton-poussoir Resume
PermitBOOLLitUne entrée dont ton code a besoinAutorisation de marche : ON tant qu'il est sûr de tourner
VolumeREALLitUne entrée dont ton code a besoinVolume de la bouteille, %
FillValveBOOLÉcritUne sortie que ton code commandeCommande de la vanne de remplissage
ConveyorOnBOOLÉcritUne sortie que ton code commandeCommande du convoyeur
DoneBOOLÉcritUne sortie que ton code commandeVoyant Done : la tâche est terminée
AcceptedDINTÉcritUne sortie que ton code commandeBouteilles terminées ayant quitté le poste de remplissage
RejectedDINTÉcritUne sortie que ton code commandeBouteilles perdues avant la fin du remplissage

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.

Vérifications automatiques

Ce que testent les vérifications

  1. Seules les bouteilles terminées qui quittent le poste augmentent Accepted.
  2. Jam/Hold l’emporte sur la fin et demande Resume après l’élimination.
  3. Une bouteille inachevée perdue augmente Rejected exactement une fois ; un Reset en phase active ne peut pas effacer les totaux.

Les vérifications lancent 7 tests sur la machine, cycle par cycle : Resume ne peut pas l’emporter sur un bourrage actif ; Stop peut mettre fin à l’état Held; Compter les départs, pas les cycles de remplissage ; terminer trois bouteilles; Un bourrage l’emporte sur la fin, et l’éliminer ne peut pas relancer; Une bouteille perdue pendant le Hold est rejetée exactement une fois; Une bouteille terminée qui part pendant le Hold est comptée à la reprise; Stop l’emporte ; un nouveau Start est requis après le retour de l’autorisation; Un Reset pendant le remplissage ne peut pas effacer la bouteille ni les totaux.

Sur site

Où tu trouverais ça

En dégageant un bourrage sur une ligne d'embouteillage, un opérateur retire une bouteille à moitié remplie. Le contrôleur doit se souvenir de ce qui a été interrompu.

Compter une bouteille à moitié remplie comme bonne envoie des bouteilles trop peu remplies sur la ligne. Un redémarrage pendant que quelqu'un dégage le bourrage peut faire avancer la ligne sans prévenir.

Résolu, ou bloqué ? Parles-en au Vestiaire.

Continue

Plus de défis