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!
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
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
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
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.
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
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
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
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.
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
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
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
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
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
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!
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
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.
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
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.
Hi,
Basically, I want to get the motor standstill feedback using a function block call.
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