Simio 3d

0 views
Skip to first unread message

Marthe Bernskoetter

unread,
Jul 31, 2024, 2:49:00 AM7/31/24
to onlalikalt

I've encountered a following problem with running simulation in Simio. I am in a testing phase of just the logic of my model, however during a simulation run for 5h and limitations of 4-5 orderes created I get an message saying that number of tokens exceeded 100k, when i continuee simulation it goes on until 98% where it completely stops, simio doesnt respond and the only solution is to restart the software.

Also, the arrivals table is not sorted in date order. That is not a problem for Simio, but it is a problem for your auto-increment logic on the Material Source. For example, the first order actually occurs at 6:01:46 (PO 122137) which is at line 21 in the arrivals table. However, the materials source points that created entity at row 1, so the wrong volume and wrong entity type are created.

However, before you go down that route I might suggest re-visiting your conceptual model and model approach. The approach you have started here relies on the creation of more than 800,000,000 entities over the model run . As a sanity check, the default max number of entities (which can be overwritten) is 2500. Creating that many entities (and associated tokens) will require a large amount of computing resources. Even if you verify the model is behaving the way you intend, I can pretty much guarantee you will have performance issues with the current approach.

I do not examine your mode logic but I tested the model with order volme 10 (for each row for your table) and the model worked without any error messages. But, as agraunke said your model logic should be tracked carefully. For example, I noticed (and fixed) one of the decide step is defined as conditon based but there is no condition specified. and also, I agree with agraunke that there could be some parking problems. For example incoming entities are transferred to stacker outputbuffer and then parked there? is this required and right?...

Adam, Gocken, thank you for your input. I have been trying to approach it in a different way so it doesnt create that many entities. However, I couldn't keep a track on the amount of specific goods produced. The model is not entirely finished this is why there might be some empty "decision" steps and worker behaving in a strange way.

Let me first explain you the aim. I am working on my final thesis project, where I took a real system under the study. Now I am creating the AS-IS model, which will be the base for further optimization. I want to investigate a potential of implementing cellular manufacturing system. The goal is to see if it's possible to reduce working time, setup times, inventory level and improve on-time delivery.

There are 37 workstation where each of them has a stacker machine assigned(for batching of product units into specified by batchsize property groups). Product type depends on the tool(approx. 200 different tools) used in the machine(I want to use a resource to represent a tool however I haven't implemented it yet).

Taking into consideration that I'd like to have an overview on the ProductType and its amount produced, as well as specific material utilization for goods manufacturing I have therefore decided to follow this approach. I have been trying to assign a ProductType value into the string state but that was resulting with an error. I want to run simulation for entire year based on the actual orders.

you can simply use material quantities instead of creating huge number of new new entities (avoid using create, it is not suitable for your problem. you should think each product type as if they are materials, define material element type colum in your arrival table. You can benefit from autocreate property since you have much more product type). By this way you not only satisfy the current number of entity limits of the simio but also simplify the logic of your model. Just use material, produce required number of materials then increase the number of quantity available. While separating them or batching just simply use Workstation and BOM structure. The prosed logic needs to be adapted to your problem... In summary you should think a bit different...

However my concern is regarding batching. How can i batch ''produced'' units if they dont exist as entities but as materials. You mention about workstation and BOM structure but BOM is very simple...it takes a part of material and by a single press hit a specific amount of products is created. In such a case I dont think there is a sense in creating BOM.

In the press logic I want to use steps ''consume'' and ''produce'' instead of create, but that will produce me specific(OrderVolume) amount of ProductType while consuming a MaterialType. How then can I batch these materials?

Note that this is a simple not working example. I included it only for illustration purposes. You should extend this logic. For example, Material name of BOMmaterial should be referenced to your table appropriately.

thank you. I understood the concept also from the printscreens you added. The problem is that I need to track operator movements and this batched entities are waiting to be moved from output at stacker to a container by the operator...should I use then create step and create amount of OrderVolume/BatchSize?

Then, at the end of the simulation collect related statistics to your purposes. For example, total distance the worker traveled. Note that, since the arrival and departure distances to Workstation are equal half of the total distance the worker traveled is the distance bathced materials traveled. And you can simply collect other statistics (I do not know what are they) by using somewhat the same logic.

I.e. the orders which are being processed are parked at the node. I want to unpark them and send to Sink1 as soon as produced materials corresponding to that order enters Sink2 and collect statistics.

Additionally, also while entering Sink2 I want to increse QualityAvailable state by the Volume produced, however while assigning this state simio sends me an error that ''simio referenced definition type XXX does not match executing type XYZ. Is it beacuse of the tokens or what?

Define a statevariable for modelentity. For example, modelentity.orderID. Assign it to OrderNumber from your table (i.e., modelEntity.OrderID=arrivaltable.OrderNumber) after creating the entity.

again, you can either define an individual add-on process or add some extra steps to your previously defined process for seizing worker. I prefer to add some extra steps to an existing one for convenience.

1) before seizing worker object or after seizing it (i.e., I mean the appropriate place of the new step is up to your logic) you should assign the orderID to a state variable probably a string type while the "model" object is selected at the navigation window. Let it be IDOrder and assign IDOrder=bathcedmaterials.name. I assume that the material name equals to your order name. Here you should note that, this assignment should be made at the time of the worker's coming to take "batchedmaterials" to input@sink2. batchedmaterial name (i.e., IDOrder) and orderID should be matched. any time delay can cause IDorder's value to change and wrong entity will be removed from parkingstations.allocation queue.

