Hurco BMC 20 Ultimax 3 Retrofit

More
20 Jan 2016 03:57 #68794 by Jake
Thanks Jon!

I did do a full file backup of unmolested and less molested files to be able to go back on.

I am trying to do things in little steps now so if I do have something blow up then it will be easier for me to debug. I am doing all my changes on git now so ill have some history tracking also.

I even tried just swapping the
din.01 to din.02
and
din.02 to din.01

and it would not start after that.

I am trying to have
# connect limit/home switch outputs to motion controller
newsig Xminlim bit
newsig Xmaxlim  bit
newsig Xhome bit
linksp Xminlim <= ppmc.0.din.01.in-not
linksp Xminlim => axis.0.neg-lim-sw-in
linksp Xmaxlim <= ppmc.0.din.02.in-not
linksp Xmaxlim => axis.0.pos-lim-sw-in
linksp Xmaxlim => axis.0.pos-lim-sw-in
linksp Xminlim axis.0.home-sw-in

newsig Yminlim bit
newsig Ymaxlim  bit
newsig Yhome bit
linksp Yminlim <= ppmc.0.din.04.in-not
linksp Yminlim => axis.1.neg-lim-sw-in
linksp Ymaxlim <= ppmc.0.din.05.in-not
linksp Ymaxlim => axis.1.pos-lim-sw-in
linksp Ymaxlim => axis.0.pos-lim-sw-in
linksp Yminlim axis.0.home-sw-in

newsig Zminlim bit
newsig Zmaxlim  bit
newsig Zhome bit
linksp Zminlim <= ppmc.0.din.07.in-not
linksp Zminlim => axis.2.neg-lim-sw-in
linksp Zmaxlim <= ppmc.0.din.08.in-not
linksp Zmaxlim => axis.2.pos-lim-sw-in
linksp Zmaxlim => axis.0.pos-lim-sw-in
linksp Zminlim axis.0.home-sw-in

#newsig Aminlim bit                    
#newsig Amaxlim  bit
#newsig Ahome bit
#linksp Aminlim <= ppmc.0.din.12.in-not
#linksp Aminlim => axis.3.neg-lim-sw-in
#linksp Amaxlim <= ppmc.0.din.13.in-not
#linksp Amaxlim => axis.3.pos-lim-sw-in
#linksp Amaxlim => axis.0.pos-lim-sw-in
#linksp Aminlim axis.0.home-sw-in



Since the A is not going to be used at the moment on this machine should I just # all the lines associated with it? I am planning on getting a 4th eventually.


I do not know if i have encoder index pulses, I think mine do but not 100%


hmm I can not think of what other questions I needed to ask

Thanks again!

Please Log in or Create an account to join the conversation.

More
20 Jan 2016 04:14 #68795 by jmelson
You have this line duplicated. I think this is what is causing the problem.
linksp Xmaxlim => axis.0.pos-lim-sw-in
linksp Xmaxlim => axis.0.pos-lim-sw-in

Since the A is not going to be used at the moment on this machine should I just # all the lines associated with it? I am planning on getting a 4th eventually.

Yes, you can, but it could cause LinuxCNC to not start, if you don't get every place in all the files that reference something connected with the 4th axis.

I do not know if i have encoder index pulses, I think mine do but not 100%

If your encoders only have A and B, then there is no index. If they have A, B and Z, then they do.
The index feature allows more precise homing, generally to the very same encoder count every time you home. So, if you set up a fixture and locate it with a touch-off on Monday, and then shut down and restart LinuxCNC on Tuesday, you can pick up the same location without doing the touchoff again.

Jon
Jon
The following user(s) said Thank You: Jake

Please Log in or Create an account to join the conversation.

More
20 Jan 2016 04:28 #68796 by Jake
I deleted the extra lines, looks like I had them on every axis.

I will leave the fourth inputs then, sounds like that will be way simpler. I have plenty of inputs with 2 DIO's

Yep mine are A,B,Z's I was wondering if I was going to be able to do that or have to leave the machine idling. The old Mori I had you had to leave going. If it shut down it was a whole new day. It was like 50 first dates with that machine.

Please Log in or Create an account to join the conversation.

More
21 Jan 2016 00:43 #68856 by Jake
IT WORKED THIS TIME!!!!!


Now onto verifying limits work correctly and getting 24vdc to the servos and setting up the way lube and servo enable SSR's

THANKS EVERYBODY!!!!!!

Please Log in or Create an account to join the conversation.

More
21 Jan 2016 03:44 #68864 by Jake
Onto the next section!

How does this look for the servo enable,

Is there a list where all the commands are? like on this one I saw the "amp-enable-out" in the motion section, but I did not know if the statement "amp-enable" would be accepted.

