Spline Blocks

  • Hi All,


    1) I have this 'sub-code' and the segments moves are smooth as expected, however there are those 'undesirable' stops between segments. Any idea how to get smooth (non-stopping) transitions? .


    FOR seg = 1 TO COM_SEG-1

    strt = 5*seg - 4

    PTP COM_XP[strt]

    SPLINE WITH $VEL.CP = COM_VEL[seg]

    SPL COM_XP[strt+1]

    SPL COM_XP[strt+2]

    SPL COM_XP[strt+3]

    SPL COM_XP[strt+4]

    ENDSPLINE

    ENDFOR               


    Note: 1) Every parameter is a variable I can pre-set.

    2) I tried SPTP, SLIN for line 3 but the robot slows down close to a stop at the transitions, as you'd see with the PTP, LIN moves.


    2) Another (kind of related) question.

    Any way of calling a motion command (like, a single, spline block) from an src file residing in a different folder (a. within /krc/R1/Program and b. in the C:\ or even the D:\ folder?

    Edited once, last by jagdish ().

  • There should be messages if the robot stops between segments. What are these? Usually the problem is with the coordinates because some condition on smoothness is violated. Messages might only be shown in t1 or t2.

    If the robot does not stop but only slows down it is for physical reasons. Spline always runs as fast as physics allows given your programmed velocities and accelerations.


    Folders c and d are not included in the robot controller image running in vxworks. Only subfolders of c/krc/roboter/r1 are downloaded to the vxworks image.


    Fubini

  • Thanks for the response.


    1) The robot does NOT stop, acts just as it would with PTP this, LIN that commands.

    2) I do not use Visual Works, I have access to the D:\ drive on the KRC4 from my PC and I can park files there...the question is can a running program call a subroutine that is still in the D: drive? If so, I avoid that extra step of copying and parking my subprogram file in the 'other' folders where I think it can be accessed.

    3) Can subprograms actuate the robot, not sure why they wouldn't but I thought I read something somewhere.


    Thanks.

  • 1. no idea what that means

    2. all robot program need to be in KRC:\R1, not on D:\

    3. that is the whole point of using subprograms. if they could not move robot, they would be pretty much useless on a robot.

    1) read pinned topic: READ FIRST...

    2) if you have an issue with robot, post question in the correct forum section... do NOT contact me directly

    3) read 1 and 2

  • WorkVisual (or Visual Works called by you) and VxWorks (mentioned in my reply) are two different things. VxWorks is the realtime operating system running the robot and ultimately all programs. The robot controller can only execute programs stored under VxWorks which resides in a ramdisk generated when starting the robot controller. For this certain folders are downloaded into the ramdisk. Folders c and d are not included. Only programs stored under c/krc/roboter/r1 are added to the ramdisk at robot controller startup. At runtime of the robot controller you can download additional programs into the ramdisk using the KUKA HMI by copying them into the folder panic mentioned before. So no chance in calling programs directly from d drive. Another option to get new programs into the ramdisk is adding them in WorkVisual to your active project and deploying the project.

  • 1) Thanks Fubini. I will make even this work.


    2) These is what I remembered reading (am new was reading tons so I remembered it)

    11.6 Programming
    KRL code Almost all KRL instructions can be used in a SUB program. The following
    statements are not possible, however:
     Statements for robot motions
    Robot motions can only be interpreted by the robot interpreter. For this
    reason, SRC programs containing motion commands cannot be called as
    subprograms from a SUB program.
     Statements referring to robot motions
    These include BRAKE and all TRIGGER statements.


    3) If I code

    ...

    PTP p1

    LIN p2

    LIN p3

    ...

    no approximation or spline, the steps are such that the robot moves to p1, p2 and p3 NOT with constant speed it accelerates, and decelerates noticeably.

    3) The robot program is in KRC:\R1, I was hoping the subroutine can be parked anywhere else even if the program is compiled and not line interpreted.


    THANKS for all your answers.

  • 2) Ah there is the misinterpretation. SUB programs you and the cited documentation talk about are submit programs. A special runtime program being always active in the background of the robot controller. Panic talked about subprograms or also called subroutines a general concept in program languages to write good and reusable code.

  • He is right on that part...I am the one who misremembered (frankly din't know or appreciate the difference.)

    For everyone's benefit...I got this from a KUKA guy, to put C_SPL at the last line of the block, (maybe everyone out there is aware of this...but)


    ENDSPLINE C_SPL


    Thanks again.

Advertising from our partners