question

Alex OA avatar image
0 Likes"
Alex OA asked Jason Lightfoot edited

Double pallet elevator with process flow

Hi,

I am trying to define this elevator as a double pallet elevator. I've been trying to do this with the object process flow but I couldn't make it work. The main idea is that the elevator will only go down once it has two pallets.

Thanks!

doubleelevator.fsm 1649062375329.png

FlexSim 22.0.1
elevatorpalletdouble
1649062375329.png (140.5 KiB)
doubleelevator.fsm (47.6 KiB)
5 |100000

Up to 12 attachments (including images) can be used with a maximum of 23.8 MiB each and 47.7 MiB total.

Jason Lightfoot avatar image
0 Likes"
Jason Lightfoot answered Jason Lightfoot edited

This becomes really simple if you use lists and push the items when they arrive at the exit transfer and model the elevator's behaviour as a single cycle rather than a process for each item.

1650285501596.png

Getting the elevator to travel to any transfer seems tricky - I added a user command for getting a transfer's location.

Model attached.

doubleelevator_jl2.fsm


· 4
5 |100000

Up to 12 attachments (including images) can be used with a maximum of 23.8 MiB each and 47.7 MiB total.

Helen avatar image Helen commented ·

Thank you @Jason Lightfoot, that was helpful. I managed to edit your logic and do it with three pallets. Unfortunately, I was not able to edit my model properly.

In your model, this script provides a 3D array with the x, y and z position of the ExitTransfer position. 1650479944950.png

However, when I try to replicate this in my model, I get the following error.

1650479945046.png

1650479945175.png

I’m not sure what this is for. I’m aware that you use this in the source to determine the pickup and dropoff locations (getEntryExitTransferLocation(current.pickupTransfer)). Was it to check something?

To solve this problem, I’ve set my coordinates (both in source and travel). [Again, I’m not sure where this information is used]

1650479945287.png 1650479945375.png

However, it seems that apart from this there is something else that I’m not doing correctly because it doesn’t go over this state.

1650479945505.png


Can you help me with this? I provide my model.

doubleelevator_jl_ms.fsm

Many thanks!

Myriam

0 Likes 0 ·
1650479944950.png (18.5 KiB)
1650479945375.png (20.7 KiB)
1650479945046.png (20.3 KiB)
1650479945287.png (25.8 KiB)
1650479945505.png (20.6 KiB)
1650479945175.png (32.0 KiB)
Jason Lightfoot avatar image Jason Lightfoot ♦♦ Helen commented ·

I added the usercommand to your model and made the List in the process flow point to the Global List in the toolbox: "ElevatorItems".

doubleelevator-jl2-ms.fsm

2 Likes 2 ·
Helen avatar image Helen Jason Lightfoot ♦♦ commented ·
Oh yes, I see that you created the command using modeling logic > user command. Thank you very much @Jason Lightfoot

Just one more curiosity, pallets come to the elevator in a fast move while they go out smoothly. Why is this so?

0 Likes 0 ·
Show more comments
Joerg Vogel avatar image
0 Likes"
Joerg Vogel answered Joerg Vogel commented

· 5
5 |100000

Up to 12 attachments (including images) can be used with a maximum of 23.8 MiB each and 47.7 MiB total.

Joerg Vogel avatar image Joerg Vogel commented ·
ATTENTION! This approach has nothing to do with process flow. It just delays a tasksequence task evaluation for a break tasktype to let find for a break for requirement function in a taskexecuter a suitable second item to load. To achieve such a delay I have added a delay task to any received tasksequence if the Taskexecuter is empty or in this case: there aren’t any subnodes attached to him.

A process flow logic must check, if there are two pallets available for loading. You would do it by looking for items on a conveyor or by a photo eye counting items. Then you wait for any identified item and load it onto the elevator. After this you let travel the elevator to your destination and you unload each item on him to an entry transfer by a sub flow structure.

0 Likes 0 ·
Alex OA avatar image Alex OA Joerg Vogel commented ·
Hi @Joerg Vogel,

Yes, I realised because I changed some station times and it is not working. Is there any way that I could do it with a process flow? (In order to avoid failing if there is any other change).

Thanks!

0 Likes 0 ·
Joerg Vogel avatar image Joerg Vogel Alex OA commented ·
Sure, it is. But I adjust an internal created tasksequence. If you use process flow, you can do it, too. you can insert into a tasksequence a delay.

You can replace any internal created tasksequence by a process flow created tasksequence.

0 Likes 0 ·
Show more comments