# Servo Amp Enable      SSR1
# newsig Amp-enable bit
# linksp Amp-enable <= ppmc.0.dout.01.out
# linksp Amp-enable => axis.01.amp-enable-out

I also found the amp faults
# Servo Alarms  X DI0, Y DI3, Z DI6, A DI9
# linksp amp-fault-in <= ppmc.0.din.00.in
# linksp amp-fault-in => axis.00.amp-fault-in
# linksp amp-fault-in <= ppmc.0.din.03.in
# linksp amp-fault-in => axis.01.amp-fault-in
# linksp amp-fault-in <= ppmc.0.in.06.in
# linksp amp-fault-in => axis.02.amp-fault-in
# linksp amp-fault-in <= ppmc.0.in.09.in
# linksp amp-fault-in => axis.03.amp-fault-in

Now I just need to find a way to reset the fault alarms.


Also for the lube pump

# Way Lube Pump       SSR 3
# Way Lube Level      DI 27
# linksp lube <= ppmc.0.dout.03.out
# linksp lube => iocontrol.0.lube
# linksp lube_level <= ppmc.0.din.27.in
# linksp lube_level => iocontrol.0.lube_level

The method of approach with the software is starting to make more sense now.

Please Log in or Create an account to join the conversation.

More
21 Jan 2016 05:03 #68867 by jmelson

Onto the next section!

How does this look for the servo enable,

Is there a list where all the commands are? like on this one I saw the "amp-enable-out" in the motion section, but I did not know if the statement "amp-enable" would be accepted.

Amp-enable is a signal, you can use any name that is not the name of a pin or command.
newsig declares the name of a signal. linksp links a signal to a pin.
There is a newer syntax that puts all this on one line. It would look like :
net Amp-enable axis.01.amp-enable-out ppmc.0.dout.01.out

The <= and => arrows are for human readability only, and are ignored by hal.
axis.nn.amp-enable-out are all controlled by the same internal signal, so they all come on and off at the same time. I generally connect axis.00.amp-enable-out to all the places that need to be enabled.

# Servo Amp Enable      SSR1
# newsig Amp-enable bit
# linksp Amp-enable <= ppmc.0.dout.01.out
# linksp Amp-enable => axis.01.amp-enable-out

I also found the amp faults
# Servo Alarms  X DI0, Y DI3, Z DI6, A DI9
# linksp amp-fault-in <= ppmc.0.din.00.in
# linksp amp-fault-in => axis.00.amp-fault-in
# linksp amp-fault-in <= ppmc.0.din.03.in
# linksp amp-fault-in => axis.01.amp-fault-in
# linksp amp-fault-in <= ppmc.0.in.06.in
# linksp amp-fault-in => axis.02.amp-fault-in
# linksp amp-fault-in <= ppmc.0.in.09.in
# linksp amp-fault-in => axis.03.amp-fault-in

I just set up the amp faults to cause an e-stop by breaking the estop chain. But, depending on your amps, that may make it hard to tell which servo amp had the fault. If they have latching indications, I'd just hook them all to the estop. Otherwise, it ties up a lot of digital inputs.

Now I just need to find a way to reset the fault alarms.

Also for the lube pump

# Way Lube Pump       SSR 3
# Way Lube Level      DI 27
# linksp lube <= ppmc.0.dout.03.out
# linksp lube => iocontrol.0.lube
# linksp lube_level <= ppmc.0.din.27.in
# linksp lube_level => iocontrol.0.lube_level

I have not used the lube pump feature, would theis be activated by an M code? Some people rig timers to provide some lube every hour the spindle is on.

The method of approach with the software is starting to make more sense now.

Oh good! It takes a while to be somewhat comfortable in HAL.

Jon
The following user(s) said Thank You: Jake

Please Log in or Create an account to join the conversation.

More
21 Jan 2016 10:51 #68873 by andypugh

Is there a list where all the commands are?


As Jon said, you seem to be talking about signals, and they can be anything (case sensitve) that you want.
Feel free to use your native language for signals, if you prefer.

The actual HAL commands are listed here:
linuxcnc.org/docs/2.7/html/man/man1/halcmd.1.html

Every HAL module that you load will create its own pins. The complete list depends on which modules are loaded.
You can get a list by opening a terminal with LinuxCNC loaded and using the command "halcmd show pin"

You will almost certainly have all of these:
linuxcnc.org/docs/2.7/html/man/man9/motion.9.html
and these:
linuxcnc.org/docs/2.7/html/man/man1/iocontrol.1.html
Probably these
linuxcnc.org/docs/2.7/html/man/man1/halui.1.html
and because you have loaded the PPMC driver, these:
linuxcnc.org/docs/2.7/html/drivers/pico-ppmc.html

Any other modules loaded will also create pins. They are all listed here:
linuxcnc.org/docs/2.7/html/
You may want to collapse the documents and expand he man-pages to view the list.
It is worth scanning through the realtime components quickly just to see what there is.

