Robots in Architecture Forum

KUKA|prc - parametric robot control for Grasshopper => Support => Topic started by: Brodesser83 on September 03, 2019, 01:21:53 PM

Title: Robots stops shortly when output is switched off
Post by: Brodesser83 on September 03, 2019, 01:21:53 PM
Hi everybody. I'm working an extrusions and I try to switch the extruder on and off at different points of my printed geometry. I want to compensate for some lag in the equipment. I switch it off before it reaches the end of the geometry. At this point the robot stops briefly and then continues.
The option for the continuous movement on the output is set to true.
Does anybody have an idea on how to get a continuous movement without the short stop?
Thanks
Title: Re: Robots stops shortly when output is switched off
Post by: Johannes @ Robots in Architecture on September 03, 2019, 06:58:51 PM
Hello,

With continuous movement it shouldn't stop, can you copy/paste a representative part of the generated KRL code?

Thanks,
Johannes
Title: Re: Robots stops shortly when output is switched off
Post by: Brodesser83 on September 04, 2019, 09:30:23 AM
&ACCESS RVP
&REL 1
&PARAM TEMPLATE = C:\KRC\Roboter\Template\vorgabe
&PARAM EDITMASK = *
DEF tamlogo5015out ( )

EXT tamlogo5015out_1()
EXT tamlogo5015out_2()
EXT tamlogo5015out_3()

