Posts by dave tripp

    So the customer said that sps.sub would not run, and sent a screenshot of the message
    "R1/SPS not correct"

    when he tried to start it.

    I didn't have access to see how the error was displayed in the file beyond that. But that's what prompted me to look inside SPS.sub, and see the errors in WoV.


    However, everything worked fine after I sent him a version of the project after I'd reloaded the files, where those errors no longer appear.


    But you're right Panic Mode, it's possible that a few different things, such as a double declaration of those variables, maybe not as GLOBAL, was causing the issue, and one of the files inside TP I didn't even look at was the issue.

    so the strange thing is that the file where those are declared is  ArcOutputRoutines.dat. You can see in that screenshot the file exists on the controller (not sure why the name is in grey though), and it just seemed like it was refusing to acknowledge that file.


    There's no difference between that file and the one I reloaded. Just that I reloaded it, and then the project seems to use the variables just fine after that.

    System Info:

    KRC4

    KSS 8.3.378

    KR16 R2010 robot and KP2-SV5000_HW positioner

    ArcTech Basic 1.5.6.2819

    ArcTech Advanced 1.5.4.119


    Hi All,


    So a customer sent me a backup, and I added a few files to the system under KRC/R1. Specifically, I created one new folder, and added some folders and files to this. Then I saved the project to a new name.

    Strangely, I am now getting the attached errors in SPS.sub. To be clear, I didn't touch SPS.sub, or any of the arctech files where those variable definitions are. It seems that the KUKA ArcTech files located in KRC/R1/TP either didn't load in properly, compile properly, or get read properly. I'm new to ArcTech, so I'm not sure if this is normal, but most of the filenames under ATA or ATB appear grey in workvisual (as opposed to the normal black or blue).


    If I reload the folder KRC/R1/TP from the original backup, this error disappears, and the filenames go blue. but the error will return if I try to save the project with a new name. I know the arcTech options packages I am using are correct, because I got them directly from the customer. I loaded ATB before loading ATA (as suggested on this sub). Anyone have any idea why this happened? I'm also not convinced that my "solution" of reloading the TP folder will still be working when I send this project back to the customer.


    KRC4

    KSS 8.5.7

    KR60-3 Robot with DKP 400-40 2 axis positioner


    Hi Everyone,


    I have a question about using INV_POS  to find the coordinates of a point (under a specific condition). Currently in our setup, we use a custom CAM software to generate robot motions, all in the BASE[0] ($ROBROOT) coordinate system. These motions include movements of the two external axes with our DKP 400 positioner. For example, we might:


    move to Position A,

    LIN { X 1722.087, Y -173.815, Z 1108.022, A -45.0000, B 90.0000, C 0.0000, S 'B10', T 'B100011' }

    tilt the positioner arm (E1) 10 degrees and rotate the positioner plate (E2) 360 degrees,

    (this is a custom function that wraps this as E1, E2, speed (rad/s)

    OrientPlate (10.603515, 360.0, 0.165153)

    move to Position B.

    LIN { X 1722.094, Y -173.815, Z 1109.722, A -45.0000, B 90.0000, C 0.0000, S 'B10', T 'B100011' }


    We create a visualization of the part afterwards by logging the current robot position ($POS_ACT_MES). You can imagine that if I am reading the current position in $ROBROOT, rotating the plate 360 degrees shows up as the robot not moving, when in reality, (in the reference frame of the part) we created a circle. So I'd like to read out the current position of the robot (X,Y,Z,A,B,C) in the positioner frame (this is set up as BASE_DATA[17] ). I tried using

    E6POS_ExtAxFrame=INV_POS(BASE_DATA[17]):$BASE_C:$POS_ACT_MES

    However, this doesn't actually update as the positioner moves. It just offsets the position by the definition of the frame.

    I'd rather not work out my own IK of the position based on the E1 and E2 angles, but if that's my only option, well...so be it.


    Does anyone have any suggestions? I've seen some great knowledge around this forum in relation to external positioners, INV_POS and the geometric operator, but I couldn't work out the best way to do this.


    (I'll add that for ABB robots, you can use the "CRobT" function to read the current robot position, and simply specify the work object you'd like to reference. So I guess I'm looking to force the same functionality out of KUKA) pos:=CRobT(\WObj:=ext_axis);


    Thanks,

    Dave

    I found the issue. I believe MOVE is a reserved word and cannot be used as a parameter name. I changed it to "Movement" and everything works.


    I had just been looking at the error list for my main program/dat file, but when I looked at the error list for the program where setSpeed is declared, I saw an error about the routine needing a name, or something like that.

    Hi,


    KRC4
    KSS 8.5.7
    KR60-3 Robot with DKP 400-40 2 axis manipulator


    I'm running into an issue, that seems to be stemming from passing ENUM data type to a sub routine. I have a routine to set the robot speed. This was previously used to only set the CP TCP velocity, and it worked fine, but now I'd like it to also be able to set axis velocities. So I have modified the routine to accept an ENUM of "moveType".

    Code
    GLOBAL DEF setSpeed(R_velocity:IN,MOVE:IN)
    ;===================================================
    DECL REAL R_velocity
    DECL moveType MOVE
    DECL REAL PTP_Percent
    DECL INT i
    ...
    
    END


    In a .dat file I use to store global variables, I have a created the ENUM moveType so you can choose whether you are setting the LIN speed, or the PTP speed, and in my main file, I'm simply trying to call the above routine.

    Code
    GLOBAL ENUM moveType LINMOVE,PTPMOVE
    DECL GLOBAL moveType lin_move=#LINMOVE
    DECL GLOBAL moveType ptp_Move=#PTPMOVE

    However, any instance of setSpeed throws back the error 2135 "Name not declared as subprogram" .

    Uuhhh pardon me kuka, but I declared it globally. I have tried calling setSpeed every different way I can think of, but nothing works.

    Code
    setSpeed(10, #PTPMOVE)
    setSpeed(10, ptp_Move)
    setSpeed (0.1)

    Does anyone know why this is happening?

    Hi,


    Kuka Setup:
    KRC4
    KSS 8.5.7
    KR60-3 Robot with DKP 400-40 2 axis manipulator


    I have a system with a DKP 400 40 external kinematic system. I have a frame defined for a plate that is fixed to that system, BASE_DATA[18]

    Code
    BASE_DATA[18]={X -2.16075563,Y 0.835438073,Z 35.3650742,A -67.5087814,B -0.0563619025,C 0.0835446}


    Other setup information from config.dat:

    Code
    MACHINE_DEF[2]={NAME[] "DKP-400_1_40A",COOP_KRC_INDEX 1,PARENT[] "WORLD",ROOT {X 1719.48499,Y -4.10037422,Z 5.48115778,A 89.2691574,B 0.254763693,C -0.164639205},MECH_TYPE #EASYS,GEOMETRY[] "ObjectId = -1102265838"}
    MACHINE_FRAME_DAT[18]={MACH_DEF_INDEX 2,PARENT[] "DKP-400_1_40A",GEOMETRY[] "ObjectId = -317881930"}


    I am trying to run a program that does simple linear moves relative to base frame 18. First, the system reads the current position, sends it to a controller, and the controller sends back an offset position, based on some sensor data.


    The problem is, I cannot seem to activate base 18 from a program correctly. Whenever I activate base 18, the current cartesian position jumps as though base18 is offset from the null frame (base 0) instead of from the external kinematic system. My robot position is then entirely incorrect (as displayed on the teach pendant), so the position that is read by the controller is incorrect. The robot then generates a workspace error when trying to move to the first position. If I use the smartpad to activate a different base, and then activate base 18 again, it works correctly.


    So to be clear, I jog the robot to a position that is say X 100, Y 50, Z 25, from the center of my plate on the external positioner. If I manually select base 18 on the smartpad, the position is displayed as expected ( X 100, Y 50, Z 25). If I try to activate base 18 in my program, the position data changes to something totally different, let's say (X 2000, Y 500, Z 998).


    I've tried using both BAS(#BASE, 18) and $ACT_BASE=18


    My initialization code is as follows:


    Does anyone know why this is happening? How do you guys normally initialize a frame that is linked with an external positioner?

    Hi all,


    Details:


    Kuka Setup:

    KRC4

    KSS 8.5.7

    KR60-3 Robot with DKP 400-40 2 axis manipulator


    IO setup (arranged in this order):

    Wago 750-354 EtherCAT Fieldbus

    Connected to the KUKA X44, via ethernet cable to the "IN" (top) port

    Wago 750-430 DI module, 8 inputs

    Wago 750-530 DO module, 8 outputs

    Wago 750-600 endcap

    (see attached image)


    Then I added the DTM files for the WAGO to work visual

    Added the WAGO fieldbus to the KUKA extension bus X-44 in work visual

    Configured the two IO modules for the fieldbus under the fieldbus settings (see attached image)

    Mapped the IO in WorkVisual (see attached image)

    Downloaded the project


    All looked good, no errors or warning. However, I can't seem to actually trigger the IO. If I turn on the outputs from the smartPAD, I don't get 24V out, and if I apply 24V to the inputs, I don't see them either.


    Applying 24V to the inputs doesn't even turn a light on in the IO module, which leads me to believe it may be a wiring issue, however as you can see in the images, the status lights on the 750-354 suggest everything is working fine.


    EDIT: just checked, and I noticed that whether I plug the ethernet cable from the KUKA to the IN or the OUT port of the 750-354, I have no errors. That seems strange to me.


    Anyone have any ideas?

    Well, to update everyone:


    One day I did see message 13103 "Battery or battery fuse defective, backup not possible". The message didn't always appear on powerup, but I decided to replace the batteries anyways. So I replaced the batteries and let them charge for about 40 hours, however the issue is still there. I'm wondering if I should have let the batteries charge for even longer.


    SkyeFire, I also realized that the date is always going back to Jan 1 2013, however for whatever reason I do sometimes see a message dated 2012 in the message window on power up (but the system date is still Jan 1 2013).


    I tried both a cold boot, and hibernate, and checking/unchecking "use internet time" (to sync with our time server), but I didn't see any differences.


    I may just put a little script on the controller to force an update with our time server.

    You can see in the images attached, the event message from 2012, but the system time is 2013, and then the time going back to correct after syncing with the time server, and... strangest of all, at one point I turned off the connected welding machine, and when I restarted the controller, the ethernet connection warning messages were from...18 days ago?

    MOM, I have not checked these log files before. I assume this thread ( Viewing event logs ) will sort me out. I will report back after I have viewed the logs.


    SkyFire, after reboot the clock goes back to Jan 1 2012 or 2013 (this year changes depending on the restart strangely). The robot is off for only a minute or so. No error messages of any kind during startup on the smartPAD .

    Hey folks, wanted to piggy back on this thread as I have a related issue. Can also make my own post though.

    System is KRC4 with KSS 8.3.620


    I have the controller set to use our time server for the system time. This is set up and working correctly—however—I have to manually re-sync it (minimize HMI, navigate to control panel, open the time settings, go to internet time, and refresh/update the time) every time after a reboot.


    This of course means that my $DATE time is never actually correct, because as MOM mentioned, "the base system reads the actual time during powerup".

    Would anyone know why the internet time is lost during a reboot? Is this normal?

Advertising from our partners