Quantcast
Channel: SPS-Forum - Automatisierung und Elektrotechnik
Viewing all articles
Browse latest Browse all 49402

Probleme bei der State Machine in einer Homing Methode bei mehrfacher Ausführung

$
0
0
Hallo zusammen,

ich bin relativ neu und habe mir Dank diesem Forum schon viel anlesen können. Aktuell bin ich dann wirklich praktisch bei der Umsetzung während einer Inbetriebnahme einer Achse mit TwinCat 3.
Ich arbeite objektorientiert und habe einen Funktionsblock für die Achse geschrieben, wobei die verschiedenen Methoden MoveAbsolut, Homing ... lauten.

Ich habe irgenwie noch ein Problem mit der StateMachine.

Mit dem aktuellen Aufbau kann ich das Homing nur einmal ausführen weil danach der Schritt 10 einfach übersprungen wird. Das das passiert macht Sinn, aber mir fällt keine Alternative ein.

(Twincat3)
Code:

Deklaration
...
mcHoming            : MC_Home;   
stHomingOut        : ST_McOutputs;
...
Schrittekette
...
    5:
    IF ibEndSwitch0=FALSE THEN
        nSwitchHoming        :=100;
    ELSIF ibEndSwitch0=TRUE THEN
        nSwitchHoming        :=10;
    END_IF
   
    10:   
    (* homing block*)
    mcHoming(    Axis              := Axis1,
                Execute          := TRUE,
            (* set by NC Control 
                Position          := -5,
                HomingMode      := MC_DefaultHoming,  *)
                bCalibrationCam  := ibEndSwitch0,
                Done              =>StHomingOut.Done,
                Busy              =>stHomingOut.Busy,
                Active          =>stHomingOut.Active,
                CommandAborted=>stHomingOut.CommandAborted,
                Error              =>stHomingOut.Error,
                ErrorID          =>stHomingOut.ErrorID
            );
    IF mcHoming.Done THEN //alt StHomingOut.Done:
        nSwitchHoming:=20;
    END_IF

    20:
    ...

Das Problem ist, dass beim zweiten mal den .Done ausgang bereits aktiviert ist, unabhängig von der aktuellen Position. Beim Homing mag das eventuell sogar ok sein, dass ich die Methode nur einmal ausführen kann. Bei anderen Methoden, wie MoveAbsolut hingegen ist es ein noch größeres Problem

Viewing all articles
Browse latest Browse all 49402


<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>