;FOLD INI
;FOLD BASISTECH INI
GLOBAL INTERRUPT DECL 3 WHEN $STOPMESS==TRUE DO IR_STOPM ( )
INTERRUPT ON 3
BAS (#INITMOV,0 )
;ENDFOLD (BASISTECH INI)
;ENDFOLD (INI)

;FOLD STARTPOSITION - BASE IS 6, TOOL IS 6, SPEED IS 15%, POSITION IS A1 79,A2 -53,A3 62,A4 87,A5 -78,A6 -80,E1 0,E2 0,E3 0,E4 0
$BWDSTART = FALSE
PDAT_ACT = {VEL 15,ACC 100,APO_DIST 50}
BAS(#PTP_DAT)
FDAT_ACT = {TOOL_NO 6,BASE_NO 6,IPO_FRAME #BASE}
BAS (#FRAMES)
BAS (#VEL_PTP,15)
PTP  {A1 79,A2 -53,A3 62,A4 87,A5 -78,A6 -80,E1 0,E2 0,E3 0,E4 0}
;ENDFOLD

;FOLD LIN SPEED IS 0.6 m/sec, INTERPOLATION SETTINGS IN FOLD
$VEL.CP=0.6
$ADVANCE=5
;ENDFOLD

tamlogo5015out_1()
tamlogo5015out_2()
tamlogo5015out_3()

END
Title: Re: Robots stops shortly when output is switched off
Post by: Brodesser83 on September 04, 2019, 09:31:48 AM
And here is a part of the first program.


LIN {E6POS: X 742.649, Y 275.085, Z 300, A 0, B 0, C 180, E1 0, E2 0, E3 0, E4 0} C_DIS
LIN {E6POS: X 739.257, Y 284.081, Z 300, A 0, B 0, C 180, E1 0, E2 0, E3 0, E4 0} C_DIS
LIN {E6POS: X 735.866, Y 293.077, Z 300, A 0, B 0, C 180, E1 0, E2 0, E3 0, E4 0} C_DIS
LIN {E6POS: X 732.474, Y 302.073, Z 300, A 0, B 0, C 180, E1 0, E2 0, E3 0, E4 0} C_DIS
LIN {E6POS: X 613.4, Y 167.151, Z 400, A 0, B 0, C 180, E1 0, E2 0, E3 0, E4 0} C_DIS
$OUT[8]=TRUE
LIN {E6POS: X 613.4, Y 167.151, Z 300, A 0, B 0, C 180, E1 0, E2 0, E3 0, E4 0} C_DIS
LIN {E6POS: X 613.4, Y 167.151, Z 300, A 0, B 0, C 180, E1 0, E2 0, E3 0, E4 0} C_DIS
LIN {E6POS: X 610.389, Y 176.084, Z 300, A 0, B 0, C 180, E1 0, E2 0, E3 0, E4 0} C_DIS
LIN {E6POS: X 607.377, Y 185.017, Z 300, A 0, B 0, C 180, E1 0, E2 0, E3 0, E4 0} C_DIS
LIN {E6POS: X 604.366, Y 193.95, Z 300, A 0, B 0, C 180, E1 0, E2 0, E3 0, E4 0} C_DIS
LIN {E6POS: X 601.354, Y 202.883, Z 300, A 0, B 0, C 180, E1 0, E2 0, E3 0, E4 0} C_DIS
LIN {E6POS: X 598.343, Y 211.815, Z 300, A 0, B 0, C 180, E1 0, E2 0, E3 0, E4 0} C_DIS
LIN {E6POS: X 588.984, Y 211.826, Z 300, A 0, B 0, C 180, E1 0, E2 0, E3 0, E4 0} C_DIS
LIN {E6POS: X 579.625, Y 211.836, Z 300, A 0, B 0, C 180, E1 0, E2 0, E3 0, E4 0} C_DIS
LIN {E6POS: X 570.266, Y 211.846, Z 300, A 0, B 0, C 180, E1 0, E2 0, E3 0, E4 0} C_DIS
LIN {E6POS: X 560.907, Y 211.856, Z 300, A 0, B 0, C 180, E1 0, E2 0, E3 0, E4 0} C_DIS
LIN {E6POS: X 551.548, Y 211.866, Z 300, A 0, B 0, C 180, E1 0, E2 0, E3 0, E4 0} C_DIS
LIN {E6POS: X 542.189, Y 211.876, Z 300, A 0, B 0, C 180, E1 0, E2 0, E3 0, E4 0} C_DIS
LIN {E6POS: X 532.83, Y 211.886, Z 300, A 0, B 0, C 180, E1 0, E2 0, E3 0, E4 0} C_DIS
LIN {E6POS: X 523.471, Y 211.897, Z 300, A 0, B 0, C 180, E1 0, E2 0, E3 0, E4 0} C_DIS
LIN {E6POS: X 520.221, Y 202.95, Z 300, A 0, B 0, C 180, E1 0, E2 0, E3 0, E4 0} C_DIS
$OUT[8]=FALSE
LIN {E6POS: X 516.972, Y 194.003, Z 300, A 0, B 0, C 180, E1 0, E2 0, E3 0, E4 0} C_DIS
LIN {E6POS: X 513.722, Y 185.055, Z 300, A 0, B 0, C 180, E1 0, E2 0, E3 0, E4 0} C_DIS
LIN {E6POS: X 510.473, Y 176.108, Z 300, A 0, B 0, C 180, E1 0, E2 0, E3 0, E4 0} C_DIS
LIN {E6POS: X 507.223, Y 167.161, Z 300, A 0, B 0, C 180, E1 0, E2 0, E3 0, E4 0} C_DIS
LIN {E6POS: X 516.875, Y 167.16, Z 300, A 0, B 0, C 180, E1 0, E2 0, E3 0, E4 0} C_DIS
LIN {E6POS: X 526.528, Y 167.16, Z 300, A 0, B 0, C 180, E1 0, E2 0, E3 0, E4 0} C_DIS
LIN {E6POS: X 536.18, Y 167.159, Z 300, A 0, B 0, C 180, E1 0, E2 0, E3 0, E4 0} C_DIS
LIN {E6POS: X 545.833, Y 167.158, Z 300, A 0, B 0, C 180, E1 0, E2 0, E3 0, E4 0} C_DIS
LIN {E6POS: X 555.485, Y 167.157, Z 300, A 0, B 0, C 180, E1 0, E2 0, E3 0, E4 0} C_DIS
LIN {E6POS: X 565.138, Y 167.156, Z 300, A 0, B 0, C 180, E1 0, E2 0, E3 0, E4 0} C_DIS
LIN {E6POS: X 574.79, Y 167.155, Z 300, A 0, B 0, C 180, E1 0, E2 0, E3 0, E4 0} C_DIS
LIN {E6POS: X 584.443, Y 167.154, Z 300, A 0, B 0, C 180, E1 0, E2 0, E3 0, E4 0} C_DIS
LIN {E6POS: X 594.095, Y 167.153, Z 300, A 0, B 0, C 180, E1 0, E2 0, E3 0, E4 0} C_DIS
LIN {E6POS: X 603.748, Y 167.152, Z 300, A 0, B 0, C 180, E1 0, E2 0, E3 0, E4 0} C_DIS
LIN {E6POS: X 613.4, Y 167.151, Z 300, A 0, B 0, C 180, E1 0, E2 0, E3 0, E4 0} C_DIS
LIN {E6POS: X 532.455, Y 394.75, Z 400, A 0, B 0, C 180, E1 0, E2 0, E3 0, E4 0} C_DIS
$OUT[8]=TRUE
LIN {E6POS: X 532.455, Y 394.75, Z 300, A 0, B 0, C 180, E1 0, E2 0, E3 0, E4 0} C_DIS
LIN {E6POS: X 532.455, Y 394.75, Z 300, A 0, B 0, C 180, E1 0, E2 0, E3 0, E4 0} C_DIS
LIN {E6POS: X 527.919, Y 393.742, Z 300, A 0, B 0, C 180, E1 0, E2 0, E3 0, E4 0} C_DIS
LIN {E6POS: X 524.155, Y 391.061, Z 300, A 0, B 0, C 180, E1 0, E2 0, E3 0, E4 0} C_DIS
LIN {E6POS: X 521.718, Y 387.827, Z 300, A 0, B 0, C 180, E1 0, E2 0, E3 0, E4 0} C_DIS
LIN {E6POS: X 519.722, Y 383.637, Z 300, A 0, B 0, C 180, E1 0, E2 0, E3 0, E4 0} C_DIS
LIN {E6POS: X 516.136, Y 374.617, Z 300, A 0, B 0, C 180, E1 0, E2 0, E3 0, E4 0} C_DIS
LIN {E6POS: X 512.55, Y 365.597, Z 300, A 0, B 0, C 180, E1 0, E2 0, E3 0, E4 0} C_DIS
LIN {E6POS: X 508.964, Y 356.577, Z 300, A 0, B 0, C 180, E1 0, E2 0, E3 0, E4 0} C_DIS
LIN {E6POS: X 505.378, Y 347.556, Z 300, A 0, B 0, C 180, E1 0, E2 0, E3 0, E4 0} C_DIS
Title: Re: Robots stops shortly when output is switched off
Post by: Johannes @ Robots in Architecture on September 04, 2019, 06:32:41 PM
Hello,

I just tested it with the most recent release and if you set the Continuous input to TRUE, you should get $OUT_C[8]=FALSE instead of $OUT[8]=FALSE
As a stop gap to test it with your file, you could also just search/replace in the text file.
Just note that the output will be triggered once the advance pointer moves over it, so it could be active a bit early.

Best,
Johannes
Title: Re: Robots stops shortly when output is switched off
Post by: Brodesser83 on September 05, 2019, 09:49:32 AM
Hi,
thanks for this hint. That works as you said. I could easly integrate it with custom krl as well. After talking to KUKA I found the following command which won't be read in advance: TRIGGER WHEN DISTANCE=0 DELAY=0 DO $OUT[8]=FALSE.
Cheers
Tim
Title: Re: Robots stops shortly when output is switched off
Post by: Johannes @ Robots in Architecture on September 05, 2019, 05:57:28 PM
Nice!
Thanks for sharing!