# palettizing signal handling between two robots

• Hello all,

I have a problem with two robots. ARC Mate 120iD/35, further known as bag robot and one ARC Mate 100iD , the layer robot.

The task is to palletize bags in a box, whenever the counter of bags is so far that a layer counter is calced one up, the other robot should insert an intermediate layer, but also at the very beginning once under all coming bags.

Intelligence is on the robots, PLC is not controlling anything.

The Layer robot deposits his layer first, turns on his signal "ready for bag" then comes the bag (1 or 2 bags per layer, depending on type) robot, on his way to the box, he turns off the permission for the layer robot. He turns it on again, when actual layer is fully palletized. after that, everything works perfect.

My problem is to allow the one robot to enter before the process begins, and find solutions for all coming cases.

Currently I have it so that the intermediate layer robot in the initialization switches the signal for the bag robot off, so that he does not palletize first, and the bag robot switches the signal for the layer robot on, so that the layer robot can deposit at the bottom first.

The problem now is that the layer robot moves infinitely often to the first position, if for some reason the bag robot is too slow, because the signal for the layer robot is only switched off when it is on its way into the box.

I need some way to control that and can´t find a solution because, if i use a counter value, i match that condition once and never after.

Next issue - i have to solve it tomorrow :-/

Thanks for all of you who took their time to read and maybe give some input!

the bag robot sends his layer value to the layer robot after he´s done palletizing with one layer. The layer robot uses the group input to calc his target height.

R[Z height]=GI[layer counter]*R[part height]

it´s possible that the boxes are moved to the side, in the middle of a cycle and i have to meet starting conditions again (layer on the bottom) while the group input still sends the layer from the last palletized layer. It´s only actualized when the bag robot has been working...

First it has been like, no layer on the bottom. That´s why i programmed it like this. now they changed everything and i have to meet those crazy conditions

• You need to "latch" states of the box: Needs Slip Sheet and Needs Bags. These states need to be switched by events, probably by a background logic program in one robot. The state needs to be visible to both robots, but only set/reset by a particular robot.

Start with the cell empty. An empty box enters the cell. This sets the Needs Slip Sheet flag. That flag blocks the Bag robot. This state cannot be reset by the Bag robot, only by the Sheet robot. The Sheet robot will only reset that flag when it finishes laying a slip sheet.

Resetting the Needs Slip Sheet flag should also set the Needs Bags flag. The Sheet robot should be blocked from entering the box again until the NSS flag is set again.

Meanwhile, the Bag robot is blocked from entering the box until the box until the Needs Bags flag is set. The NB flag stays set until the Bag robot finishes a layer and resets the NB flag, and also sets the NSS flag.

When the box is full, both flags are reset, and neither one can be set until a new box enters the station.

It's a bit like playing catch -- the "custody" of the box is swapped from one robot to another. The NB flag can only be set by the Sheet robot, and reset by the Bag robot. And the NSS flag can only be set by the Bag robot (or by a new box entering the cell), and reset by the Sheet robot.

If both flags are ever on at the same time, that's an error state. They can both be off at the same time (Box is full, no box is present).

• how do you like this :

If Bag Robot has palletized and counts up layercount register, then pulse DO & Flag[Bag needed]= OFF

-> Cb Robot BG Logic: if signal from BH Robot=TRUE, then Flag[layer needed] =!Flag[layer needed]

If layer robot has palletized, then pulse DO & Flag[layer needed] = OFF

-> Bag robot BG Logic: if signal from layer robot=TRUE, then Flag[bag needed]=!Flag[bag needed]

When pallet is reset or counter =0, then Bag Robot DO pulse, to trigger:

-> Cb Robot BG Logic: if signal from BH Robot=TRUE, then Flag[layer needed] =!Flag[layer needed]

use the Flags bag/layer needed to enter box area or wait for that flag

• my logic is now as follows:

i reset the flags bag/sheet needed and pulse the DO"layer ready" after the robot has been in the box.

in my background logic, i ask for

IF DI"layer ready=TRUE AND !Flag THEN

Flag=!Flag

ENDIF

i will test it today thanks for the input