Osp-p300 multus b200-subroutine for subchuck alarm when new part is loaded?
Close
Login to Your Account
Results 1 to 12 of 12
  1. #1
    Join Date
    Feb 2016
    Country
    ISRAEL
    Posts
    5
    Post Thanks / Like
    Likes (Given)
    0
    Likes (Received)
    0

    Default Osp-p300 multus b200-subroutine for subchuck alarm when new part is loaded?

    Hello dear machinists!

    I have had a nasty crash this week when an operator forgot to unload a part from the subspindle, and loaded a new part to the main spindle.
    this resulted in a bad crash which threw the Y axis 0.3mm off perpendicular and more.
    the machine is now re calibrated and is down for a week now.

    I want to write a simple subroutine that will stop the program from running if there is a part loaded in the subspindle.
    I would like it to continuosely loop if possible until the operator realizes what is wrong.

    in simple wordds : IF [SUB SPINDLE IS CLOSED] THEN M0(REMOVE PART FROM SUB CHUCK/RESET/USE ALARM)

    of course if you have another solution I would love to read your input.

    Thank you!

  2. #2
    Join Date
    Sep 2015
    Country
    UNITED STATES
    State/Province
    Kentucky
    Posts
    38
    Post Thanks / Like
    Likes (Given)
    18
    Likes (Received)
    2

    Default

    I like where you are going with this and have done a similar program to ensure the correct tool is in the spindle at any given point in the program on the mills. I wrote a Macro and assigned it then address it to change/verify and stage the next tool. I think if you went the Macro direction vs the IF- GOTO method, you may find more user friendly. You could then call it on every program it's needed with a G111, or whichever you assign it as ..... good luck with this! I look forward to seeing what you come up with


    Sent from my iPhone using Tapatalk

  3. #3
    Join Date
    Aug 2016
    Country
    ALAND ISLANDS
    Posts
    1,393
    Post Thanks / Like
    Likes (Given)
    43
    Likes (Received)
    96

    Default

    Quote Originally Posted by MULTUSB200 View Post
    Hello dear machinists!

    hello 2 u 2

    machine is now re calibrated and is down for a week now
    if i may : you shoud definetly crash that machine more often, so to get experience with realignment and do it in only 1-2 days

    I want to write a simple subroutine that will stop the program from running if there is a part loaded in the subspindle
    i can not provide code that returns chuck clamp status please consider that a lathe may be ( wrong ) configured to give a go signal even if material is not clamped

    I would like it to continuosely loop if possible until the operator realizes what is wrong
    in some cases i also use infinit looping, so to force the operator to reset the control

    Code:
        IF [ SUB SPINDLE IS NOT CLOSED ] NJUMP
            NLOOP M0 ( REMOVE PART FROM SUB CHUCK/RESET/USE ALARM )
            GOTO NLOOP
        NJUMP

    if you have another solution I would love to read your input
    i would recomand torque skip / load monitor:
    ... slow monitorized W feeding when getting closer to 1st chuck ( good to have the 1st spindle stopped )
    ... put a road in that fancy B head, and check if there is a part in 2nd chuck

    thus monitorized traveling among a critical segment

    this sample stops the axis after Z-1.2, so it will stop the cnc even if no part is there, so no good for you
    Code:
    
        G29 PZ=60 (*)
        G22 Z-1 PZ=40 G94 F50 D.5 L.2  ( feeds to Z-1 unless load reaches 40%. Will start searching for part at Z.5 and will stop searching at Z-1.2. )
        G28
    


    this sample will stop the cnc if something is found during Z-100 travel, and will continue if no interference is detected
    Code:
    
        G29 PZ=25 (*)
        G91 G01 Z-100 F500  G94
        G28 G90
    
    (*) that limit must be <= than an admisible limit declared in para\other function\ upper limit of torque limit comand

    this sample delivers same thing as last one, only it requires load monitor to be active, so a crash may occur in case LM is off and part is still in subspindle; so i dont recomand it at this moment
    Code:
        VLMZB [ 1 ] = 25
        VLMZ1 [ 1 ] = 25
        VLMZ2 [ 1 ] = 25
        VLMON [ 1 ] = 2
        G91 G01 Z-100 F500 G94
        G90
        VLMON [ 1 ] = 0
    
    kindly !

  4. #4
    Join Date
    Apr 2015
    Country
    CANADA
    State/Province
    British Columbia
    Posts
    47
    Post Thanks / Like
    Likes (Given)
    0
    Likes (Received)
    10

    Default

    With USER TASK, there is a ton of safety checks and routines you can build into your programs. For a Multus P300S control, an example code that you want to use will look something like below:


    G270 SP=1
    NTOP
    M00 (REMOVE PART FROM SUB-SPINDLE)

    IF [VORD[1147] EQ 0] NEND (CHECK SUB SPINDLE IS UNCLAMPED)
    VUACM[1]='REMOVE PART'
    VDOUT[990]=100
    GOTO NTOP

    NEND
    M02

    The above program alarms out with a reminder if the operator try's to press Cycle Start without removing the part.

    I don't think you will want to keep the program running in a loop, as this will not allow the door interlock to unlock and let the operator remove the part. Have it stop at a M00, but check the status of the sub spindle clamp if they press cycle start without removing the part.

    I check the output rather than the input, as this code will work regardless if your are OD or ID Chucking. More about using the VORD statement is in the USER TASK section of the Programming Manual. It shows you how to read the codes from your electrical I/O to come up with the correct code.

    Hope that helps.

  5. #5
    Join Date
    Aug 2016
    Country
    ALAND ISLANDS
    Posts
    1,393
    Post Thanks / Like
    Likes (Given)
    43
    Likes (Received)
    96

    Default

    Hello Tsikkner, please, can you share a list of VORD things and what they are linked to ? thank you

  6. #6
    Join Date
    Feb 2016
    Country
    ISRAEL
    Posts
    5
    Post Thanks / Like
    Likes (Given)
    0
    Likes (Received)
    0

    Default

    Quote Originally Posted by Tskinner View Post
    With USER TASK, there is a ton of safety checks and routines you can build into your programs. For a Multus P300S control, an example code that you want to use will look something like below:


    G270 SP=1
    NTOP
    M00 (REMOVE PART FROM SUB-SPINDLE)

    IF [VORD[1147] EQ 0] NEND (CHECK SUB SPINDLE IS UNCLAMPED)
    VUACM[1]='REMOVE PART'
    VDOUT[990]=100
    GOTO NTOP

    NEND
    M02

    The above program alarms out with a reminder if the operator try's to press Cycle Start without removing the part.

    I don't think you will want to keep the program running in a loop, as this will not allow the door interlock to unlock and let the operator remove the part. Have it stop at a M00, but check the status of the sub spindle clamp if they press cycle start without removing the part.

    I check the output rather than the input, as this code will work regardless if your are OD or ID Chucking. More about using the VORD statement is in the USER TASK section of the Programming Manual. It shows you how to read the codes from your electrical I/O to come up with the correct code.

    Hope that helps.
    Thank you. I will refer to the programming manual as I did not understand all of the above parameters. I would also need it in ssb format
    I guess I should simply add rts instead of m02 in the end of the ssb?

    After looking into the progrmming manual. i did not understand :
    VDOUT [990]=100 (in the manual variables 991,992,993 are for alarms type A B C. so why 990? and why =100?

    in any case your reply is very helpful. i will try it first thing tomorrow.
    Thank you!
    Last edited by MULTUSB200; 08-05-2017 at 01:54 PM.

  7. #7
    Join Date
    Aug 2016
    Country
    ALAND ISLANDS
    Posts
    1,393
    Post Thanks / Like
    Likes (Given)
    43
    Likes (Received)
    96

    Default

    hey multus

    I guess I should simply add rts instead of m02 ...
    so far so good

    ... in the end of the ssb?
    in the end of the soubroutine soubroutines may be located in files with extension ssb or min ( generally speaking )

    why 990 ?
    alarm D

    why 100 ?
    VUACM requires one integer; it may be 100

    so far i have encountered a single case when someone really needed to use that integer value, thus initializing it with the value of the tool that reached its life_spam



    once the message will be displayed in that red line, it will stay there until cnc is reset

    also it wont allow other mesages to be displayes, thus you can not display 2 different messages from same program, but you can use VUACM inside the program more than twice

    thus, you can use VUACM as long as you force the operator to reset the control

    generaly i preffer using M0 ( your text here )

    VUACM makes the operator feel nervous, believing that there is an error thus showing information like an error is not a good idea, but ...



    so far i have not aventured into VORD land; i only heared that it requires patience to dig for the right signal

    i am repeating my self, but pls be aware that a wrong configured lathe will give a confirmation signal even if the part is not clamped

  8. #8
    Join Date
    Dec 2010
    Location
    PA
    Posts
    588
    Post Thanks / Like
    Likes (Given)
    140
    Likes (Received)
    149

    Default

    Here's what we paste in the beginning of sub transfer programs on my LB3000

    (CHECK FOR PART IN SUB SPINDLE)
    /IF[VORD[003B]NE 1]NALM1
    GOTO NEND
    /NALM1 VUACM[1]='PART IN SUB SPINDLE!!!!!'
    / VDOUT[992]=1234
    NEND
    (RTS)


    Block delete allows you to complete a new setup with no part in the sub without getting the alarm.

    Just shut off block delete (or block skip) when you go to production (or delete the back slashes entirely from the program)

  9. #9
    Join Date
    Aug 2016
    Country
    ALAND ISLANDS
    Posts
    1,393
    Post Thanks / Like
    Likes (Given)
    43
    Likes (Received)
    96

    Default

    Quote Originally Posted by deadlykitten View Post

    i would recomand torque skip / load monitor:
    ... slow monitorized W feeding when getting closer to 1st chuck ( good to have the 1st spindle stopped )
    ... put a road in that fancy B head, and check if there is a part in 2nd chuck

    thus monitorized traveling among a critical segment

    this sample stops the axis after Z-1.2, so it will stop the cnc even if no part is there, so no good for you
    Code:
    
        G29 PZ=60 (*)
        G22 Z-1 PZ=40 G94 F50 D.5 L.2  ( feeds to Z-1 unless load reaches 40%. Will start searching for part at Z.5 and will stop searching at Z-1.2. )
        G28
    


    this sample will stop the cnc if something is found during Z-100 travel, and will continue if no interference is detected
    Code:
    
        G29 PZ=25 (*)
        G91 G01 Z-100 F500  G94
        G28 G90
    
    (*) that limit must be <= than an admisible limit declared in para\other function\ upper limit of torque limit comand

    this sample delivers same thing as last one, only it requires load monitor to be active, so a crash may occur in case LM is off and part is still in subspindle; so i dont recomand it at this moment
    Code:
        VLMZB [ 1 ] = 25
        VLMZ1 [ 1 ] = 25
        VLMZ2 [ 1 ] = 25
        VLMON [ 1 ] = 2
        G91 G01 Z-100 F500 G94
        G90
        VLMON [ 1 ] = 0
    
    here, have another fresh sample :

    Code:
        G00         Z+V7
        G29 PZ=60
        G23 PZ=25   Z-V7    F+100*5 G94 D+V7*2
        G28

    it delivers same behaviour as the last one from the quote, that uses LM, without the worries of forgetting to switch LM on

    beside using VORD, you may check a hot zone on the W axis, circa 5-10mm where an interference may occur ... now you are fully protected maybe too much

  10. #10
    Join Date
    Feb 2016
    Country
    ISRAEL
    Posts
    5
    Post Thanks / Like
    Likes (Given)
    0
    Likes (Received)
    0

    Default

    Hello guys,

    I want to share what i eventually used and worked for me:


    OSUBR (SUB SPINDLE REMOVE PART ALARM)

    G140
    IF [VORD[1147] EQ 0] GOTO NEND
    NTOP
    M00 (REMOVE PART FROM SUB SPINDLE)
    IF [VORD[1147] EQ 1] NALARM
    NALRM VUACM[1]='REMOVE PART SP2'
    VDOUT[990]=100

    GOTO NTOP

    NEND
    RTS

    Now there is an alarm which can not be overridden unless part is removed and reset is clicked.
    So thank you for your help! especially 'Tskinner' and 'Deadlykittn'

  11. #11
    Join Date
    Aug 2016
    Country
    ALAND ISLANDS
    Posts
    1,393
    Post Thanks / Like
    Likes (Given)
    43
    Likes (Received)
    96

    Default

    Code:
    
        NBACK IF [ VORD [ 1147 ] EQ 0 ] NDONE
              M0 ( go for it !!! crash the latheeee / now or never )
              GOTO NBACK
        NDONE M0 ( i wouldn't thought you will manage it )
    

    Last edited by deadlykitten; 08-12-2017 at 03:10 AM.

  12. #12
    Join Date
    Aug 2016
    Country
    ALAND ISLANDS
    Posts
    1,393
    Post Thanks / Like
    Likes (Given)
    43
    Likes (Received)
    96

    Default

    hey multus, there is another guy also from Israel / Tel Aviv : chat with Probe

    far as i can say, he knows ( okuma ) things ... thats all
    Last edited by deadlykitten; 08-12-2017 at 08:36 AM.


Tags for this Thread

Bookmarks

Posting Permissions

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