Posts by Fabian Munoz

    Hi

    1) Going back to the original answer. The vision controller are not connected to the robot. They are connected to the PLC. You can have many robots receiving the information (coordinates) from PLC

    2) When a particular robot request for a picture to the PLC using a DO. The PLC takes the picture and send the values using for example a word

    On the robot side, this will be 3 GI (one for x, one for y and one for z)


    On your application all the vision process is done between Keyence and Mitsubishi. The robot only says , "i need a picture" , "What are the coordinate values"

    I mean, you should send the values back to PLC for confirmation, also you can check if the values are within the reach limit, etc, but the actual vision is done at PLC

    Hi

    Note I'm assuming a lot of things here


    Place a sheet of paper (lets say 11 by 17) on the FOV

    Aligned the vision to the sheet and find three corners (origin, x, y) Dimensions are known

    Teach a user frame on the same three points with the robot


    At this point you have the vision coord matching the robot user coord


    Teach the pick point based on the user frame

    The values that you obtained, are the values you have to introduce in you vision coord


    At this point you have the x, y from the common origin


    Same principle with rotation

    Let the robot finish the cycle .(place box in pallet)

    The procedure is the following

    1) Press a button to request entrance to cell

    2) Wait for pneumatic lock to release the lock OR train the operator not to enter the cell until the "beacon light is green"

    3) fix box

    4) get out, reset door

    I have used the register method to get home, and it works pretty well. There are some gotchas though:


    * if you jog the robot, the register will be rendered invalid -- this is where monitoring the system variables comes in handy

    * you have to make sure if you execute a motion instruction in teach mode, that you execute the register set instruction as well, or the home job will likely not do what you intended.

    I had argued with PLC guys, project manager,electrician, etc (Basically everybody that has no clue about robots) that this "Home return" function is ONLY when the robot is in auto mode. Once the pendant goes into manual mode game is over, no buts....

    Therefore those gotchas should never ever happen

    DysfunctionalRobot


    Welcome to the robot-forum

    If you are familiar with the type of programming Fanuc offers, you will have no problem understanding Motoman. Think about ABB and Fanuc programming style, they are different , right ? That's what you are going to see with Motoman


    Manuals for Motoman are easy to access and having DX100 is a plus for you. At least you are not programming a 30 year old robot

    '...............Move with offsets

    SET P110 P111 ............................I taught earlier P111 but I dont work with it, I copied to P110 and I work with P110

    SETE P110 (1) D030

    SETE P110 (2) D032 ......................This snippet is for picking up a part, The part is sitting on a pallet I robot approaches from the top

    SETE P110 (3) -40000

    SETE P110 (6) D033

    MOVL P110 V=D087 PL=0 .............This is my first approach manipulating the tool to be oriented it to the part

    '..............Approach part

    SETE P110 (3) -444000

    MOVL P110 V=D087 PL=0 ...............Move to an approach point right on top of the part but I dont exactly know where the part is as far as

    ' the Z value

    ' .........................................................Pick up part Here is where I start doing a loop using imov and a laser telling me how close i am

    GETE D091 P111 (3) ........................Basically i read where robot is, check laser dimension, compare it and if no good , program loops

    *NOT_YET

    IMOV P101 V=350.0.........................In P101 I have a value of 2 in the z coord 0,0,2,0,0,0

    DIN B061 IG#(20)

    GETS PX100 $PX001

    GETE D092 P100 (3)

    IFTHEN D091>=D092 ORIF B061<=39

    JUMP *OK

    ENDIF

    JUMP *NOT_YET

    *OK

    '......................Grip part

    CALL JOB:TOOL1_PU

    '....Move up until clear of conv

    GETE D033 P110 (3)

    ADD D033 300000

    SETE P110 (3) D033

    MOVL P110 V=D085 PL=0

    SHCKRST

    CALL JOB:TOOL1_PIP_CHECK

    JUMP *END

    Hi
    You can call it parallel task also
    Usually (thhis is me) I create a macro (which is a program) to indicate something to the PLC
    For example


    GO[1: x value] =$SCR_GRP [ 1 ].$MCH_POS_(X)


    This line loads the value of the X coord into a output group