DIY build of a gantry milling machine with standalone controller and auto tool change

Motors and motor drivers
 

The answer to the question "which motor, which driver" for my CNC was more or les intuitive.

Should it be simple stepper motors including their drivers, hybrid stepper motors (those, which have a feed back loop, which controls the rotary angle) or even DC servo motors with built in drivers?

I finally got cheep 8Nm hybrid stepper motors for all three axis (I ordered a fourth some month later for the A-axis-extension) including three 70V 500W power supplies. Connecting them to the DDCSV was no problem.

 

 

A documentation of the motor drivers can be found here. Some googeling turned out, that the bought drivers are  compatible with the Leadshine HBS86H, for which documentation can be found here. The drivers can be connected by a serial cable to the PC and the Leadshine configuration software (documentation here, download here) can be used also for this clone. Until now, I did not try this since the factory defaults worked fine for me - room for some experimentation and fine tuning...

I used the micro switches at the controllers to set them to 3200 pulses per revolution, which resulted in 640 pulses/mm using the 5mm pitch ball screws (Parameter #34...#38 of the DDCSV). Any other combination would be also possible (e.g. setting the drivers to 1600 pulses per rev. and setting the DDCSV to 320 pulses/mm). To answer the question, which is "best", is not so simple. Too high pulses/rev. may result in transmission problems, to low in jagged tool paths. Also the maximum frequency the DDCSV is capable to handle affects the decision. Assuming a maximum speed of  10000mm/min (~166.6mm/sec.) results in ~33.3 rev./sec. . Using 3200 pulses/rev this results in about 110kHz -far less than the DDCSV is capable to handle (500kHZ).

 

Some words about the torque:  I never measured it directly and I assume the 8Nm advertised for the motors is less in reality, but it is definitely high enough for the machine.

The following story may work as an example to proof this:

Near the end of the construction of the CNC (all motors worked, the spindle was not finally installed), I accidently stored the spindle holder with attached 8mm screws on the desk the machine is mounted on behind the lower cross bar of the gantry. I tested the Y-movement of the gantry with the MPG, not noticing, that it pushed the spindle holder towards the back end plate of the machine. At one point, the gantry stopped moving and the Y motor driver alarm LED blinked. A quick look revealed the reason. Here a photo, what the cross bar did with the spindle holder, when pushing it to the end plate:

The force needed to bend an 8mm screw with the MPG, not noticing this by sound or any "unusual" effects was a more than a proof. And it reminds me to move away my fingers from the machine when it is working. It has definitely enough power to squeeze fingers to an unhealthy dimension.

Below an image of the opened control cabinet containing the four motor controllers and right to them the four power supplies for the motors.

The power supply in the upper left corner of the cabinet is the 24V supply for the DDCSV controller and other devices using 24V (solenoid valves, water cooling pump...). Left to the motor controllers the VFD for the spindle.

 

Open questions, things to do:

It does not happen frequently during normal usage, but sometimes the emergency stop button of the DDCSV is used ;-)

Using EStop during a fast move of the motors sometimes results in a fault condition of the motor drivers (red LED of one or more  of the drivers is blinking) - obviously as a result of a too fast deceleration. From that time on the faulted motors do not react on any movement command of the DDCSV until powering the complete machine off and on again. Since the motor drivers are mounted in the control cabinet, which normally is closed, this fault situation is not visible immediately.

What I should do is at least using the alarm outputs of the motor controllers and connect them to some LEDs mounted at the door of the cabinet to see the fault immediately. A second step may be to combine their outputs with the EStop of the DDCSV to stop all movements as a result of a fault.

Last but not least I should find a way to reset the controllers from fault status without powering off/on the complete machine. I did not find any documentation of how to do this, but may be, disabling the faulted controller by it's  ENA+ ENA- inputs (unused at the moment) will do the trick.

BTW: Normally a "find home" is not needed any more if performed once using the machine, since DDCSV stores the current positions reliable on power down. Of course this is not true, when a motor driver faults. This means, after a fault state a "find home" must be performed - if this is not done, at least the next tool change will not work, since this uses fixed work space coordinates, which are relative to the (well defined) home position. Here some more words of the implemented home/limit switches can be found.

During writing all this, I realized, that the following can be optimized: The built in rotary encoders of the stepper motors have a resolution of 1000 lines/rev. This means, that the quadratur signal of the motor controllers will have 4000 counts/rev. Setting the motor controllers pulses/rev. to 3200 results in some interpolation, which the controllers have to do. Obviously, this is not a problem, but setting them to 4000  steps/rev. would be "more natural". In this case,  #34...#38 of the DDCSV must be set to 800 pulses/rev.

--> Continue with Home and limit switches

Back to the main page