There are literally thousands of possible HAL pin names, and some are created on-th-fly according to data from the hardware.
Given that you can also over-ride the default names of many pins using the "names=" and "alias" commands and it turns out to be impossible to create a definitive list.
The best thing to do is to look at what you actually have. In the Axis interface the Machine->Show HAL Configuration menu item is a handy way to explore them, and watch them change. (In the "watch" tab.

You can also monitor individual HAL pins with Halmeter and plot them over time with HALscope.
The following user(s) said Thank You: Jake

Please Log in or Create an account to join the conversation.

More
26 Jan 2016 23:35 - 27 Jan 2016 01:52 #69137 by Jake
I am getting a bit further. It appears that my servo alarms are not latching. So I am going to keep on with just sending the alarms to the digital inputs. I have plenty of them, its the outputs that I am still short on.

I am getting this note on the no start though.

"axis.00.amp-fault-x" not found

I thought I could use the newsig to assign whatever signal I wanted to

edit................I need to change them to newsig to net, will that make the difference?

I tried a couple different things with no success. I am trying to take a step at a time with things to make it easier to fix when I screw it up. I am working on getting the alarms going and be able to enable the 3 ssr's for the servos ( they will all end up being on one when I get the current amp done). Then I should be at a point where I can fire up the rest of the power and tune the servos.

# Servo Alarms  X DI0, Y DI3, Z DI6, A DI9

newsig amp-fault-x bit
net amp-fault-x axis.00.amp-fault-in ppmc.0.din.01.in

newsig amp-fault-y bit
net amp-fault-y axis.01.amp-fault-in ppmc.0.din.02.in

newsig amp-fault-z bit
net amp-fault-z axis.02.amp-fault-in ppmc.0.din.03.in

newsig amp-fault-a bit
net amp-fault-a axis.03.amp-fault-in ppmc.0.din.04.in


This is what I have for the servo enable I tried with the newer style of code line for it also
# Servo Amp Enable      SSR1 
newsig Amp-enable-x bit
net Amp-enable-x axis.00.amp-enable-out ppmc.0.dout.01.out

# Servo Amp Enable      SSR2 temp till current amp gets built
newsig Amp-enable-y bit
net Amp-enable-y axis.01.amp-enable-out ppmc.0.dout.02.out

# Servo Amp Enable      SSR3  temp till current amp gets built
newsig Amp-enable-z bit
net Amp-enable-z axis.02.amp-enable-out ppmc.0.dout.03.out


I also wanted to make sure the first and second code snippets are the same, as I am trying to go to the newer syntax. I actually like it better
# connect limit/home switch outputs to motion controller
#newsig Xminlim bit
#newsig Xmaxlim bit
#newsig Xhome bit
#net Xminlim axis.0.neg-lim-sw-in ppmc.0.din.01.in-not
#net Xmaxlim axis.0.pos-lim-sw-in ppmc.0.din.02.in-not

newsig Xminlim bit
newsig Xmaxlim  bit
newsig Xhome bit
linksp Xminlim <= ppmc.0.din.01.in-not
linksp Xminlim => axis.0.neg-lim-sw-in
linksp Xmaxlim <= ppmc.0.din.02.in-not
linksp Xmaxlim => axis.0.pos-lim-sw-in
linksp Xminlim axis.0.home-sw-in



Thanks guys!
Last edit: 27 Jan 2016 01:52 by Jake. Reason: imatard

Please Log in or Create an account to join the conversation.

More
27 Jan 2016 02:43 - 27 Jan 2016 02:47 #69144 by jmelson

I am getting a bit further. It appears that my servo alarms are not latching. So I am going to keep on with just sending the alarms to the digital inputs. I have plenty of them, its the outputs that I am still short on.

I am getting this note on the no start though.

"axis.00.amp-fault-x" not found

I thought I could use the newsig to assign whatever signal I wanted to

You can assign an input to a SIGNAL with any name, but axis.00.amp-fault-x is placed where a PIN name is required. And, the pin names are created by the writer of the hal component.

The following line looks correct :
net amp-fault-x axis.00.amp-fault-in ppmc.0.din.01.in

But, there is no need to create the signal with a newsig and then connect it with net. Just use the net command without the newsig.

See linuxcnc.org/docs/2.7/html/config/core-components.html for more info on the correct pin names for the axis component.

Jon
Last edit: 27 Jan 2016 02:47 by jmelson.
The following user(s) said Thank You: Jake

Please Log in or Create an account to join the conversation.

More
27 Jan 2016 02:55 #69145 by Jake
Thanks Jon

I will try that out tomorrow when I get home.

Please Log in or Create an account to join the conversation.

Moderators: piasdom
Time to create page: 0.458 seconds
Powered by Kunena Forum