586,647 active members*
2,035 visitors online*
Register for free
Login
IndustryArena Forum > MetalWorking Machines > Okuma > Dry-run system variable?
Results 1 to 13 of 13
  1. #1
    Join Date
    Jun 2004
    Posts
    3

    Dry-run system variable?

    Recently had a machine crash due to the dry-run function being left active. Is there a way to verify that the dry-run function is active/disabled in a program using system variables or perhaps interrogating a parameter value?

  2. #2
    Join Date
    Sep 2006
    Posts
    24
    What type of machine and control?

  3. #3
    Join Date
    Dec 2008
    Posts
    3111
    Obviously, dry run was used to prove-out a program
    Single step used as well ??

    As newer controls usually have only 1 knob, and it only controls feedrate and rapid rate seperately while in single step.
    If single block is OFF then the override only controls feedrates NOT rapids.

    Get the operators into a habit of using single step and turning the feedrate override to ZERO after each block of code

    1. knob to ZERO
    2. single block ON
    3, Dry run ON
    4....prove the program #1. at each block
    5. Dry run OFF
    6. ..#1.

    Leaving the machine-- #1. again
    Turning OFF at the end of day --- guess what ---#1.

    As for interrogating the parameter, not sure of the actual address
    but the code should be written something like this ( in red = a guess )

    Code:
    ...( Header info )
    ...( Safety code )
    IF [VNDRYR = 0] GOTO NEND  (if dry run is OFF- jump over the warning)
      VNCOM[1]=1 (turns message screen on )
      MSG (          <<<< WARNING >>>>                        DRY RUN IS *** ON ***)
      M00 ( cycle start to continue WITH dry run )
    NEND
    ....(Your Prog )
    M30
    %

  4. #4
    Join Date
    Apr 2009
    Posts
    1262
    There are all kinds of system variables available for your use. With a little creativity, you can make an LT machine safer than a cadet. Here's a program for an LT200-MY with a P200 control. It checks all of your switches and knobs to make sure you aren't forgetting anything. Being human, it's easy to do. This program also checks to make sure the feed rate is at 0 and single block is on when doing a restart. You can put parentheses around areas you don't need on your machine. It takes about 1/2 a second for the machine to check everything, so it's well worth it.

    If you need something else, let me know. I have programs for the other controls too. They are different on these controls since Okuma uses different I/O methods and addressing on them.

    Code:

    G13 (WRITTEN FOR LT200MY WITH P200 CONTROL)
    G140
    (TURN FEED TO 0 AND SINGLE BLOCK ON FOR RESTART.)
    ( SWITCHES CAN BE ADJUSTED AFTER CHECK HAS OCCURED.
    INDIVIDUAL MODE CAN ONLY BE USED DURING RESTART.)
    G50S500
    /CALL OCHKA (OR OCHK1 FOR NO BARFEED)
    G14
    G141
    G50S500
    /CALL OCHKB
    M2


    OCHKA
    IF[VORD[0016]EQ 1]NRTS (IF MACHINE LOCK ON)
    (IF[VTOFZ[2]EQ 0]NCK0
    VUACM[1]='T-A2 NOT AT Z0.0'
    VDOUT[992]=1)
    NCK0 IF[VORD[0015]EQ 0]NCK1
    VUACM[1]='DRY RUN ON'
    VDOUT[992]=1
    NCK1(IF[VORD[0014]EQ 0]NCK2
    VUACM[1]='BLOCK DELETE ON'
    VDOUT[992]=1)
    NCK2 IF[VORD[0022]EQ 1]NCK4
    VUACM[1]='SPINDLE OVERIDE'
    VDOUT[992]=1
    NCK4 IF[VORD[0031]EQ 1]NCK5
    VUACM[1]='COOLANT OFF'
    VDOUT[992]=1
    NCK5 IF[VORD[011A]EQ 1]NCK6
    VUACM[1]='R-SPNDL OVERRIDE'
    VDOUT[992]=1
    NCK6 IF[VRSTT NE 0]NCK7 (IF RESTART)
    NCK IF[VORD[0011]EQ 0]NCK7
    VUACM[1]='A INDIVIDUAL ON'
    VDOUT[992]=1
    NCK7 IF[VORD[001C]EQ 1]NCK8
    VUACM[1]='LOAD MONITOR OFF'
    VDOUT[992]=1
    NCK8 IF[VORD[0110]EQ 1]NCK9
    VUACM[1]='MA OVERRIDE'
    VDOUT[992]=1
    NCK9 IF[VORD[0106]EQ 1]NCK10
    VUACM[1]='MB OVERRIDE'
    VDOUT[992]=1
    NCK10 IF[VORD[0143]EQ 0]NCK11
    VUACM[1]='SYSTEM LINK ON'
    VDOUT[992]=1
    NCK11 IF[VRSTT NE 0]NCK12 (IF RESTART JUMP)
    IF[VORD[0013]EQ 1]NCK12 (SINGLE BLOCK)
    IF[VORD[0023]EQ 1]NCK12
    VUACM[1]='FEEDRATE NOT 100'
    VDOUT[992]=1
    NCK12 IF[VRSTT EQ 0]NRTS (IF NOT RESTART JUMP)
    NCKR1 IF[[VIRD[0030]+VIRD[0031]+VIRD[0032]]EQ 0]NCKR2
    VUACM[1]='FEEDRATE TOO HI'
    VDOUT[992]=1
    NCKR2 IF[VORD[0013]EQ 1]NRTS
    VUACM[1]='SINGLE BLK OFF'
    VDOUT[992]=1
    NRTS RTS
    OCHKB
    IF[VORD[0016]EQ 1]NRTS
    (IF[VTOFZ[2]EQ 0]NCK1
    VUACM[1]='T-B2 NOT AT Z0.0'
    VDOUT[992]=1)
    NCK1 IF[VRSTT NE 0]NRTS (IF RESTART)
    NCK13 IF[VORD[0012]EQ 0]NRTS
    VUACM[1]='B INDIVIDUAL ON'
    VDOUT[992]=1
    NRTS RTS
    OCHK1 (WITHOUT BARFEEDER)
    IF[VORD[0016]EQ 1]NRTS (IF MACHINE LOCK ON)
    IF[VORD[0015]EQ 0]NCK0
    VUACM[1]='DRY RUN ON'
    VDOUT[992]=1
    NCK0(IF[VORD[0014]EQ 0]NCK2
    VUACM[1]='BLOCK DELETE ON'
    VDOUT[992]=1)
    NCK2 IF[VRSTT NE 0]NCK3 (IF RESTART)
    NCK00 IF[[VIRD[0030]+VIRD[0031]+VIRD[0032]]EQ 0]NCK3
    NCK IF[VORD[0023]EQ 1]NCK3
    VUACM[1]='FEEDRATE NOT 100'
    VDOUT[992]=1
    NCK3 IF[VORD[0022]EQ 1]NCK4
    VUACM[1]='SPINDLE OVERIDE'
    VDOUT[992]=1
    NCK4 IF[VORD[0031]EQ 1]NCK5
    VUACM[1]='COOLANT OFF'
    VDOUT[992]=1
    NCK5 IF[VORD[011A]EQ 1]NCK6
    VUACM[1]='R-SPNDL OVERRIDE'
    VDOUT[992]=1
    NCK6 IF[VRSTT NE 0]NCK7 (IF RESTART)
    NCK IF[VORD[0011]EQ 0]NCK7
    VUACM[1]='A INDIVIDUAL ON'
    VDOUT[992]=1
    NCK7 IF[VORD[001C]EQ 1]NCK8
    VUACM[1]='LOAD MONITOR OFF'
    VDOUT[992]=1
    NCK8 IF[VORD[0110]EQ 1]NCK9
    VUACM[1]='MA OVERRIDE'
    VDOUT[992]=1
    NCK9 IF[VORD[0106]EQ 1]NCK11
    VUACM[1]='MB OVERRIDE'
    VDOUT[992]=1
    NCK10 IF[VORD[0143]EQ 0]NCK11
    VUACM[1]='SYSTEM LINK ON'
    VDOUT[992]=1
    NCK11 IF[VRSTT EQ 0]NRTS (IF RESTART)
    NCKR1 IF[[VIRD[0030]+VIRD[0031]+VIRD[0032]]EQ 0]NCKR2
    VUACM[1]='FEEDRATE TOO HI'
    VDOUT[992]=1
    NCKR2 IF[VORD[0013]EQ 1]NRTS
    VUACM[1]='SINGLE BLK OFF'
    VDOUT[992]=1
    NRTS RTS

    Save this program in memory as something like LT200MY-P200.SSB, that way it will load on control boot and be available to all programs. Then all you need to do is write the CALL OCHKA into the A-side program and CALL OCHKB into the B-side.

    Good luck!

  5. #5
    Join Date
    Aug 2009
    Posts
    684

    Re: Dry-run system variable?

    Okuma wiz I need assistance with this concept.

    We have three controls, a 7000m, u100m and p300m I think. We use a similar concept ie a standard macro for safety, but I have only just learned of this I/O reading capability and want to incorporate it.

    The 7000m seems straightforward enough as it has a page with 4letter codes for each switch that can be referenced with VORD.


    I cannot find same page on 100m so I hope it's not an option that needs purchasing?


    The p300 seems to use VORD but does not like the 4letter codes although they appear on I/O screen. Numbers seem to work, so I need to figure out where the number comes from. Manuals are no help. Any advice is appreciated, before I start stabbing wildly in the dark.

    Cheers!

    DP

  6. #6
    Join Date
    Aug 2011
    Posts
    2517

    Re: Dry-run system variable?

    A couple of years ago I remember asking an Okuma Applications Engineer about this exactly.... at first he quoted from the manual, which I think used VIRD (which doesn't work on the 7000 even though it is in the manual). Then he said he checked it on the control and VORD works.
    The syntax he gave me was something like....
    IF [VORD 'NAME' EQ 1] GOTO Nxxx

    The ' is the right quote (it only works with this according to him), not the left quote.

    NAME being the code from the I/O status screens

    however this syntax above doesn't work on the 7000 either.

    Some additional info...

    The control needs to check the logical address information and not the physical address.
    The logical address of the signal is address xxx (000-fff) bit y (0-7).
    The address is in hexadecimal. Translating into a VORD command.....

    IF [VORD[xxxy] EQ1] GOTO Nxxxx

    The address and bit come from the I/O pages.

    For Coolant OFF check it would be IF [VORD[0031] EQ1] GOTO Nxxxx
    which means address 003 bit 1

    It's been a while since I used this, I'll try this tomorrow and see if it works on my 7000L

  7. #7
    Join Date
    Aug 2009
    Posts
    684

    Re: Dry-run system variable?

    Cheers for that fordav11! The logical address can be viewed in hexadecimal on the P300 so that sounds promising.

    On the 7000 the format VORD[ABCD] works fine, but although the P300 uses the same four letter labels It won't accept them.

    So the only thing I am still wondering about is the 100m control. Should there be a page showing I/O address codes for the panel under 'check data'? If it has one it isn't obvious. It is an extremely similar control to the 7000, so my fear is that different options are installed.

    DP

  8. #8
    Join Date
    Apr 2009
    Posts
    1262

    Re: Dry-run system variable?

    All 3 can do it, but io mapping is different. Pneumonic labels went away after the 7000, but VIRD VORD still remain. Io address is used but you may need to subtract 512 from address to properly access it.

    If you have any questions or need more information please contact me.

    Best regards,

  9. #9
    Join Date
    Aug 2009
    Posts
    684

    Re: Dry-run system variable?

    Cheers again for the info lads, have now successfully deciphered the P300. I did require both replies to solve the puzzle.
    The key to cracking the enigma that is the u100m still eludes me though, so I offer myself up to the OkuMasters once again.


    So, have located the I/O pages, tried using VORD along with text label, no joy.
    The screens display two sets of 16 bits of data, arranged as 4 columns with input on the left and output on the right. Corresponding text labels are highlighted when panel switch is pressed, and the value for each set is displayed at bottom of each column. The arrived at value appears to be the hexadecimal equivalent of each 4 bits of data ie 10011111 equates to 9F (or F9 can't remember which way round it goes) accompanied by a H. See below

    ...........[input]................... [output]............
    Bit..label...bit..label....Bit..label...bit..label
    0...ABCD..8..ABCD...0...ABCD..8..ABCD
    1...ABCD..9..ABCD...1...ABCD..9..ABCD
    2...ABCD..a..ABCD...2...ABCD..a..ABCD
    3...ABCD..b..ABCD...3...ABCD..b..ABCD
    4...ABCD..c..ABCD...4...ABCD..c..ABCD
    5...ABCD..d..ABCD...5...ABCD..d..ABCD
    6...ABCD..e..ABCD...6...ABCD..e..ABCD
    7...ABCD..f...ABCD...7...ABCD..f...ABCD
    .nnH.........nnH............nnH..........nnH...... .

    There is also a mysterious SSnn number at the top right of the screen. As you page through there are two check number pages for each SSnumber, which correspond as follows

    I/O check number 0 and 1 to SS01
    I/O check number 2 and 3 to SS02
    I/O check number 4 and 5 to SS03
    I/O check number 6 and 7 to SS04
    I/O check number 20 and 21 to SS11
    I/O check number 22 and 23 to SS12
    I/O check number 24 and 25 to SS13
    I/O check number 26 and 27 to SS14

    How do these page numbers relate to the actual logical addresses on this control? Do you think that I can still use the VORD command in a similar way to the other controls, or do I have to use the more arcane VDIN/OUT with some logic statement. I appreciate that a picture of the screen in question may help, will try to get one.

    DP

  10. #10
    Join Date
    Aug 2011
    Posts
    2517

    Re: Dry-run system variable?

    its very similar to the 7000. including the SSxx (no idea what thats for either ;-)

    so does this work?
    IF [VORD[ABCD] EQ 1] GOTO Nxxxx

    what alarm do you get if this doesn't work?

    note, I played with this on my 7000. the above does work but there must be a space between EQ and 1 or you get crazy alarms in Jinglish that don't make sense.

  11. #11
    Join Date
    Jun 2008
    Posts
    372

    Re: Dry-run system variable?

    Try this

    OINCK
    IF[VORD[0005]EQ 1]NALRM(mirror x axis)
    IF[VORD[0006]EQ 1]NALRM(mirror y axis)
    IF[VORD[0007]EQ 1]NALRM(mirror z axis)
    IF[VORD[001E]EQ 1]NALRM(dry run on)
    GOTO NILED
    NALRM
    VUACM[1]='ILLEGAL FUNCTION'
    VDOUT[993]=1
    NILED
    RTS
    

  12. #12
    Join Date
    Jul 2010
    Posts
    287

    Re: Dry-run system variable?

    On P controls:
    VIRD/VORD: input/output: ipABCD opEFGH or whatever corresponds to the address you're after; in the labels, PB= push button, PL= panel light (if I remember right on PL)
    Therefore you'll see your ipXYZW for, say, dry run light up when you press dry run, and you'll see the opGHJK turn on showing the output to turn the light on indicating dry run is on.
    your ip values will be the number exactly, I usually use 5 numbers. so for address 0 bit 5, of the inputs, i'll write VIRD[00005].
    Your op values will be the address minus 512. so for address 518 bit 7, say, it will be VORD[00067].
    I always assume my panel checks will not work from one machine to the next and use the I/O Monitor to find what i'm after.
    I will toggle what i'm after and page down until I see it sometimes if I don't feel like reading.
    Most addresses seem to be the same, but i'd hate to find the 2 that are different because someone rapided into the chuck of a brand new/used machine.
    Generally, I write my panel checks using the same sub program name, and leaving the sub in each machine individually. That way, programs transfer, and all the proper panel checks are done.

    FYI, regarding the "GOTO" in: IF[abcd eq 1]GOTO Nxxxx, GOTO is unnecessary. If character space becomes an issue sometimes it is imperative to eliminate all extra characters possible. Getting rid of "GOTO_" is 5 characters.

  13. #13
    Join Date
    Aug 2009
    Posts
    684

    Re: Dry-run system variable?

    Quote Originally Posted by christinandavid View Post
    Cheers again for the info lads, have now successfully deciphered the P300. I did require both replies to solve the puzzle.
    The key to cracking the enigma that is the u100m still eludes me though, so I offer myself up to the OkuMasters once again.


    So, have located the I/O pages, tried using VORD along with text label, no joy.
    The screens display two sets of 16 bits of data, arranged as 4 columns with input on the left and output on the right. Corresponding text labels are highlighted when panel switch is pressed, and the value for each set is displayed at bottom of each column. The arrived at value appears to be the hexadecimal equivalent of each 4 bits of data ie 10011111 equates to 9F (or F9 can't remember which way round it goes) accompanied by a H. See below

    ...........[input]................... [output]............
    Bit..label...bit..label....Bit..label...bit..label
    0...ABCD..8..ABCD...0...ABCD..8..ABCD
    1...ABCD..9..ABCD...1...ABCD..9..ABCD
    2...ABCD..a..ABCD...2...ABCD..a..ABCD
    3...ABCD..b..ABCD...3...ABCD..b..ABCD
    4...ABCD..c..ABCD...4...ABCD..c..ABCD
    5...ABCD..d..ABCD...5...ABCD..d..ABCD
    6...ABCD..e..ABCD...6...ABCD..e..ABCD
    7...ABCD..f...ABCD...7...ABCD..f...ABCD
    .nnH.........nnH............nnH..........nnH...... .

    There is also a mysterious SSnn number at the top right of the screen. As you page through there are two check number pages for each SSnumber, which correspond as follows

    I/O check number 0 and 1 to SS01
    I/O check number 2 and 3 to SS02
    I/O check number 4 and 5 to SS03
    I/O check number 6 and 7 to SS04
    I/O check number 20 and 21 to SS11
    I/O check number 22 and 23 to SS12
    I/O check number 24 and 25 to SS13
    I/O check number 26 and 27 to SS14

    How do these page numbers relate to the actual logical addresses on this control? Do you think that I can still use the VORD command in a similar way to the other controls, or do I have to use the more arcane VDIN/OUT with some logic statement. I appreciate that a picture of the screen in question may help, will try to get one.

    DP
    It's simple enough. The number required is the Check Data number followed by the bit, as per budgies post. Cheers!

    DP

Similar Threads

  1. system variable for tool in spindle
    By ggborgen in forum Fanuc
    Replies: 7
    Last Post: 07-15-2010, 07:29 AM
  2. System Variable for Pallet in thr machine
    By ggborgen in forum Fanuc
    Replies: 2
    Last Post: 06-12-2010, 01:58 AM
  3. System Variable For Pallet In The Machine
    By ggborgen in forum Parametric Programing
    Replies: 3
    Last Post: 01-16-2010, 06:45 PM
  4. System Variable Z Work Shift
    By ggborgen in forum Parametric Programing
    Replies: 3
    Last Post: 11-26-2009, 06:57 AM
  5. System Variable for Pallet location
    By Jason812 in forum Fanuc
    Replies: 7
    Last Post: 11-05-2007, 02:23 PM

Tags for this Thread

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •