This step explains how to configure an incremental encoder properly in the configuration Wizard. In order to do it, you need to properly fill the parameters associated with this encoder in the Control widget (green square below). After this, you can validate that the position readings are correct both by taking a look at the values in the Display widget (blue square below) and performing the incremental encoder test (orange square below) in order to make sure that the encoder readings and pole pairs settings of the motor are correct. Finally, a phasing test (orange square below) can be performed if the incremental encoder is the reference sensor in your system in order to calibrate the initial commutation angle used as the reference to start to commutate the motor.
If you are interested in learning more about the parameters configured in this step, please refer to the firmware manual documentation: Incremental encoder.
Parameters to configure
- Resolution → resolution of the encoder in total counts per mechanical revolution. This is normally the pulses per revolution (ppr or lpr) value that you get from the datasheet multiplied x4.
- Filter → Glitch filter levels of the digital encoder module. There are 10 different glitch filter levels. Each level corresponds to a specific cut-off frequency. Setting this parameter to 0 (100 MHz) will disable the glitch filter.
- Polarity → the polarity of the feedback sensor is a parameter that relates how the position readings change when a positive voltage is applied to the phases of the motor. It can either be "Standard" or "Reversed".
Understanding how the polarity worksIf with polarity set as "Standard, the position increases when a positive voltage is applied, then the polarity is correct as "Standard". On the other hand, if the position readings were to decrease, then the polarity setting would be wrong and you would need to change it to "Reversed" for this particular feedback sensor. Having a correct polarity setting is essential to having the sensor working properly and this is exactly what the incremental encoder test is meant to calculate. On an additional note, the polarity of the incremental encoder does not relate to the polarity of any other feedback sensor in the system (they can be the same or opposite, it does not matter).
Incremental encoder test
This test has the following purposes:
- Validate that the resolution and pole pair parameters introduced by the user are correct → this is done by moving a certain predefined range of motion and counting the position readings so if they match with the expected ones then the test turns successful. If they do not match, then you get a failure and you need to recheck both parameters to see which one could be wrong.
- Determine the polarity of the incremental encoder → this is done by applying always positive voltage first and then negative voltage and seeing how the position readings change. Please note that this polarity determination is not done if the previous validation does not turn out successfully.
Therefore, this test has only two possible outcomes:
- Failed test
- Success test
Encoder resolution quick verification
If you get a failure in this test, a quick check that you can do is verify the resolution of the encoder by moving the shaft manually one full revolution (motor is disabled) and checking that the position readings (blue square in the initial picture) change in the same increment (increment read = resolution parameter). In a system with a gearbox, this can be trickier but you could move the motor in voltage mode (using the Jogs) and check that a full revolution on the output equals an increment in position readings equal to the encoder resolution * gear ratio of the gearbox.
The purpose of the phasing test is the calculation the commutation angle offset so that the incremental encoder can have the correct initial angle in order to commutate in an efficient and stable way. This phasing test will be performed automatically every time you do enable the motor after power cycling the system.
This test can only fail if you have not performed the previous test, the current loop is not properly tuned or if the motor is loaded and it does not move enough during the test. Otherwise, it should always turn successful.
Once you get a success message in the incremental encoder test and the phasing test (if you have it), you can proceed to the next step.