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 > Fanuc


Fanuc Discuss Fanuc controllers here!


This forum is sponsored by:

Reply
 
LinkBack Thread Tools Search this Thread Display Modes
  #1   Ban this user!
Old 04-29-2011, 05:44 PM
 
Join Date: Apr 2011
Location: bunga country
Posts: 8
old newbie is on a distinguished road
M98 P/Q?

Hi all,
I have a 0i-MC where I can use the Q argument to address a line number in the current program. No need to make an external program for subprogram. Example:

O1;
M98 Q1000;
M30;
;
N1000;
(...)
M99;

Actually this isn't explained in the FANUC manual, only the P argument is. I don't know how this was set up. But now I have a 18i where this "trick" doesn't work. Anyone knows something about this subject? I didn't find anything on the net. Some parameter to change?
Also it would be AWESOME to be able to do it with G65/G66 as well (but this does NOT work even on my 0i-MC)

Please don't tell me to use M99Nxx or some other spaghetti code workaroud
Reply With Quote

  #2   Ban this user!
Old 04-29-2011, 06:58 PM
 
Join Date: Sep 2009
Location: USA
Posts: 74
jvangelder is on a distinguished road

oi-mc should use the GOTO command which will just jump to a line number

m98 pxxxx loads a sub program


your post doesnt make sense to me, what are you trying to do that your not able to.
Reply With Quote

  #3   Ban this user!
Old 04-29-2011, 08:14 PM
 
Join Date: Apr 2011
Location: bunga country
Posts: 8
old newbie is on a distinguished road

I didn't ask whether my method was good or not. I'm not trying to do something impossible.

Believe it or not, it DOES work on the 0i. I just need to make it work on the 18i.

Maybe the example code I posted wasn't very indicative of its purpose, but the purpose is irrelevant. The fact that the code works is relevant. I'll make a better example anyway:

O1000;
X0 Y0 M98 Q1100;
X100 Y0 M98 Q1100;
M30;
;
N1100;
(...)
M99;

The point is that I can just put subprogrs in the main prog instead of making lots of additional files. Potentially tens of them for each main program. I use a lot of subs and macros (even modal ones) for most of my programs, so M98 Qxx was a godsend. I wish it was possible to use this trick also with G65-66 but I've achieved something very close with my own subprogram-calling macros. Just for the record, it looks something like this:

