Configuring e-stop disables motors
Hoping someone might be able to assist me with a funky issue I'm finding! My setup (a new CNC that I'm bringing online slowly!):
- Driver: Leadshine MX4660 for the 4 main axes plus Leadshine DM442 for the slave axis. Here's the link to the MX4660 manual
- LinuxCNC: Vers 2.6.4, using StepConf for setup
- 4 axes plus slave: X, X (slave), Y, Z, and A
- Motors are all Nema 23 stepper
- normal parallel cable connection
- e-stop button: link here
The Leadshine has a dedicated e-stop input and output. Per the manual, the e-stop is to be connected using Normally Closed, sends 0 volts normally and 5 volts on error to pin 15. Linuxcnc typically expects the opposite, so I have the Inverted box checked for pin 15.
The issue: I initially had the e-stop button wired into the Leadshine driver but not configured in StepConf. In that case, all of the motors work correctly (both X motors, Y, Z, and I've not yet tested A or the spindle) when I jog the axes and when I run some test g-code samples. I've now gone into StepConf to set up the e-stop (see attachment below for settings), using pin 15. When I run the system with these settings, the e-stop appears to function correctly (i.e. LinuxCNC shows "e-stop" and shuts the power down when it's pressed, and returns power when e-stop is reset), but now none of the motors work with the exception of the slave X motor. Might be coincidence but that's the only one that also has "Inverted" checked in StepConf? Any suggestions? Jogging the axes shows movement on the screen but not at the motors. When I put pin 15 back at Unused, motors function normally.
My stepconf (note the second X motor direction is inverted because it needs to mirror the other X motor)
Please Log in or Create an account to join the conversation.
You need to post the actual .ini and .hal files you are trying to run, rather than tell us what you entered into stepconf.
zip the whole dir and attach that
If you have a charge pump as well as estop for instance, that can greatly complicate things as they get linked together.
regards
Please Log in or Create an account to join the conversation.
To make the MX4660 work properly, setting this switch to the right position is required. The MX4660 is featured with a feature called "Charge Pump", a watchdog timer to enable/disable the MX4660. When the charge pump feature is turned on, the MX4660's activation will depend on the receiving of 10 KHz signals at pin 16 of the DB25 connector. When the "Charge Pump" feature is turned off, the MX4660 wil be activated without such verification. By default, the charge pump feature is turned on, with the "Charge Pump" set to the "Off" position (means "Charge Pump" ON).
I currently have it at the default setting so, as I understand it, the charge pump is on and it requires the signal on pin 16. Should I just try to turn the charge pump off?
Thanks!
Please Log in or Create an account to join the conversation.
- kornphlake79
- Offline
- Senior Member
- Posts: 55
- Thank you received: 10
Because my machine doesn't support a charge pump I haven't investigated how the E-stop and charge pump interact, but it may be complicated as ArcEye suggests. It wouldn't hurt to try disabling the charge pump for testing purposes, but I'd recommend keeping the power to the drives switched off until the PC is booted up and LinuxCNC is launched as I described above.
Please Log in or Create an account to join the conversation.
I think you will find that it is the interaction between the internal estop and charge-pump that prevents operation.
This is not aided by the MX4660 requirement for a connection across the 'Estop' signal terminals, when more sanely these could be regarded as an 'Enable' signal and treated as such.
Pin 15 is not actually an Estop signal, but a Fault signal, encompassing both internal driver error and EStop.
I would suggest that you connect the charge-pump without estop linkage, this will provide a cut out if the computer losses power, or the user operates machine-off or estop.
It will not however link the charge-pump.enable to the state of estop, which is where the problem arises.
Then wire the Estop button externally into Linuxcnc, through a second signal (inverted as necessary)
This is how I did the same sort of thing with one of my mills, the .hal file still being annotated as a reminder, because of all the problems it caused me.
################################################################################
# Hardware estop button
# This is only setup that ensures external ESTOP works and also enables charge pump
##### net estop-out <= iocontrol.0.user-enable-out => charge-pump.enable
##### net estop.ext => charge-pump.enable
# is what stepconf gives you and it doesn't work
#################################################################################
net charge-pump => parport.0.pin-01-out
net charge-pump <= charge-pump.out
net estop-out iocontrol.0.user-enable-out
net estop-ext <= parport.0.pin-10-in-not
net estop-out <= iocontrol.0.user-enable-out
net estop-ext => iocontrol.0.emc-enable-in
You will need to open your .hal file in an editor to make the changes, stepconf cannot do this for you
regards
Please Log in or Create an account to join the conversation.