Posts by Galet

    Yes. It's the only way to have it.

    If you don't loose the connection, you can send an other profile created with SRS or keep on other controler...

    Hello Painful,

    I realized synchronisation between 2 CS8 with Profinet fieldbus (I don't try with Modbus because I think it's too slow, and with socket it's not enough steady). Obviously, it's depending to the speed and the precision that you need.

    You need to declare on the 2 robots the fieldbus, one master and the second slave. Be carreful about the cable, you need crossover cable if you don't use module between the 2 controlers)

    To have a very good synchronization, the "master" robot send his relativ position across a Synchronous Task. and the second ("Slave" robot) receive it in a sychronous task an use it with Alter function.

    Very important is to have good and "symetric" tools, and a common frame.

    The movements are "relativ" arround the refernce (first) position.

    Have a nice day...



    VAL3: s7.0

    Ok, i try this version when I found some times.


    I lost access to CS8 while I was transferring files to the /sys folder on CS8

    I think that you send files like Arm or controller. the tcp connection files and perhaps the Profile files.

    It's the risk to use Ftp server like Filezilla ! I warned you about the risks. It's the reasonwhy TransfertManager (SRS) is the best method !

    The solution is to call Staubli services : They have special tools and passwords for maintenance.


    Sorry, but you have many problem because you try to program without the good tools or methodology....and you need to learn the VAL3 in the same time.

    You add syntax wrong lines to other problem So you lose many time...

    I note that you don't want to use SRS. You know that you can make all the programmation on the controler (it's not easy but to begin without syntax error, t's the good way).

    So I propose to program directly on the robot to be sure you have good syntax.

    Directly on the SP1 :

    Create a new application

    Create the different variables (Point, Joint, Tool...)

    Add in the Start() the line with the command Payload.

    Save the application

    Load your application on you Apple

    Edit it and modify the value

    Send it to the controller and try to execute it


    My question is :

    On the SP1, can you add the line setFrame(....) in your start () or not ?

    Hello Haydenfscott,

    The issue arrive when an IO variable (dio, aio or sio) is not linked to a defined and corresponding IO. This issue is not visible when you load an application just when you try to use the variable.

    Different case are possible :

    - the variable is not linked

    - the variable is linked but the fieldbus is changed : the link is wrong (every time the fielbus is configured, the links change and you need to re-link the variable)

    - the fieldbus is not ready (the PLC or the external module is not configured or not ready) . Whe have often this problem during an upload a program on plc

    If you read the log file, you need to have some information about the wrong variable.

    To be sure that the fieldbus is OK you can see the page IO on the controller.

    To control or change the link, on the SP2, you edit the variable (this function is available on last sottware). On SRS you can doubleclick on the link in the variable.

    Iomap is just to link "system" varable, not dependant to your application.

    Have a nice day...


    The tool definition is not correct. The gripper is inked to valve1 and need to be linked to ValveIO\valve1 on CS9.

    The line 2 of main() : close(tCurrentTool) give you an error 123 Io not linked.

    In your application, some dio (Input and output are declared and linked to BIO board. This board exist only on CS8 !

    Perhaps the robot configuration in robotdk is wrong (It's like the DIO are defined for CS8 and not for CS9).

    Solution :

    In dtx file, change the ioLink "valve1" to "ValveIO\valve1"


    <Data name="tCurrentTool" access="private" xsi:type="array" type="tool" size="1">

    <Value key="0" x="0.000" y="0.000" z="283.000" rx="-0.000" ry="0.000" rz="-0.000" fatherId="flange[0]" ioLink="valve1" />


    You can delete all the Input and Output data in the same file :

    Last thing, to use Valve1, you need to have this equipment on the arm. On TX2 it is an option.

    Have a nice day...


    Without any code, it is not very easy to help you (and I don't use Robotdk).

    You need probably to add some command in the Robotdk system.

    Otherwise, to have movement on the robot, you need to select the mode (Manual/automatic...), to set the powerOn ... and to autorize the movement (MoveHold)...

    Robotdek generate val3 application, but you need to learn how to execute it on the robot...

    Have a nice day...


    Inertia need to be an array 3,3 of num as defined in my example (create with SRS) :

    <Data name="nInertia" access="private" xsi:type="array" type="num" size="3 3" />


    ...but in my case it does not read it...

    What is the issue or the message ? How do you know tha the controller don't read it ?

    If you write nError=setPayload... what's the result ?

    Have a nice day...


    What is the SRC from your controler ?

    1 -Tool need to be defined like that in the Datas field from .dtx file :


    <Data name="tToolHead" access="private" xsi:type="array" type="tool" size="1">

    <Value key="0" x="1" y="2" z="3" rx="4" ry="5" rz="6" fatherId="flange[0]" ioLink="valve1" ioOpen="11" ioClose="12" />


    2- to Set Payload :

    Create a Program like that (with your datas)

    And call it when you need it :

    call YourPayload()

    That's it !


    If you want an exemple, create an application on the SP1, create a program and some global variable and load it on your Apple.

    If you want to change (or copy) an application, be carreful that the name of the directory need to be the same as the application (pjx) and data (dtx) file.

    The most difficult is to create new variable (Global in the data file, or Local in directky in the pgx file).

    Without Start() and Stop(), the application can be loaded but not started.



    I'm agree with you.

    In Val3, it's missing the function and optionnal parameters.

    For the simulation, we can pick or place a part but not really move it. +1 for the "black" mode.

    I find problem, too, with the reference Frame when I load a step file or when I make a group, but I think It's a youth issue.


    Bonjour Ali et bienvenu sur ce forum,

    Tout d'abord, ta passion peut être justifiée, le monde de la robotique est très diversifié et permet de combler une grande curiosité. En effet, le robot n'est pas la finalité mais l'outil qui permet de réaliser des tâches diverses, dans des milieux de plus en plus différents.

    Sauf secteur de recherche, la robotique dite "industrielle" n'est pas encore en connexion avec les technologies de calcul et d'apprentissage telles que l'IA. La conception, la réalisation et la mise en service de cellules robotisées sont donc réalisées de manière "conventionnelle". Ces installations sont encore, en majorité, destinées à effectuer des tâches répétitives, sur des périodes assez longues.

    Il est important de différentier les différents secteurs de la robotiques (Industrielle, collaborative, médicale...) qui demandent des technologies spécifiques.

    Etant un roboticien de "l'ancien monde", c'est à dire habitué aux méthodes "classiques", je ne sais pas dans quelle mesure les l'IA modifiera les méthodes ou les produits. Je ne connais pas de formation autre que celles proposées par les industriels ( en service R&D ou développement) pour la création de produits robotiques, ou les services formations pour les utilisateurs (Concepteur, programmeur, conducteur d'installation). Le reste fait partie de la recherche.

    Il te faudra donc étudier, plus ou moins séparément, les composantes de ton future métier (La robotique, la cobotique, l'IA...) Pour cela les formations et les documentations commencent à fleurir. Peut-être seras-tu l'un des acteurs de la réunion de ces technologies.

    Je n'ai donc pas de réponse à te donner, mon post ayant pour but de te souhaiter la bienvenue, et te communiquer la passion qui est mienne depuis...quelques décennies.

    Bon courage, ce monde peut être passionnant.


    Normally ,all applications are in /usr/usrapp (direct or un subdirectories).

    Only the applications in /usr/usrapp are visible for user (MCP).

    If you have applications in subdirectory, the "master" application can use it (Library).

    Val3 Applications are composed with .pjx (project), .pgx (program) and .dtx (data) files. All are Xml format files.

    With Val3, you can read or write other text files (like CSV) for data exchange for example.

    Have a nice day..


    No, you can download all versions (2022/2019/2016/2013...) but, only if you have already cells simulation in SRS2019, I think it's not a good idea to begin with SRS2019.

    But I don't know if you can buy (by Stäubli) a licence for old versions.

    For information :

    SRS2019 is needed to work with CS9 (First steps with Safety configuration tool)

    SRS2022 can upload directly the Safety configuration.

    For simulation SRS1019 and 2022 are not compatible. None problem to edit or modifie programs.

    If you just want to transfert files (To or from robot controller), you can use the both versions (I don't use again 2016 but I thing it's always possible : If you find an old licence, I can make a small test)

    Have a nice day...