Hello Guest it is December 15, 2019, 12:25:16 AM

Author Topic: Easy questions on continuous rotation axis  (Read 3336 times)

0 Members and 1 Guest are viewing this topic.

Offline simpson36

*
  •  1,374 1,374
    • View Profile
Easy questions on continuous rotation axis
« on: August 22, 2015, 02:45:49 PM »
HiCON Integra

Documentation states that any axis can be set up to spin while retaining normal operation as well.

Two questions that the documentation is not clear on:

1) can this be done with more than one axis at a time?

2) What is the G-Code axis identifier for the Spindle axis?   i.e. doc shows (something like) "S200M3" and "G1A30"  What axis letter is the Spindle in G-code?

Note: I could experiment with this and perhaps stumble on an answer, but I would like to know that I am doing it the correct way and not just by luck.

Thanks!
« Last Edit: September 28, 2015, 04:59:43 PM by Vital System Support »
Re: Easy questions on continuous rotation axis
« Reply #1 on: August 24, 2015, 12:30:48 PM »
Hello simpson26,

To answer your questions:

1. Im not sure if you mean that you want multiple GCode Spindles, or if you want another motor to be slaved to the GCode spindle? I believe the 2nd can be accomplished.

 - In the Mach4 config, make sure that all motors in question are enabled and properly configured.
 - In the plugin config, make sure that all the motors are configured (GCode Spindle too) as indicated in the Mach4 integration manual.
 - Go to the motor tab for the other motor, and set the command input index to that of the GCode spindle motor.
 - You should have the slave motor mirror the command position of the GCode spindle.

If this isn't what you're looking for, then please explain your requirement in greater detail so I can instruct you accordingly.

2. The axis "letter" for the spindle axis in GCode is the axis where the GCode Spindle motor is mapped to. The GCode spindle must be assigned to an axis in the Mach4 axis mapping in order to receive the corresponding GCode axis command. For instance, if you set Motor5 as the GCode spindle, and you mapped Motor5 as the master motor of Axis C, then a command like "G0C5" will move the GCode spindle motor to 5 units.


- Marc
Vital System Inc.

Offline simpson36

*
  •  1,374 1,374
    • View Profile
Re: Easy questions on continuous rotation axis
« Reply #2 on: August 24, 2015, 12:59:27 PM »

I think this may be the confusion.

I do not have the spindle motor mapped to an axis, hence the question about what letter axis the spindle is.

The spindle is mapped to MACH axis OB1

I will try mapping it to the C axis.

This may have answered both questions at once. I will post back

Offline simpson36

*
  •  1,374 1,374
    • View Profile
Re: Easy questions on continuous rotation axis
« Reply #3 on: August 24, 2015, 01:23:57 PM »
Marc,

Here is an explanation of the process I am asking about:

The question is; with regard to 'spinning an axis motor', can there be more than one motor set up this way?

The reason for that question is that I have a product that is a combination Indexing and Turning 4th axis.

Info here:
www.theInTurn.com

In order to spin this motor, I have a separate motor controller that generated the step stream using a DSS. I suppose in a somewhat similar fashion to the HiCON, my device 'disconnects' the 4th axis servo from MACH in 'lathe' mode and then hands control back to MACH in 'index' mode. MACH is unaware of this.

I have already supplied one of these units integrated with a Mach Motion system, which is where I learned that their system could spin an axis. I did not know at that time that they used Vital Systems hardware. I made a special circuit to disconnect the encoder feedback while the motor controller is spinning the 4th axis (InTurn™) motor just in case the system would fault if it saw the axis moving uncommanded.

Hopefully that is enough background info for you to understand what I am asking about. If the HiCON (or the higher end unit) could spin both the spindle and the 4th axis motors, that would eliminate the need for the independent motor controller.


Re: Easy questions on continuous rotation axis
« Reply #4 on: August 24, 2015, 01:52:41 PM »
Hello,

The best way this can be accomplished is by using the HiCON Macro feature which allows you to write programs, download them to the motion controller, and execute them alongside Mach4. This feature was originally added to the HiCON platform to overcome the limitations posed by Mach3, and in your case, you want a feature that Mach4 cannot currently support (which is independent axis movement outside of the Mach4 motion planner).

With the HiCON Macro, you can simply write a short script that commands, what we call a "Velocity" move which moves a motor independently in one direction (according to a specified acceleration and velocity). This behavior can then respond to maybe a digital input, or one of the userLEDs in order to start or stop.

In Mach4, you can then write a custom script/macro that will map/unmap the motor from the axis and issue the "Velocity" movement when necessary.

Here is the user guide for creating macros in BASIC
http://www.vitalsystem.com/portal/motion/hicon/HiCONBasic.pdf

Here is the user guide for creating Macros in C
http://www.vitalsystem.com/portal/motion/VSI_CMacro_Documentation.pdf

The HiCON Macro feature does require an additional purchase which you can make from the Integra webpage. Just scroll down to the purchase listing and the item should be labelled as "HiCON-MACRO".

This may be a lot to take in, so feel free to reply if you have any questions.

EDIT: with the above behavior, you wouldn't need to disconnect the encoder feed back with your specialized circuit as a "Velocity" move will sync back the axis position (commanded, and feedback/encoder positions) when stopped. This means that the encoder position will not be at an extremely high value when you re-map your 4th axis for GCode control.

-Marc
Vital System Inc.
« Last Edit: August 24, 2015, 01:55:41 PM by Vital System Support »
Re: Easy questions on continuous rotation axis
« Reply #5 on: August 24, 2015, 02:06:16 PM »
Hello,

I just finished speaking to one of the Mach4 guys, and it looks like there is simpler way this can be accomplished.

You can use this function mcJogVelocityStart(MINSTANCE mInst, int axis, double dir)

Essentially, what you would need to do is map the 4th axis to one of the OB axes (these would be axes 6 - 11), then create a script/macro with the above function. According to what I was told, this velocity jogging works independently of the normal motion, so it should be exactly what you need.

You could also use these functions if you need to map/unmap a motor in order to perform GCode motion with it.
mcAxisMapMotor(MINSTANCE mInst, int axis_id, int motor_id)
mcAxisUnmapMotor(MINSTANCE mInst, int axis_id, int motor_id)

I've never used this myself, to be honest, so let me know how it goes. :)

-Marc
Vital System Inc.

Offline simpson36

*
  •  1,374 1,374
    • View Profile
Re: Easy questions on continuous rotation axis
« Reply #6 on: August 24, 2015, 02:31:43 PM »
Marc,

Great idea!  Tell your 'MACH4 guy' I own him a beer . .  an you too of course  :D

My new pendant has a joystick for jogging  and I use the first two functions for that so I am familiar with those. I have not tried to mapping functions, so that will be an interesting experiment.

I thought about the potential to use the macro capability to spin the 4th axis motor, but things are a bit more complicated than that. The overall feature might be doable with HiCON  macros, but I would say definitely possible in a MACH4 script.

My controller has a feature where it tracks either the Y or Z axis coords and calculates the correct RPM to maintain a commanded SFM. This feature is called 'AutoSpeed' and currently works by collecting the axis coord and passing them over TCP Modbus to the controller where the calculations take place and the DSS is commanded to produce the correct frequency square wave to send to the drive. I'm pretty sure I can duplicate this in a Mach4 script.

The concern there is loading the PLC with a lot of FP calculations on top of a lot of stuff I already have it doing. I could rig a quick test with simuilated nonsense calcs and see what the effect is on the loop time. I will keep you (and 'MACH4 Guy' ) informed if you like.

Thanks for all your help.

- Steve