Posts by SharplesR

    No, I've never used the option. Don't know what it does. I've programmed robots that work with a PLC-controlled indexing conveyor, but those robots did not use the option.

    TSBV,


    how is WaitUntil\InPos,TRUE; different from a fine point? I'm asking because I followed behind a guy recently who used them all over the place, and I couldn't figure out why.


    Thanks!

    The purpose of late binding is that you don't have to load the program immediately. Sometimes you won't load the program until you need it, but you want to have the code written that will call the routine after it is loaded. Late binding doesn't check that the called routine exists until it executes the line of code.

    RFekety,


    What sort of TCP are you using to touch the 3 corners of the tray? Have you tested that the TCP is accurate by bringing it to a point and reorienting around it? You should see it reorient with minimal drifting.


    I'm assuming you've done this, but considering the problems it seemed like I should ask! :icon_smile:

    Your description of the events is surprising to me. You say that the robot does not stop, even though it writes to the TP screen that the Safe Zone was violated. Are you sure it doesn't stop, but then allow you to continue in teach mode? Normal behavior would be that you violate the zone and stop, but are then allowed to continue in teach mode. Theoretically you would move clear of the Safe Zone, but you could also move further into it if you needed to.


    Another thought is that maybe you've made changes that you haven't yet loaded to the system. Maybe you can see the new setup on the Online Monitor, but it doesn't match what is live in the robot?


    Deceleration distance is one of the things to take into account when planning your safety configuration. The robot has mass, and that mass has inertia. If you're moving a car at 50 miles an hour and slam on the brakes, you don't stop on a dime. You decelerate and slide to a stop.


    The same problem exists with the robot. The motion planner does not look ahead and predict Safe Zone violation. It only reacts once the violation occurs.

    If you want to have a Boolean that is accessible from both tasks, you assign a value in one task and only declare it in the other task. Example below:


    T_Rob1: PERS bool blTest:=FALSE;


    Task2: PERS bool blTest;


    This works for other data types as well.

    I've never attempted to modify a robtarget's configuration in this way, so I don't know what might be wrong. However, let me share with you how I go about re-teaching a robtarget configuration. I have done this many times, with consistent results.


    1. Execute the point
    2. execute the line of code ConfL\off
    3. execute code ConfJ\off
    4. roughly move the robot to the configuration you want, by jogging it manually
    5. Execute the point. Robot will go to the point using the closest configuration that works.
    6. Modify the robtarget.
    7. execute confL\on
    8. execute confJ\off


    Let me know if this works for you!

    You should be able to do this yourself quite easily. You've already described it perfectly.


    You're going to need the function ORIENTZYX, to convert your Euler (rX,rY,rZ) into Quaternions(Q1,Q2,Q3,Q4).


    Other than that, you will apply the pos1 data to the .trans component of a pose, and the new pos2 data to the .rot component of the pose.

    I'm not sure why you would be in the MOC.cfg. Please explain further what you are trying to do? I had thought that you wanted the PLC to call up a program that would cause the robot to move to all zeros on the axes. If this is what you want, then you just need to execute a MoveAbsJ to all zeros...


    But the fact that you're editing the MOC files makes me think that you're trying to do something else?

    Yes, a MoveC is the correct move to replicate the movement in the picture. I see four points described in the picture. Just a rough program example:


    MoveL point1, v500, z30,tUserTool0;
    MoveL point2, v500, z30,tUserTool0;
    MoveC point3,point4, v500,z30,tUserTool0;

Advertising from our partners