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

RPi mit SM_DRIVE_POSCONTROL

Michl-1982
2015-08-16
2015-08-25
  • Michl-1982 - 2015-08-16

    Hallo zusammen,

    mit Hilfe der Bib aus diesem Fred
    Ansteuerung des Antriebs und Ermitteln der Position funktioniert soweit mit einem rudimentären Programm ganz gut. Nächster Schritt war die Anpassung an SM_DRIVE_POSCONTROL.
    Ich habe das Beispielprogramm durchgesehen, ein neues Projekt erstellt, dort soweit alles übernommen und versucht über IBN die Achse zu fahren, bzw. mit MCPower und MCMove_Velocity zu fahren.
    Dabei bekomme ich überall die Fehlermeldung 34 (Axis not ready for motion).
    Habe ich da irgendwo ein bitchen übersehen? Bin jetzt schon zwei Zwangsreboots an dem Problem dran...

    Gruß

    Michael

    ---Edit---
    Wollte eigentlich das Archiv anhängen, 26MB scheinen aber zuviel zu sein. Daher externer Link

     
  • eschwellinger

    eschwellinger - 2015-08-23

    Hi,
    Der Fehler kommt, wenn der Zustand (nAxisState) der Achse nicht stimmt:

    IF NOT (Axis.nAxisState = discrete_motion OR Axis.nAxisState = continuous_motion OR Axis.nAxisState = synchronized_motion OR Axis.nAxisState = standstill) THEN
    Error := TRUE;
    ErrorID := SMC_AXIS_NOT_READY_FOR_MOTION;
    

    Leider fehlt in dem Archiv die Bibliothek (das ist so gewollt das man nicht versehentlich sein Source libs verschickt, die muss man extra anhaken beim Archiv erzeugen )
    Grüße
    Edwin

     
  • Michl-1982 - 2015-08-23

    Servus Edwin,

    danke für die Antwort.

    Zitat:
    Der Fehler kommt, wenn der Zustand (nAxisState) der Achse nicht stimmt:
    Code:
    IF NOT (Axis.nAxisState = discrete_motion OR Axis.nAxisState = continuous_motion OR Axis.nAxisState = synchronized_motion OR Axis.nAxisState = standstill) THEN
    Error := TRUE;
    ErrorID := SMC_AXIS_NOT_READY_FOR_MOTION;
    Leider fehlt in dem Archiv die Bibliothek (das ist so gewollt das man nicht versehentlich sein Source libs verschickt, die muss man extra anhaken beim Archiv erzeugen )

    Ich hab ihm Projekt mal gesucht, aber konnte nAxisState nicht finden.
    In welcher Bib sollte das zu finden sein? Habe das Archiv mal aktualisiert mit den Bibliotheken (ist nichts geheimes dabei).
    Habe eben noch mal das Original aus dem Tutorial (PosControl) mit meinem verglichen (Bibliotheken) und keinen Unterschied entdeckt.
    Link für das Archiv (29MB).

    Gruß

    Michael

     
  • eschwellinger

    eschwellinger - 2015-08-24

    Hallo Michael,
    nAxisState kommt aus der Axis_ref (die wird ja implizit vom System angelegt für jede Achse)
    SM_Drive_PosControl.nAxisState

    Also schau mal im Watchfenster
    SM_Drive_PosControl.nAxisState
    was nimmt die für Zustände an wenn du versuchst über die PLCopen fb's zu positionieren.

    Grüße
    Edwin

     
  • Michl-1982 - 2015-08-25

    Servus Edwin,

    Startzustand:
    SM_Drive_PosControl.nAxisState := power_off

    Vorgehen_
    MC_Power:
    Enable wird aktiviert
    bRegulator wird aktiviert
    bDriveStart wird aktiviert
    SM_Drive_PosControl.nAxisState := Standstill
    (Pfeil wird blau)

    MC_SetPosition auf z.B. 100

    MC_MoveRelative oder MC_MoveVelocity ausführen
    =>SM_Drive_PosControl.nAxisState := errorstop

    Nach Reset immer wieder das gleiche.

    Gruß

    Michael

     

Log in to post a comment.