I think it might be useful if I gave a brief intro to servo motors and drives for those unfamiliar.
Servo Motor:
Servo motors refer to any motor which regulates position, speed, or torque based on feedback. These can be AC surface permanent magnet, AC interior permanent magnet, DC brushless, DC bushed, stepper motors, etc. The most ubiquitous is the 3 phase synchronous AC servo motor. It is a 3 phase motor with permanent magnets on the rotor (usually on the surface but sometimes buried within). The word synchronous means that the rotor will rotate at the same speed as the electromagnetic field (which is not the case with induction motors). An encoder, which is a shaft angle measuring device, is always present to provide feedback to the servo drive on the location of the motor. The servo drive will compare the motor position to the commanded position and adjust the AC output to correct for any errors in the motor's positioning. You can typically identify a servo by 2 cables exiting the motor (one for power and one for feedback), but some newer motors pack it all in one cable. Also, if it looks expensive, it is probably a servo.
There are dozens or hundreds of kinds of encoders, but the simplest kind (also the kind on this robot) is an optical incremental encoder. This encoder reads a series of slits in a wheel using optical means. The pattern is usually etched in metal on a glass substrate. a pair of receivers provide a pair of square wave signals with a 90 degree phase offset. By looking at the rising and falling edges of the signal as well as which signal is leading the other you can count distance and direction. The drive uses this to calculate the derivative (speed), second derivative (acceleration), and often higher order terms (jerk, snap, crackle, and pop - not kidding). There is often a third slit that occurs in only one position called the "Z" or "Index" signal. It is useful for homing among other things.
Other types of encoders include magnetic, capacitive, as well as absolute variants of each. Absolute encoders know the exact position of the encoder at power on without needing to find the index mark and some can even track the position while powered off with miniature gearboxes. These are obviously more expensive and complicated, but are often the preferred choice for real industrial applications. My CNC uses absolute encoders and loads the position into Mach 4 at startup using serial communications.
Servo Drives:
An AC servo drive is really just a very smart and fast VFD. The AC power enters the drive and is converted into a high voltage DC bus using diodes or SCRs. The DC bus is smoothed and filtered before being presented to 6 IGBT (Isolated Gate Bipolar Transistors) which rapidly switch on and off to approximate an AC voltage waveform at the outputs. The voltage is not a true sinusoid which is why inverter duty motors exist, but the current waveform is a true sinusoid. Here is a very simplified diagram of the inside of the VFD.
The real magic of a servo drive is the high speed processing that occurs to figure out the motor position, positioning error, and the required waveform at the output to achieve positioning. The control algorithm relies on a highly detailed model of the motor response, hence why all the parameters I keep talking about are so very important. If you get them wrong the motor may function very poorly or even burn up.
Entry level servo drives and some standalone models get their command from a pulse train like 99% of hobby CNC guys (including me) use to control their motors. Higher end models will communicate with a central controller over an ultra fast communication network like Ethernet (EthernetIP or EtherCAT) or perhaps a fiber optic network like SERCOS. The Allen Bradley Kinetix 2000 drives I plan to use for this robot will communicate with the PLC over SERCOS. The Kinetix 2000 is a low power rack mounted drive with power sharing. The picture below shows a 6 axis system with a power shunting module on the far right.
So what's so important about commutation? I don't need to worry about that with my VFD...
VFDs typically run asynchronous induction motors. These motors always run slower than the electromagnetic field rotation due to a phenomenon known as slip. Current (and therefore magnetism) will only be induced on the rotor when the stator's magnetic field is rotating relative to it. The closer an induction motor gets to the speed of the magnetic field, the less torque will be produced on the rotor . There is a balance point where the load of turning the motor shaft equals the the torque produced. If a load slows the rotor, the greater difference in rotor speed to magnetic field speed creates increased torque. Since the rotor is magnetized by the relative velocity only, it does not matter what position the rotor is in.
This is not true of permanent magnet AC servo motors which have rotors that are permanently magnetized by magnets glued to their surface. The drive must know the exact mechanical position of the north and south poles of the magnets so it can appropriately time the firing of the windings on the motor. This is known as commutation. If this is not done correctly the motor may not be able to move or it might burn up. Often, the encoder relays additional signals to the drive to indicate the absolute pole position. These are absent from my motors hence all my difficulty.
Some servo drives can self sense the commutation angle by locking one of the winding with DC voltage and measuring the resulting shaft angle, however this is not particularly accurate, is influenced by load placed on the motor, and causes the motor to move without being commanded to do so (up to 1/8 of a revolution).
The signals on the right are typical of trapezoidal commutation signals created by an encoder that actually provides commutation signals.
EDIT: An important thing to add is that every manufacturer goes out of their way to make sure that you can only use their motors and drives together. It is very difficult to find all the motor info from one manufacturer that another needs to run a motor. Sometimes manufacturers don't even let you try to enter the motor data from another manufacturer. Very frustrating. I would highly recommend that unless you really know what you are doing, to avoid mixing and matching servos.
Also servos can be very complicated to set up so buy from a manufacturer who can support you and provides excellent documentation. I'm helping a guy on another forum who spent a lot of money on Alibaba servos that came with manuals that had a mix of Chinese, Russian, and a little English. Trying to set them up totally made whatever money he saved not worth it at all.