hexagon logo

Rechecking parts in protected mode.

I have a 24 cavity (2x12) fixture. I have to come up with a way to check any single cavity in this fixture in protected mode. What are some recommendations?

Thanks!!!
  • I'd be interested in learning more about the input comment. I've used something similar in another CMM software, but I'm a fairly new user with PC-DMIS.
    I don't know anything about marked sets.
  • Marked sets allows you to set up "buttons", each button will run a 'marked portion' of the program, which has to be setup by the programmer. I don't use them myself. You would need 1 marked set for each cavity as well as one for ALL the cavities. Which would make for a lot of them.

    INPUT COMMENT is one of the comment options, which requires a user input. You can use the value of the input to direct the program to the individual cavities. 24 cavities, 25 possible inputs (if you use one for all cavities).
  • How complicated will setting this program up for input comments get? I'll need to add labels to each cavity, but how do I get the program to run just one cavity and ignore the rest? I think I can see how to do this for one cavity using gotos and such, but I'm unsure how to do this and have it also run all 24 cavities.

    Thanks for your help.
  • Well, not so hard as you might think, but a lot of code to type (if you do it my way).

    L1         =LABEL/
    C1         =COMMENT/INPUT,NO,enter cavity number or 25 for all cavities
                IF_GOTO/C1.INPUT<1,GOTO = L1
                IF_GOTO/C1.INPUT>25,GOTO = L1
                COMMENT/OPER,NO,this requires them to re-input if invalid
                               ,value is entered
                IF_GOTO/C1.INPUT<2,GOTO = CAV1
                IF_GOTO/C1.INPUT<3,GOTO = CAV2
                IF_GOTO/C1.INPUT<4,GOTO = CAV3
                IF_GOTO/C1.INPUT<5,GOTO = CAV4
                IF_GOTO/C1.INPUT<6,GOTO = CAV5
                IF_GOTO/C1.INPUT<7,GOTO = CAV6
                IF_GOTO/C1.INPUT<8,GOTO = CAV7
                IF_GOTO/C1.INPUT<9,GOTO = CAV8
                IF_GOTO/C1.INPUT<10,GOTO = CAV9
                IF_GOTO/C1.INPUT<11,GOTO = CAV10
                IF_GOTO/C1.INPUT<12,GOTO = CAV11
                IF_GOTO/C1.INPUT<13,GOTO = CAV12
                IF_GOTO/C1.INPUT<14,GOTO = CAV13
                IF_GOTO/C1.INPUT<15,GOTO = CAV14
                IF_GOTO/C1.INPUT<16,GOTO = CAV15
                IF_GOTO/C1.INPUT<17,GOTO = CAV16
                IF_GOTO/C1.INPUT<18,GOTO = CAV17
                IF_GOTO/C1.INPUT<19,GOTO = CAV18
                IF_GOTO/C1.INPUT<20,GOTO = CAV19
                IF_GOTO/C1.INPUT<21,GOTO = CAV20
                IF_GOTO/C1.INPUT<22,GOTO = CAV21
                IF_GOTO/C1.INPUT<23,GOTO = CAV22
                IF_GOTO/C1.INPUT<24,GOTO = CAV23
                IF_GOTO/C1.INPUT<25,GOTO = CAV24
                IF_GOTO/C1.INPUT<26,GOTO = CAV1


    And, like I said, after each cavity, move up and away to the 'safe' parking spot (for load and un-load)
    then, directly AFTER that up & away move, this code would go in
                IF_GOTO/C1.INPUT>24,GOTO = CAV2

    except you would change the CAV number to the next cavity, so at the end of "CAV1" it would go to "CAV2", and the end of CAV2, it would goto CAV3 and so on.

    This method requires 1 and only 1 input to check any ONE single cavity OR to check ALL the cavities.
  • Left something out of that (as I sit here thinking about it). AFTER the "up & away" move, you will need one more line of code, another IF_GOTO line, IF_GOTO/C1.INPUT<25,GOTO = <lable at end of program> so as to stop it from checking any other cavities, THEN that IF_GOTO that will goto the next cav.
  • Thank you very much for the example and your time!!! I'll plug that in and see what happens.
  • Thank you very much for the example and your time!!! I'll plug that in and see what happens.


    With your finger on the e-stop I hope!
  • You could also look up case/end case in the help files. Case/ End case would be a appropriate flow control command to use for what it looks like your doing.
  • I never liked those methods of flow control. Probably goes back to my old QBasic days, IF_GOTO is just so 'straight up and done', it resolves itself all in a single line/single command.