Posts by Mentat
-
-
Nothing strange, more detailed view provides more details.
Users are usually show less details.
WorkVisual shows all the program text.
No bugs in this particular scenario
-
How would the robot know it clipped a plastic part and not, say, a person's brain?
If you want to do self correction after collision, you have to collide and detect on the TCP.
-
2. one can use that to trigger program stop using CWRITE
I assume you mean to use Cwrite from SUB, but woudn't that approach have timing issues? Or is it aiming not at exact line, but whereabouts?
Wouldn't (global) interrupt work better?
Also, one could configure module name and line numbers just by reading a file at program start, but how to get them into the file? Set up a hotkey to OCR from the screen? I am not aware of any CLI or API for WorkVisual.
-
well, how about that... one has to go through miles of text just to discover key details.
ten posts later and we are still getting pits and pieces of the setup.
Maybe they are reluctant, because they don't want anyone to steal their design idea
-
If I understood correctly, laser is attached to A3. Why?
-
Hi,
This is just my biased opinion, but usually members of this forum respond only when they are relatively sure about their solution to a presented problem. You won't find many replies in a form of "Yeah, me too".
What you have so far described in terms of working with WV is the extent that I use. I haven't seen anyone who figured out breakpoints, thought that would be a very helpful feature. Personally, I use a global bool with a conditional halt in lieu of a breakpoint. Then when I am done debugging- just regex them out.
Even at version 6, WorkVisual is not quite bug free and feature complete. When it comes to software, Kuka is not the leading robot manufacturer :\
-
1. Yes: $WorkSpace[WRSPNr].Mode =#Off
2. I am pretty sure workspaces still work in Teaching modes. Why are unqualified users jogging the robots though?
-
Thank you for sharing, will be useful to remember when I run into this
On a related note, this is not the first time that I see documentation for software modules being just plain wrong. I would understand forgetting edge cases or explaining why some parts of an example are necessary or being incomplete. But factually incorrect, for software that's used to control machines that can cause significant property damage or halting a production line? Am I somehow weird by thinking this?
-
You should contact KUKA for this. If that's a no-go then you will need a thermal camera (and maybe a couple precise thermometers). Or just find a specialist.
-
The advance pointer will (or will at least try to) send whatever coordinates it sees to motion planner; and once motion planner does it's job, changing the values of a point will not effect the already planned motion. Which means that at the very least controller must have point 4 coordinates before the TCP makes it to point 2.
Trapping advance pointer in a loop should work if you won't actually call any functions.
-
请按照“先阅读”中的说明进行书写。这是一个英语论坛,请翻译,因为我们不会说中文。
-
I am not sure what/why are you doing still, but have you considered a bunch of functions in a switch statement? Or a position array if all you'll ever need (which is nearly always never) is going to position.
-
Have you tried pressing on the I to enable drives? I near the Submit indicator.
-
This looks like a task that could really benefit from time blocks.
-
From the manual:
"RESUME cancels all running interrupt programs and subprograms up to the level at which the current interrupt was declared."
This means that if your work motions are inside a procedure, you can use RESUME to jump to before that procedure.
Be mindful of advance run pointer, as RESUME puts them both after the line at witch interrupt is declared. Easily solvable with a few "wait sec 0"
-
"Homeout" is for the robot to homeout from where it is at.
Double thumbs up for using the word you are defining in it's definition. But seriously, I know what homing, to go home, to home in on smth means, but never encountered "to homeout". Google isn't providing anything useful in that regard. Is this a common name for some specific procedure?
Looking at the full code it looks a lot like robot going to home position depending on the state of the cell.
From the code you posted, I don't understand how the program reset would sometimes work at all.
-
I don't know what "Homeout" does or is supposed to, but I assume you want program pointer to go to the line after "Interrupt on 4".
It should be enough to end Homeout with "Resume" and to put everything starting with
Code;FOLD PTP P15 VEL=100 % PDAT1 TOOL[1]:PPEOAT BASE[4]:I/O;%{PE}%R 8.3.48,%MKUKATPBASIS,%CMOVE,%VPTP,%P 1:PTP, 2:P15, 3:, 5:100, 7:PDAT1 $BWDSTART=FALSE PDAT_ACT=PPDAT1 FDAT_ACT=FP15 BAS(#PTP_PARAMS,100)
in a separate procedure.
-
1. Yes, depending on the state of the cell, you would call different sub programs.
2. For testing purposes, sure you can slow down the robot, though I suggest slowing CP and PTP speeds instead of program execution speed.
3. It was just a general example, as I don't know what the TCP and the robot cell in question looks like. I doubt you would need 70 homing procedures. My approach to homing is to first get away from obstacles, whether by going directly upwards or to a side and then when robot TCP is out of the danger zone, bring in the TCP close to robot, so it could turn A1 to get into/near home position.
And the homing trajectories are not necessarily hard coded or not coded with full positions.
If you have so far been only teaching points (I assume that's what you mean by TP), look into expert programing. Writing any, but the simplest homing procedures by teaching points is the wrong way to do it.
-
Depending on your software architecture and needs for any additional operations (release gripper, stop conveyor, etc.) when/before homing and possible obstructions in the cell:
1. Write different homing procedures depending on where the TCP is and what operation it's doing.
2. Write one universal procedure if the required movement is simple enough, like:
1. Rise by 100
2. Set A2 and A3 to some position
3. Turn the rest of the axes to home position.