![]() | |
| Home Page | Mark Forums Read | Today's Posts | My Replies | Classifieds | Reviews | Photo Gallery | Web Links | Share Files | Advertise With Us | Ad List |
| |||||||
| Servo Motors and Drives Discuss servo motors, drivers and other related topics here. |
| This forum is sponsored by: |
![]() |
| | LinkBack | Thread Tools | Search this Thread | Display Modes |
|
#1
| |||
| |||
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
| ||||
| ||||
| 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
| ||||
| ||||
| Hu, The II command should also be in there to declare which inputs you want to use as interupts. Al.
__________________ CNC, Mechatronics Integration and Machine Design. “Logic will get you from A to B. Imagination will take you everywhere.” Albert E. |
|
#4
| ||||
| ||||
| 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
| ||||
| ||||
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 Machine Design. “Logic will get you from A to B. Imagination will take you everywhere.” Albert E. |
| Sponsored Links |
![]() |
| Currently Active Users Viewing This Thread: 1 (0 members and 1 guests) | |
| Thread Tools | Search this Thread |
| Display Modes | |
| |