Posts by xerim

    ConfJ and ConfL are used to specifiy whether or not the robot's configuration is to be controlled during joint movement or linear movement. If it is turned \Off the robot will search for a solution with the same axis configuration as the current one, but it will move to the closest wrist configuration for axes 4 and 6 (which is why you witnessed axis 4 flipping). With it turned \On the robot moves to the programmed position and orientation, if this is not possible the program execution stops.

    Whenever you execute a move instruction there are several arguments that must be passed into the instruction in order for the movement to be executed. For example:

    MoveJ p1, v20, z30, tool2;

    This instruction tells the robot to move to robtarget p1 at a velocity of 20mm/s with the zone radius of 30mm with reference to the TCP of tool2.

    Here is a visual description of zonedata:

    All of this information is very well documented in the Technical Reference Manual - Rapid Instructions, Functions and Data types


    We have an ABB IRB 6700 that has been experiencing errors related to the SMB. We were receiving errors such as 10036 Revolution counter not updated and 20477 SMB Communication Failure, which were initially solved by replacing the SMB battery. After a few months, the issue returned, but could be easily remedied by returning the robot to its calibration position and updating the revolution counters (this would keep the robot running for at least 2-3 days). Last week we decided to replace the SMB and the cable entirely as the errors were interfering with production. Once replaced, the errors disappeared for at least 4 days, until we again received 10036 Revolution counter not updated. What could be causing this? I have seen this error occur even while robot is in 100% automatic mode running a program. My next thought is that there is a fault with the resolvers themselves. Any ideas? Thanks for your help.

    I have found the solution now, the trick is to add another IF statement at the bottom of the function. Instead of:

    RETURN NumToStr(hours,0) + ":" + NumToStr(minutes,0);

    You need:

    IF minutes < 10 THEN

    RETURN NumToStr(hours,0) + ":" + "0" + NumToStr(minutes,0);


    RETURN NumToStr(hours,0) + ":" + NumToStr(minutes,0);



    I am working on a function that converts seconds to time:

    The problem I'm having is when you input an amount of seconds that returns minutes that are less than 10, a zero is missing. For example 5:05 PM (18300 seconds) reads as 5:5 instead of 5:05. Is there a RAPID command that allows me to prepend a zero? I've looked through the Technical Reference Manual and can't seem to find anything like this. Thanks for your help.

    Good idea, I have actually been working on this in a different direction now by using CTime() to output the current time + the duration of the cycle as opposed to constantly updating the remaining duration. The plan is to convert the output from CTime() to seconds, add it to the duration (in seconds) and then use a function to convert total seconds to a time format.

    I tried changing the module to SEMISTATIC by editing the controller section of the configuration editor, but then when I press pp to main it says there is not an active program pointer..I know the controller can run tasks in the background because there is already a task in there that is checking for errors while the robot is running. Perhaps I have too many background tasks now..


    I've put together this small program that counts down from a given amount of seconds and I would like it to display on the FlexPendant while the robot is running to let the operator know when the program will end. Because the cycle time is the same, this solution works as I can simply input the cycle time in seconds and have it count down from there. I am trying to get this program to run in the background because when you put in in the main program it always hangs on "WaitTime currentTimeStep" which makes sense, because it is an instruction telling the robot to wait. How can I get this program to run in the background so it doesn't get in the way of the main program?

    Thank you for your support.

    Fixture is rotating by Servo motor.

    I have no information about World Zone.

    Can you share information such as what is the World Zone, how to set it up?

    There are many different shapes that WorldZones can be defined, see the Technical Reference Manual for more info. Keep in mind, the manual abbreviates WorldZone to WZ.