![]() | |
| Home Page | Mark Forums Read | Today's Posts | My Replies | Classifieds | Reviews | Photo Gallery | Web Links | Share Files | Advertise With Us | Ad List |
| |||||||
| CamSoft Products Discuss Camsoft PC based CNC controller products here! |
| This forum is sponsored by: |
![]() |
| | LinkBack | Thread Tools | Search this Thread | Display Modes |
|
#1
| ||||
| ||||
| Hello all - I have a rather large lathe (9" hollow spindle) running camsoft's CNC professional and I have a problem with the VIRTINDEX command I use in my multipass non-servo threading logic. From time to time (say every 8th or 11th part) when I execute my threading cycle I get a 'fatal error 0 controller shut down' message and get booted out of the controller. The error happens right at the VIRTINDEX line in the logic which usually works quite well. Typically after the error happens I restart the controller and go again for another 10 parts (or however many) until it happens again. Annoying but I could live with it. NOW as of yesterday the machine will not thread at all - I get this same error message every single time I try to run the EXACT same logic which has worked as per above for the last year. Anyone have any ideas? |
|
#2
| ||||
| ||||
| I also had reliability issues with VIRTINDEX. Can't remember the exact issue, its been too long. Switching to a real index mark solved the issue. I used a slot sensor and a disk attached to an opto 22 high speed input. You can also use the index pulse from an encoder but you need a transistor to drive the opto input. The encoder won't do it. You can buy one ready to go from Camsoft or i can give you the details to build your own. Karl |
|
#4
| ||||
| ||||
| I assume you have an Opto 22 input board with your installation. You'll need to install a high speed Opto input. You'll also need an Opto 22 output to turn this assembly on. Otherwise, your inputio.fil will be overwhelmed with inputs whenever the lathe is on. Karl Last edited by Karl_T; 11-05-2008 at 06:38 AM. |
|
#5
| ||||
| ||||
| My spindle is driven with a 15Hp induction motor through a 12 speed gearbox - switched on and off using outputs. I have an encoder on my spindle - 1024 ppr A/A1 B/B1 plus index - line driver input. I have a lower end Galil 4 axis motion card and the ICM 2900. I have the flat panel controller with the membrane keypad on the right side. I do not have any opto 22 anything at all. (As an aside, I also have some minor problems with noise on the inputs - anything below the fourth or so event in the input IO file won't execute because I was forced to write logic to supress noise which was causing nuisance tripping of e-stop and feedhold) I can send you any information you need to help me, and I am grateful for your willingness to help. As far as you have experienced - how fast can you spin the spindle and have the threading process perform reliably using this type of system? (Currently about 300 RPM here before this problem) |
| Sponsored Links |
|
#6
| ||||
| ||||
| This threading topic has been discussed on this forum before. While I did come up with a way to make lathe threading possible with a program running directly in Galil's memory, it is still not 100% satisfactory, but IMO, VIRTINDEX is absolutely useless. This is because it is not tied to the encoder index and so if you have a machine power down, and need to restart and catch the same thread, VIRTINDEX will not 're-index' in the same location as it did on the last run. Not only that, VIRTINDEX runs way too slow, due to the Camsoft routine having to communicate with the Galil card through the Window's I/O. This is what makes it slow in response. I ran all sorts of tests with VIRTINDEX, and there is no way it would repeatedly track the same thread without an error window that was 30% wide. That is useless for multi-pass threading on a lathe with a free running spindle. Now from what Karl has told me, it sounds like his method works fast every time. The method I devised running in Galil memory also tracks perfectly, but is subject to considerable delay (sometimes) while the card waits to catch the encoder index. Typically I can thread at 800 rpm with not too much delay in the procedure. For a new retro, (second time round), I think I'd give Karl's method a try. It takes a bit more hardware, but it should solve the problem henceforth.
__________________ 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) |
|
#7
| ||||
| ||||
You have a differential encoder, good. Two options for you. If you feel comfortable with build your own electronics; buy the IC from digikey you found in the other thread on this subject. (The electrical print is located there) If you need something ready to go: Camsoft sells the same thing with only a couple of wires to connect. You'll need a spare input and a spare output. The output is used to turn the circuit in the preceeding paragraph on just before the thread cycle begins. This circuit just amplifies the encoder index pulse so it can drive the input. I reccommend the Opto 22 hi speed input and aux card because it runs at a MUCH higher speed than galil. (HuFlungDung found a way to speed up the galil card, but its still way slower) The higher speed response means more accurate multipass threading. I thread at up to 2000 RPM on my small lathe. 100s of parts perfect every time. You may not need the high speed Opto 22 to thread at 300 RPM, but I don't know for sure. If you decide to go this route, post your existing thread macro. I'll suggest the changes it will need. Karl |
|
#8
| ||||
| ||||
| I don't have any auxillary IO - only the hardware I mentioned in the last post. My machine is a Leblond 24 x 72 (9" spindle bore, dual 24" 4 jaw chucks) - it has a manual QC toolpost and is fairly simple (no home or limit switches - only one overtravel per axis which trips at either end of the travels) so I have been able to get away so far with just the IO on the ICM 2900. I cut a lot of coarse tapered threads in 4140 with this machine. Is this new index method still possible to do using only the IO I have currently or must I expand? I don't mind spending the money to expand if this is the best way to go. This is the current threading cycle I need to use - I wrote it myself so if it seems crude you know why. The suspend inputs command is to prevent my noise ignoring logic (as seen below in the Inputio file) from running for a couple milliseconds between the virtindex and go commands and destroying the thread. The stupid smiley thing should be a d - the forum did that for some reason 'LATHE TAPER THREAD ID TOWARDS CHUCK RH 'G118 X3.440 Z-1.625 A3.340 B.200 C8 D1.788 F.02 R3.6 LOADING \55:IF\55=0THENEXIT 'MAJOR THREAD DIAMETER \500=x 'LENGTH OF THREAD \501=z 'MINOR THREAD DIAMETER \502=a 'Z START POSITION \503=b 'NUMBER OF THREADS PER INCH \504=c 'DEPTH OF FIRST PASS \505=f 'X RETRACT PLANE \507=r 'CURDIAM=ID \508=a 'COMPARISON VALUE \509=a 'ANGLE FROM CENTRELINE IN DEGREES \513=d 'OVERALL LENGTH OF TRAVEL \516={(\501)-\503} DECIMAL 3;8 'CURRENT RPM GETRPM 3;\510 'FEEDRATE = RPM / TPI \512={(\510/\504)} 'CURRENT CUT DEPTH \514=f IF \350<=0THENGOTO :NOTSPINNING DECELSTOP:RAPID {b+.01};{r/2} :ROUGH DECELSTOP:RAPID b;{(\508+\514)/2} \509={(\508+\514)} IF\509>=\500THENGOTO ONEFEEDRATE \512 \515={(\508+\514)} SUSPEND INPUTS VIRTINDEX 3;.004 GO z;{(\515+(((TAN\513)*\516)*2))/2} DECELSTOP:RAPID z;{(r/2)} RESUME DECELSTOP:RAPID b;{r/2} \508={(\508+\514)} \514={(\514*.9)} IF\514<.01THEN\514=.01 GOTO :ROUGH ONEDECELSTOP:RAPID b;{(r/2)} DECELSTOP:RAPID b;{(x/2)} FEEDRATE \512 \517=x SUSPEND INPUTS VIRTINDEX 3;.004 GO z;{(\517+(((TAN\513)*\516)*2))/2} DECELSTOP:RAPID z;{(r/2)} RESUME DECELSTOP:RAPID b;{(r/2)} DECIMAL 3;4 EXIT :NOTSPINNING STOP ~@~INPUTIO.FIL LOADING \54 ' Green and Yellow Buttons IF#21=0 THENIF \105=1 THEN \105=0:EXIT IF#21=1 THENIF \54>0 THENIF \105=0 THEN \105=1:#25=1:#24=0:LABEL1 CYCLE STARTED;3:CYCLESTART:EXIT IF#22=0 THENIF \106=1 THEN \106=0:EXIT IF#22=1 THENIF \54>0 THENIF \106=0 THEN \106=1:#24=1:#25=0:LABEL1 FEEDHOLD;14:FEEDHOLD:EXIT ' On/Off Key IF#23=1 THENIF \100=1 THEN EXIT IF#23=1 THENIF \100=0 THEN \100=1:LABEL1 INTERFACE SUSPENDED;14:SUSPEND GUI:EXIT IF#23=0 THENIF \100=1 THEN \100=0:LABEL1 INTERFACE RESUMED;3:RESUME:EXIT ' Emergency Stop IF #20=1 THENIF \101=1 THEN \101=0:LABEL1 E-STOP HAS BEEN RESET;3:EXIT \13=0 :CLOCK IF#20=0 THEN\13={\13+1} SLEEP .1 IF\13=>5THEN GOTO :EMERGENCY IF#20=1 THEN EXIT IF\13<5 THEN GOTO :CLOCK :EMERGENCY IF #20=0 THEN \101=1:LABEL1 EMERGENCY STOP;12:#24=0:#25=0:ESTOP:EXIT ' X axis limit switch IF#17=0 THEN EXIT IF#17=1THEN LABEL1 X AXIS OVERTRAVEL;14:ESTOP:EXIT ' Z axis limit switch IF#18=0 THEN EXIT \9=0 :COUNTER IF#18=1 THEN\9={\9+1} SLEEP .1 IF\9=>5THEN GOTO :ZOVERTRAVEL IF#18=0 THEN EXIT IF\9<5 THEN GOTO :COUNTER :ZOVERTRAVEL LABEL1 Z AXIS OVERTRAVEL;14:ESTOP:EXIT ' Spindle jog IF#19=0THEN#29=0:#26=1:EXIT IF#19=1THEN#29=1:#26=0:EXIT |
|
#9
| ||||
| ||||
| I'd suggest you pop for Opto 22 and the aux IO card. Get an adlink 7248 and a pair of Opto22 G4PB24 boards plus cables. You can use it to solve your other issues, also. If you wrote that thread macro, I can see you're capable with the Camsoft programming language. Good thing. Below is a clip out of my thread macro that shows how to use the index mark input. (If you want, I posted my entire G76 compatible threading routine at http://cnczone.com/forums/showthread.php?t=47767 ) Karl DECELSTOP 'make sure at start before proceeding,must be before move GO \572;\573 'feed in to start of thread #92=1 'power up slot sensor SUSPEND INPUTS 'turn off inputio SLEEP 0.1 'let sensor stabilize WAITAUXIO #57=0 'better than WAITUNTIL, bypass windows hardware interupt WAITAUXIO #57=1 'catch leading edge of slot sensor on GO \581;\583 'cut the thread at DOC GO \582;\584 'pull out of thread '* NOTE: very technically feed should be increased by SIN(pullout angle), not implemented RESUME 'turn inputio back on #92=0 'turn slot sensor off GO ;\561 'GO to Xstart position DECELSTOP RAPID \570 'return to start of thread, Zstart position |
|
#10
| ||||
| ||||
| Is there anything in particular you found, pluses or minuses? This is not under Camsoft, by the way. Thanks Al.
__________________ CNC, Mechatronics Integration and Machine Design. “Logic will get you from A to B. Imagination will take you everywhere.” Albert E. |
| Sponsored Links |
|
#11
| ||||
| ||||
| I had tried electronic gearing for hobbing with native galil. Worked on a 17X0 card at slow speed. I've been meaning to get back to it. Too many projects, too little time. FWIW, hobbing works about the same as threading from an electronic view. There's a new super high speed Galil card. bet it could keep up with threading at high speed. You'll still need an index mark to start every pass at the same point. The encoder index pulse won't drive a Galil input, you'll have to amplify it. Karl |
|
#12
| ||||
| ||||
| I am experimenting with different methods, internal commands FE without the motor control etc. Also I have a push/pull output encoder so If I needed to I can input directly to a Galil input when input jumper is set to 5v derived from the card. A.
__________________ CNC, Mechatronics Integration and Machine Design. “Logic will get you from A to B. Imagination will take you everywhere.” Albert E. |
![]() |
| Currently Active Users Viewing This Thread: 1 (0 members and 1 guests) | |
| Thread Tools | Search this Thread |
| Display Modes | |
| |
Similar Threads | ||||
| Thread | Thread Starter | Forum | Replies | Last Post |
| tl-2 program integrity error and program data error alarm #'s 212 250 need help | CNChelp | Haas Mills | 12 | 03-14-2010 08:19 PM |
| OM-A ROM PARITY ERROR "NOT RAM ERROR" | offroadxx | Fanuc | 9 | 05-07-2008 08:15 PM |
| Virtindex | davesnd | CamSoft Products | 2 | 03-07-2008 11:09 AM |
| Fatal Error CCWx;y;z;i;j;k | 69owb | CamSoft Products | 7 | 11-24-2007 09:50 PM |
| R2E3 Boss 8 System Fatal Error | rkdygert | Bridgeport and Hardinge Mills | 1 | 08-22-2006 08:53 PM |