Possibility of mobile pallet racks

Hello,

do you think it is possible to simulate something in Visual Components with the standard warehouse component?
Maybe in connection with the Translational Axis?
The only important thing is the movement of the individual shelves.

Maybe you have some tips.

Paletten-Verschieberegale: Tragstark & flexibel für Ihre Paletten- und Langgutlagerung | SSI SCHÄFER - YouTube

Thank you

1 Like

It seems to work quite good with the Translational Axis!

I did this without using any additional Python script, just PM and several Transational Axis…
Layout_WarehouseSystem_2.vcmx (857.2 KB)

4 Likes

Wow, exactly as I imagined it.
But I don’t think I would have come to this conclusion :smiley:
How does the warehouse know that 3, 5 or 6 items need to be moved at once to clear the exact route?
Thank you so much

In the Feeder, I already choose in which stack the product is going to be transported, by assigning a number to the product as a Product Property (there is a Product Property Filter in the Stack’s processes). I then sent this Stack number as a signal.
On the other side, I have a process for each Translational Axis waiting for this signal. Instead of waiting for a specific value (“Condition”), they are storing the signal’s value and if it’s smaller than their stack number, they move. (That part could probably be quite easily integrated in a Python script to have fewer processes, but that was a quick try.)

1 Like

@Tilma

Hello Tilma,

I have customized your layout a bit, but it still doesn’t work perfectly.

I always wanted to move 2 shelves together, i.e. twice, which works so far, but now a lot is stored in the air or does not move 100% cleanly.

Can you maybe take a look at it?

Thank you very much

Layout_WarehouseSystem_2.vcmx (1.8 MB)

Hello,

can you please take a short look on it @Tilma :slight_smile:

Many thanks

The problem is that the Buffer statement is active from the start of the simulation, and once it’s active, it stays active until you stop the simulation. It means that when you press on Start, it will immediately start requesting products with the ResourceLocation already defined, and it’s not programmed so that it changes afterwards.
On one side, it happens that the ResourceLocation is already at the correct position, so that’s not a problem, on the other side, the position where the resource should be doesn’t match the ResourceLocation when you start the simulation.

Fortunately, there is an easy way to solve it without having to change the whole programm of this statement/component. And as I’m in a good mood, I’m going to share it! :wink:

→ As explained, the problem comes from the ProcessBuffer statement starting to request products from the start of the simulation. So we just want to wait until the rack is at the correct position to begin the ProcessBuffer statement.
For that you can either use a PropertyCondition statement, and wait for its TransationalAxis to be at the correct position (be aware that it awaits a Real value → 2500 won’t work, but 2500.0 will)

Or you can just use a WaitSignal statement

That’s just needed when the ResourceLocation isn’t correct at the begining, so in my example, for the racks 2, 4, 6 and 8.
Note that you can also attach these racks to the adjacent rack. That way you need less TranslationalAxis and less processes, as they will move together anyway.

2 Likes

Hello Tilma,

thank you very much for the detailed answer, I now understand where the problem is.
However, I have the feeling that the start position is not reset for resource location on the 2nd run.

I have now added the property condiiton to all shelves 2 - 4 - 6 - 8 - 10, which are on the left side and therefore have a wrong start position, it looks better now, but it still doesn’t work perfectly.

I think the position would have to be updated every time, or have I done something else wrong.

Thank you very much
Layout_WarehouseSystem_2.vcmx (1.9 MB)

It seems that the property “CurrentDistance” is reset when the simulation starts and not when the simulation is reset. That’s why it’s not always working. It would be possible to modify the script of this component to make it reset on the simulation reset, or to find another property to use.

Otherwise you can use the WaitSignal method. I forgot to take into account the time needed for the racks to move, so you might want to add a WaitSignal (for example when the TransationalAxis finished moving) or a Delay:

MobileWarehouse

1 Like

Hello Tilma,

thank you very much, but it still doesn’t work 100% I think this has to do with the ProcessBuffer stopping and the WaitSignals not being retriggered.

Here is a screenshot.

Can you maybe share your file, then I can compare where the error could be.
I have done everything as described, including attaching the respective double racks to the Axis.


Layout_WarehouseSystem_2.vcmx (2.0 MB)

Thank you very much

Just delete your processes 1, 3, 5, 7 and 9, it should work.

Otherwise you get opposing signals for some of the racks

1 Like

Ahhh thank you very much.

Exactly that was the problem now everything works perfectly and I can integrate it into my layout with adjustments.

Makes sense especially since we now have double shelves we only need one moving process :smiley: I should have thought of that myself

A thousand thanks