586,055 active members*
4,221 visitors online*
Register for free
Login
IndustryArena Forum > CNC Electronics > Servo Motors / Drives > What should Feed Hold actually be??
Results 1 to 5 of 5
  1. #1
    Join Date
    Sep 2005
    Posts
    221

    What should Feed Hold actually be??

    I am developing a control package for a gantry style pallet loader system.
    using Galil motion control card. I want a feed hold button, but not sure what command it should issue. What have any of you used?? I am thinking just send a new feed rate of 0 to all axes.??

  2. #2
    Join Date
    Mar 2003
    Posts
    4826
    I think I must have figured it out from the manuals, but its been a few years

    The problem is, if you have already sent some vector and speed commands into the buffer, then you cannot arbitrarily change the feedrate, because its already in execution.

    You need to have a button hooked to one of the Galil inputs, to serve as your feedhold. Each of the Galil inputs has an "interrupt number" which the card monitors. I think there was a special label name given to use for a subroutine name which the galil recognises especially for this purpose.

    A small program is written in the subroutine, and it begins execution as soon as the interrupt is detected. This all has to be written in, of course. So then you write some logic in there to save the bits (OP command) and stop the motors.

    Here is a piece of code that I used on my lathe. It includes a limit switch contingency which aborts any running program if a limit switch is triggered. Study it for what it's worth, and go compare with what you read in the manual.

    This is the tail end of a much longer program I use to do lathe threading with a program running in galil memory. I permit the feedhold to come into effect only after the current threading motion (if underway) has completed, as it would be bad news to stop a lathe in mid-thread I also have pushbuttons to the galil input which permit me to stop the spindle, start in reverse, and start in forward. I just add that info so you can deduce a bit of what is happening and why it is in the code.

    #LIMSWI
    CB 1
    CB 2
    CB 3
    CB 4
    CB 5
    CB 6
    CB 7
    HX1
    AB
    #ININT
    JP#ALLDONE,((@IN[1]=0)|(@IN[1]=1))&(@IN[6]=1)
    JP#ALLDONE,((@IN[2]=0)|(@IN[2]=1))&(@IN[6]=1)
    JP#ALLDONE,((@IN[4]=0)|(@IN[4]=1))&(@IN[6]=1)
    SAVBITS=_OP0
    AM XY
    ST XY
    XQ#BUTTONS,1
    #AGAIN
    IF (@IN[1]=0)
    FORWFLG=(FORWFLG+1)
    ENDIF
    IF (@IN[2]=0)
    STOPFLG=(STOPFLG+1)
    ENDIF
    IF (@IN[4]=0)
    REVFLG=(REVFLG+1)
    ENDIF
    IF (@IN[6]=0)
    JP#AGAIN
    ENDIF
    IF RESTART>0
    OP SAVBITS
    ENDIF
    RESTART=0
    FORWFLG=0
    STOPFLG=0
    REVFLG=0
    HX1
    #ALLDONE
    RI1
    EN
    #BUTTONS
    IF STOPFLG>0
    JP#STOPSPN
    ENDIF
    IF FORWFLG>0
    JP#SPINFOR
    ENDIF
    IF REVFLG>0
    JP#SPINREV
    ENDIF
    JP#BUTTONS
    #SPINFOR
    IF RESTART=0
    FORWFLG=0
    JP#BUTTONS
    ENDIF
    CB6
    SB5
    FORWFLG=0
    STOPFLG=0
    REVFLG=0
    JP#BUTTONS
    #STOPSPN
    CB 5
    CB 6
    RESTART=1
    FORWFLG=0
    STOPFLG=0
    REVFLG=0
    JP#BUTTONS
    #SPINREV
    IF RESTART=0
    REVFLG=0
    JP#BUTTONS
    ENDIF
    CB5
    SB6
    FORWFLG=0
    STOPFLG=0
    REVFLG=0
    JP#BUTTONS
    EN
    First you get good, then you get fast. Then grouchiness sets in.

    (Note: The opinions expressed in this post are my own and are not necessarily those of CNCzone and its management)

  3. #3
    Join Date
    Dec 2003
    Posts
    24221
    Hu, The II command should also be in there to declare which inputs you want to use as interupts.
    Al.
    CNC, Mechatronics Integration and Custom Machine Design

    “Logic will get you from A to B. Imagination will take you everywhere.”
    Albert E.

  4. #4
    Join Date
    Mar 2003
    Posts
    4826
    Right you are, Al

    I checked through my main program and I do see a statement
    II,,43
    (whatever that meant), in there.

    I've forgotten all the nitty gritty details of how it was done. All I remember is it took me about as long to learn to program in native Galil as it did to program in Camsoft
    First you get good, then you get fast. Then grouchiness sets in.

    (Note: The opinions expressed in this post are my own and are not necessarily those of CNCzone and its management)

  5. #5
    Join Date
    Dec 2003
    Posts
    24221
    Quote Originally Posted by HuFlungDung
    Right you are, Al

    I checked through my main program and I do see a statement
    II,,43
    (whatever that meant), in there.

    All I remember is it took me about as long to learn to program in native Galil as it did to program in Camsoft
    Galil is all I have been programming in for the past 4 projects. :tired:
    The 43 represents a binary mask, specified in decimal, so it means you have the following one-inputs 101011 declared as Interupts.
    BTW II0 will disable the interupts if needed at some point in the program.
    Al.
    CNC, Mechatronics Integration and Custom Machine Design

    “Logic will get you from A to B. Imagination will take you everywhere.”
    Albert E.

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •