Posts by SD-Matic

    To answer your second question (Random number generation) :

    Staubli provides a function $rand() in the "Expansion" add-on :

    (s7.3.1+) num $rand(), num $rand(num seed)

    This instruction returns a pseudorandom number n with 0<=n<1. The seed argument reset the pseudorandom sequence. This allows computations to be repeated

    I never used it, so can't tell you if it works well.



    Hi everyone,

    I use a KAREL routine to write some logs into a file. This file is stored in the RD memory area (really much faster than FD). But, as nothing is perfect :P , RD is volatile, and so I need to daily copy my file from RD to FD.

    Once again, FANUC's world is not perfect, and KAREL doesn't allow this :

    fileFastLog : FILE
    fileSavedLog : FILE
    fileSavedLog = fileFastLog 

    Do you know how to copy a file from a memory zone to another one ?



    What I do :

    1. Create a virtual Digital Output Board with 3 signals,

    2. Link those 3 DO to the buttons,

    3. In my VAL3 application, use those DO to call programs.

    Depending of the connected profile, 1-2-3 buttons can be deactivated, if you want some users to not have access to this function.

    Controller and arm are paired.

    So, files like config\arm.cfx (that contains caibration data) will not be accorded to the new arm.

    Personnaly, if I had to do that :

    1. Backup of both controller,

    2. Image of the CF card of both controller,

    3. Swap robot's arm,

    4. Reboot controller and check if message appears.

    Calibration, maintenance and service procedures are not easily available, as Staubli asks you to have a training with them to be able to do it yourself... So it is difficult to find manual on these subjects.


    I only know that if you turn the controller from Manual mode to Auto mode, the monitor speed will be set automatically to 10%.

    So, I think that if your speed goes to 40%, there are two soutions :

    1) It is written somewhere in your VAL3 code, using the setMonitorSpeed() function.

    2) There's a remote device (PLC or other) that control your Monitor Speed using the Hardware signals defined in the IOMAP file (remoteMonitorSpeed).

    Hope it will help you.


    If I check the SRS documentation, you must use diolink with signals that are already connected to physical IO :

    (Sorry, in french) :

    void dioLink(dio& diVariable, dio diSource)


    Cette instruction lie diVariable à l'entrée/sortie à laquelle diSource est lié.


    Cette application utilise un signal qui peut être configuré à l'aide de différents matériels. Le programme ci-dessous détermine quel matériel est installé afin d'initialiser la variable diSignal qui est utilisée ensuite dans le reste de l'application.

    If I understand, diolink is not used to link a dio signal to a physical link, but only to link dio signals between themselves.