Posts by robotecnik

    ROBOT

    Global and local variables, structures, arrays, being able to return values from functions.

    Get the possibility to name points.

    Proper if/else, select clauses. Remove the need to jump and allow to branch normally.

    Remove line numbers.

    Remove the ";" after comments.

    Remove the need of an empty line at the end of the programs.


    ROBOGUIDE

    A watch window.

    Faster interface.

    A proper editor.

    An improved error list.


    ...

    HawkME, Doctor_C, Fabian Munoz and Shellmer thank for your messages.


    Shellmer I don't have the original mastercount values, and I am sure the robot has lost power to the encoders, in fact my customer decided to power on the electrical cabinet without plugging the robot to the cabinet before.


    I will have to specialize the points a lot more than I would like... Patience.

    Doctor_C I've attached the tool picture with the values.

    You'll notice the values have changed.

    I've used roboguide to find the "normal" orientation, Z was looking upwards before.

    The old values gave the same TCP position with the Z axis looking in the opposite direction (at least in roboguide).

    As those are vacuum cups, it's complicated to get a "perfect" zero teaching it manually, that's why we wanted to go the manual introduction method.


    There is some mechanical play in the 4, 5 and 6 axes. But even with that the behavior seems strange to me.

    With any of those numbers in tools the virtual robot moves normally / as one would expect.


    Thanks for posting!

    HawkME the tools and frames I have defined:

    Tool Frame

    -165.9 51.9 -27.9 -160.0 30.0 -180.0 t1

    -165.9 -51.9 -27.9 160.0 30.0 -180.0 t2


    User Frame

    419.3 -317.6 -118.1 0.0 0.0 150.5 UFrame1

    -363.1 -194.6 -115.7 0.0 0.0 59.4 UFrame2

    419.3 -317.6 -118.1 0.0 0.0 150.5 uFrame3


    Fabian Munoz tool data comes from a 3D design and I entered the numbers directly, one tcp is at the right side of the robot and the other one is at the left side.

    But, if Fanuc works like the other robots out there, even the TCP is not perfect, the robot should move in a straight line when you move it using the frame system...


    Thank you all.

    Hi all,


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


    There are 2 vacuum cups that are used to pick parts, one TCP for each one utool1 and utool2.

    There is one frame for the plate I pick the parts from.

    Parts are placed perfectly aligned parallel to the frame axes and there are +/- 20 rows and 17 columns.


    And now the catch:

    When I manually put a vacuum cup 1 centered on top of the first part, I select the utool 1 and the uframe 1, and I move manually (jog) the robot in X and Y axes selecting the UFRAME movement type, robot moves perfectly aligned across the parts.

    When I manually put a vacuum cup 2 centered on top of the first part, I select the utool 2 and the uframe 1, and I move manually (jog) the robot in X and Y axes selecting the UFRAME movement type, robot has a big deviation of +/- 8 degrees.


    This looks not normal at all to me.


    Even the tool would be wrong (bad coords received from the technical office), the coords I am moving the robot across the UFRAME...

    I can think about:


    1. The robot is not well calibrated, that is possible because customer had it mounted in a very small area, it had been powered up without having the robot connected to the cabinet and it had to be mastered by me using "manual" methods (no quick cal was possible because the robot can't be placed in the required position and I had to master axis by axis.

    2. The robot has a mechanical problem and there are some deviations when the clamp is inclined.

    3. Maybe the software in the robot is not the right one (who knows what could have happened there before).

    4. ?


    To put some extra fun, I have made the movments with tool 2 dependant on UFRAME 3 (another one), changing that UFRAME orientation solved the issue, and guess what? I ended up putting exactly the same values that I had at the beginning for UFRAME 1.


    Any idea of what could be going on here?


    Thank you all in advance.

    OK, changed the CNT values to 25, 50 and 100 and this has made an enormous difference.

    Coming from ABB and KUKA, I am used to specify the movement speed and then the radius of the approximation to points, and the latter usually has no effect in the travel speed (even you can see the robot to accel and decel).


    After having changed all that, I've set up the speed to a Register to be able to update all movements at once. Oh, and I've went from 10000mm/sec to 1500mm/sec and even like this the robot is making all the machine shake like there is no tomorrow now...


    Well, nothing to see here, thank you all for your time and help!


    allWar No PLC here. Thanks anyway.

    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.

    OFFTOPIC BUT IMPORTANT

    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.


    YOUR QUESTION

    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.


    Thanks!

    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!