Beiträge von Murt

    Hello all,


    Can the ABB robots use pointers? It would be very interesting in order to make the programs more reusable.


    We have searched the manuals without luck. Any hint will be welcome.


    Thank you in advance.

    OK, I've got what was happening:


    I cannot have special types inside a PERS structure (e.g. clock) and moreover I must take care on where I'm placing my comments...


    Here you can see why it was not working properly:


    RECORD aaa ! this is a comment that makes it not to work...
    bool b1;
    num n1;
    clock c1;
    ENDRECORD


    PERS aaa struct1;
    VAR aaa struct2;


    If I try to use struct 1 it won't work for two reasons: the comment by aaa and the clock variable inside.


    In any case struct2 will not work, but in this case clock is perfectly legal, you must remove only the comment.



    THANK YOU VERY MUCH FOR YOUR COMMENTS/ANSWERS...

    Hello all,


    In my last question I asked about how to make data structures.


    It seems that something called RECORD and ENDRECORD makes the trick:


    RECORD aaa
    bool b1;
    bool b2;
    ENDRECORD


    VAR aaa struct1;


    The only thing that I need to make it perfect is to be able to share data between 4 robots, nowadays I'm using independent variables (variables that are not inside any structure) in order to do that :


    PERS bool a := TRUE; ! FOR EXAMPLE...


    I suppose that tha logical way to share structures would be:


    RECORD aaa
    bool b1;
    bool b2;
    ENDRECORD


    PERS aaa struct1;


    but this is not working.


    Any idea on how should I make it work?


    As always thank you in advance for your time and help.

    Hello all,


    I'd like to know if I can create data structures that are not ABB standard?


    As in C++ when you use the typedef clause in order to make a new structure that could have different type of variables inside.


    I'm working in a multimove environment and would be great to have all the variables grouped in order to be able to work easier.


    As always thank you in advance.


    Best regards.

    Hello all,


    I'm trying to use 10 analog inputs under a devicenet io card. I've used before some analog outputs without any problem, but now it seems that the robot don't want to communicate from the 5th analog input to the 10th one. The curious thing is that I can use correctly from the first one to the fourth one without any kind of problem.


    NOTE:
    I'm using a BX5200 from Beckhoff, the IO's are not physical, they are only logical, and I know that this BX5200 has not a limit in sharing analog or digital IO's.


    As an example here I paste a fragment of the EIO file:


    **********************************************************
    -Name "BXaiwModeTActiu" -SignalType "AI" -Unit "BX5200" -UnitMap "0-15"\
    -MaxLog 32767 -MaxPhys 1 -MaxPhysLimit 100 -MinLog -32768 -MinPhys -1\
    -MinPhysLimit -100
    -Name "BXaiwAux" -SignalType "AI" -Unit "BX5200" -UnitMap "16-31"\
    -MaxLog 32767 -MaxPhys 1 -MaxPhysLimit 100 -MinLog -32768 -MinPhys -1\
    -MinPhysLimit -100
    -Name "BXaiwLaser0" -SignalType "AI" -Unit "BX5200" -UnitMap "32-47"\
    -MaxLog 32767 -MaxPhys 1 -MaxPhysLimit 100 -MinLog -32768 -MinPhys -1\
    -MinPhysLimit -100
    -Name "BXaiwLaser1" -SignalType "AI" -Unit "BX5200" -UnitMap "48-63"\
    -MaxLog 32767 -MaxPhys 1 -MaxPhysLimit 100 -MinLog -32768 -MinPhys -1\
    -MinPhysLimit -100
    -Name "BXaiwLaser2" -SignalType "AI" -Unit "BX5200" -UnitMap "64-79"\
    -MaxLog 32767 -MaxPhys 1 -MaxPhysLimit 100 -MinLog -32768 -MinPhys -1\
    -MinPhysLimit -100
    -Name "BXaiwLaser3" -SignalType "AI" -Unit "BX5200" -UnitMap "80-95"\
    -MaxLog 32767 -MaxPhys 1 -MaxPhysLimit 100 -MinLog -32768 -MinPhys -1\
    -MinPhysLimit -100
    -Name "BXaiwLaser4" -SignalType "AI" -Unit "BX5200" -UnitMap "96-111"\
    -MaxLog 32767 -MaxPhys 1 -MaxPhysLimit 100 -MinLog -32768 -MinPhys -1\
    -MinPhysLimit -100
    -Name "BXaiwLaser5" -SignalType "AI" -Unit "BX5200" -UnitMap "112-127"\
    -MaxLog 32767 -MaxPhys 1 -MaxPhysLimit 100 -MinLog -32768 -MinPhys -1\
    -MinPhysLimit -100
    -Name "BXaiwAuxI11" -SignalType "AI" -Unit "BX5200" -UnitMap "128-143"\
    -MaxLog 32767 -MaxPhys 1 -MaxPhysLimit 100 -MinLog -32768 -MinPhys -1\
    -MinPhysLimit -100
    -Name "BXaiwAuxI12" -SignalType "AI" -Unit "BX5200" -UnitMap "144-159"\
    -MaxLog 32767 -MaxPhys 1 -MaxPhysLimit 100 -MinLog -32768 -MinPhys -1\
    -MinPhysLimit -100
    **********************************************************


    As you can see all the addresses are correct, and as I explained you before the inputs BXaiwModeTActiu, BXaiwAux, BXaiwLaser0 and BXaiwLaser1 are working properly.


    Could you please give me an advice about that?


    As always thank you in advance for your time and help.

    Hello all,


    Does anybody here know exactly which protocol do the SMB card is using in order to communicate with the IRC5 controller?


    I'm making a special prototype and I need this information.


    Thank you in advance.

    Hello all!


    I need to know if the documentation for the KUKA Robots can be obtained in Danish, I need that, but I've not been able to know if this is even possible...


    as always thank you in advance.

    Hello all,


    I'd love to make my visual c++ application language ready, I mean that I'd love to be able to know which language has been selected in the KUKA KRC by reading a variable in the robot controller in order to be able to adjust my visual c++ application to the same language.


    Does anyone know if that variable exists? and if it exists which variable is that one?


    As always thank you in advance.

    Hello all,


    Again here with one question...


    I need to be able to execute more than one point without stopping the robot, but even if I use the modifier C_DIS at the end of a LIN command or C_PTP at the end of a PTP command nothing changes.


    Here is a little sample of how do we program the robot:


    PTP {X 160.46, Y 819.9, Z 37.98, A -97.26, B -50.89, C 93.76} C_PTP
    LIN {X 160.46, Y 477.16, Z 37.98, A -97.26, B -50.89, C 93.76} C_DIS
    LIN {X 156.94, Y 467.42, Z 37.99, A -97.26, B -50.89, C 93.75} C_DIS
    LIN {X 160.2, Y 467.87, Z 34.85, A -97.26, B -50.89, C 93.75} C_DIS
    LIN {X 162.09, Y 466.36, Z 22.56, A -95., B -41.31, C 91.} C_DIS


    Between each point the robot stops...


    How should I avoid the robot to stop between points?


    As always thank you in advance.

    OK,


    I've tried it and then restarted the computer selecting a cold start at next reboot, but even in this way when I try to move the 6th axis it is limited.


    What should I do in order to activate that modification?


    As always thank you in advance.

    Hello all,


    I need the 6th axis to become infinite (be able to rotate more than one turn in each direction) and I would like to know if I must modify something else than $SOFTP_END[6] and $SOFTN_END[6]?


    As always thank you in advance.

    Ouch!


    excuse me! I had installed the 4.x version there, but now I have also the 5.x version.


    You should be able to download that application from KUKA and install it, even if you don't register it you'll be able to find the file in the specified folder and use it without any problem.


    If you cannot find it in the kuka servers, or after speaking with your technical support, I can send it to you by mail.


    Another solution that you can try is to use the Cross.ocx control, it makes more or less the same.


    Hope this helps.

    Hello all,


    I have a problem: I need to be able to separate the logic of the robot cell from the points stored by the users.


    Using this method I can have all the logic functions in one file and then call the n functions that will be modified by the operator. Those n functions will have only points (LIN,PTP...).


    The problem that I have is that I cannot use global functions because then when I have two user programs there are conflicts.


    ------------------------------------------------------------------
    EXAMPLE:
    ------------------------------------------------------------------
    *********************
    LOGIC.SRC FILE
    *********************
    U_PICFROMPALET();
    CHECK();
    U_WORK();
    U_PLACETOPALET();
    CHECK();


    *********************
    USERPROG1.SRC FILE
    *********************
    DEF U_PICKFROMPALET()
    LIN...
    END
    ...


    *********************
    USERPROG2.SRC FILE
    *********************
    DEF U_PICKFROMPALET()
    PTP...
    END
    ------------------------------------------------------------------


    As you can see from the logic program I call the points program. But I have different programs with different names but with the same functions inside, those functions will have only different contents.


    This is interesting in order to make this machine easy to maintain in a future, but it seems that I need to use the external clause in order to be able to make it work, but it seems that this don't want to work for me...


    Any idea or example?


    As always thank you in advance.

    Hello all,


    I would like to know if there is any variable that allow me to read the curernt loaded program in the KRC.


    I'm working from VC++ and I need to reach variables inside sub-programs, this means that I can make two things:


    A) make all of them as globals (this changes the scope, but I cannot get two variables with the same name even if they are in different files).


    B) make them local (as by default) and then accessing them using the filename as path for that variable.


    I must use the B method, as the A is not valid for me, but I need to know how to automate the path to the variable, and in order to do that I need to be able to read the name of the program that is selected at the moment.


    As always, thank you in advance.

    I don't know if I want to answer you... ;)


    I'm not running the Visual Studio on the robot controller, it would not run there due to the limited resources that the robot computer has.


    I'm working with VC++2005 and I compile it in another machine (not in the robot controller computer). I'm working on one machine with the OFFICE LITE installed, and in this way I can test everything. I could also make a remote debugging, but I preferred the first method, easier and for a simple application like mine in which I have had only to read and store 30-40 values it has not been a very big deal.


    Hope this helps.