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!


  • Search By Tags

    Type tags separated by commas.
  • Search By Author

Content Type


  • Simio Public Forums
    • Welcome and How To Become a Simio Insider
    • Discussions
    • Simio News and Announcements
    • Simio Product Details
    • Simio-Related Positions Desired or Positions Available
  • Forums for Simio Insiders Only (See Public Forums Welcome topic to sign up)
    • SI Help Getting Started
    • SI General Discussions
    • SI Downloads
    • SI Shared Items
    • SI New Feature and Enhancements Submission and Voting
    • SI Ideas & Suggestions
    • SI Bugs and Issues
    • SI Performance Tips
    • SI Challenge Applications
    • SI Non-US Cultures
    • SI User Interface
    • SI Material Handling
    • SI Student Competition
    • SI Educational
    • SI Objects
    • SI Animation and Visualization
    • SI Reporting and Analysis
    • SI Agent Based Modeling
    • SI Scheduling
    • SI Emulation
    • SI Optimization
    • SI API


  • Files
    • Academic Information
    • Product Information
    • Case Studies

Find results in...

Find results that contain...

Date Created

  • Start


Last Updated

  • Start


Filter by number of...


  • Start



About Me












Found 1,746 results

  1. A single track demo model of train operation from pit to port. You can define number of wagons, locomotives, the position of locos, the sequence of the fleet, etc. Contact me if you have any questions. PitPortDemoModel.spfx
  2. Let's see if I can elaborate... The following outlines the relevant characters in simio file "table_selection_by_name.spfx." Model->Definitions: Properties: OptionId (Entity Property, default=null) _SelectedTable (Table Property, default=tableOption1) States: RowId (integer, default=1) maxEntities (integer, default=2) ModelEntity->Definitions: States: _id (Integer, default=0) row_num (integer, default=0) temp (integer, default=0) Model->Facility: ModelEntity Types: Option1, Option2 Source1, Server1, Sink1 Source1->Entity Arrival Logic: Entity Type = OptionId (Reference Property) InterarrivalTime = 1 second Source1->Stopping Conditions->Maximum Arrivals = maxEntities Source1->Add-On Process Triggers->Created Entity = Source1_CreatedEntity Sink1->Add-On Process Triggers->Entered=Input_Sink1_Entered Model->Facility->Controls->General: OptionId = Option1 _SelectedTable = tableOption1 Model->Processes: Input@Sink1 Add-On Processes Input_Sink1_Entered: [Begin-> Tally(temp = ModelEntity.temp) End] Source1 Add-on Processes: Source1_CreatedEntity: ************************* [Begin->Decide1(IsOption1 = True)-> Assign(maxEntities = tableOption1.AvailableRowCount)-> SetRow(tableOption1, RowId)-> Assign(ModelEntity._id = tableOption1.id, ModelEntity.row_num = tableOption1.row_num, ModelEntity.temp = tableOption1.temp)-> Assign(RowId = RowId + 1)->End Decide1(IsOption1 = False)-> Decide2(IsOption2 = True)-> Assign(maxEntities = tableOption2.AvailableRowCount)-> SetRow(tableOption2, RowId)-> Assign(ModelEntity._id = tableOption2.id, ModelEntity.row_num = tableOption2.row_num, ModelEntity.temp = tableOption2.temp)-> Assign(RowId = RowId + 1)->End Decide2(IsOption2 = False)-> End] ************************* It is here that I could like to simply the logic using something like _SelectedTable instead of tableOption1 and tableOption2. I would like to know how to replace Source1_CreatedEntity's above step definitions with something like: [Begin-> Assign(maxEntities = _SelectedTable.AvailableRowCount)-> SetRow(_SelectedTable, RowId) Assign(ModelEntity._id = _SelectedTable.id, ModelEntity.row_num = _SelectedTable.row_num, ModelEntity.temp = _SelectedTable.temp)-> Assign(RowId = RowId + 1)-> End] But this replacement does not work. The following works, but I'm searching for a way to do this without replacing the column name with an indexed value: [Begin-> Assign(maxEntities = _SelectedTable.AvailableRowCount)-> Assign(ModelEntity._id = _SelectedTable.id[RowId, 1], ModelEntity.row_num = _SelectedTable[RowId, 2], ModelEntity.temp = _SelectedTable[RowId, 3] )-> Assign(RowId = RowId + 1)-> End]
  3. How do I access a table column by name using a table property defined for the model? In my model, I have multiple data tables each with the same named columns defined for each. Each table has a different number of rows. For a run or a set of replications, I want to select a table to use. I have defined a model-level table property named _SelectedTable to support this. During simulation runs, I want to access this selected table's data by row and column name. Specifically, I want to use this data to update model entity state variables. I also want to stop creating entities when all of the rows of the table have been accessed. I've tried two partial solutions to this problem (attached), but neither are ideal. 1. Create a large set of decide add-on processes to choose the decide the correct table and explicitly reference it by its name. This requires a lot of redundant steps and maintenance if tables are added or removed. The attached example contains just two tables. Controls OptionId and _SelectedTable must be set to either (Option1 and tableOption1) or (Option2 and tableOption2). The first control selects the Entity Type and the second selects the Table. 2. Using the column index number instead of the column name, I found I can use the table property to access the selected table. This method is prone to error if the table schema changes. It is also unclear which table properties, such as "AvailableRowCount" are accessible via this approach. The attached example contains two tables just as the previous. The control _SelectedTable chooses which table from which data is acccessed. In practice, the data tables will be substantially larger than the ones included in the attachments. Looking forward to constructive guidance, Ryan table_selection_by_name.spfx table_selection_by_column_number.spfx
  4. Hi, I've used the Secondary Ressources in my model to seize a Worker on a Server. The OffShift rule I selected is Suspend Processing. If the Worker goes Offshift while he's moving to its next reservation, Simio bugs and the message I get is: Unable to get value of property 'Suspend.SuspendActions.SuspendActionsTokenMatchCondition'. Referenced definition type 'Entity' does not match executing type 'Token' Is there any way I can fix this? Thank you, Maude
  5. ... I have made this demonstration (model attached) that I would like to: - Stop creating entities (source1 and 2) due to failure of Server1 - Start creating entities (source1 and 2) due to fixed of Server1 - Continue this cycle if more failure should occur from server1. - Thomas Simple model for waiting position.spfx
  6. Hello, I am interested in doing a simulation model with a colleague. Because of this we want to reduce the workload by dividing the tasks to be done. Is it possible or is there any way to join different files (models) into a final one? Or copy objects from one model to another? Thanks in advance.
  7. Hello Forum I'm trying to simulate a Painitng Plant, but ran into some trouble regading the Source Generator (WoodParts). The Source Generator is supposed to stop generating entities, when the Combiner (HooksOperation) is out of function. When the HooksOperation is "repaired" and up running again is the Source Generator suppose to start up again. How do I fix this? Picture and model is attacthed. Thanks B.R. Thomas MalerAnlag.spfx
  8. Hey Forum I have struggled a bit with creating a model that can handle batched parts not at the time. At the company i'm currently working in are they putting units on a trolleys and transports them it from workstation to workstation. But they can only handle one batch at the time, and when they are finish with the batch (eg. 10 units) they send it further, and begin with the next batch in line. This is what i need help to program in simio. I have created a simple model for this experiment with 2 sources, 1 combiner, 1 separator, 1 server and 1 sink. I then would like the separator to wait unbatching, before the server have finished the first arrived batch, and not just send it immediatley. - Thomas Model01.spfx
  9. Hi atuba, Thank you for your friendly reply! I'm using Matlab 2019a and Simio12 in Windows10. I did try to use the CallMATLAB dll file online, but that required the corresponding software version and system version. I rewrite the code in C# that calls Matlab with cmd. The created dll file works but requires a pause after the CallMatlab step, and it was inconvenient but helped me obtains the experiment result. I will definitely try your suggestion next time the optimization-based simulation is needed. Thank you!
  10. Hello, I'm using a model made by a group of studens one year ago. Their model is pretty simple but I'm facing a strange problem. Whenever I open the model the following text appears in a warning message: "You may no longer save, copy, run experiments, run plan, or run risk analysis. Runtime limits exceeded: 285 steps in the model (limit is 150)". I've searched in the Simio Forum but it seems like there's no other case like that. The model has no processes so, there are no steps. I really don't know what's happening. I'll appreciate your help with this case. Thanks in advance, Edgar Anexo 3-Modelo de la celda Has200.spfx
  11. I have a data table which has several rows that contain node and some other infomation. I want to move a transporter to a node in that data table and park at that node. Now I have my model and data table like this: In this model, when I click the move button, Myvehcile1 will move to TransferNode1 or TransferNode2( depend on some inputs for Myvehicle1). The problem is because I don't create any ModelEntity, I seize Myvehicle1 by itsself. So, Myvehicle1 is in its visitrequestqueue and it will never stop at a node and it keeps moving between nodes. Below is the process I create to find the node in table and move the transporter. The model file is also included.SimpleModel.spfx Does anyone know how to achieve my goal? Thank you very much!
  12. Hi All,

    I am repeatedly getting this (attached picture) error in my Simio Model, what could be the probable cause and what should I make sure so that this problem does not repeat?

    I have added transfer, end transfer step in my process logic.

    I also have made sure I have enough storage capacity and also enough vehicles to complete the transfer.

    any suggestions would be helpful.

    Thank you :)


  13. ps: is there a way to add a label or change a label's expression while the model is running?
  14. My model currently reads tasks from a table and I am trying to model material consumption. For each task there are groups of materials: A, B, C, and priority values: 1, 2, 3. To complete a task, only one material type from each group A, B, and C must be consumed, and the order they are consumed in should be based of the priority. For example, if task one had entries like the table below, if all materials were available, materials 1,4,6 would be consumed. If material 1 was no longer available materials 2,4,6 would be used, and if material 6 was not available the task could not be done. The material requirement section in the processing task editor does not seem to support groupings and priority and was wondering if anyone had an idea on how to accomplish this. Task MaterialName Group Priority Quantity Task1 Material1 A 1 1 Task1 Material2 A 2 2 Task1 Material3 A 3 1 Task1 Material4 B 1 1 Task1 Material5 B 2 3 Task1 Material6 C 1 1
  15. We are building a model of a medical facility where some patients need to be evacuated out of the model using a vehicle. In its current state, when a patient is in the ward or ICU, it will be determined if they need to evacuate. While they are waiting for an evacuation transport, they will be in a task sequence loop. We would like some way for the patient to seize a spot on the transport, perform the tasks loops, and once the transport arrives at the facility transfer node, the patients break out of their loop, and seize a worker to be carried to the vehicle. We have patients looping correctly and workers carrying the patients to the transport node, but they are not waiting for the vehicle to arrive. Having a condition that breaks the loop when the vehicle is in the loading node is not working because as it leaves its current node does not update quickly enough so entities go to the node that then are not picked up. A potential solution we found was to use the MinimumDwellTimeExpired State variable for the Evac transport in the loop conditional (If transport is dwelling then do not continue the loop and get routed to the transport, if it is not dwelling stay in the loop), however this variable is not public with no apparent way to make it so. We have also tried to make a function in the vehicle to try and mirror the state variable value, but this also did not seem to work as it does not update during the run.
  16. Hi, jdoran I have the same problematic as you. I looked at the model presented by DanSpice but my problem is that the Server seizing my Worker is located in a submodel. Did you manage to fix this issue? Thank you, Maude
  17. Pausing Simio can be implemented by add a breakpoint after the step that calls MATLAB function and continue the model manually after the MATLAB program is finished.
  18. To pause Simio can be implemented by add a breakpoint after the step that calls MATLAB function and continue the model after the MATLAB program is finished.
  19. Hi all, how would you approach this model? Workers are transporters and must be present at the servers to supervise each step. For now I have one worker and am using a personal edition of Simio. Server1 is an observation microscope where entities pass through a survey step. Server2 is a robot dispensing glue that has a finite window of appropriate elasticity after mixing. I started my model with a version very similar to the MoveableOperator where my worker goes back and forth between two servers running 6 entities individually before switching... six being the number of entities we believe can be processed with one batch of glue. When trying to model the delay step of glue mixing (ideally with worker movement to a separate node or location) I thought to add it as the first in a task sequence at Server2 with the condition that it only need to be applied when the server buffer was full of the 6 entities. This seemed to not fit well with the priority decisions that the worker already had for movement and the worker stalled. Basically, how would you model the fact that every 90 minutes we need a 15 minute delay for glue mixing and that once the glue is mixed the priority needs to be at Server2 until glue elasticity runs out?
  20. Examine the attached model. Note that, in the attached model I subclassed the worker object. Thus you should examine this subclassed object as well. Practice.spfx
  21. I am trying to create a model in which the worker is used to "batch" parts so they all move as a group of 8000. The issue I keep running into is that the worker just goes and delivers the parts as soon as they go on break instead of waiting till it accumulates 8000. Any help would be much appreciated. In this sample I provided, the worker should only be transporting parts at 100. Practice.backup Practice.spfx Practice_Model_trace.csv
  22. Hello, I was wondering if someone can help me with doing sensitivity analysis in Simio? So I know of the input parameters tab where I can see how much does the Objective function change by changing the time input parameters by 1 minute. But, I'm looking to see how much does a variation in a property in the model, for instance changing mis-identification rate, on the DIDO time and objective function. My thought process was just to run different scenarios and take the difference between the two and that would tell me how much it has a change. Yet, my professor suggested the following and I was still confused about how to do it: "So you can ESTIMATE a derivative by just COMPUTING (g(x + h) – g(x))/h for a small h. This is called “finite differences.” Thus, you can estimate sensitivities by running simulation experiments at different settings. In your case, if p is the nominal probability of misidentification, you can run an experiment at p + h also, then estimate the sensitivity by taking differences. Simio’s internal sensitivity analysis is able to estimate derivatives using a trick that works in some, but not all cases, without the need for an additional run. But when it does not apply you need a different method."
  23. I need help on figuring out how to model my logic. I figured it would be easier to explain what I needed on my actual model, hence the picture with all the floor labels. ModelQ2.spfx
  24. Hello guys, Does anyone know how to implement the pause of Simio when an algorithm is called from Simio and running? I am doing optimization-based experiments, which are designed to use MATLAB to do the calculation for optimization problems and Simio for discrete event experiments. Calling MATLAB from Simio can be implemented by defining a step to call a C# program that calls MATLAB function. But the problem is the Simio only pauses till MATLAB is opened, and the Simio experiment as well as the MATLAB algorithm will continue simultaneously. The MATLAB result should be introduced into the Simio model to continue the experiment. Is there any idea like seting an event to continue Simio only after the called MATLAB function is finished? Thank you. Shu
  • Create New...