question

Amit Kulkarni avatar image
0 Likes"
Amit Kulkarni asked Amit Kulkarni commented

Insert support board under pallet

@joshua.s

In the attached model, the intent is to insert a support board under a fraction of generated transport units. Transport units are created in the queue "TU" and a upport board is created in queue "Board". When a TU arrives at Station1, I check the label if a support board is required and that should trigger the board creation in "Board".

My idea for the board placement: the TU has to be lifted using the elevator while the support board enters the combiner and then the elevator sends the TU to combiner. The combiner should pack the support board and TU and then the whole unit is transported downstream.


If a TU does not require a support board, it simply travels downstream without the operation stated above.

I am stuck at the part where the TU is lifted and and support board is correctly sent to the combiner. How should I go around doing this?

PalletBoard_Forum.fsm

Many thanks,

Amit


FlexSim 20.1.3
combinerflexsim 20.1.3pallet support board
5 |100000

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

Matt Long avatar image
1 Like"
Matt Long answered Amit Kulkarni commented

I just had to do this on a model this week. I chose to do the whole operation on the conveyor. Here's a small video of it in action. You'll notice there's a station and decision point on top of each other (it could be two stations but it was easier to see this way). That's because there are two conveyors. One going left to right and one going right to left.

A board comes in from the right and stops at a decision point. The pallet comes in from the left and stops at the station. Once the pallet arrives, it is raised up 3" and then the board is released and stops under the pallet. The pallet then lowers 2.25" and then resumes.

Here's what the process flow looks like. I'm not able to share any of the model, but here's a step by step of what I'm doing.

The only logic in hte 3D that I have is the Station has an OnMessage trigger with two Translate Item pick options. One to lift and one to lower. I did have to copy these from the On Arrival trigger since they aren't available in On Message. And I inserted this line below the code header.

Conveyor.Item conveyorItem = conveyor.itemData[tonode(msgparam1)];

I passed the pallet flowitem into msgparam1 using tonum(token.Pallet).

The process flow is broken down into two sides and two resources (or zones could have been used as well, personal preference). On the left side is the logic for the pallet. We wait for the pallet to arrive at the first decision point, then kick off a token with a reference to the item. The token then waits for the pallet to arrive at the load station (if an item is already there the conveyor will stop the item). Once it arrives, it stops the pallet and lifts it up. This is where I send the message.

On the right side, a similar thing happens. The token is kicked off when the pallet arrives at a decision point off screen. It then stops the board at the decision point at the right side of the image.

I use a synchronize to cause the tokens to wait for which ever token hasn't arrived yet. That way if the board arrives first, it will sit and wait until there is a pallet to load. And vice versa, if the pallet arrives first it will wait for a board.

Next, the board will resume and move underneath the pallet. I stop the board once it arrives at the middle decision point.

Again, another synchronize to keep the tokens from progressing without each other.

Next I lower the pallet, and then another synchronize.

Finally, I change the shape frame of the pallet flowitem to be one that has a board at the bottom. This made things easier than trying to load another flowitem into the other, although you could definitely do this. I resume the pallet and release the area for the next pallet to enter.

At the same time, I destroy the board and release the area for the next board to enter.


palletandboard.gif (6.4 MiB)
processflow.png (53.5 KiB)
· 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.

Amit Kulkarni avatar image Amit Kulkarni commented ·

Thank you Matt! It is very similar to what I want to do.

0 Likes 0 ·
Amit Kulkarni avatar image Amit Kulkarni commented ·

Hi @matt.long, based on your step-by-step instruction, I tried to recreate the logic in your image.

Apparently, I am not passing proper parameters to msgparam1 in the line below, resulting into several errors.

Conveyor.Item conveyorItem = conveyor.itemData[tonode(msgparam1)];

There are other issues with the synchronize activity as well, but I would like to understand how to correctly send the message first and then work on fixing other issues.

Thanks for your help and time!

Regards,

Amit

