DoF - a Robotiq Community
Warning sign
The Dof Community was shut down in June 2023. This is a read-only archive.
If you have questions about Robotiq products please reach our support team.
David_Gouffe

Hi, 

Your challenge is probably that at the beginning of the program you check the 4 stacks. This is checked, whenever you emptied a stack or not. 

This way, your program always start by checking : Is there a part on the first stack, process all of them, then check for stack 2, then stack 3 and then stack 4. 

The IO check should be done just at the beginning of the program when selecting the stack or after a single part is picked to see if the stack is emptied.

Here is the suggested approach for it: 

Create a variable assigned to 0 at beginning in the "before start" section.
"StackNb_Var:=0 "
To select the stack, use the actual "If" statement checking the IO of each stack.
This step is inside an "IF" statement only executing if the variable "StackNb_Var:=0 "

Inside each stack selected, assign the current stack corresponding to the IO signal.
"StackNb_Var:=3" 
(Here is the example of the stack 3, do the same for 1, 2 and 4)

The movements are associated with the current stack. You can select the stack with either a "IF" statement or a "Switch Case" structure. 

After each pick is done and the robot cleared the part up, then you can check if the Stack IO is OFF. A Stack IO off is stating the stack is done. 
The "IF" statement check the Stack_IO is equal to False and inside the IF statement, you set the variable "StackNb_Var:=0 " . This way the system will select the next stack to unload. 

N.B.:  "StackNb_Var"  is the variable name, whichever the name you choose.  

Hope this helps.

Regards, 
 

David_Gouffe

Hi, 

Your challenge is probably that at the beginning of the program you check the 4 stacks. This is checked, whenever you emptied a stack or not. 

This way, your program always start by checking : Is there a part on the firs stack, process all of them, then check for stack 2, then stack 3 and then stack 4. 

The IO check should be done just at the beginning of the program when selecting the stack or after a single part is picked to see if the stack is emptied.

Here is the suggested approach for it: 

Create a variable assigned to 0 at beginning in the "before start" section.
"StackNb_Var:=0 "
To select the stack, use the actual "If" statement checking the IO of each stack.
This step is inside an "IF" statement only executing if the variable "StackNb_Var:=0 "

Inside each stack selected, assign the current stack corresponding to the IO signal.
"StackNb_Var:=3" 
(Here is the example of the stack 3, do the same for 1, 2 and 4)

The movements are associated with the current stack. You can select the stack with either a "IF" statement or a "Switch Case" structure. 

After each pick is done and the robot cleared the part up, then you can check if the Stack IO is OFF. A Stack IO off is stating the stack is done. 
The "IF" statement check the Stack_IO is equal to False and inside the IF statement, you set the variable "StackNb_Var:=0 " . This way the system will select the next stack to unload. 

N.B.:  "StackNb_Var"  is the variable name, whichever the name you choose.  

Hope this helps.

Regards, 
 

David_Gouffe

https://dof.robotiq.com/discussion/1567/multiple-destacking-operations#latest


Hi, 

Your challenge is probably that at the beginning of the program you check the 4 stacks. This is checked, whenever you emptied a stack or not. 

This way, your program always start by checking : Is there a part on the firs stack, process all of them, then check for stack 2, then stack 3 and then stack 4. 

The IO check should be done just at the beginning of the program when selecting the stack or after a single part is picked to see if the stack is emptied.

Here is the suggested approach for it: 

Create a variable assigned to 0 at beginning in the "before start" section.
"StackNb_Var:=0 "
To select the stack, use the actual "If" statement checking the IO of each stack.
This step is inside an "IF" statement only executing if the variable "StackNb_Var:=0 "

Inside each stack selected, assign the current stack corresponding to the IO signal.
"StackNb_Var:=3" 
(Here is the example of the stack 3, do the same for 1, 2 and 4)

The movements are associated with the current stack. You can select the stack with either a "IF" statement or a "Switch Case" structure. 

After each pick is done and the robot cleared the part up, then you can check if the Stack IO is OFF. A Stack IO off is stating the stack is done. 
The "IF" statement check the Stack_IO is equal to False and inside the IF statement, you set the variable "StackNb_Var:=0 " . This way the system will select the next stack to unload. 

N.B.:  "StackNb_Var"  is the variable name, whichever the name you choose.  

Hope this helps.

Regards, 

David Gouffé

Integration Coach

Coach en intégration


Robotiq is now into packaging, palletizing and sanding applications. Learn more about our new Vacuum Grippers and the Robotiq Sanding Kit.


1-888-ROBOTIQ #275 (762-6847)

1-418-380-2788 #275 (Outside US and Canada)

1-418-655-9221 (Cell)

Follow us on

