Hi,
Is there a way to compare the the actual X position of the robot to the recorded X position in a PR?
I would like to set a DO if the the X position passes a certain point to prevent movement of other components in the cell.
Thanks.
Hi,
Is there a way to compare the the actual X position of the robot to the recorded X position in a PR?
I would like to set a DO if the the X position passes a certain point to prevent movement of other components in the cell.
Thanks.
Something like this
PR[X]=LPOS.
R[99]=PR[X],1
IF R[99} > ? JMP LBL [1]
LBL[1] DO[1] = ON
Racermike's solution will work, but if you want it work at all times, you would need the worldzone option.
Racer Mike, that is exactly what I would like to do...
I would like to do it in BG logic and always know my X position... but it doesn't like it. I get a syntax error when I try to give the program a run command.
Post your program. And indicate what line you want to check the "X" position.
I have a situation where I need to look at the "Y" value before placing a part on a pallet. If it is less than a certain value,"too close to the adjacent pallet" I need to change "R" to avoid hitting the adjacent pallet. I inserted that line of code in my pallet placement program before I place the part.
You are not allowed to do any PR manipulation in BG programs.
You are not allowed to do any PR manipulation in BG programs.
Not exactly.
Entire PRs are not supported in BG logic, but their components PR[i,j] may be manipulated.
Not exactly.
Entire PRs are not supported in BG logic, but their components PR[i,j] may be manipulated.
Ah, I was wrong. I just did some tests, and it is surprising that you are allowed to have a group assigned to a BG program. I had assumed that BG programs were required to be groupless. More surprising is that you are allowed to write to subcomponents of PRs.
Another solution if I am understanding you question right is to use one of the reference positions.
Just set an unlimited movement on all the joints you don't want to monitor. For example 0.000 +/- 180 assuming that joint has 360 of total movement.
Then set your range on the joint you are looking to monitor.
Put the DO you want triggered in the Signal Definition field.
This way you don't have to use BG logic, but the output will always be active.
Of course if this range changes, position registers and BG logic are a better solution.