SupportBoardInsertion_V1.fsm


0 Likes 0 ·
Matt Long avatar image Matt Long Amit Kulkarni commented ·

Here's your model working. You just needed to extend teh right conveyor over the left conveyor and ensure the DP was at the same location as the Station, but on the right conveyor. Also I had to fiddle with the conveyors a little bit to make sure the conveyor extending out the top was linked to the left conveyor not the right.

As for the messaging, I fixed the code in the station, and updated the Lift and Lower Pallet activities to send those messages with the correct parameters.

supportboardinsertion-v1.fsm

1 Like 1 ·
Amit Kulkarni avatar image Amit Kulkarni Matt Long commented ·

@matt.long, This is perfect! I also understood how to use messaging correctly for such scenarios. Thank you!


0 Likes 0 ·
Joshua S avatar image
1 Like"
Joshua S answered Amit Kulkarni commented

I see 3 support board being generated, are all 3 of them supposed to be combined with the TU?

I made changes in your model to the exit transfer point, you can only have 1 exit transfer at the end of a conveyor, so I changed the ports it goes to. I added the label "port" in both your assign label activities. The exit transfer now sends the items based on the label "port" on them. Once you have it figured out how many support boards should be released, it should work just fine. If you are using all 3 support boards per TU, then in the combiner change the expected amount coming from that port to 3.

palletboard-forum.fsm


· 7
5 |100000

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

Amit Kulkarni avatar image Amit Kulkarni commented ·

Hi Joshua,

Thanks for the quick reply. There will be only one support board per TU, and I am still stuck at that part of the model. I am not sure whether I should have triggers using openport and closeport on the queue "Board" or let the process flow handle it. Attached is the model with my latest attempt.

PalletBoard_Forum V2.fsm

Regards,

Amit


0 Likes 0 ·
Joshua S avatar image Joshua S Amit Kulkarni commented ·

Your model is throwing errors in several places before it even reaches the elevator. Your process flow is also out of sync with your model, you have a delay of 10 seconds and then applying labels, but you have checks in the 3D waiting on those label assignments.

When using wait for events, you don't need to have delays before them, the token will sit at that activity till that event fires. You also have wait for events that should be listening to the label pointing to the pallet, right now it's trying to listen to a numeric value which is why the tokens aren't continuing.

0 Likes 0 ·
Amit Kulkarni avatar image Amit Kulkarni Joshua S commented ·

Thanks for the input, it was really helpful. I resolved the errors by removing the wait for event activity and removing any delays. Now the pallets that do not need support board behave correctly, however the pallet that needs one gets stuck at the exit transfer of the conveyor with support board behind it. How do I release the board first to the combiner?

PalletSupportBoard_forum_V3.fsm

0 Likes 0 ·
Show more comments
Amit Kulkarni avatar image Amit Kulkarni commented ·

@matt.long

Please let me know if I should be posting this as a separate question. I implemented the logic in a separate model that I had posted earlier, where the pallet and support board travel on the same conveyor as opposed to tow separate conveyors.

I am trying to wrap my head around the wait for event activity on the board side. The pallet arrives at the station, gets lifted and waits for the board. The wait for event activity then listens to OnArrival trigger on the decision point and should match the label on the incoming item, "Board".

The token gets stuck at this activity and the second Synchronize activity then waits for this token to get released.

I understand that in your model, the wait for event activity listens to the decision point which is on a separate conveyor than the station. Am I referring to the correct token the enters the wait for event activity on the board side?

PSBv4.fsm

Regards,

Amit

0 Likes 0 ·
wait4event.png (51.3 KiB)
1596225997161.png (310.3 KiB)
psbv4.fsm (58.6 KiB)
Matt Long avatar image Matt Long Amit Kulkarni commented ·

Yes you should post this as a separate question.

0 Likes 0 ·
Amit Kulkarni avatar image Amit Kulkarni Matt Long commented ·

Thanks, I posted it as a separate question.

0 Likes 0 ·