does your control have macro ability ?
to do a quick check in mdi type vc1=1 and see if it alarms out if not did it change vc1 to 1
Hi i am new to cnc i have been trying to write a program for an okuma mcvII bridge mill we have at work this is a relatively simple program for face milling hr plate to dcf we process 4x12 foot plate with 8” face mills our toolchanger dose not work so tooling is swapped manuelly.
The controller is a OSP-U100M
The manuel i have is publication # 4186-E dated march 1998
The basic program structure is to set xyz at one corner have the operator give length and width and have the program cut only on the x axis feed starting at tge outer edges and working to the center then stopping.
I have all the code wrote out and was trying to use a simple if statement and 6 varribles to govern the loop and table travels.
The code will run all my movements flawlessly in a g code simulater but on my controller it will not move to the line i address in the code
The error given is if goto statement address not found
My varriables are set as vc1=1 all as seperate blocks vc4 is my loop counter and vc5 is the quantity of passes required to mill the plate
My numbering system for the entire 48 lines is as follows
N01 g20g90
N02 some g code
...
N13 Loop starts here
...
...
N42 IF [VC4 LE VC5]N13
...
N48 M30
This is the syntaxt and grammer shown in the programming manuel we have for the machiene.
Please someone tell me i am making a total noob mistale somewhere my addresses match why caint the controller find the N13 address?
Thanks
Du
Similar Threads:
does your control have macro ability ?
to do a quick check in mdi type vc1=1 and see if it alarms out if not did it change vc1 to 1
hi dueulear, check previous post by rcs60, about macro/user task option, and, if it works, then this : it should deliver VC1 = 22 / kindly
Code:VC1 = 0 N1 VC1 = VC1 + 1 IF [ VC1 LT 22 ] N1 M02
we are merely at the start of " Internet of Things / Industrial Revolution 4.0 " era : a mix of AI, plastics, human estrangement, powerful non-state actors ...
Thanks for the test code i will try that on Monday as soon as i get in in the meantime i have a few more questions as i am sure it will not run.
the reason i am certain is that i can get an if statement to work just fine as long as i am not addressing another line of code
if i write the code as you typed it with a space between the end of the if statement and the address the controller will error out and tell me via it's
internal help file that i did not specify an address. if i write it without the space as in "IF [VC1 LT 22]N1 " It will error out and tell me address not found.
so i just want to bounce a few more questions off you before i go in Monday so i can have something else to try if macros truly are enabled.
Is it possible this controller will only search downwards in the code for an address?
when i run this code all the other variables seem to work as the program runs as expected with dimensions given as long as i remove my second if statement.of course this limits me to 2 passes (not very useful).
would it make a difference to name my looped code as a program and called it?
dose anyone know if there is a quirk specific to okuma controllers or this controller (OSP-U100M) when it comes to addressing the help file shows address as 5 charterers i have tried this and the controller gives the same errors.
is there a system peramiter that would disable user task feature?
thanks again for all your help.
du
my full code is as follows
O022
N01 G20 G90
N02 G15 H1
N03 G94 M12
N04 VC1=000.0 (LENGTH OF PLATE X)
N05 VC2=00.0 (WIDTH OF PLATE Y)
N06 IF [VC2 EQ 0] VC2=1
N07 VC3=2.5 (Y POSITION OF FIRST PASS)
N08 VC4=1 (LOOP COUNTER)
N09 VC5=FUP[VC2/11] (RAISES VC2 TO NEXT INTIGER UP)
N10 VC6=VC2-2.5
N11 S200 M03 (LOOP BEGINS)
N12 G00 Z10.0 X=VC1+6 Y=VC3
N13 G00 Z1.0
NNN G01Z0.0 F100
N14 G56 H1
N15 G04 P1..0
N16 M22
N17 M24
N18 G01 X=VC1 F40.
N19 G01 X-6.0 F40.
N20 M25
N21 M23
N22 G00 Z10.0
N24 M01
N25 G00 Y=VC6
N26 G00 Z1.0 F100
N27 G04P1
N28 M22
N29 M24
N30 G01 X-6 F40.
N31 G01 X=VC1+6 F40.
N32 M25
N33 M23
N34 G00 Z10.0
N35 M01
N36 VC3=VC3+5.5
N37 VC6=VC6-5.5
N38 VC4=VC4+1
N39 IF [VC4 LE VC5]N11 (IF REMOVED REST OF CODE WORKS WITHOUT ERRORS.
IF LEFT IN CONTROLLER CANNOT FIND ADDRESS)
N40 G00 X=VC1+6 Y0.0
N41 M30
I just found this detail in the user task section of my programming manual
Up to 30 sequence labels may be used, which include those not used to specify the destination of a jump. Failure to follow this limit will result in an error. It is recommended to use sequence labels only for blocks which will be used as the destination of a jump.
with 48 named lines in my last test code i can see how line 13 would be overwritten and ignored as an address as only lines 10-48 would remain in the buffer if 48 addresses where loaded into a list with only 30 positions.
this might be my problem as i was trying to be all modern by labeling every line of my code.
du
hello dueulear
Up to 30 sequence labels may be used, which include those not used to specify the destination of a jump. Failure to follow this limit will result in an error. It is recommended to use sequence labels only for blocks which will be used as the destination of a jump
this happens when you read the manuals ... maybe you lost some time with searching, but at least you found something reaaaaly interesting
there is nothing modern about labeling each line, but more load on the controlthis might be my problem as i was trying to be all modern by labeling every line of my code
talking about times < ms
if you wish to be "modern", get a kitty if you wish to be "all modern", get all kitties
can you remove those labels ? do you need help to remove them automatically ?
controller never searches downwards, but from the begining of the code location, or, more precise, from the begining of code nesting level :Is it possible this controller will only search downwards in the code for an address?
... if code is inside a *.min file, it will search from the begining of that file ( no nesting level )
... if code is inside a *.sbb file, that is called from a *.min file, it will search from the begining of the ssb file ( nesting level 1 )
... if code is inside a soubroutine, thus between O**** and RTS, it will search only inside that soubroutine ( nesting level >=1 )
search is done from the begining of the active nesting level, and it is restrained only to the active nesting level
why not ... try this : CALL OSUB Q5 / kindlywould it make a difference to name my looped code as a program and called it?
we are merely at the start of " Internet of Things / Industrial Revolution 4.0 " era : a mix of AI, plastics, human estrangement, powerful non-state actors ...
I guess by modern i meant being unconcrned about saving a few bytes of memory by not numbering code lines
When i look at a 50 line or less program with no more than 20 chareters per line i don’t think memory hogg but a 1980 somthing programmer might????
Well i do like kitties
Thanks again i will let you all know if this clears up my issues
hy dueulear just like you said, using less labels means also less flash memory size, and less processing time
saved amount is less than 1ms / block, thus it does not affect ( todays ) machining at a scale that matters, especially because of the read-ahead capability
it would be a problem on a cnc without read-ahead + without nurbs + high feed + short toolpath segments
can you edit your cam, so it won't put labels anymore ?
i try to use labels only when required / kindly
we are merely at the start of " Internet of Things / Industrial Revolution 4.0 " era : a mix of AI, plastics, human estrangement, powerful non-state actors ...
Sadly i do not have any cam software or cad as all we do is face mill plate and square barstock our cnc needs are pretty simple i wrote the macro long hand and entered it through the controllers interface as i also do not have access to ant periferial I/O devices that will connect to the 1998 box????
Probably why i am programming it not the guy from corperate who is 15 years younger and really good with all our modern equipment
I found tgere is actually a peramiter setting that will allow 3 diffrent modes
A: unlimited addresses branching allowed
B: 30 or less addresses branching allowed
S: no branching
This seemes to have been added as a memory management feature
Concidering the controllers limited capacity and resources
It is kinda funny as i origonaly learned programming in 1995-98
Right about when ram and flash started geeting cheaper
It seemes i have a late 90’s machiene with early 90’s controller
Kinda a fun reminder of where we came from not so long ago
Kinda sucks i caint check peramiters and my edit till
monday though
Funny thing i had to find out about those settings by reading about them in 3 diffrent places in two diffrent manuels where they say “by selecting the peramiter” without giving it a name or catagory or where to find it.
Then spend a good hour going page by page in the manual before i found where to set it ????.
Blast from the past lol
Thanks again
yup, i remember reading 3-4 hours one page about load-monitor i believe that the manuals are translated at a lotery-slot-bar, or something like that ....Funny thing i had to find out about those settings by reading about them in 3 diffrent places in two diffrent manuels where they say “by selecting the peramiter” without giving it a name or catagory or where to find it.
somehow, even if the osp seems cool, i feel that it is a bit outdated; is easy to have a device updated, but a cnc is a different story ...It seemes i have a late 90’s machiene with early 90’s controller
still, the win based osp is pretty capable
maybe you should try to interface that controller somehow ... i don't know how you feel about it, but for me is a waste of time to type near the machineSadly i do not have any cam software or cad as all we do is face mill plate and square barstock our cnc needs are pretty simple i wrote the macro long hand and entered it through the controllers interface as i also do not have access to ant periferial I/O devices that will connect to the 1998 box????
i had been there, now i program from a pc and send files fast to the cnc, like copy-paste
once you achieve such a speed, you get used to it, and there is no going-back ( at least until network fails or pc problems begin, like random shutdown, etc )
i don't know / enjoy your time, monday is for working ... chill out, is sunday / kindlyKinda sucks i caint check peramiters and my edit till monday though
we are merely at the start of " Internet of Things / Industrial Revolution 4.0 " era : a mix of AI, plastics, human estrangement, powerful non-state actors ...
Well changing the system varrible took care of evrything it works great now
Believe it or not this 1 face milling program covers evrything we do so i really wont be writing anything else for it.
Any time i wasted was done while the machiene was running plate with another program that kinda gives you 30 min to do somthing else while you r
Machiene is running.
Luckily the controller lets you edit while another program runs
Thanks again for all your help
hy dueulear
I found tgere is actually a peramiter setting that will allow 3 diffrent modesif you wish, consider sharing the location of the parameter and / or the system variable ... maybe a poor guy from 2075 will have same problem, and you will be in ibizaWell changing the system varrible took care of evrything it works great now
omg one more program edit & i guess you are done with writing 4 life ...Believe it or not this 1 face milling program covers evrything we do so i really wont be writing anything else for it
all the bestThanks again for all your help
we are merely at the start of " Internet of Things / Industrial Revolution 4.0 " era : a mix of AI, plastics, human estrangement, powerful non-state actors ...