Mori MVJR Build Log

More
07 Sep 2011 22:08 #13037 by M4MazakUser
Replied by M4MazakUser on topic Re:Mori MVJR Build Log
having been a cnc machinist for 24 years....

i find the following interfaces most usefull.

a handwheel is a neccessity for touching off, and general stuff -like quick positioning/setups.
as is a switch/set of buttons next to it for axis selection.

a cycle start and a feed hold button is best as well. while i've seen someone on this forum explain how to setup a combined button (that flip/flops) usually you are hitting feed hold in a mad panic, and don't need to be troubled as to what state it is in!

for rapid traverse, on a lathe, a joystick is best, but on a mill a set of buttons in a cross pattern is best, with a pair of buttons for z+ z- to the right of these

this is the bare minimum, and in use you will find that having these it is a lot easier running a machine as you dont have to look at a screen while setting up a job (-setting up is usually most of the running time on a cnc machining centre doing jobbing work.) and unless you have a touch probe its easier to be leaning in the door and reaching for a handwheel (knowing where the handwheel is) when doing a "paper touch off".

as the previous posts have said, tis quite easy to assign things in hal, and if you have the inputs, you may as well make it easy "ergonomicaly" to operate.

and yes i use a touch screen as well.

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

More
11 Sep 2011 11:41 #13097 by schmidtmotorworks
Thanks for the control input I have decided to try to connect as much as I can.

The buttons seem relativley straight forward.

The rotary switches with more then 2 options have me stumped:

Take for example the spindle speed override rotary switch, it has 4 connections.

I'm thinking something like this might work:

# Get inputs from spindle override rotary switch connections:
# tbd = to be determined
# SPA = Spindle rotary switch connection A

net SPA net hm2_5i23.0.7i64.[tbd].[tbd].in
net SPB net hm2_5i23.0.7i64.[tbd].[tbd].in
net SPC net hm2_5i23.0.7i64.[tbd].[tbd].in
net SPD net hm2_5i23.0.7i64.[tbd].[tbd].in

This next part is what has me stumped, from the reading I have done I either need to write a HAL module or a complicated series of logic operators.

