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

MC_MoveAbsolute

genn
2019-02-13
2019-02-26
  • genn - 2019-02-13

    Hi,
    I am using soMachine software for programming LMC058 PLC from Schneider.
    We are using MC_MoveAbsolute function block to move the axis to a specified location and the movement end will be checked by the done variable of the function block.
    The normal behavior what we expect is this done variable becomes true when the commanded position is reached.
    But in one case(the motor is poorly tuned) when we command the axis to move to 10mm location using MC_MoveAbsolute the motor will goto 10.3mm and will adjust slowly to 10mm and stay there.
    What we seen is the done variable becoming true even before correction. Is that the normal behaviour?
    Just to clear the confusion!

     
  • eschwellinger

    eschwellinger - 2019-02-13

    Hi,

    The motion function blocks (MC_MoveAbsolute / MC_MoveVelocity, MC_CamIn, …) all work on the set values only. With set values, I mean the positions and maybe velocities computed by the PLC and sent to the drive in each cycle of the bus task (e.g. every 4 ms).

    MC_MoveAbsolute.Done means that the set position has reached the commanded position. In general, the actual position of the drive will not have reached the commanded position yet at this point in time.

    Similarly, the output MC_GearIn.InGear and MC_MoveVelocity.InVelocity are TRUE as soon as the set values have are in Gear/in velocity. The actual values of the drive may still lag behind. This behavior is prescribed by the PLCopen standard β€œFunction blocks for motion control”, V2.0, see page 20

    If you want to wait until the drive has settled on the position, you may use the function block SMC_InPosition

    BR
    Edwin

     
  • genn - 2019-02-14

    Hi,
    Whether SMC_Inposition gives proper feedback if the previous operation is other than MC_MoveAbsolute such as MC_MoveVelocity.
    Is there any way to check the axis is at standStill(Actual motor shaft is rotating or not)?
    I used MC_ReadStatus, but its not giving a direct value. We need to make a logic to check whether the axis is moving with the output variables(Homing + discreteMotion + continous motion +... = axis is moving).
    But sometimes this logic result becomes true even if the axis is stationary.

     
  • B.Roth - 2019-02-14

    Hello,

    which drives do you are using? LXM32?
    How is the tuning of the servo-drive? What is the mechanic?
    In my opinin this is only a problem of the tuning. Normally when you are working with softmotion,LMC58 and well tuned drive you do not need any aditional infos for "standstill" of the real axis.
    Please contact your local Schneider Electric support

     
  • genn - 2019-02-15

    Hi,

    Yes, we are using Lexium32A drives. The requirement is that we need to give feedback to an external device that the motor is stationary. I tried using MC_ReadStatus but its only giving information about drive states. I am facing difficulty in deriving a logic to check whether the axis is currently moving or not.

     
  • genn - 2019-02-26

    Hi,
    Basically, I want to get the motor standstill feedback using a function block call.

    B.Roth hat geschrieben:
    Hello,
    which drives do you are using? LXM32?
    How is the tuning of the servo-drive? What is the mechanic?
    In my opinin this is only a problem of the tuning. Normally when you are working with softmotion,LMC58 and well tuned drive you do not need any aditional infos for "standstill" of the real axis.
    Please contact your local Schneider Electric support

     
  • B.Roth - 2019-02-26

    Hello,

    as I recommended before you do not need any other functionblock , the MC_readstatus give the information about standstill !!!
    And to prevent your behaviour that the real axis is still moving after finish the movement is only related to a very poor tuning of the Lexium32.

    Bruno

     

Log in to post a comment.