Posts by robotecnik

    That also happens in my installation, it looks like the axis 4 and 5 of my robot are mastered with a 90º offset in the real robot, and (even the "store values" are the same in the virtual one) it behaves differently.

    I had to remaster the real robot removing the 90º offsets to get the same behavior than in roboguide.

    Notice I am speaking of a secondhand robot that had been modified before I started working with it.

    Hello all,

    I am programming a second hand M3ia 6A delta robot with a R30iA mate controller.

    I've set all the J movement speeds to 100% and the L movement speeds to 10000mm/sec.

    That robot should really fly, but it i moving super slow, there is difference from T1, but not that much.

    Being a secondhand robot, lots of things can be modified...

    Where would you search for the reasons of that?

    - I've seen $MCR.$GENOVERRIDE was at 10, changed it to 100, but the behavior is the same.

    - The $MCRGRP.$MCR_GRP[1].$PRGOVERRIDE value is 100.

    - OVERRIDE SELECT (MENU -> SETUP -> OVRD SELECT) function is disabled.

    - there is a payload of 0.2kg.

    - If I check the web server from my edge browser, Under safety Status Information I can see HAND BROKEN is TRUE, even the $HBK_ENBL variable is FALSE.

    Is something else I should look for?

    Notice: I have no clue of what this robot is capable to do in terms of real speed, it is moving a very light load and delta robots are super fast usually... It's an impression only, but at those speeds it takes 5 seconds to pick a part and leave it over a distance of 1meter +/-. The cycle is the usual one in those cases:

    J HOME 100% CNT0.

    J approach the calculated pick part position speed 100% CNT0.

    L get in touch with the part 10000mm/sec FINE.

    L CNT0 go back to the approach position 10000mm/sec CNT0.

    J HOME 100% CNT0.

    J approach the part placing position speed 100% CNT0.

    L Placing position 10000mm/sec FINE

    J approach the part placing position speed 100% CNT0.

    And start again.

    Any idea or hint to what should I look for?

    I won't have access to the robot this weekend, but I will have a copy of the md FTP folder at home.

    Thank you in advance for your time and help.

    Understood, in this case I can afford to just cancel the movements as the robots will have to move upwards till a vertical coordinate and then move home, where they will release the part to fall in a box.

    So, in case esStatus returns something different than 0 in the main task, I will call resetmotion (maybe not needed as the emergency stop will have entered) and then kill the movement task and wait till it has completely disappeared. And at last wait for the PLC signal to restart the program to go HOME...

    Thank you again!

    Great points Galet ,

    - delay(0) I guess to avoid collapsing the CPU in case of infinite loops without much to do inside.

    - About sending a bool to the task to get it stopped itself... how this works? I mean, I understand a task as a function (that restarts automatically) and in case that task is controlling movements, I should be capable to check the variable only after each movement and only if I check it manually there... Could you post a small sample about that?

    Thanks again!

    Hi all,

    I probably will have to program some CSC8 robots without pendant, this makes it a little stranger as no operator will be able to reset the program if needed.

    Thinking about it and the best way to do it and being completely newbie with Stäubli, I've thought on using this strategy:

    Create a program that will start at boot, that program will have an infinite loop that will handle the emergency stop signal (used to reset it all), then I plan to create a parallel task for each part the PLC requires to process so I will be able to kill those tasks in case of an emergency stop (as a rude mechanism to make it possible to reset the programs):

    part0 and part 1 will have all the cycle to pick and place parts from A to B, with all the logics and conditions, I could add a kind of error signal to let the main program know everything is running fine and in case it is not, inform the PLC about it, but that would be the design.

    Does this look good to you?

    Thank you in advance.

    Hi all,

    I could get a job with a couple of Stäubli robots with CS8C controllers.

    But I had only done a couple of small things years ago with them, programming is not an issue, but the internal small things of each brand will be.

    I have the SRS 2022 (demo) after speaking with Stäubli headquarters.

    Customer only have one pendant for those 2 robots. I guess they will have to use some kind of connector to remove the emergency stop alarm. but this takes me to the first question:

    System IO

    Is there any manual with system IO? signals used to power on the motors, to put the program pointer to the beginning, and to start the program? If that manual is not available, could you explain me a little how to configure those 3 signals?

    I've seen in the SRS that There are SYSTEM IO that as digital input there are enablePower (looks like the signal to power on the motors of the robot).

    But it seems there is no way to move the program pointer to main/start/initial position.

    Nor I can see any way to start the program.

    Pendant basics

    Is there any manual out there that explains how to use the pendant? I'll have to search for the manual I got when I did the training, but it was in paper and I don't have access to it till this weekend so anything digital would be nice.

    Thank you very much in advance.


    Be aware robots are repetitive but not precise.

    The virtual robot will be a perfect robot, the physical one won't.

    This means that, in case you need high precision, you will have to calibrate that robot.

    Keep in mind that ABSOLUT ACCURACY robots give +/-1mm of precision.


    This said, as SkyeFire said, robot programs are related to bases, which is the method you use to determine where is the 0,0,0 of anything, usually those bases are defined by putting the robot TCP against 3 pins that conform a 90 degrees shape. That way one axis of that shape becomes the X axis, and the other axis becomes the Y axis, Z is automatically calculated using the "right hand rule".

    If you define the same base in the virtual robot and in the real world, that should make it automatically for you.

    Regarding the start point, you need to store a known HOME position and make sure that position is stored in degrees for each axis to ensure the robot will move to that specific position and won't use the shortest path to reach the same TCP position but with a different arm setup.

    You need to store that position in both systems (the real one and the virtual one).

    Hope this helps.

    Nope, I will get it if I start getting contracts to work with those robots, I contacted the sales department to be able to get a copy of their software to refresh the knowledge I got in the training I did +/- in 2012.

    In any case their license cost is cheaper than the Robotstudio cost itself as they sell you a life license in a dongle and not a yearly membership.

    Will try to open a backup of one of the robots I did in the past... :)

    Tried it... got completely lost... can you explain me how can I import a backup?

    The backups I have are a bunch of folders with the usr folder inside.


    Hello all,

    Years ago I made a couple of projects with Stäubli robots, mostly, Notepad++ and FTP to write into the /usr folder.

    Yesterday I got a call from a possible customer asking me if I could help in a new robot cell with a Stäubli robot and I called the Stäubli sales person nearby to get a SRS installer.

    Installed it (DEMO) and I am trying to add a controller into a new cell, but I can't select any robot there as, when in the cell explorer I right click the cell1 icon and select "add new robot" no robots appear on the next dialog.

    Should I have installed something else apart of the SRS itself?

    I have executed SETUP.EXE (like usual).

    I have not executed INSTALLCS8.EXE, INSTALLCS9.EXE...

    Thank you in advance! :thumbup:

    So, only getting those files and update them by hand or adding the comments on the pendant...

    DIOCFGSV.IO for IO comments, and rack configurations.

    NUMREG.VR for register comments, and values.

    POSREG.VR for position register comments, and values.

    STRREG.VR for string register comments, and values.


    I think the comments just appeared in the registers and others after just being read in the program, is that even possible?

    Thank you in advance!

    rob76 yes, of course... I don't know how my customer plans to cope with this. I am a freelance and I only program that thing, I am not the company who will sell the installation neither certificate it.

    kluk-kluk sure they will have to get a company like that to certify the robot. I guess the final price will be much more expensive than a new robot would have costed.

    Transformer is already there.

    This is my first Fanuc and as you can see, I am starting well... ^^¡

    Yesterday I did a factory settings, mastered it and configured the adjust tool and a couple of user frames.

    Managed to send all the programs (after compiling them in Roboguide)...

    Waiting now for my customer to finish the electrical and mechanical installation.

    At the end, my customer will have to decide what to do with the robot.

    Fanuc Spain told me they don't want to give spare parts nor physical support; they can only give phone support on that robot. All strange enough, in any case, I hope everything works as expected and that I won't need that much support.

    Thank you all for your comments. :thumbup:

    Hi all,

    I have done all the programming using the 30 days Roboguide license.

    That license is still active (for a few days more).

    But I have it installed in a virtual machine that can't ping the robot controller (the host computer can).

    Is there any way I can send the IO, R, ... comments to the robot via FileZilla?

    I've managed to compile the text files to send them to the robot, but I can't find a way to send the comments to the robot...

    As always thank you in advance.

    Hello all,

    A customer of mine just got a secondhand robot and it is from the USA market and that therefore is not suitable to use in the European market (I have learned this from the Fanuc technical support in Spain, as I gave them the serial number to make a question, they just told me that).

    This said, I saw their answer just before taking a plane on Friday afternoon and was not possible for me to contact them again.

    As I should go to my customer to start programming that robot on Monday... ^^¡

    I thought on asking here if any of you have been in this situation in the past... and, if it was possible to adapt a USA robot to the European market to stay safe and inside the law.

    Thank you all for your time and help.

    That won't help you, but lately I am getting more and more failures in my RS projects, It seems to happen more when the 3D involved is bigger. I had a project that took my laptop to it's limits: 29GB of RAM used and it was a PITA working with it.

    I ended up making a pack and go for a working state and being able to go back when needed, having another station without the 3D part at all to be able to work without issues.

    At the end make backups non stop. The automatic save seems to work +/- well.

    PS: If you fly there make one or two screams from my part please.

    chris_d_jcd first, thank you for your post.

    In the aforementioned project my customer decided not to invest in mechanical devices to store workobjects because the robot is fixed into a compact robot cell in which everything is bolted into the same small/strong/transportable chassis which it is designed to always do the same job.

    there are +/- 80 points in total.

    The final customer asked to be able to define a workobject for each fixture (they are always bolted in the same position) just in case.

    At the end, this means that I stored the points into wobj0 (which in ABB is the exact center of the robot base). And now, my customer has sent the robot cell to another country. Without defining the new workobject first (using the method you described).

    Notice the robtargets "should" work, a workobject is no guarantee the physical errors of the robot will not affect your robtargets, robots are repetitive but are not very precise.

    To clarify my question:

    One technician (not me) will make a workobject using the normal prescribed method.

    They will send me a backup and I will move the existing points from wobj0 to the new workobject.

    I want to do it with robotstudio. Which, given the wrong situation I guess it's the best method.

    In case I can't do it with RS, I will program a small snippet that converts my points with wobj0 to jointtargets and then from jointtargets back to robtargets using the new workobject, but I wanted to ask if the method I described is correct to do that.

    Thanks again for your post.

    In KUKA (the code you've posted) you have an array of timers (which is a horrible implementation as you have a specific amount of timers available).

    In ABB they offer you several functions to start a timer.

    The example posted by JMF is perfect, concise, and detailed.

    Just to make it easier for you to understand the "translation":

    ClkReset ! == TIMER[x] = 0

    ClkStart ! == TIMER_STOP = FALSE

    ClkStop !== TIMER_STOP = TRUE

    ClkRead !== variable = TIMER[x]

    BUT: ABB has one of the best documentations out there, check the manual Lemster recommended you and you'll see samples and instructions on how to make all those functions work:

    ClkReset, ClkStart, ClkStop and ClkRead

    Hope this helps.