just use the system function BAS(#BASE,2) to set current base to 2
Inviato dal mio XT1052 utilizzando Tapatalk
just use the system function BAS(#BASE,2) to set current base to 2
Inviato dal mio XT1052 utilizzando Tapatalk
panic mode: you are righr but the operator must be aware of what is he doing!
Has anyone ever tried do implement such a device?
Inviato dal mio XT1052 utilizzando Tapatalk
Hello people!
I want to build a device which allows one operator to RELEASE the brakes of the robot axes to allow fast manual movement in case of emergency.
For instance, one may unlock the A1 brake and move the robot out of intereference with the production line quickly and effortlessly.
This device is already available for fanuc robots and consists in a small panel with 6 buttons, each one releases one axis brake.
The panel is connected to the robot through the same connector of the controller (replaces the controller), but only the pins for the brakes are wired.
Today i did some electrical measurements on KUKA brakes and it turned out that they are released with a voltage applied of 27V, the current drawn by each brake is between 750 and 950 milliamps and the impedance varies a little between the 6 motors but it's between 35 and 27 Ohms, which is compatible with the current measurements.
I suppose that a simple 24V power supply may do the job to release the bakes.
Do you think it's possible?
Diglo
KSS 8.3, the sps has stopped but there's no trace of that in the logbook!
diglo
Hello everyone,
is there a way to see which instruction caused for instance an "overflow" error in the SPS interpreter?
Is this information logged somewhere?
diglo
Thinking, maybe XD
panic & jon, i said C was a global variable, I wrote in the same page because of cleanliness, but in fact was declared as GLOBAL INT in a PUBLIC DAT file.
Sent via Tapatalk app from Italy
I'm just using the the variable viewer of the SmartPad since my "C" variable is just a global integer variable.
I know that you can't directly set an $OUT variable without stopping the Advance pointer (unless you use $OUT_C).
Inviato dal mio XT1052 utilizzando Tapatalk
sorry, KSS 8.3.15
With $ADVANCE=0, robot stops briefly beteween points ad it should to, but the variable is incremented as if $ADVANCE was 3.
diglo
I've had the same error, KUKA service said to replace the motor.
Hello people!
Today I've set up a small program to demonstrate the behaviour of the $advance value but it looks like it behaves differently from what I thought it should be! EDIT: I did the teste on a KRC4 8.3.15.109
My simple program is: (i've added line numbers here for better explanation)
10 : INT C ;it's a global variable
15 : $ADVANCE=0
20 : C=0
30 : PTP $POS_ACT
40 : LIN_REL {X 50} c_dis
50 : C=1
60 : LIN_REL {X 50} c_dis
70 : C=2
80 : LIN_REL {X 50} c_dis
90 : C=3
100: LIN_REL {X 50} c_dis
110: C=4
120: LIN_REL {X 50} c_dis
130: C=5
Display More
When I run the program (in T1), the robots executes the BCO move at line 30, and C is 0.
When I press the PLAY button again for half a second, the robot moves for maybe 20mm and C equals 3, this means that the robot has evaluated the instructions up to line 90!
How is that possible, given that I have set $ADVANCE to 0 in line 15?
This happens even if i remove the C_DIS instruction...
WHY???
diglo
Do you know how to quickly release the brakes of a robot axis?
Is there a device from kuka capable of supplying temporary power to the brakes and allowing free movement of the motor?
This can help to get the robot (or people) out of troubles in some situations...
(Fanuc provides a device called Brake Release Unit which does this job)
diglo
You need to turn drives on first, and once the drives are ready, you have to give the conf_mess signal.
This is what i use to auto-ack the faults:
do_drive_on : wired to drive_on
do_conf_mess : wired to conf_mess
do_ext_start : wired to ext_start
do_droves_off : wired to always TRUE
IF not $pro_act and $EXT AND ($ALARM_STOP AND $USER_SAF) THEN
IF not $peri_rdy and not do_drive_on THEN
;turn drives on (and ack errors)
PULSE(DO_drive_on, TRUE, 0.5)
PULSE(DO_conf_mess, TRUE, 0.5)
ENDIF
IF $PERI_RDY and $stopmess and not do_conf_mess THEN
;ack errors
PULSE(DO_conf_mess, TRUE, 0.5)
ENDIF
IF NOT $STOPMESS and not do_conf_mess THEN
;start program
cwrite($cmd,STAT,MODE,"CANCEL 1")
cwrite($cmd,STAT,MODE,"RUN /R1/main()")
PULSE(DO_ext_start, TRUE, 0.5)
ENDIF
ENDIF
Display More
Hello!
I would like to trigger an action on the beginning of a linear movement, but I have to give the signal only when the robot has reached the programmed speed an is no longer accelerating.
(Obviously, I don't want to set a fixed delay.)
How to do that?
diglo
The issue happens ONLY in single step mode or in normal mode also?
diglo
I think the easiest solution for limiting the torque is:
DECL TorqLimitParam limits
INT ax
REAL range
range=20 ;percentage of maximum torque
ax=5 ;axis to be torque limited
limits.monitor = #off
limits.max_lag= 30
limits.max_vel= 250
limits.lower = -$TORQUE_AXIS_MAX[ax]*(range/100)
limits.upper = $TORQUE_AXIS_MAX[ax]*(range/100)
SET_TORQUE_LIMITS(ax, limits)
Display More
once you end the task, you need to remove the torque limitation with
diglo
Hello everyone!
You all know that each joint torque can be limited, making the robot axes easily "pushed" by external forces but this only works in the axis space.
What I'm looking for is a way to "coordinate" the torque limitations in such a way the robot generates a fixed and limited pushing/pulling force along one arbitrary cartesian direction.
Have you ever faced this problem?
diglo