@startuml
!include https://raw.githubusercontent.com/bharatrajagopalan/plantuml-styles/master/activity_skin.pu
| |
start
fork
|Drehteller|
:Drehteller ausschalten;
repeat
:Prüfer fertig?<
:Bohrer fertig?<
:Auswerfer fertig?<
 if(Sensor aktiv ?) then (true)
    :Drehteller anschalten;
 else (false)
    :Drehteller ausschalten;
 endif
 :Drehteller fertig>
repeatwhile()
kill


fork again
|Prüfer|
:Prüfer einfahren;
repeat
:Drehteller fertig?<
 if(Werkstück vorhanden ?) then (ja)
    :Prüfer ausfahren;
    if(Werkstück Normallage ?) then (ja)
        :Sende Bohrer(on)>
    else (nein)
        :Sende Bohrer(off)>
    endif
    :Prüfer einfahren;
 else (false)
 endif
:Prüfer fertig>
repeatwhile()
kill


fork again
|Bohrer|
:Bohrer ausschalten;
:Bohrer hochfahren;
:Werkstück loslassen;
repeat
:Drehteller fertig?<
if(Werkstück vorhanden?) then(ja)
    :Empfange Lage des Werkstücks<
    :Sende Auswerfer>
    if(Teil in Normallage?) then(ja)
        :Werkstück festhalten;
        :Bohrer anschalten;
        :Bohrer herunterfahren;
        :Warte bis Bohrer unten;
        :Bohrer hochfahren;
        :Warte bis Bohrer oben;
        :Bohrer ausschalten;
        :Werkstück loslassen;
    else(nein)
    endif
else (nein)
endif
:Bohrer fertig>
repeatwhile()
kill


fork again
|Auswerfer|

:Auswerfer einfahren;
repeat
:Drehteller fertig?<
:Auswerfer<
:Auswerfen;
:Auswerfer fertig>
repeatwhile()
kill

@enduml