O9000(M985 CALL LOCAL MACRO);
(Q=SEQUENCE NUMBER);
(R=PROGRAM NUMBER)(MODAL);
(A,B,C,ETC=MACRO ARGUMENTS);
IF[#18 NE #0] THEN #500=#18 (REMEMBER PROGRAM NUMBER);
M98 P#500 Q#17;
M99;

Yes it's possible to specify P and Q. And the arguments used when calling M985 are mantained when the control passes to the subprogram, bacause it's called with a M98 not a G65, which means the level of local variables doesn't change. Example:

O1000
M985 R1000 Q4 A1100
M985 Q4 A1200
M985 Q4 A1300
M30

N4
G52 X0 Y0 M98 Q#1
G52 X100 Y0 M98 Q#1
G52 X100 Y100 M98 Q#1
G52 X0 Y100 M98 Q#1
M99

N1100
(...)
M99

N1200
(...)
M99

N1300
(...)
M99

The question is, how do I enable this Q trick on the 18i? And possibly not only for M98 but also for G65?
Reply With Quote

  #4   Ban this user!
Old 04-29-2011, 09:47 PM
beege's Avatar  
Join Date: Feb 2008
Location: USA
Posts: 518
beege is on a distinguished road

I've never seen the Q word used with the M98, but I HAVE used the P word with M99 in the main program.

M99P1100 jumps to N1100, and M99 by itself jumps to the beginning of the program.

Hmmm. Q, huh?
Reply With Quote

  #5   Ban this user!
Old 04-30-2011, 01:55 AM
 
Join Date: Feb 2006
Location: india
Posts: 1,187
sinha_nsit is on a distinguished road

Q might be working, but it is as good as a simple GOTO only. If the sub can be repeated a number of times using Q, then it has some utility. Check and let us know.

Incidently M985 has nothing to do with M98.
Reply With Quote

Sponsored Links
  #6   Ban this user!
Old 04-30-2011, 05:31 AM
 
Join Date: Apr 2011
Location: bunga country
Posts: 8
old newbie is on a distinguished road

M98 Q works just as M98 P. The difference is the subprogram in part of the current program instead of an additional external program. It can also be repeated with L. I'ts also possible to use P and Q in the same call. GOTO has nothing to do with it.
The "M985" I posted is a custom macro made by me.
All code examples I posted work perfectly, I'm not making up random stuff.

It seems this subject is rather obscure. Thanks for the help so far anyway. Next week I'll look for differences in the parameters 6000s between the 0i and 18i and maybe I'll find out what enables it.
Reply With Quote

  #7   Ban this user!
Old 04-30-2011, 06:03 AM
 
Join Date: Feb 2006
Location: india
Posts: 1,187
sinha_nsit is on a distinguished road

P and Q in the same call?
How is it interpreted?
Reply With Quote

  #8   Ban this user!
Old 04-30-2011, 12:44 PM
 
Join Date: Apr 2011
Location: bunga country
Posts: 8
old newbie is on a distinguished road

It looks for sequence number Q in program number P. Probably not very useful in everyday programming (but my "local macro call" custom needs it).
I got a look at the parameter manuals for both models. In the 0i, it says:
6005: bit 0 (SQC) Calling a subprogram with its sequence number by the subprogram function is: 0=disabled 1=enabled
The 18i manual doesn't mention those parameters but IIRC the parameter screen DID show all the same that are on the 0i... next week we'll see.
Reply With Quote

  #9   Ban this user!
Old 05-02-2011, 01:40 AM
 
Join Date: Feb 2006
Location: india
Posts: 1,187
sinha_nsit is on a distinguished road

This issue needs investigation.
If a sub can be called by sequence number, it perhaps is a part of the calling program, not an external program. But, logically, it should still be a P-word only, not a Q-word.
Reply With Quote

  #10   Ban this user!
Old 05-20-2011, 07:31 AM
 
Join Date: Aug 2007
Location: uk
Posts: 58
derekBPcnc is on a distinguished road

Hi All,

I'm used to using Mac3 controller and M98 calls to a "subroutine" within the main program i.e not an external "program".

So, i was a bit disapointed to find out my new VMC with a Oi-MD control cant do this simple thing

I'm very interested in finding the best way to call sub routines (not external sub programs).

The operators manual does detail M98 P and Q words......

Such as N00030 M98 P1010 Q1030.....this jumps to an external program and to line number 1030 in the external prog.

It doesn't give an example of just the Q word - I tried it,and it does not work (even with the SEQ parameter 6005 set).

I'll give it another try as some of my progs have 6 or 7 subroutines and 24 workoffsets (jig positions) and having to use goto and external sub programs is a house keeping nightmare.

How do you do it?

Cheers,
Derek.
Reply With Quote

Sponsored Links
  #11   Ban this user!
Old 05-21-2011, 04:44 AM
 
Join Date: Apr 2011
Location: bunga country
Posts: 8
old newbie is on a distinguished road

I've been told that if setting 6005.0 doesn't work, then an option must be installed by fanuc.
I could dump the option params form a machine that had it enabled, but had no luck finding which one needs to be changed (or maybe changing params isn't enough truly, but it's hard to believe).

So I set my machine to achieve the same result using G65 instead. A program looks like this:

O1000
GOTO[0+#17]
N0
(main program here)
(sub call example: )
G65 P1000 Q123
M30

N123
(subprogram here)
M99

Parameter CLV (6001 was it?) should be zero so #17 is cleared upon reset, which will cause the GOTO statement to jump to N0 on program start.
It can be simplified further using custom M/G codes (but the limitation of such calls not working when nested can be annoying)
Reply With Quote

  #12   Ban this user!
Old 05-21-2011, 11:42 AM
 
Join Date: Feb 2006
Location: india
Posts: 1,187
sinha_nsit is on a distinguished road

G65 calls an external program. Q123 would set local variable 17 to 123, inside the macro.
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





All times are GMT -5. The time now is 02:39 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