Error in the Opportunistic Combiner Model

Error in the Opportunistic Combiner Model

myriam_srdg
Not applicable
74 Views
10 Replies
Message 1 of 11

Error in the Opportunistic Combiner Model

myriam_srdg
Not applicable

[ FlexSim 23.2.1 ]

Dear all,

I'm working in the example model Example Model: Opportunistic Parts Combiner Process (no ports).

I've created the Bill of Materials for the different products and also the additional table that determines the different materials and the Quantities that each of the product needs.

1705337478021.png

However, I do not achieve to get the partsTable in the process flow. When I start simulating I see that the partsTable is NULL. I guess that I need to say that it is a pointer somehow, but I don't find the place.


1705337593436.png


Moreover, it seems that I have an issue with moving the object. I get an error saying that the destination is invalid. But I assigned the item label in the previous step so I'm not sure what I'm doing wrong.

Thank you,

Helen


opportunisticcombiner_Helen.fsm

0 Likes
Accepted solutions (1)
75 Views
10 Replies
Replies (10)
Message 2 of 11

jason_lightfootVL7B4
Autodesk
Autodesk
Accepted solution

Your query is :

SELECT Part,Quantity FROM BOM_A4_2 WHERE Product=$1.product  

but your table is :

1705339838368.png

Which doesn't have a Product column.

0 Likes
Message 3 of 11

myriam_srdg
Not applicable

Solved! Thank you very much. I was trying to add the “As table” label as we do it in a fixed resource and I was just that I didn’t assign the header.

Now, I’m trying to understand the following error: Error: Invalid triggering event, event rank 1, at wait for event activity "Wait for Event" in process flow "Queue". I’ve checked this post in the forum and I see that a possible error is that I’m writing the trigger manually. I ensured that I use the pointer so there must be something else that I’m missing. If I understood correctly the trigger that I choose must be “On push” because the object that I’m performing the activity from is the list, so I push from the list. And as far from the possible event rank, there is only one possible rank (Breathe).

What am I missing?

Thank you,

Helen

0 Likes
Message 4 of 11

moehlmann_fe
Explorer
Explorer

The "Parts" list activity is set to be "Local" which is at odds with the fact that the list you refer to is a global list. Set it to be "Global" to get rid of the error.

You can use the sampling tool here as well or use the drop down menu to reference the global list from the toolbox. This will automatically set and grey out the "Type" option.

capture1.png

The "event rank" in the error message refers to the rank of the event inside the "Wait for Event" activity, since you can wait for more than one event in a single activity (the token will be released if any of the events fire).

0 Likes
Message 5 of 11

myriam_srdg
Not applicable

OK. Understood, so in this case it is better to drag out from the menu than to use the dropper in order to ensure the correct linkage. Now I have issues with pull all the parts (sorry to insist but I'm trying to understand the model fully). If I simulate 137 seconds, I see that the I'm producing TR41 which is composed by 3E+2B. However, as seen in the screenshot below, it only picked 2 B type parts (allItems[1] and allItems[2]). I'm not sure what I'm doing wrong since in the loop in checking first E type parts and then B. Last, I'm assuming that the reason why I'm not able to release the item from the Combiner to the conveyor is that I don't have all the parts.


1705415987572.png


Can you help me with this?

By the way, is there any way to stop the process flow as we do with the stop(); command when we use 3D models?

Thank you in advance,

Helen

opportunisticcombiner_Helen.fsm

0 Likes
Message 6 of 11

moehlmann_fe
Explorer
Explorer

In the Pull from List activity that only checks if there are items available, you don't want to assign the pulled items to any label.

1705417453890.png

Later, when you 'commit' the parts, they should be assign to the front of the label. Currently, you pull one type which gets assigned to the label. Then the second type gets pulled and assigned to the same label, overwriting the previous values.
"Insert at Front of" adds to the array label instead of overwriting it.

1705417473989.png


You can "preempt" tokens. Meaning: Store their current state, move them to some other (inert) activity and later restoring the state they were in previously. For more information see the link below.

https://docs.flexsim.com/en/23.2/ModelLogic/AdditionalConcepts/Preemption/Preemption.html

0 Likes
Message 7 of 11

myriam_srdg
Not applicable

Thank you very much,

With the code highlighted there in the image I assume that what we are trying to do is to somehow pack allItems into items so that we can move them together and use them as a batch. Am I correct?

1705498827014.png

I didn't achieve to do it, I got this error: time: 139.988058 exception: Exception caught in start() of activity "Move Object" in process flow "Queue". Continuing throw... I guess that this is related with the following code. In the original code of the example instead of destination it asked for a port (not sure if this is related to using a different version).

1705499062928.png


Nevertheless, as what I want is a join combiner, I checked this post to try to destroy the object. In this case I get the following error: Invalid object reference at Destroy Object activity "Destroy Object" in process flow "Queue"

It seems that the object that I'm trying to destroy does not exist. I'm not sure why this happens if I'm using the same reference as to move the objects.

Thank you,

Helen


opportunisticcombiner_Helen_v2.fsm

0 Likes
Message 8 of 11

jason_lightfootVL7B4
Autodesk
Autodesk

Your first pull from list is set to assign to AllItems whereas it should not be assigning to any label - only the second pull from list should do this. Please refer to the example model.

Why are you moving them to the queue (and by extension the conveyor) if you want to destroy them?

0 Likes
Message 9 of 11

myriam_srdg
Not applicable

I don't want to distroy all the items, I want to destroy all but one (which will be final product after the assembly). The reason why I use destroy because in this example it was done that way.

0 Likes
Message 10 of 11

jason_lightfootVL7B4
Autodesk
Autodesk

Okay then pop one to move off the array before you destroy them.

0 Likes
Message 11 of 11

myriam_srdg
Not applicable

Solved. Thank you. I leave the final model as well in case that it's helpful for someone.

opportunisticcombiner_Helen_v4.fsm

0 Likes