How does a machine know where its home is?

Started by JakeL, January 19, 2024, 11:59 AM

Previous topic - Next topic

0 Members and 1 Guest are viewing this topic.

JakeL

Just had a lengthy discussion with a coworker on this topic, wondering if anyone knows how this works.

We have a Matsuura HPlus-630 4-Axis HMC. When setting up the machine you handle jog the machine to where you want "home" to be. Turn a parameter on and off and the machine recognizes that as the new home position. 

The main discussion was whether or not the coordinates of this "home" position are stored somewhere in the machine. My take on it was that the x/y/z coordinates must be stored in a parameter somewhere. His counter was that the x/y/z of the home position is 0, 0, 0 and what would those coordinates be relative to? I figured there must be a "master" coordinate system hard coded into the servos.

While I think he may be right, the question still remains, how does the machine know where home is?

Rstewart

Absolute, or incremental encoders?  Do you have to home the machine upon start-up?

JakeL

Quote from: Rstewart on January 19, 2024, 07:49 PMAbsolute, or incremental encoders?  Do you have to home the machine upon start-up?

These machines do not need to home on startup

JakeL

Quote from: Newbeeee™ on January 19, 2024, 12:50 PMIf there wasn't a "master" number, how would it know where to go to, to toolchange. Or pallet change?....

Agreed but what is that master number relative to? a hardcoded coordinate system?

JakeL

Quote from: Newbeeee™ on January 20, 2024, 10:10 AMYou set the "absolute machine zero" using parameter 1815. You set this to 0, BUT only when the table is in the correct (0) position.
This works like a digi mic or digi calipers - it's just the same as pressing the zero button to zero the display.

I think I'm starting to wrap my head around this concept a little better. Your comparison to a digi mic sent me down a youtube rabbit hole...

I watched this video and it explains that a servo's position is controlled by the pulse width sent to it. So by setting 1815 you must tell the machine "the current pulse width of each servo is home". The machine internally stores this pulse width and can return to it anytime you home the machine.

That is assuming "pulse width" is also how CNC axis motors work?
Like Like x 1 View List

CNCAppsJames

Condensing pages of parameters into a short sentence, when you set 1815, you are telling the machine that at that specific encoder pulse (therebare 360,000 usually), reset that position as 0. All your G28's and G30's will be relative to THAT new position.
Thank  You Thank You x 1 View List
"That bill for your 80's experience...yeah, it's coming due. Soon." Author Unknown

Inventor Pro 2026 - CAD
CAMplete TruePath 2026 - CAV and Post Processing
Fusion360 and Mastercam 2026 - CAM

Aaron

To get to the REALLLY nitty gritty of it, what any intelligent control manufacturer should do to set a home position:

1) Jog the axis until it hits a physical limit switch.   
      -Note that physical limit switches aren't reliable enough to set a home position from themselves, but ya got to know where to stop!
      -Also, if you'd prefer, you can have the user tell you when you're physically in the "home" position range, like my Robodrill does if you need to reset it.

2) Back off in the direction you came from until you get to the "0" position of the encoder (called an index pulse). - Modern encoders are optical sensors using a glass "ring" with lines etched in them and they pick up the "notches" like a CD player picks up dots and dashes.  These are (unsurprisingly) very accurate.

3) Send the command to 0 out the encoder position here

4) Write this either into the Servo memory itself (battery powered), or into the controls' boot up program (have to home the machine every time). 

A couple of take-aways:
 - The amount that the encoder has to spin from the physical switch to the encoder is variable depending on the pitch of the ballscrew, the resolution of the encoders, etc.
 - When setting up a machine (as in, integrating it for the first time), make sure that the encoder is index pulse/0 position is 180-270° away from the limit switch.  Limit switches get covered in goo and chips and don't always fire reliably, so you want the most "distance" away from the limit switch.  You need to set that by the encoder pulse count to find the range (i.e., if your encoder pulse per rotation is 32,000, you need it to be between 8-24,000).
 - If you're ever using a machine that only homes off of the limit switches (at this point, pretty much a home router would be the only thing you'd find), make sure you reset your part zero every time you power up.
Thank  You Thank You x 1 View List
Aaron Eberhard

Vector Manufacturing

"Funny how nothing will prove you wrong quite as effectively as getting to do exactly what you thought you wanted to do."

CNCAppsJames

1 = The HARD O/T position
2/3 = Soft O/T position

:cheers:
"That bill for your 80's experience...yeah, it's coming due. Soon." Author Unknown

Inventor Pro 2026 - CAD
CAMplete TruePath 2026 - CAV and Post Processing
Fusion360 and Mastercam 2026 - CAM