It's not appropriate for all situations, but the easiest way to solve this problem is to represent the component parts as Materials (an element) and define a Bill of Materials (BOM) that must be Consumed to create your new assembly. The big downside to this approach is the inability to animate the movement of the component materials. But if you can work around that limitation, this approach is MUCH easier.

However the project I am working on is about measuring and possibly minimizing the movement in the factory. That is why the Bill of materials is not helping me in this case. I have made a work around using a combiner node i found at another forum post, this works but what i really would like to do is to combine bars, grids and sheet metal in to three types of masts. I have tried to assign values based on the entity type (named it after color) and want to make the combiner combine the equal values, but I don't know how to do that or if it is the right approach.

It seems the best way to achieve to what u want is to define three storage elements (called barstorage, gridstorage, sheetstorage) just before the combiner object or combiner node. Whenever an entity is put into any of these storages check the the condition u defined (i.e., exactly 4 bars, 4 grids and 8 sheets are exist in the individiual storage) is valid. If the condition is satisfied remove appropriate number entities (exactly 4 bars, 4 grids and 8 sheets) from appropriate storage by using search and remove step and transfer them to combiner object from standard library (or even combiner node object you get from forum) to combine them all. Else wait for the condition to be met. By this way you are able to collect some extra statistics from storages (averge waiting times and average number of each materials in the storage etc...).

Thanks for the suggestion, but I dont know how to define the storage element right. I dont know how to find the condition that should be checked. Then I also dont know how to insert it before the combiner.

There are many resources that you can benefit from. I suggest you to have a look at "student resources" and "teaching resources" under "academics" title at www.simio.com. Also, I stricly recommend simbits which are small, well-documented models that illustrate a modeling concept or explain how to solve a common problem. You can find out related models by clicking SimBit button on the Support ribbon and searching for the specific term (i.e., storage). Also, I recommend Textbooks for Simio Simulation Software. You can find all of them under "teaching resources". There are many other benefical options for learning simio such as New "Learning Simio Lab Modules" and "video series" which you can reach from -academic-resources.php. Learning simio is an ongoing process and you have to update and support your knowledge of using simio by following the forum which will give you some newer insights for how to model specific problems. Welcome to the simulation world!...

93ddb68554
Reply all
Reply to author
Forward
0 new messages