Een stagiair vroeg eens waarom zijn vulmachineprogramma soms een stap oversloeg en de fles vulde voordat de fles was gepositioneerd. Het antwoord was geen ontbrekende timer — het was een ontbrekende toestand. Zijn programma was een stapel onafhankelijke voorwaarden; echte sequentiële machines zijn een toestandsmachine, en het verschil is het verschil tussen een programma dat op papier werkt en een programma dat op maandag werkt.
Sequentiële controle is overal in de automatisering: een vullijn, een draaitafel, een stanspers, een spuitcabine. De klassieke fout is om elke output als een losse voorwaarde te schrijven — "wanneer sensor A en timer B, open klep C" — en dan de onmogelijke combinaties om 2 uur 's nachts te debuggen. De oplossing is om te stoppen met denken in outputs en te beginnen met denken in toestanden.
Wat een Toestandsmachine Eigenlijk Is
Een toestandsmachine is een set van benoemde stappen en de regels voor het bewegen tussen deze stappen. De machine bevindt zich altijd in precies één stap: WACHTEN, POSITIONEREN, VULLEN, AFDICHTEN, UITWERPEN. Elke stap heeft invoeracties, uitgangsvoorwaarden en bewakers. De fles wordt alleen gevuld in de VULLEN-stap, en de VULLEN-stap is alleen bereikbaar vanuit POSITIONEREN wanneer de flesensor de positie bevestigt. Het klinkt als bureaucratie; het gedraagt zich als engineering.
In xLogicSoft's FBD komt een toestandsmachine schoon overeen met het klassieke Shift Register-patroon of met F-vlaggen die als stapbits worden gebruikt. Het patroon: één F-vlag per stap, een set van overgangsvoorwaarden, en een eenmalige overgangsblok zodat de machine precies één stap per gebeurtenis vooruitgaat. Omdat de huidige stap altijd zichtbaar is — de LCD toont welke F-vlag actief is — kan de operator en de onderhoudsman in één oogopslag zien waar de machine denkt dat hij is. Die enkele functie verkort de tijd voor probleemoplossing meer dan welk diagnostisch handboek dan ook.
Het Bouwen: Drie Vulstations
Neem een eenvoudig voorbeeld met drie stations: een fles arriveert, wordt gevuld, wordt afgesloten. De stappen:
- Stap 0 IDLE: alle uitgangen uit. Overgang: fles-aanwezig sensor, startdrukknop.
- Stap 1 POSITIONEREN: transportband draait totdat de fles stopt bij de vulkop. Overgang: positie sensor.
- Stap 2 VULLEN: vulklep opent voor een bepaalde tijd of totdat de niveausensor afgaat. Overgang: timer klaar.
- Stap 3 DICHTEN: dopper laat zakken en drukt. Overgang: druk bevestigd, timer klaar.
- Stap 4 UITWERPEN: transportband draait om de fles eruit te bewegen. Overgang: uitgangssensor is vrij.
Elke overgang gebruikt een On-Delay of een Wiping Relay (eenmalig) blok zodat de vooruitgang precies één keer gebeurt. De bewaker op elke overgang is de stap zelf — Stap 2 kan niet beginnen tenzij de machine zich in Stap 1 bevindt, punt. De fles kan niet vroeg worden gevuld omdat "vroeg" niet bestaat als een voorwaarde; het staat niet in de stapentabel, en de fles is niet gepositioneerd totdat de machine POSITIONEREN heeft verlaten.
Geef de operator een handmatige stapmodus voordat je ze iets anders geeft. Een selectoringang laat de machine één stap tegelijk door de sequentie vooruitgaan, zodat een opstellingstechnicus de lijn individueel door POSITIONEREN, VULLEN en AFSLUITEN kan joggen terwijl hij naar de actuatoren kijkt. De toestandsmachine maakt dit triviaal — één stap vooruitgaan is gewoon de volgende overgang forceren — en het verandert de ingebruikname van een mysterie in een checklist. Machines die niet handmatig kunnen worden doorgestapt, zijn machines die met een schroevendraaier worden gedebugd.
De Foutmodus Test
Hier is de oefening die onthult of je een toestandsmachine of een voorwaardelijke stapel hebt gebouwd: lijst de noodgevallen op. Fles vastgelopen onder de vulkop? De machine moet in VULLEN blijven, de pomp stoppen en alarm slaan — niet in UITWERPEN dwalen en product op de vloer dumpen. Sensor faalt en meldt "fles aanwezig" voor altijd? De machine moet de POSITIONEREN-stap tijdslimiet geven en alarm slaan, niet dezelfde onzichtbare fles de hele nacht vullen. Sensor faalt de andere kant op, "nooit aanwezig"? De machine wacht geduldig — dat is prima, dat is wat machines zouden moeten doen.
Schrijf een watchdog in het programma: als de machine langer dan de maximale tijd van de stap in een niet-IDLE stap zit, ga dan naar een FAULT-toestand, snijd de outputs af en laat het alarm knipperen. De maximale tijd is een getal dat je al kent van de cyclusduur — je raadt niet, je handhaaft de natuurkunde.
Bepaal wat er na een fout gebeurt voordat de fout zich voordoet. De gebruikelijke keuze: de machine stopt waar hij is, de operator verhelpt de oorzaak, drukt op reset, en de sequentie keert terug naar IDLE — of naar het begin van de onderbroken stap als het product nog steeds veilig is. Terugkeren naar IDLE is eenvoudiger en veiliger voor kleine machines; halverwege de cyclus hervatten is sneller maar vereist dat elke outputtoestand bekend en bewezen is. Voor een vulmachine is IDLE het eerlijke antwoord — een halfgevulde fles is in beide gevallen afval.
Waarom FBD Beter is dan Ladder hiervoor
Een debuggeergewoonte betaalt zich onmiddellijk terug: maak de huidige stap zichtbaar op de voorste LCD als een eenvoudig nummer. Het eerste rapport van de operator wordt "het zit vast op stap 4," niet "het doet iets vreemds," en stap 4 wijst recht naar zijn overgangsvoorwaarde. In xLogicSoft zijn de vlagbits daar in het monitorvenster, zodat een laptopsessie dezelfde afbeelding toont als de LCD toont. Het afstemmen van de woorden van de operator op de toestand van het programma verkort een zoektocht van twee uur tot twintig minuten elke keer.
Ladderlogica kan een toestandsmachine uitdrukken, maar het kost honderd treden en een diagram dat niemand leest. In FBD staat de stapstructuur voor je: het Shift Register of het vlagblok toont de huidige stap, de overgangsblokken zijn zichtbaar, en de sequentie leest van boven naar beneden. De xLogicSoft-omgeving bevat ongeveer zeventig functieblokken, en een machine met vijf stappen met interlocks past comfortabel op één programmablad. Wanneer de machine verandert — nieuw station, nieuwe sensor — voeg je een stap en twee overgangen toe in plaats van de logica opnieuw te bedraden.
Begin met de stapentabel op papier, dan de vlaggen, dan de overgangen. Het programma zal saai correct zijn, en saai correct is het hoogste compliment dat een automatiseringsprogramma kan verdienen. Machines hebben geen slim nodig; ze hebben voorspelbaar nodig.












