Posts by Galet

    Sorry Javaman, but I think that you can't have a credible answer here.

    You don't have other solution to call the different manufacturers.

    All other answer will be stupid or bad.

    As DS186 said, the price is depending of many information.

    You need to know that the robot's price is only a small part of the installation, so even if you got an answer, this information will be incomplete.


    Hello Egao,

    The organisation of the robot's program is depending to :

    - The PLC/Robot functionalities distribution

    - The robot controller (manufacturer and type)

    - The communication (fieldbus, serial, socket...) between all component of your installation.

    - If you need external information (for example post processor to define the trajectories)

    - ...and your experience !


    Is there a reason to use numbers instead of alpha (or alhpanumeric) names?

    +1 with SkyeFire. If you can choose name (clear and logique !) it will be better.

    In general, begin with the simpler structure, and think always that an other person need to understand your program. You can try to draw an organigram.

    Respect the recommendation of the others programmers, but, if you don't have experience, don't try to standardise.

    Have a nice day...

    Hello Samu,

    Your way is the best one. Val3 don't special function for that. You can control every tool in every frame.

    I seem to remember that you have an example on the Stäubli Webside (Cube or spherical).

    To be sure that your control will be effective every time (even in manual mode), create a Task at the beginning of the Start(). In this case, only one prerequisites : You application need to be running.

    Have a nice day...


    Your SRC is 6.6.4 so your file is correct.

    I try on emulator with this configuration in the : remoteMoveHold = b2In0

    and have the result, in the logger : RemoteMoveHold linked to b2In0 !

    On modbus :

    I try on emulator with this configuration in the : remoteMoveHold = mbItem1

    and have the result, in the logger : RemoteMoveHold linked to mbItem1 !

    So, the comment at the begining of file is correct :

    // To activate a io mapping, remove the comment marks '//'

    // and replace the description with the name of a system input or output,

    Perhaps, on the real controller (I don't have it), you need do configure other signal to for safety reason.

    Have a nice day...


    The question I have is, is it possible to configure a profibus dio for a remoteMoveHold and remoteEnablePower and if so, how?

    How does it work?

    The principle is very simple: the keys of the Stäubli MCP are simulated by digital or analog inputs. A configuration file allows the assignment to each key of a signal replacing the key when the runtime license is activated. The input signals can be originated from the BIO or MIO boards, a field bus or even a Modbus TCP "software" configuration.

    The "Remote MCP" software is activated when the Stäubli MCP is replaced with the plug delivered with the controller. As soon as the Stäubli MCP is reinstalled, the software is deactivated and the Stäubli MCP takes control of the arm without the need to reboot the controller, thus making maintenance operations easier.

    Depending to the robot arm, for example :

    TX2_40 : Connection on forearm (J1203) M9 (BINDER 99 0405 70 03) .

    TX2_60 : M16 (BINDER 99 0451 75 14), (Stäubli reference: D610 474 00)...

    What is you arm type ?

    Hello JosuGaztelu,

    The files format is not the same for SRC 5.xx/6.xx and 7.xx.

    You can't send SRC 7xxx files to your controller.

    You need to install the good emulator on your PC, to create the robot on SRS with the real version.

    Call Stäubli services to have the instalator file for that or open an account to load it from the webside...

    What is your SRS version ?

    To upgrade the SRC version, you need to be sure that the hardware can be receive the new version. To install, you can find, on the Stäubli webside, the procedure and the files.

    Have a nice day...

    Hello Dominik,

    TS2-xxx... use CS9 controller, TS-xxx... use CS8 controller.

    For the both, the property autoStart is in the file "usr/configs/cell.cfx" (in the example "StartAppli" :(

    <String name="robotName" value="" />

    <autoStart name="StartAppli" location="Disk" />

    <String name="initWorkingMode" value="remote" />

    Be careful when you change file with ftp connection ...

    If your controller is a CS8, you can connect your PC with SRS and RemoteAccess licence ! In this case, it's really easy to change the autoload application without any risk.

    Perhaps there is other solution...but I don't know it...

    Have a nice day,


    +1 for Kelidor. If you have external 24V on CS9, try to return in initial configuration (Internal 24V) to be sure that there is no problem. It's the first cause of issue on Safety system...

    The solution is depending to the tool directions. Often the mechanical interface is wrong.

    I don't have standard program for this.

    For exemple, you can realise 2 measurements on feeler (turning arround joint 4); looking for the minimal value, turn 180° on joint 4, and report the 1/2 value with the sin and cos on X and Y value's tool.

    Easier is to create a tool (tCorr) inside your tool. Put the RZ value with the joint 4 value (position 1). In this case the 1/2 value is to put directly on X or Y value's tCorr.

    Other solution is to learn 2 positions on the same point. The difference give you the correction values.

    Have a nice Week end...

    Hello Samu1995,

    The tools for TS are calculated with the same function as TX. Obvously, you can't use the special application to learn it (no wrist).

    If you have the mechanical definition of the tool, you need to give the transformation (Father to Tool).

    Remember that the calcul is in this order : (X,Y,Z) then RX, then RY, then RZ.

    If your tool is not good, you can find the value with 2 points on the same target, the second with a rotation around J4=180°.

    Have a nice day,

    Hello Kelidor,

    Your solutions are good. The robot choose the shortest way (axis or angle), always the same.

    If you have problem with cable :

    - Add an intermediate point (sometime not good for cycle time)

    - Use a refence joint to convert your point to Joint position (look for pointToJoint())

    - reduce the axis limit

    Have au nice day...

    Hello Painfull,

    Your program is not good.


    Don't forget that one of the output can be, at the beginning, in the wrong position.

    You need an initialisation step at the beginning.

    On the both robots, set the ouput to 1 and wait that the input is 1. To be sure that the other robot is connected and running.


    In your program, the synchronisation after the point[0] (for the R1). :

    1-movel(points[0], TCP, mdesc0000)


    3-dos[1] = true


    5-wait(dis[0] == true)


    7-dos[1] = false

    Imagine that the R1 is faster to the R2

    The R1 is waiting Input to 1(Line 5)

    As soon as the R2 set the output, the R1 reset his output. (Line 7)

    In the same time, the R2 wait his Input to is blocked !

    With only 1 input and 1 output per robots, it's not very easy.

    For me, after each synchronisation point , you can test this sequence :

    (after an initilisation to 1 at the beginning)

    Set the Output to 0 (To say that the robot is arrive on the point)

    Wait the input is 0 (to wait the other robot)

    Set the Output to 1 (to start the new sequence)

    Wait the Input to 1 (To be sure that the other robot is ready to)

    You can write this sequence in a program and call it in your main program.


    Other thing, in :

    dos[0] = true


    wait(dis[1] == true)

    You don't need the WaitEndMove()

    Best regards

    Hello Painfull,

    I don't understand where is the difficulty. You have many solutions depending to the functionnalities.

    - If the 2 robots have a common area, just control before to entry that the other robot is not already in the area (Input is 1). Then put the output to 0 to signal that you are IN. (For safety be carreful to use the signal to say that you are out of the area)

    - If you want to work step by step with the 2 robots. Declare enought bit in Array of DIO and use dioGet() and dioSet() to give the actual step to the other robot. You can work with only 1 input and Ouput but it is more difficult re-synchronise after a stop (like Emergency stop...)


    Best regards,