Jump to content
Simio Forum

Welcome to the Simio Forum

Welcome to the Simio Forum! Experience the full experience of the forum by becoming a Simio Insider! You must be an Insider to post on any forum!


New Software Release

Our latest release, Simio 11, is here!


  • Content Count

  • Joined

  • Last visited

Community Reputation

0 Neutral

About luizfvpereira


    Accounting, finance
  • ICQ
  1. Hello, I find the behavior of vehicles to be very inneficient (at least in my situation). I have a transfer node that requires "Ride on Transporter" and I have a Vehicle with a population of 6. If 4 entities reach the transfer node in a row each of them will request all available vehicles in the population: Entity 1: vehicle 1, 2, 3, 4, 5, 6 Entity 2: vehicle 2, 3, 4, 5, 6 Entity 3: vehicle 3, 4, 5, 6 Entity 4: vehicle 4, 5, 6 All this requests to then decide on the first one on the queue (I'm using First in Queue as Task Selection Strategy). The problem with this approach is that instead of executing 4 sets of processes (those that are associated with a rider request), Simio will have to execute 18!! (6+5+4+3). In long big runs, this excess of processes is rendering the simulation very slow. Comparison between a 2 weeks run with vehicles and without vehicles (paths): WITH: 2m31s (151s) (3x slower) WITHOUT: 51s Comparison between a 3 weeks run with vehicles and without vehicles (paths): WITH: 4m10s (250s) (3x slower) WITHOUT: 1m18s (78s) Is there any way to avoid this behavior when using vehicles??? I'm using SIMIO version 9.147.14174, 64 bit, latest .NET FRAMEWORK. Sincerely, Luís Pereira
  2. Hi farnaz, in fact, you should be checking your buffer at the beginning of the period 10-11. If all machines stop at 10, entities will stop flowing shortly after. Therefore you could check around 10:05 or somewhere around the beginning of the period. To do so, you can use a timer (Definitions>Elements>Timer) and set it to occur every 24h with an offset of 20h05m (10:05PM)). Then, have a process being triggered by that timer. In that process you would check if the input buffer was empty or not (Server.InputBuffer.Contents==0). You can do that using a Decide step. If the condition is false (there is something in the buffer) change the resource state + Capacity of the server so that it processes said entity. For it to work for another hour you could set another timer or use a paralell process with a delay of 55min. At the end of that time you would turn off the server again. Hope this helps (I haven't tested it to be sure it works)
  3. Is there a way to fill a changeover matrix from excel? If not directly, via API?
  4. What I want is a bit different but might come with implementing what you requested. For instance, if I know that the entity traveling a process is in "Server2" I want to access the column with the name "Server2": TableName.(Entity.CurrentNode.AssociatedObject.Name) Something like this, if possible
  5. Is there a way to select a table column based on its name? (instead of specifically writting its name on the search step)
  6. Can SIMIO connect to external applications and exchange information in real time, both send and receive? For instance, Simio execution depending on inputs from other application and Simio output influencing other applications? An example could be Simio connected to AGV software and the Simio vehicle whould update its position (for instance every second) based on the AGV software input. When the AGV arrives at a workstation, the entity would then be transferred to it and SIMIO would process it (either by task or processing time). Additionally, resources would be requested and SIMIO would only receive the seize and available information when an external application "said so". If not, up to which extent can Simio connect with external software/applications? Thank you so much for the attention, Luís Pereira.
  7. In short, natively there is no way to know it. I'll have to create a subclass of a conveyor for it to be feasible (program it to calculate all those lengths). Thank you anyway!
  8. Is there a way to know how much of a conveyor is currently in use? It can be in % or in actual meters. In short, it's important for a vehicle to understand whether he should transport an entity that is going to that conveyor or skip that one and transfer other entity that is going elsewhere. Thank you for the attention
  9. I apologize if this is something already discussed in the forum but I couldn't find anything on it. Is there anyway to know the algorithm behind a step? (in my case is the start tasks). How does simio handle/manage the tasks to be performed, mainly the precedencies, successors and the data structure it uses? Is there any information on this ? (or anyway to access the code of said Step?) Thank you very much
  10. I have a serial line with N servers. Within each server, there are tasks that must be fulfilled. Most of the tasks require the use of a shared population of resources. Consider the following: WIthin Server x, there are 4 tasks that can be performed at any given time (no precedencies within the cell). Each task requires a resource from the shared population. However, I only want one resource to be used at a time in this station. Is there a way to limit the number of resources that are seized by a server? (I know that if I make them sequential they will only seize one resource but in my situation it is important to rather limit the maximum number of resources in a server). Thank you so much for the attention. If something was unclear just say so and I'll try to explain better (can't give full details for professional reasons). Regards, Luís Pereira.
  11. The current implementation of consumption based on a bill of materials is interesting but somewhat limiting. I'm not an expert in SIMIO and perhaps I'm failing to find a way to do this: I create a FG from source and want to consume the respective amount of each component on its BOM. As it is, all the components will be instantly consumed when I use the consume block. However, what I want is to transfer them to a node at a given rate (and not all at once). Imagine I have a product C that requires 1 Product A, 2 Product B and 5 Product E. If I want to retrieve 1 of each (until required amount) each 30 seconds, how can this be done? I thought about a logic as follows: //Get total number of retrievals For each Material in C_BOM: Total_Required_Amount = Total_Required_Amount + required_Amount[Material] //Retrieve one of each until required amount every 30 seconds while(Total_Transfered_Amount for each Material in C_BOM: if(transfered_Amount[Material] transfer_Material_to_Node(); transfered_Amount[Material]++; Total_Transfered_Amount++; delay(30 seconds); Has anyone ever came across a similar situation where you would have to iterate over a collection (in this case a BOM)? I believe my explanation might be confused and if something is not understood, please ask. Thank you for your attention.
  12. Is there a way to trigger an event every X seconds? I can do this using an auxiliar source that triggers the event whenever an entity is generated and I place the interarrival time at the desired value. I was hoping there would be a better method to do so (if I need N events with different cycle times I can't just build N sources and sinks...
  13. I'm addressing a Multi Product Multi Routing situation. What's the best way to model a buffer without using the Server or WorkStation blocks? N machines are connected to M machines producing different products with alternative routing. Therefore, having a common buffer where entities coming from different machines could wait for the first available machine in any alternative route is very important. My question is whether this would perform better with stations or storages (or any other object in Simio). I intend to experiment on Buffer size to optimize space requirements. This would be done using experiments hence the chosen object/method needs to be suitable for that. Scheme: [n1] ___________ [m1] [n2] | | [m2] [n3] | Buffer | . . |___________| . . [M ] [N ] Thank you in advance
  • Create New...