Posts by Iprogram

    I always highly suggest extended axis. Avoid Group 2 if you can.

    1. DCS is a nightmare if your rail is setup for group 2. Fencelines/operator spaces move with the robot.
    2. Any type of frame shifting/ work in cartesian space is a nightmare because the robot doesn't know its moving when the RTU is moved.
    3. If you have to reposition your RTU, you have to reposition your robot as well. With extended axis, you have (World 'S' G1) motion type which will keep your TCP in the same point in space while you jog your rail axis, and move group 1 to account for the rail motion.

    ok let me try this setup because i am in the process of setting up IIC and cant get it to work at all! probably because its setup in group 2. Thank you!

    I have not worked with a robot on a rail yet and starting to set it up in Roboguide. I want to use Group 2 of the robot but wondering what the best way to set this up would be? The robot will be picking from different bins along the rail and i want the motion to be smooth and look fluid without any waisted motion. i have the multigroup option and also extended axis options

    When setting this up in roboguide what is the best option to pick while configuring the robot? should i choose Basic Positioner, General Positioner, Independent Axes, or Rail Unit? And how do these choices get setup in the real robot?

    You can do DOUT[n] because "DOUT" is a special "variable": you don't need to declare it and in the Karel (and TP) environment it is a sort of array (i.e. you can reference its elements with the [<number>] syntax).

    UseZone instead is a variable you declare, so it is not automatically an array, you must declare it as an array (as hermann already said)

    In order to use the array syntax, you need to declare UseZone variable as an array.

    Makes Sense Thank you for the explanation!

    What do you think is the benefit of not using arrays but that late binding stuff (that's not possible in Karel anyway)?

    Use the array and you are done.

    No thought there just want to use the True or False in my code. what would be the benefit of an array over a single variable that is declared?

    Sorry, that isn't how variables work. You could use a SELECT or IF statement to set UseZone[n] to true if you don't want to use an array.

    I guess i am really asking how to do this? and what i did wrong to not make that work. for instance i can do the following expression:



    so what am i doing wrong with the indirect addressing of UseZone[n]=true

    Ran into a road block and not sure what i am doing wrong? This is the error i am getting and below is a sample portion of code

    127 UseZone[n]=TRUE

    ^ ERROR

    Id must be defined before this use. Id: USEZONE

    n: Integer







    IF CaseLength > Zone1Length THEN




    sorry I didnt explain too well but i am not trying to use an array i want to replace the n with a number



    UseZone[n]=true ------------I want to replace the n with a 1 and create the expression : UseZone1=True

    I am new to IRpickTool and having some issues on setup with a dual robot system. The infeed uses 2D vision to track and pick which works fine. however the outfeed uses a photo eye/encoder to track boxes. robot 1 is working fine but when i setup robot 2 i cannot get it to place in the box. it will not move and just skips outbound move. The strange thing is when i taught the tracking frame for robot 2 it places it 700 mm farther from the robot in the X direction which is perpendicular to the flow. The conveyor is 1400 mm from the robot base and my frame shows 2100mm. i am not sure how or why it is adding the additional distance? it didnt do that for the infeed. I can teach a position with the X and Y coordinates for the infeed conveyor and the robot moves perfectly centered on it. Anyone have any ideas?

    I have a KAREL program running and working and i want to make sure the position is able to be reached before moving to it. I have tried the InRange and Check_EPOS function. However both functions will return a false if the robot has to move through a configuration change. I only want to check to make sure the position is within the axis limits to prevent a limit error.


    Configuration of UT,0,0 the InRange and Check_EPOS will return a true value if the position being evaluated is within this configuraiton and axis limits. If the new move to position is in the

    Configuration of UT,0,-1 the inrange and Check_EPOS will return a false value. even thought the position is reachable and i can jog the robot to this position.

    Any ideas on how i can overcome this?

    I have almost 20 years of automation experience with robotics and plcs. Is it time for me to start my own consulting and programming company? Or do I just keep working for someone else? Not in a good position to be without income for an extended time period. Anyone out there have any advice ?


    I am working on an R30iB plus controller with a Fanuc M20 that is using line tracking. The tracking is initiated when a part passes a photo eye. I want to move on the part and track it until it reaches its destination. the issue i am having is stopping the robot from tracking too far on the conveyor. Does anyone have any suggestions?

    Right now the robot is at a starting position and as soon as the photo eye is made i start a tracking program. but i am unsure of how to make a start and end point and stay inside that limits.


    Hello! I have a few Schmalz Electric Vacuum Grippers off a UR robot that were lightly used and wondering if anyone would want to purchase them? I have one that is setup to plug into the Wrist with the 8 pin connector and one that would have Discrete IO wired into it. Message me if interested i can get pictures and part numbers.

    I have done a few line tracking applications using a part detect switch(PhotoEye) where i used this input to initiate the tracking and also to set my enc Scale Factor. The next application i am working on will use vision tracking. Is there a way to not use a part detect photo eye and only use the vision process to initiate the tracking? if so can you also teach the scale factor using the vision?

    Thanks in advance!

    WCMON should be waiting for Semaphore[2]

    GETPART should be waiting for Semaphore[1]

    Maybe someone switched them? Either way The cycle start data needs to be written correctly and the sema will come true after this is completed and set by KAREL.

    Try to run the system from the SOP by setting it to OP panel Key in the config menu and use the teachpendant to select the Unit load to run. do this in the PalletSystem menu. Cycle start Control would be set to SOP and ect.

    Do a Serch for the PR to see if its used anywhere else. Can you share your code where you are forcing the NUT configuration?

    Should look like this:

    posn : XYZWPR

    conf :CONFIG

    --Write Configuration Data To PR[2] NUT 000









    SET_POS_REG (2, posn , STATUS,1)

    I have an application where the robot will pick up a flat piece of aluminum that is 24 inches by 36 inches from a bin. The robot needs to accurately know the location of the part in the gripper within 5mm. The bin is intentionally oversized by a margin greater than that. Vision isn't an option and the customer wants to use laser sensors looking down and have the robot move around to find the location. I am struggling with finding a good way to do this. I am testing using remote TCP option but it doesn't seem to work the way i want it to. Has anyone done something similar that they could give me some idea's?


Advertising from our partners