Welcome to our new forum
All users of the legacy CODESYS Forums, please create a new account at account.codesys.com. But make sure to use the same E-Mail address as in the old Forum. Then your posts will be matched. Close

Keine Bewegung im Schrittmotor. Prog. bzw. Einst. Hilfe

Techrotek
2015-05-05
2015-05-06
  • Techrotek - 2015-05-05

    Hallo Leute,

    ich brauch unbedingt mal eure Hilfe. Ich bin schon seit mehreren Tagen dran, einen Schrittmotor über Codesys zum laufen zu bringen.

    Zum generellen Aufbau:
    Codesys soll auf einen Raspberry Pi laufen und ist mit einem Feldbus über EtherCat verbunden.
    Die Motorsteuerung ist von Nanotec und das Model ist N5.
    Der Schrittmotor verfügt über einen Encoder.

    Soweit läuft das auch alles. Im Programm selber kann ich die Inputs verwenden, nachdem ich die PDO-Info vom Gerät geladen habe. Ich habe die Hilfe von Codesys durchgelesen und das Beispiel Programm abgetippt und auch soweit verstanden. Wenn ich das Programm jetzt Ausführe schaltet sich der Motor auch an, d.h. er könnte sich jetzt bewegen, aber da liegt mein Problem, der Motor macht nichts. Ich habe auch versucht die Variable Adressen im Schrittmotor zu ändern, nachdem die Automatisches Mapping meiner Meinung nach nicht ganz funktioniert hat, aber nach meinen Änderungen hat das Programm auch nicht viel mehr gemacht. Ich hoffe ihr könnt mir da weiter helfen.

    Hier nochmal der Quellcode aus dem Programm:

    CASE iStatus OF
    0:
       Power1(Enable:=TRUE, bRegulatorOn:=TRUE, bDriveStart:=TRUE, Axis:=y_Achse);
       IF Power1.Status THEN
          iStatus := iStatus + 1;
       END_IF
    1:
       MoveAbsolute(Execute:=TRUE, Position:= p, Velocity:=100, Acceleration:=100, Deceleration:=100, Axis:=y_Achse);
       IF MoveAbsolute.Done THEN
          MoveAbsolute(Execute:=FALSE, Axis:=y_Achse);
          iStatus := iStatus + 1;
       END_IF
    2:
       MoveAbsolute(Execute:=TRUE, Position:= 0, Velocity:=100, Acceleration:=100, Deceleration:=100, Axis:=y_Achse);
       IF MoveAbsolute.Done THEN
          MoveAbsolute(Execute:=FALSE, Axis:=y_Achse);
          iStatus := 1;
       END_IF
    END_CASE
    

    So sieht die Variable Einstellung im Schrittmotor aus:

    und so im Feldbus:

    Wenn ihr mehr Informationen braucht hier hätte ich auch das Projket.

    Lieben Gruß und danke im Vorraus.

    IMG: Schrittmotor_Variable.png

    IMG: Feldbus_Variable.png

    SoftMotion_Test.project [333.82 KiB]

     
  • Techrotek - 2015-05-06

    Hey Leute,

    das eigeneltich Problem ist behoben bzw. es liegt garnicht an den Einstellungen. Wenn ich das grade richtig sehe liegt es eher dadran das der aus dem Closed Loop in den Open Loop geht ohne das ich das wollte. Ich muss den Encoder noch rein bekommen und den Closed Loop drin behalten. Ich glaub dann würde der sich bewegen.

    Ein Admin kann denn Beitrag gern schließen.

    Lieben Gruß.

     

Log in to post a comment.