The users choice could set a single register value as an integer, then you could use that to indirectly address PRs that have already been taught.
Nope. this is a pick an place program with vision. Fanuc with cognex camera
The users choice could set a single register value as an integer, then you could use that to indirectly address PRs that have already been taught.
Nope. this is a pick an place program with vision. Fanuc with cognex camera
Why not just use an offset in the TP program? I don't see the value of doing this in Karel.
I have an offset in the tp. But the points are coming from karel based on users choice in the custom pendant screen. That is how my program is built. Do you have a solution for what I asked?
I am connecting two points using the connectPoints routing , but when I try to move to the point in TP the robot gets a system error. I understood it is because some of the data in the point is null.
How do I check if only part of the point is NULL? I made a CHKNULL Routine that works but would like to make something more robust. I added both routines on the bottom.
ROUTINE CHKNULL
VAR
pointNULL : BOOLEAN
tempstr: STRING[20]
BEGIN
pointNULL = TRUE
CNV_REAL_STR(firstPoint.x, 2,0,tempstr)
IF tempstr = ' *' THEN
pointNULL = FALSE
ENDIF
CNV_REAL_STR(firstPoint.y, 2,0,tempstr)
IF tempstr = ' *' THEN
pointNULL = FALSE
ENDIF
CNV_REAL_STR(firstPoint.z, 2,0,tempstr)
IF tempstr = ' *' THEN
pointNULL = FALSE
ENDIF
CNV_REAL_STR(firstPoint.w, 2,0,tempstr)
IF tempstr = ' *' THEN
pointNULL = FALSE
ENDIF
CNV_REAL_STR(firstPoint.p, 2,0,tempstr)
IF tempstr = ' *' THEN
pointNULL = FALSE
ENDIF
CNV_REAL_STR(firstPoint.r, 2,0,tempstr)
IF tempstr = ' *' THEN
pointNULL = FALSE
ENDIF
RETURN(pointNULL)
END CHKNULL
Display More
ROUTINE CONNECTPOINTS
VAR
resultPoint : XYZWPR
BEGIN
CNV_STR_CONF('fut', conf, 1)
resultPoint = POS(0, 0, 0, 0, 0, 0, conf)
resultPoint.x = firstPoint.x + secondPoint.x
resultPoint.y = firstPoint.y + secondPoint.y
resultPoint.z = firstPoint.z + secondPoint.z
resultPoint.w = firstPoint.w + secondPoint.w
resultPoint.p = firstPoint.p + secondPoint.p
resultPoint.r = firstPoint.r + secondPoint.r
RETURN(resultPoint)
END CONNECTPOINTS
Display More
Anybody found a good way to parse XML?
I am having a terrible time with it
me too
Bump...
Karel variable max size is 64K
Is there a way to make this limit bigger?
Hi all,
For my program I want to have a station point for every station and then offsets of that point. I made a screen where the users select a station and set it’s position, then they select a station and an offset position, then move the robot with the tp. Then they click a button which subtracts the offset from the station point and saves the point in a karel position in a struct object.
Then in the program I connect the station point with the offset and move to it. This makes it so that if the station moves I only have to set one station point and all the offsets will be in place already.
Problem is that my offset point is not always in the same configuration. That causes the robot to move to a wrong position when I connect them back...
How should I handle this?
Check out "RECORD" for your data.Sent from my S41 using Tapatalk
I cannot find anything about RECORD.
can you give an example?
Hey, I am trying to figure out if RAPID is object oriented.
I cannot figure out how to create something like a class and have instances of it.
Any help will be appreciated. Thanks!
Hey,
I am using motocom32 to write points to the NX100. I can write a position easily but do not understand how to write pulses to station axis.
Any help will be appreciated.
Thanks
Actually it works like this I had something else that gave errors
I am trying to figure out how to use User- Defined structure.
can someone give a precise example of use?
I am trying:
PROGRAM testUserDef
CONST
TYPE
PART = STRUCTURE
-- The current side of the part
CurrentSide: INTEGER
-- The current stage for the part
CurrentStage: INTEGER
ENDSTRUCTURE
VAR
Part1 : PART
BEGIN
Part1.CurrentSide = 1
Part1.CurrentStage = 2
WRITE TPDISPLAY(Part1.CurrentSide , CR)
END testUserDef
This is not working giving errors at runtime
So, here's my situation: I've been tasked with doing a feasibility study for a customer. The customer wants to purchase an R30-iB+ and integrate it into their existing (robot-free) PC-based automation. The requirement is for the operator to be able to work with the entire system, including the robot, without ever touching the teach pendant. So, PCDK seems like the obvious solution.
From what I understand PCDK is only for reading and writing to registers. You will still need wither a TP app or karel app to run the robot
Recently I wanted to purchase PCDK but I was bored waiting a quotation from Fanuc that has never come.
I passed a couple of hours and found that no need of PCDK to communicate from a .NET app.
But I am getting an error that I don't have a liscence.. How did you make it work without PCDK?
Hey,
Does anyone have experience with how to connect to a robot and communicate with it from c#?
I am getting an error when trying to connect:
System.Runtime.InteropServices.COMException: 'The Robot Server run-time license is not valid.'
It worked!
Just had to delete the program and re upload it.
Thanks!
As soon as I turned the controller on and off the karel position was lost
Hi,
I want to save Karel variables to memory.
The reasons for this are:
1. I want the operators to be able to set points in the program and I want the points to stay even after power loss
2. I want to save the state of the program in power loss and be able to continue from where I left off
I saw in the reference manual that there are two commands that might be useful for this:
%CMOSVARS
%CMOS2SHADOW
Can someone please explain with an example how this works, if this is possible