Am I missing something,(I was looking for function but couldn't find one in the html docs)?

# Determine the Spindle Override scale based on the inputs from the rotary switch
Case: Spindle Override
SPA=1,SPB=1,SPC=1,SPD=1 = 0.5
SPA=0,SPB=1,SPC=1,SPD=0 = 0.6
SPA=1,SPB=1,SPC=1,SPD=0 = 0.7
SPA=0,SPB=0,SPC=0,SPD=1 = 0.8
SPA=1,SPB=0,SPC=0,SPD=1 = 0.9
SPA=0,SPB=1,SPC=0,SPD=1 = 1.0
SPA=1,SPB=1,SPC=0,SPD=1 = 1.1
SPA=0,SPB=0,SPC=1,SPD=1 = 1.2

halui.spindle-override.value Spindle Override

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

More
11 Sep 2011 12:07 #13099 by BigJohnT
Replied by BigJohnT on topic Re:Mori MVJR Build Log
If your using 2.5 ( I forget ) then you can set halui.spindle-override.direct-value on and input your override number to halui.feed-override.counts.

To get your spindle override to give you 0-120 percent of S you need mux-16

My feed override section (spindle and feed are the same but the names are different)

# Feed Override
setp mux16.0.suppress-no-input true
setp halui.feed-override.count-enable true
setp halui.feed-override.direct-value true
setp halui.feed-override.scale 0.01
setp mux16.0.in00 0
setp mux16.0.in01 0
setp mux16.0.in02 10
setp mux16.0.in03 20
setp mux16.0.in04 30
setp mux16.0.in05 40
setp mux16.0.in06 50
setp mux16.0.in07 60
setp mux16.0.in08 70
setp mux16.0.in09 80
setp mux16.0.in10 90
setp mux16.0.in11 100
setp mux16.0.in12 110
setp mux16.0.in13 120
net ext-fork0 mux16.0.sel0 <= hm2_5i20.0.gpio.062.in_not
net ext-fork1 mux16.0.sel1 <= hm2_5i20.0.gpio.060.in_not
net ext-fork2 mux16.0.sel2 <= hm2_5i20.0.gpio.058.in_not
net ext-fork3 mux16.0.sel3 <= hm2_5i20.0.gpio.056.in_not
net ext-fork halui.feed-override.counts <= mux16.0.out-s

I thought mux16 was added to 2.5 but I guess not. I will attach it to a message when I go out to the shop.

John

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

More
11 Sep 2011 12:10 - 11 Sep 2011 12:12 #13100 by BigJohnT
Replied by BigJohnT on topic Re:Mori MVJR Build Log
This is graymux16 if your output is gray code instead of BCD output.

To install a comp just change to the directory where it is and do

sudo comp --install name.comp

John

File Attachment:

File Name: graymux16.comp
File Size:3 KB
Attachments:
Last edit: 11 Sep 2011 12:12 by BigJohnT.

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

More
11 Sep 2011 12:41 - 11 Sep 2011 16:56 #13101 by BigJohnT
Replied by BigJohnT on topic Re:Mori MVJR Build Log
It does appear that mux16 is in 2.5 so if your using that version this is the man page for it

www.linuxcnc.org/docview/2.5/html/man/man9/mux16.9.html

John
Last edit: 11 Sep 2011 16:56 by BigJohnT.

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

More
11 Sep 2011 16:45 #13105 by schmidtmotorworks
Thanks a million, it is starting to make sense.

I am wondering why in00 and in01 are both 0?
setp mux16.0.in00 0
setp mux16.0.in01 0
setp mux16.0.in02 10

Checked the code from graymux16.comp
num = (sel0)+(sel1*2) + (sel2*4) + (sel3*8);

Not using gray code (never heard of it before today) using the pin logic in my switch it returns 5,6,7,8,9,10,11,12.
So I guess if that is scaled by 0.1 it will be fine 50% to 120% the way it is, right?

Below is my first run at the hal for my spindle override based on your feed override.
I didn't find anything in hal ui similar to "setp halui.feed-override.direct-value true" , not sure if I need to do anything about that.
#Speed Override
setp mux16.0.suppress-no-input true
setp halui.override.count-enable true

# Is there a spindle equal for this?
#setp halui.feed-override.direct-value true

setp halui.spindle-override.scale 0.01
setp mux16.0.in00 50
setp mux16.0.in01 60
setp mux16.0.in02 70
setp mux16.0.in03 80
setp mux16.0.in04 90
setp mux16.0.in05 100
setp mux16.0.in06 110
setp mux16.0.in07 120
net ext-fork0 mux16.0.sel0 <= hm2_5i23.0.7i64.[tbd].[tbd].in_not
net ext-fork1 mux16.0.sel1 <= hm2_5i23.0.7i64.[tbd].[tbd].in_not
net ext-fork2 mux16.0.sel2 <= hm2_5i23.0.7i64.[tbd].[tbd].in_not
net ext-fork3 mux16.0.sel3 <= hm2_5i23.0.7i64.[tbd].[tbd].in_not
net ext-fork halui.spindle-override.scale <= mux16.0.out-s

I'm not at all familiar with the syntax in the .comp file, I guess I will have to read up on that.

My rapid override has 2 inputs
Feed scale has 5 inputs
Axis selector has 3
It looks like maybe the other mux[x] functions will work for 2 and 3 inputs but I guess I will make another version of that comp function for 5 inputs.

Is there some way I can get the code for the other mux from the web, I'm on the road right now, I can't understand the synopsis most of the time but the code made enough sense.

Thanks again!

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

More
11 Sep 2011 16:55 #13106 by BigJohnT
Replied by BigJohnT on topic Re:Mori MVJR Build Log
Are you using 2.5? all this neat stuff is only in 2.5...

My selector switch was wired up with 0% as select 0 being on so sel01 is 0 for me... just depends on the output of your selector switches.

5 wires don't make sense for a bcd or gray code switch... too many wires = 25 combinations... are your sure it is not a MPG?

All the comps can be viewed with gitweb.

git.linuxcnc.org/gitweb

Drill down the emc2 tree to src/hal/components to see the code for each one.

The html docs for comp

www.linuxcnc.org/docview/html/hal_comp.html

John

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

More
11 Sep 2011 17:40 #13109 by schmidtmotorworks
Yes, it is a switch here are the combinations:

It allows feed override from 0% to 200% in 10% steps.

I am struggling a bit with the .comp syntax but I think I can make a 5 input version.

OV1
OV2
OV4
OV8
OV16

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

More
11 Sep 2011 18:42 #13110 by BigJohnT
Replied by BigJohnT on topic Re:Mori MVJR Build Log
With those numbers it does look like a BCD switch so you will need a mux32 component to handle that.

For BCD output you have one line

selected = num = (sel(0))+(sel(1)*2) + (sel(2)*4) + (sel(3)*8);

which might be changed to

selected = num = (sel(0))+(sel(1)*2) + (sel(2)*4) + (sel(3)*8) + (sel(4)*16);

and perhaps change this line

pin in bit sel#[4] """\

to

pin in bit sel#[5] """\

indeed this is a tricky coded one... all the gobbly gook on top is mostly man page stuff.

John

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

More
11 Sep 2011 20:56 #13113 by schmidtmotorworks
I think I have the expanded mux comp figured out.

Now I'm working on jog axis selection.

It's 5 axis and has a 3 connection RPS.

This is what I have so far, the part that has me stumped is enabling the right axis from the mux return.
I'm guessing there must be some way to use a logical evalution but haven't seen an example of that?
setp mux8.0.in00    1
setp mux8.0.in01    2
setp mux8.0.in02    3
setp mux8.0.in03    4
setp mux8.0.in04    5
net ext-axis_sel_1   mux16.0.sel0 <= hm2_5i23.0.7i64.[tbd].[tbd].in_not
net ext-axis_sel_2   mux16.0.sel1 <= hm2_5i23.0.7i64.[tbd].[tbd].in_not
net ext-axis_sel_3   mux16.0.sel2 <= hm2_5i23.0.7i64.[tbd].[tbd].in_not

# How can the following be used to set the enabled axis?
mux8.0.out-s

net mpg-x axis.0.jog-enable <= 
net mpg-y axis.1.jog-enable <= 
net mpg-z axis.2.jog-enable <= 
net mpg-a axis.3.jog-enable <= 
net mpg-b axis.4.jog-enable <= 

net mpg-counts axis.0.jog-counts <= encoder.0.counts
net mpg-counts axis.1.jog-counts <= encoder.0.counts
net mpg-counts axis.2.jog-counts <= encoder.0.counts
net mpg-counts axis.3.jog-counts <= encoder.0.counts
net mpg-counts axis.4.jog-counts <= encoder.0.counts

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

Moderators: cncbasher
Time to create page: 0.149 seconds
Powered by Kunena Forum