Lokale voortgang laden…
PLC Gym
PLC Gym-homeNiveau 1, 0 XP · je voortgang
Missie 87 · PRO (vraagt Pro)

Oefening over Log wat een stop verklaart: PLC SCADA-training

Sla een waarde op als hij genoeg verandert, val nooit stil en lees daarna de trend om te vinden wat is uitgevallen.

Geef de historie van de fabriek wat ze nodig heeft om een stop te verklaren. Schrijf de opslag voor twee tags: de luchtdruk, bewaard als hij 0,2 bar beweegt of na 10 s, en de toestand van de lijn, bewaard bij elke verandering of na 10 s. Kies daarna wat je logt en hoe, en lees een vastgelegde stop om de oorzaak te vinden.

Deze missie hoort bij ProMaak een gratis account aan: elk account krijgt een gratis Pro-proefperiode tot 5 december.

Geen creditcard. Niets te betalen. Niets op te zeggen.

Official release: 5 December. Sta op die dag bovenaan de ranglijst en win 3 maanden Pro, plus 2 weken Pro om aan een vriend te geven. De 2e plaats wint 4 weken. De 3e plaats wint 2 weken. Regels

  • Elke les, vanaf nul
  • Elke missie en les, naarmate je niveau stijgt
  • Een praktijktest voor elke titel, met een certificaat
  • Spoel elke test terug, één cyclus tegelijk
  • Uitgewerkte oplossingen als je vastzit
  • De codeconverter, zoveel je wilt
De 3D-modelfabriek waarop deze missie draaitPRO (vraagt Pro) missie
Hoe de test verloopt

Een vlakke lijn krijgt toch zijn hartslag

Test 1 van 3
Ingesteld door de testGecontroleerd door de testStap 9 van 9 · 21 s
Level
Gevorderd
Tijd
Over ons 45 min
Beloning
+500 XP
Opstelling
3D-modelfabriek
Editors voor Siemens
Ladderdiagram (LAD), SCL
Editors voor Rockwell
Ladderdiagram, Gestructureerde tekst
Editors voor Beckhoff
Gestructureerde tekst
Fase
45. SCADA 3: log wat een stop verklaart
Vereist gedrag

Log wat een stop verklaart: wat je code moet doen

De installatiebesturing is geschreven en werkt. Een historian kan niet elke cyclus van elke tag bewaren, dus elke tag wordt opgeslagen bij verandering, met een langzaamste snelheid zodat een vlakke lijn als levend bekend is. Schrijf die opslag in de PLC, zoals een extern station dat doet, zodat alleen verstuurd wordt wat ertoe doet. Luchtdruk: tel elke cyclus 0.02 op bij AirAge. Als AirPressure 0.2 bar of meer boven of onder AirStored ligt, of AirAge 10.0 s bereikt, sla je hem op: kopieer AirPressure naar AirStored, tel 1 op bij AirSamples en zet AirAge op 0. De lijn: tel elke cyclus 0.02 op bij LineAge. Als LineRun afwijkt van LineStored, of LineAge 10.0 s bereikt, sla je hem op: kopieer LineRun naar LineStored, tel 1 op bij LineSamples en zet LineAge op 0. Het tabblad Bedienscherm tekent wat je PLC opslaat over het echte signaal. Kies daar welke tags de historie bewaart, hoe vaak en met welke dode band. Lees dan de stop die vannacht is vastgelegd en zeg wat er faalde.

Lucht
Sla op bij een verandering van 0,2 bar in beide richtingen, of na 10 s.
Regel
Sla op bij elke verandering van LineRun, of na 10 s.
Een opslag
Kopieer de waarde, tel 1 op bij de teller, zet de leeftijd op 0.
Tagtabel

Log wat een stop verklaart: ingangen en uitgangen

Je programma leest 17 ingangen en stuurt 18 uitgangen. Nog 2 ingangen sturen de simulatie aan of tonen metingen, om mee te testen. De namen zijn hetzelfde in de editor van elk merk.