facbook-iconepng linkedin-iconepng twitter-iconepng google-iconepng Youtube-iconepng

Visit us:  
 

David_Gouffe

Hi, 

Your challenge is probably that at the beginning of the program you check the 4 stacks. This is checked, whenever you emptied a stack or not. 

This way, your program always start by checking : Is there a part on the firs stack, process all of them, then check for stack 2, then stack 3 and then stack 4. 

The IO check should be done just at the beginning of the program when selecting the stack or after a single part is picked to see if the stack is emptied.

Here is the suggested approach for it: 

Create a variable assigned to 0 at beginning in the "before start" section.
"StackNb_Var:=0 "
To select the stack, use the actual "If" statement checking the IO of each stack.
This step is inside an "IF" statement only executing if the variable "StackNb_Var:=0 "

Inside each stack selected, assign the current stack corresponding to the IO signal.
"StackNb_Var:=3" 
(Here is the example of the stack 3, do the same for 1, 2 and 4)

The movements are associated with the current stack. You can select the stack with either a "IF" statement or a "Switch Case" structure. 

After each pick is done and the robot cleared the part up, then you can check if the Stack IO is OFF. A Stack IO off is stating the stack is done. 
The "IF" statement check the Stack_IO is equal to False and inside the IF statement, you set the variable "StackNb_Var:=0 " . This way the system will select the next stack to unload. 

N.B.:  "StackNb_Var"  is the variable name, whichever the name you choose.  

Hope this helps.

Regards, 
 

David_Gouffe

Hi, 

Your challenge is probably that at the beginning of the program you check the 4 stacks. This is checked, whenever you emptied a stack or not. 

This way, your program always start by checking : Is there a part on the firs stack, process all of them, then check for stack 2, then stack 3 and then stack 4. 

The IO check should be done just at the beginning of the program when selecting the stack or after a single part is picked to see if the stack is emptied.

Here is the suggested approach for it: 

Create a variable assigned to 0 at beginning in the "before start" section.
"StackNb_Var:=0 "
To select the stack, use the actual "If" statement checking the IO of each stack.
This step is inside an "IF" statement only executing if the variable "StackNb_Var:=0 "

Inside each stack selected, assign the current stack corresponding to the IO signal.
"StackNb_Var:=3" 
(Here is the example of the stack 3, do the same for 1, 2 and 4)

The movements are associated with the current stack. You can select the stack with either a "IF" statement or a "Switch Case" structure. 

After each pick is done and the robot cleared the part up, then you can check if the Stack IO is OFF. A Stack IO off is stating the stack is done. 
The "IF" statement check the Stack_IO is equal to False and inside the IF statement, you set the variable "StackNb_Var:=0 " . This way the system will select the next stack to unload. 

N.B.:  "StackNb_Var"  is the variable name, whichever the name you choose.  

Hope this helps.

Regards, 
 

David_Gouffe

https://dof.robotiq.com/discussion/1567/multiple-destacking-operations#latest


Hi, 

Your challenge is probably that at the beginning of the program you check the 4 stacks. This is checked, whenever you emptied a stack or not. 

This way, your program always start by checking : Is there a part on the firs stack, process all of them, then check for stack 2, then stack 3 and then stack 4. 

The IO check should be done just at the beginning of the program when selecting the stack or after a single part is picked to see if the stack is emptied.

Here is the suggested approach for it: 

Create a variable assigned to 0 at beginning in the "before start" section.
"StackNb_Var:=0 "
To select the stack, use the actual "If" statement checking the IO of each stack.
This step is inside an "IF" statement only executing if the variable "StackNb_Var:=0 "

Inside each stack selected, assign the current stack corresponding to the IO signal.
"StackNb_Var:=3" 
(Here is the example of the stack 3, do the same for 1, 2 and 4)

The movements are associated with the current stack. You can select the stack with either a "IF" statement or a "Switch Case" structure. 

After each pick is done and the robot cleared the part up, then you can check if the Stack IO is OFF. A Stack IO off is stating the stack is done. 
The "IF" statement check the Stack_IO is equal to False and inside the IF statement, you set the variable "StackNb_Var:=0 " . This way the system will select the next stack to unload. 

N.B.:  "StackNb_Var"  is the variable name, whichever the name you choose.  

Hope this helps.

Regards, 

David Gouffé

Integration Coach

Coach en intégration


Robotiq is now into packaging, palletizing and sanding applications. Learn more about our new Vacuum Grippers and the Robotiq Sanding Kit.


1-888-ROBOTIQ #275 (762-6847)

1-418-380-2788 #275 (Outside US and Canada)

1-418-655-9221 (Cell)

Follow us on

facbook-iconepng linkedin-iconepng twitter-iconepng google-iconepng Youtube-iconepng

Visit us: