Jump to content

Changing Sequence table over time


Recommended Posts

Hi everyone!


In the project I'm developing I need something similar to what was done on the Simbit "EntityFollowsSequence".


The difference is that I need to be able to change the destinations (update the contents of the sequence table) over time (the number of rows of the table can be fixed, although it would be ideal if they could be dynamically created).


Could someone please explain how it would be possible to do this? My edition is NOT Enterprise.


Thanks.

Link to comment
Share on other sites

  • 2 weeks later...

1) You don't have to consistently move BySequence. You can take detours off the sequence. For example you may normally travel A-B-C-D but if you fail at B you might instead move (off sequence) to E.


2) You can use SetRow to change your sequence or the sequence step the entity is executing.


3) {Advanced concept alert}Unless you are using Enterprise Edition, each cell in a table is a property (e.g. Row 5, Column 3 is a property), but the contents of a cell can be defined as a state. Since its a property you cannot change the definition of a cell during runtime, but if that cell definition is referring to a state, you can change the value of that state.


So you can create a model state of type NodeReferenceProperty called MyDest. Then in the destination column of the sequence table manually type in MyDest. Each time you execute that sequence step it will evaluate the current value of the state MyDest and send the entity to that location.

  • Thanks 1
Link to comment
Share on other sites

  • 8 years later...

Hi David,

I am trying to get your option 3 to work in my model, as the solutions sounds brilliant. I created an Add-On Process that probabilistically assigns destinations to the Entity and by assigning the destination node to the Entity's State Variable MyDest.

image.thumb.png.35f08353c2b8d3e2781bebdd46551e86.png

In the Routing Logic, I've set the Initial Sequence to the sequence table called Routes that holds all possible routes. 

image.png.d0ade95e5a23263254557bc56220c160.png

However, the entities now only follow the first sequence Routes (Input@LoadingDock9, Input@Sink_HTB), whereas Entities with the destination Input@Sink_RTM should follow the sequence Input@LoadingDock10, Input@Sink_RTM

How can I let the Entity follow a specific sequence from my Sequence Table Routes?

Link to comment
Share on other sites

I have attached a simple model using model states to illustrate. I think it should work in a similar fashion using entity states.

First, I define the states:

image.png.16da298484366d0bbca434e3618417da.png

Then use those states as Sequence destinations:

image.png.e4e137ce93d7232ea19a7e8274d02b78.png

Until you provide each of those states a value, the Sequence will make no sense and the entity won't know where to go. So on the Source I use an Assign to initialize all the values. This will direct the entity sequentially through Servers 1-4, and then to the Sink:

image.thumb.png.08be5327f16a23370eba0e1a06048368.png

Finally, just to illustrate the technique, on the output node of Server3, I interrupt the normal sequence by Assigning it to instead go to Server5 as its 4th step:

image.thumb.png.ff0199509a38afbfddb7d62b23b43022.png

If you convert these states to Entity states instead (I was just lazy), I think it should work the same but allow you to selectively override any Sequence Step at any time.

 

 

UsingStatesInSequences.spfx

Edited by dsturrock
Added the model
  • Thanks 1
Link to comment
Share on other sites

Thank you Dave! Inspired by your approach, I defined two Node Reference State Variables for the Entity: EndDestination and NextNode. In the model Processes, I first determine the Entity State Variable EndDestination based on a DataTable with probabilities per destination node.

image.png.c86654a29c321e11148627762d819952.png

Then, at routing decision points, I have created processes that evaluate the EndDestination node and set the next node for the unity based on that.

image.png.18c5d53199daea94fe9886fc4dd3ff68.png

image.png.09a51ccd6141e240f3bfbd1f946996d6.png

 

Although it requires a bit of 'hard modeling', it works like a charm!

Thanks

Edited by Toon
Link to comment
Share on other sites

  • 4 months later...

I'm trying to do something similar to do this where an order has 4 different routes or paths it can go (My model currently doesn't have paths). I created 3 separate sequence tables and created a process logic depending on if a certain workstation is already processing an order/entity, to go through this sequence. For some reason, whenever it gets to the "set row" step, there is a table reference error mentioning "no entries found" if though in the process step, I specify which row to start the new sequence. What is the reason behind this error?

Link to comment
Share on other sites

Ok I can do a trace and see what I find. Also, I do have different entity/job types getting processed. In my routing tables, I do have the entities specified in the table. I'm trying to use the "ChooseAlternateSequence" simbit as a reference. Is it possible to do this if you have more than one entity type?

Routing Table Snippet.PNG

Link to comment
Share on other sites

  • 2 weeks later...

I used the "DashboardForScheduling" simbit as an example for this case. For the order that is using "FinishedGoodA" material, I want to change the sequence after the welding process is complete if both shape stations are not available. So, I created an alternative sequence table and referenced in the process logic I created. Whenever this happens, I get same type of error message. Do you think this is happening because the normal routing table is referenced at the source object?

Alternative Route.PNG

 

 

 

Error Message Snippet.PNG

Process Logic Step 2.PNG

Process Logic Step 1.PNG

Edited by Rebecca Obasi
Wrong error message snippet. Process Logic snippets needed to be resized.
Link to comment
Share on other sites

  • 1 month later...
  • 5 weeks later...
×
×
  • Create New...