TagDatatypeJouw codeWat het betekent op de machine
StartBOOLLeestEen ingang die je code nodig heeftStart de fabriek
StopBOOLLeestEen ingang die je code nodig heeftStop de fabriek waar ze is
ResetBOOLLeestEen ingang die je code nodig heeftReset na een noodstop of het aanspreken van het lichtgordijn
EStopBOOLLeestEen ingang die je code nodig heeftNoodstop ingedrukt
AirPressureREALLeestEen ingang die je code nodig heeftDruk in het luchtvat, bar
SteamPressureREALLeestEen ingang die je code nodig heeftStoomdruk van de ketel, bar
VesselLevelREALLeestEen ingang die je code nodig heeftNiveau van het mengvat, %
VesselTempREALLeestEen ingang die je code nodig heeftBatchtemperatuur, °C
SugarAddedREALLeestEen ingang die je code nodig heeftSuiker die de weegdoseerder aan deze batch heeft toegevoegd, kg
BufferLevelREALLeestEen ingang die je code nodig heeftNiveau van de buffertank van de vuller, %
BadBottleBOOLLeestEen ingang die je code nodig heeftCamera: er passeert een fles zonder etiket
GateEyeBOOLLeestEen ingang die je code nodig heeftEen fles staat voor de verwerpklep
AccumFullBOOLLeestEen ingang die je code nodig heeftDrie pakken wachten op de robot
CurtainClearBOOLLeestEen ingang die je code nodig heeftStralen van het lichtgordijn ongebroken
PalletFullBOOLLeestEen ingang die je code nodig heeftEen volle pallet wacht of is onderweg naar de wikkelaar
PalletOnWrapperBOOLLeestEen ingang die je code nodig heeftEen pallet staat op de draaitafel van de wikkelaar
WrapDoneBOOLLeestEen ingang die je code nodig heeftDe pallet op de wikkelaar is gewikkeld
PersonInCellBOOLNiet nodigOm te testen of te bekijken; je code kan het weglatenProbeer het: iemand loopt de robotcel in
CompressorFaultBOOLNiet nodigOm te testen of te bekijken; je code kan het weglatenProbeer het: de compressor valt uit
CompressorBOOLSchrijftEen uitgang die je code zetLaat de luchtcompressor draaien
BoilerOnBOOLSchrijftEen uitgang die je code zetZet de ketel aan
WaterValveBOOLSchrijftEen uitgang die je code zetWater in het mengvat
FeederBOOLSchrijftEen uitgang die je code zetLaat de suikerweegdoseerder draaien
AgitatorBOOLSchrijftEen uitgang die je code zetLaat de roerder draaien
SteamValveBOOLSchrijftEen uitgang die je code zetStoom naar de mantel van het vat
TransferPumpBOOLSchrijftEen uitgang die je code zetPomp de batch naar de buffertank
LineRunBOOLSchrijftEen uitgang die je code zetLaat de bottellijn draaien
RejectGateBOOLSchrijftEen uitgang die je code zetVuur de verwerpklep af
RobotEnableBOOLSchrijftEen uitgang die je code zetLaat de robot palletiseren
PalletOutBOOLSchrijftEen uitgang die je code zetBreng de volle pallet naar de wikkelaar
WrapBOOLSchrijftEen uitgang die je code zetLaat de rekfolie-wikkelaar draaien
AGVCallBOOLSchrijftEen uitgang die je code zetRoep de AGV om de gewikkelde pallet op te halen
GreenLampBOOLSchrijftEen uitgang die je code zetSignaalzuil: produceert
AmberLampBOOLSchrijftEen uitgang die je code zetSignaalzuil: start of wacht
RedLampBOOLSchrijftEen uitgang die je code zetSignaalzuil: noodstop of lichtgordijn aangesproken
AirStoredREALSchrijftEen uitgang die je code zetHistorie: de laatst opgeslagen luchtdruk, bar
LineStoredBOOLSchrijftEen uitgang die je code zetHistorie: de laatst opgeslagen toestand van de lijn

