Description
Palletizing is one of the most commonly used functions of robot DO810. Unlike most other robots, ABB does not have a palletizing package, but it is also very simple to implement, and can even implement complex palletizing situations. Take simple stacking as an example. PBase is the benchmark teaching point, partColumns is the number of columns, partWidth is the width of columns, PartHeight is the height of single-layer stacking, and numCounter is the number of existing workpieces, returning to the position where the robtarget robot should place or grab them.
FUNC robtarget pStack(robtarget pBase,num partColumns,num partWidth,num PartHeight,num numCounter)
VAR num Columns;
VAR num Rows;
Columns:=( numCounter -1) MOD partColumns;
Rows:=( numCounter -1-Columns)/partColumns;
RETURN Offs(pBase,0,Columns*(PartWidth),Rows*PartHeight);
ENDFUNC
How to realize the robot DO810 can automatically return to the origin on any path
In most projects, the robot DO810 returns to the original point directly and automatically, which may lead to a collision, and can only be achieved by adding transition points. Sometimes, the transition points can be set as the current position of the robot in the specified coordinate system to offset the specified displacement in the specified direction. If more strict safety assurance is required, the robot can be judged in which direction it needs to offset according to the position and rotation direction, which will not be studied here.
FUNC robtarget getRobT(switch Rel,num x,num y,num z,inout tooldata tool,wobjdata wobj)
VAR robtarget pCurrent;
pCurrent:=crobT(tool:=toolwobj:=wobj);
IF Present(Rel) THEN
IF Present(x) THEN
pCurrent.trans.x:=pCurrent.trans.x+x;
ENDIF
IF Present(y) THEN
pCurrent.trans.y:=pCurrent.trans.y+y;
ENDIF
IF Present(z) THEN
pCurrent.trans.z:=pCurrent.trans.z+z;
ENDIF
ELSE
IF Present(x) THEN
pCurrent.trans.x:=x;
ENDIF
IF Present(y) THEN
pCurrent.trans.y:=y;
ENDIF
IF Present(z) THEN
pCurrent.trans.z:=z;
ENDIF
ENDIF
RETURN pCurrent;
tENDFUNC
Where, incremental offset is achieved with switch type parameter Rel, absolute offset is achieved without Rel, and the specified direction offset can also be achieved according to the optional parameters x, y, z to return the robtarget target position (transition point).
The following is an example of the use of instructions. The calling form is somewhat familiar with the built-in Offs and other instructions of RAPID:
movel getRobPos(rel,y:=100,tool0,wobj0),v100,z0,tool0;
movel getRobPos(z:=1000,tool0,wobj0),v100,z0,tool0;
p1:= getRobPos(y:=200,tool0,wobj0),
How to determine whether the robot is near the designated position:
This function is similar to the safety zone function of robots. Calling this function in real-time tasks can achieve the same effect as the safety zone. If more complex spatial judgment can be achieved by combining the crobT instruction, we will not go into it here.
In the example, pCheck is the specified position, num1 is the threshold value of the area to be judged as conforming, and the bool type decision result is returned.
details: if you need an urgent delivery order, please feel free to contact us, and we will do our best to meet your needs.
Price problem: if you find that other suppliers offer cheaper prices for the same product, we are also willing to provide you with reference prices and give you further discounts.