CNCzone.com-The Largest Machinist Community on the net!



Home Page Mark Forums Read Today's Posts My Replies Classifieds Reviews Photo Gallery Web Links Share Files Advertise With Us Ad List
Go Back   CNCzone.com-The Largest Machinist Community on the net! > Machine Controllers Software and Solutions > CamSoft Products


CamSoft Products Discuss Camsoft PC based CNC controller products here!


This forum is sponsored by:

Reply
 
LinkBack Thread Tools Search this Thread Display Modes
  #1   Ban this user!
Old 11-04-2008, 08:14 PM
davesnd's Avatar  
Join Date: Mar 2008
Location: Canada
Posts: 71
davesnd is on a distinguished road
Question VIRTINDEX Fatal Error #0

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?
Reply With Quote

  #2   Ban this user!
Old 11-04-2008, 10:10 PM
Karl_T's Avatar  
Join Date: Mar 2004
Location: Dassel,MN,USA
Posts: 1,318
Karl_T is on a distinguished road

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
Reply With Quote

  #3   Ban this user!
Old 11-04-2008, 10:26 PM
davesnd's Avatar  
Join Date: Mar 2008
Location: Canada
Posts: 71
davesnd is on a distinguished road

I would love to get details for how to build something to solve this problem. I'm all ears
Reply With Quote

  #4   Ban this user!
Old 11-05-2008, 06:21 AM
Karl_T's Avatar  
Join Date: Mar 2004
Location: Dassel,MN,USA
Posts: 1,318
Karl_T is on a distinguished road

Originally Posted by davesnd View Post
I would love to get details for how to build something to solve this problem. I'm all ears
let's decide what's the best route. Do You have an encoder on your spindle? Single ended or differential? No big deal if you don't use an encoder.

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.
Reply With Quote

  #5   Ban this user!
Old 11-05-2008, 08:15 PM
davesnd's Avatar  
Join Date: Mar 2008
Location: Canada
Posts: 71
davesnd is on a distinguished road

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)
Reply With Quote

Sponsored Links
  #6  
Old 11-05-2008, 08:32 PM
HuFlungDung's Avatar
Moderator
 
Join Date: Mar 2003
Location: Canada
Posts: 4,825
HuFlungDung is on a distinguished road

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)
Reply With Quote

  #7   Ban this user!
Old 11-06-2008, 03:06 AM
Karl_T's Avatar  
Join Date: Mar 2004
Location: Dassel,MN,USA
Posts: 1,318
Karl_T is on a distinguished road

Originally Posted by davesnd View Post
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. ...
I have a similar machine. Mazak M4 22"x72" 16 speed gearbox 20 hp with Camsoft. First, I don't see how you can be running this machine without auxilliary I/O. Do you have something other than Opto 22? Click IO settings under CNCSetup and tell me if you have any entries for aux cards, aux I/O etc.

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
Reply With Quote

  #8   Ban this user!
Old 11-06-2008, 08:32 AM
davesnd's Avatar  
Join Date: Mar 2008
Location: Canada
Posts: 71
davesnd is on a distinguished road

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 ONE
FEEDRATE \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
ONE
DECELSTOP: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
Reply With Quote

  #9   Ban this user!
Old 11-06-2008, 11:27 AM
Karl_T's Avatar  
Join Date: Mar 2004
Location: Dassel,MN,USA
Posts: 1,318
Karl_T is on a distinguished road

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
Reply With Quote

  #10  
Old 11-08-2008, 12:17 PM
Al_The_Man's Avatar
Community Moderator
 
Join Date: Dec 2003
Location: Canada
Posts: 16,532
Al_The_Man is on a distinguished road
Buy me a Beer?

Originally Posted by davesnd View Post
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 am just got around to experimenting with different methods of threading routine using Galil Native language, I had noticed in a separate thread you had looked into or were using the gearing feature, which is what I am looking to incorporate,
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.
Reply With Quote

Sponsored Links
  #11   Ban this user!
Old 11-08-2008, 01:10 PM
Karl_T's Avatar  
Join Date: Mar 2004
Location: Dassel,MN,USA
Posts: 1,318
Karl_T is on a distinguished road

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
Reply With Quote

  #12  
Old 11-08-2008, 01:50 PM
Al_The_Man's Avatar
Community Moderator
 
Join Date: Dec 2003
Location: Canada
Posts: 16,532
Al_The_Man is on a distinguished road
Buy me a Beer?

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.
Reply With Quote

Reply




Currently Active Users Viewing This Thread: 1 (0 members and 1 guests)
 
Thread Tools Search this Thread
Search this Thread:

Advanced Search
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Trackbacks are On
Pingbacks are On
Refbacks are On


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




All times are GMT -5. The time now is 01:46 PM.





Powered by vBulletin® Version 3.8.7
Copyright ©2000 - 2012, vBulletin Solutions, Inc.
Content Relevant URLs by vBSEO
Template-Modifications by TMS

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 324 325 326 327 328 329 330 331 332 333 334 335 336 337 338 339 340 341 342 343 344 345 346 347 348 349 350 351 352 353 354 355 356 357 358 359 360 361