Hello Guest it is March 28, 2024, 06:11:42 PM

Author Topic: Home/reference OB axis  (Read 1681 times)

0 Members and 1 Guest are viewing this topic.

Offline sx3

*
  •  41 41
    • View Profile
Home/reference OB axis
« on: February 02, 2019, 01:21:04 PM »
Hi,

We are trying to home an OB axis (OB2), we have assigned The home switch to the motor and so in The ESS/Mach.
However, it refuses to home with The other axis, the axis doesnt even move.
When mapping The axis as cordinated, such as A-axis, it will home properly.

My theory is that OB cant be homed as other axises. That I manually must JOG it until The switch triggers. If this is The case, can I "homeinplace" it with a script?

Thanks!
« Last Edit: February 02, 2019, 01:27:45 PM by sx3 »
Re: Home/reference OB axis
« Reply #1 on: February 02, 2019, 02:04:49 PM »
Hi,
the ESS can handle six motors only.

Mach4 has Home inputs for 32 motors and allows for homing of u to six OB axes.
It's the ESS that can't do the business. Homing is a realtime operation, that is to say that the hardware
controller must handle homing as only the hardware is fast enough.

You can do it in software but you will have to home slowly. You want the fastest possible control loop.
I am thinking that the PLC script might offer the most direct and understandable route.

Craig
'I enjoy sex at 73.....I live at 71 so its not too far to walk.'
Re: Home/reference OB axis
« Reply #2 on: February 02, 2019, 02:45:03 PM »
This is a limitation of the ESS?   Several months ago while testing OB axis, I could home them using the HiCON Integra.
Chad Byrd

Offline sx3

*
  •  41 41
    • View Profile
Re: Home/reference OB axis
« Reply #3 on: February 03, 2019, 05:48:36 AM »
As of now we Have XYZA and OB1 for spindle, that 5 motors. The carousel is the 6th motor.
We have tried setting up all the homing parameters in Mach and ESS plugin, the same procedure as the other axises.
So basically, ESS can't handle homing of OB motors if I understood you correctly?

I wrote a small jogging scripts, and pasted it in the "screen load script" under "function RefAllHome()"
And it works moving carousel to the home position when reffing all the other axis.

But none of theese seem to zero the DRO assigned to the OB axis. (I know axis 8 is OB3, thats the one we'are using, not OB2 as original post.)

Code: [Select]
--mc.mcAxisSetMachinePos(mInst, 8, 0)
--mc.mcAxisSetPos(mInst, 8, 1)
--mc.mcAxisSetHomeInPlace(mInst, 8, 1)

Would be nive if it was possible to Zero it in the same procedure.

Here is a small clip when referencing the machine, then jumping to next tool with manual button press on carousel.
https://www.youtube.com/watch?v=M6GPMuLOy9M
« Last Edit: February 03, 2019, 05:50:08 AM by sx3 »
Re: Home/reference OB axis
« Reply #4 on: February 03, 2019, 07:43:22 AM »
Hi,

Quote
So basically, ESS can't handle homing of OB motors if I understood you correctly?

No, that is incorrect. The ESS has real-time facilities for up to six motors. Your coordinated axes XYZA use four,
the spindle is an OB axis as is the carousel motor for six total. Thus the ESS has hardware facilities for homing
of up to six axes.

Note that the spindle is a special case of an OB axis. It does not get homed per se. If you wish it to be homed
then it is appropriate to call it a C axis.

You cannot set the machine coordinates of an axis programmatically.

[url][https://www.machsupport.com/forum/index.php?topic=39309.0/url]

I cant see that your code is going to achieve much.

Consider the first API:
rc = mc.mcAxisSetMachinePos(
      number mInst,
      number axis,
      number val)
and in particular the additional notes:
val The desired axis position to apply a fixture offset.

And the C syntax example:
// Set axis 0 fisxture offset.
int mInst = 0;
mcAxisSetMachinePos(mInst, 0, 0.0 /* set part zero */);

So the API DOES NOT set the machine coordinate, it sets the fixture offset.

The next API you have used is in effect a duplicate:
rc = mc.mcAxisSetPos(
   number mInst,
   number axisId,
   number val);

Description:
Set the Position of an axis by changing the fixture offset

But see the additional notes:
Notes:
Set the position of the axis by changing the current Fixture offset. This is not valid for out of band axes.

But note the description......changing the fixture offset and in the attached notes ....not valid for out of band axes.

And the last AI you have used:
rc = mc.mcAxisGetHomeInPlace(
      number mInst,
      number axisId,
      number homeInPlace)

Description:
Set the axis' Home In Place flag.

Notes:
The core provides a container for the axis home in place flag only. It currently does nothing with it. However, a motion plugin may retrieve the stored flag and implement a means to home the axis and set machine coordinate 0 at its current location.

So you can set the flag programmatically but you cannot cause the machine coordinates to be rest, that is up to
the motion plugin, in your case the ESS.

You have used APIs without carefully reading/considering what they can and cannot do.

Craig


'I enjoy sex at 73.....I live at 71 so its not too far to walk.'

Offline sx3

*
  •  41 41
    • View Profile
Re: Home/reference OB axis
« Reply #5 on: February 04, 2019, 08:27:54 AM »
Hi,

Quote
So basically, ESS can't handle homing of OB motors if I understood you correctly?

No, that is incorrect. The ESS has real-time facilities for up to six motors. Your coordinated axes XYZA use four,
the spindle is an OB axis as is the carousel motor for six total. Thus the ESS has hardware facilities for homing
of up to six axes.

Note that the spindle is a special case of an OB axis. It does not get homed per se. If you wish it to be homed
then it is appropriate to call it a C axis.

Okey, so both Mach and ESS should be compatible to Home my OB3 axis (not the spindle). Since we are within the ESS limit of 6 motors?
If thats the case, then I have no clue what we are doing wrong, since using the same parameters but assigning it to a Cordinated axis will home the motor.

Regarding the API's you are correct, thoose were closest to what we would want to achive, hence trying them. But now, after reading your link I understand that Zero'ing it won't be possible.
Re: Home/reference OB axis
« Reply #6 on: February 04, 2019, 12:17:29 PM »
Hi,

Quote
If thats the case, then I have no clue what we are doing wrong, since using the same parameters but assigning it to a Cordinated axis will home the motor.

May I suggest that you try explicitly homing that one axis with an API call:

Code: [Select]
LUA Syntax:
rc = mc.mcAxisHome(
number mInst,
number axisId)

Description:
Used to start an axis homing.

Quote
But now, after reading your link I understand that Zero'ing it won't be possible

It is possible but not easy. It was ALWAYS intended that the machine coordinates can be set (or reset) ONLY by homing the
axis.

Craig
'I enjoy sex at 73.....I live at 71 so its not too far to walk.'

Offline sx3

*
  •  41 41
    • View Profile
Re: Home/reference OB axis
« Reply #7 on: February 04, 2019, 12:23:38 PM »
We have tried mcAxisHome, it result in no movement of the OB axis either. However, I got this reply från W9TD. I guess case is closed for now.
My manual script, jogging the OB to home position will do for now.

Quote
Hi,

I am assuming that this is Mach4.

Yes, we *should* home OB motors.

No, the code currently skips homing them.

I will try and add in the required code to do that this week (although it may not happen this week - I need to complete THC first).

Andy