Problem
I am trying to move my motor with an Ingenia servo drive with MotionLab but I can't manage either to make it move or move it in the controlled way that I want. What can I do to solve this?
Solution
This is quite a complex problem that can be caused by several causes that don't relate to each other much. Therefore, here we will present a procedure which will include a series of checking regarding aspects of the system from both hardware, firmware and software's point of view. After following this procedure, or part of it depending on the starting step, you should be able to understand the cause of your problem and what kind of actions can be done in order to overcome it or proceed.
Wiring checking
First of all, it needs to be checked that the wiring of the motor has been done correctly and according to the manuals. Information on how to wire the different types of motors to the drives can be found in the motor and shunt braking resistor section of each manual. In addition to the motor, feedback devices and power supply need to be wired as well. Make sure that there are no short-circuits between any of the pins of the drive. Power supply checking
After the wiring has been checked and everything is according to the manuals, we need to make sure that the power supplies are ON and proving power to the drive. Otherwise, only with the USB (or serial, CANopen, EtherCAT) cable, you will not have enough power to enable the motor and you will get a fault with the error code 0x5430 "Input stage problem detected. Voltage not stable or not available (system protection)". If the drive requires both power supply and logic supply, make sure that both of them are ON and providing enough power.
You can check whether the drive has been properly supplied with power when you see the Power LED has a green light. An example of where this LED can be found in the drive can be seen in the following picture (this case is for the Pluto servo drive): MotionLab checking
After ensuring that power is being provided by the supplies, there are a series of things to be checked from the software point of view. These are the following:
Configuration checking
Verify that there are no limitations in terms of current, velocity or torque in any of the following windows:
- Profiler (if using Profile Position/Velocity/Torque modes)
In addition to this, verify in the Enable-Disable and Inputs Outputs that there is no digital input mapped to the functionality "Motor enable". In case you are using that functionality, then make sure that the input is ON whenever you attempt to enable the motor. If you need more help on how to map the "Motor enable" functionality to a digital input please make sure to check this article: How to enable your motor from a digital input. Open-loop checking (internally generated commutation)
After checking that there are no limitations in the configuration of the drive, it is time to perform the first test in order to see the motor move. This will be done by using the Open loop tab in the Move window.
If you are using a brushed motor or a voice coil motor, you will only need to select a "target voltage" in the 5-20% range in order to see the motor move (even if it is quite slow).
If you are using a brushless motor, then you will need to select the option "internally generate commutation angle" and then select a "target voltage" in the 5-20% range and a target frequency between 250-1000mHz in order to see the motor move as well.
After clicking "Motor enable" we need to see the motor move, this verification can be done by looking at the motor shaft only since we haven't verified if the feedback device that we are using works properly. If we can see movement, then this first checking is complete and we can ensure that there is no problem with the phases of the motor.
Feedback checking (BLDC and PMSM only)
Once we have checked that the motor is able to move, we need to ensure that the feedback device that we are using in our system is working properly since the electronic commutation of the motor will be based on that feedback. Therefore, we need to ensure that we are reading the position properly from our feedback device or otherwise the commutation will not be done in an efficient way or it might not be done at all.
In order to see if we read the position correctly please do this quick test:
- Open the Move window and use Open-loop mode with the "internally generate commutation angle" option selected and set some parameters for voltage and frequency like the ones that you used in the previous section to verify that the motor is able to move.
- Set up the right parameter for "Position sensor" in the Actuator window
- Open the Scope and start plotting the register "Position actual value"
- Enable the motor in the Move window and check that the position in the Scope starts changing accordingly.
- If you see no movement at all, then you have a problem with the feedback device which is not working properly. There is a high chance that it is broken or that the feedback stage of the drive is broken. If this happens, please contact Ingenia support.
If you are able to stop at step number 4, then your feedback device is working properly and should be able to provide proper electronic commutation.
Commutation checking (for brushless motors only)
After verifying that the motor is able to move, the commutation needs to be properly calibrated in order to be able to move the motor in a controlled way. For that, the Commutation window needs to be filled in the appropriate way. Depending on the feedback devices of the system, an initial angle determination method shall be used but in the end, the calibration needs to be done with success or otherwise the commutation will not be done in a good way.
If the system only uses a digital encoder as a feedback device, then a forced alignment procedure will be needed after every power-on and motor enabling. In order for it to be successful, the parameters of current, time and tolerance need to be set accordingly. When the system has digital halls or more complex feedback devices such as absolute encoders or resolvers, then we can use them as reference sensor while doing the "non incremental sensor used" and then use the Calibrate button (while selecting more or less torque depending on the application) to calibrate it.
Before doing that though, the polarity of the sensors would need to be set to the correct value. In order to do that, almost all the feedback devices have an "Auto identify" button in order to do it. However, if that does not work or the feedback device does not have that feature, then an alternative manual procedure needs to be done. This procedure is properly explained in this article: How to calibrate the polarity of your feedback device manually. Tuning checking
After the commutation is calibrated (in brushless motors only) then the only remaining thing that needs to be done is to check the tuning of the torque, position and velocity loops. In order to see the motor moving correctly, please make sure that the 3 loops are tuned according to the response that you expect. If you want to know more about the tuning of these loops, you can take a look at the following links:
After the tuning is done and all the previous steps have been validated, the motor will move according to your needs. However, please make sure to store in the drive the current configuration to avoid running into the same problems after a power off-on cycle of the system.