Schrijf in Siemens SCL de eigen tags van een blok met een # ervoor, zoals TIA Portal dat doet: #Start. Rockwell en TwinCAT gebruik alleen de naam: Start.

Automatische tests

Log wat een stop verklaart: wat de tests controleren

  1. AirStored volgt AirPressure tot op 0,2 bar nauwkeurig.
  2. Een stabiele druk wordt toch elke 10 s opgeslagen, zodat een vlakke lijn als levend bekend is.
  3. LineStored neemt elke verandering van LineRun over in de cyclus waarin die gebeurt, plus een hartslag van 10 s.
  4. AirSamples en LineSamples tellen er één per opslag: tientallen per minuut, geen duizenden.
  5. De historie bewaart de meting, het commando en de toestand die een stop verklaren, bij verandering, met een dode band net boven de ruis van de sensor.
  6. De vastgelegde stop wordt goed gelezen: de compressor was aangeroepen en de druk bleef dalen.
  1. Probeer het Gebruik de knoppen onder het model en kijk hoe de opstelling reageert.
  2. Oplossing testen Elke controle draait met één druk op je code.
  3. Terugspoelen PRO (vraagt Pro) Mislukt er een, ga dan cyclus voor cyclus terug om te zien waarom.

Vast bij deze missie? Vraag het de leden in de Kleedkamer.

Waarom het ertoe doet

Waar je dit in de praktijk tegenkomt

Een procesarchief (historian) bewaart jarenlange metingen van duizenden tags. Na elke onverklaarde stop is het eerste wat een technicus opent de trend van de minuten ervoor.

Een storing die 's nachts gebeurt zonder dat iemand kijkt, laat alleen na wat is gelogd. Als het commando en de druk niet allebei zijn bewaard, met een snelheid die hoog genoeg is om te zien wat het eerst bewoog, is de oorzaak een gok.

Waar je dit tegenkomtEén besturing voor een hele fabriek: wanneer elke machine mag draaien, en wat haar veilig houdt

Een kleine drankenfabriek maakt een sinaasappeldrank. Suiker en water worden in batches gemengd en gepasteuriseerd en dan naar een vuller gepompt. Flessen worden gevuld, gesloten, geëtiketteerd en geïnspecteerd, in zessen verpakt, door een robot op pallets gestapeld, gewikkeld en door een bestuurderloze heftruck naar de laadkade gebracht. Elke machine heeft zijn eigen bediening; de fabrieksbesturing bepaalt wanneer elke mag draaien, geeft werk van de ene aan de volgende door en stopt alles veilig.

  1. BatchMengen en pasteuriseren
  2. FillVullen, sluiten, etiketteren
  3. InspecterenSlechte flessen verwerpen
  4. InpakkenRobot stapelt pakkenJe bent hier
  5. VerzendenWikkelen, AGV naar laadkade
Op een echte locatie: plekken, onderdelen en veiligheid
  • Frisdrank- en sapbottelhallen
  • Sauzen-, zuivel- en vloeibare voedselfabrieken
  • Huishoud- en verzorgingsvloeistoffen

Een noodstop is bedraad via een veiligheidsrelais dat zelf de stroom afsnijdt. Het programma moet dan alles uit houden en wachten op een bewuste Reset en Start, zodat niets onverwacht beweegt.

Robotcellen zijn omheind. Lichtgordijnen en vergrendelde deuren stoppen de robot als iemand naar binnen gaat, en herstarten vraagt om een reset van buiten de cel, in de geest van ISO 10218 en ISO 13849.

De afmetingen, tijden en doorsneden zijn keuzes voor het onderwijs, geen tekening van één echte installatie.

Ga door

Hierna op de route