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


  • Simio Calendar


  • 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 51 results

  1. you can not find .lastrecordedvalue from dropdown menu. Just type it, it will work. Tally1.lastrecordedvalue means just the last tokens value (in your case state's value recorded by tally1 element. I think if Tally1.lastrecordedvalue == 0 which means 1 for exclusion property this tally step should be skipped for this token. And, it is the case what you want to achieve. Just try, I think it should work...
  2. Hello, I would recommend looking into the notion of AssociatedObject, and ContextObject, for the Tokens moving through your processes. You can read more about this in the "Tokens" help topic. In some cases, the associated or context object is a ModelEntity so you can access it along with its data in your process steps. In some cases, though, ModelEntity is not associated with (or contextual to) the token executing the process! In this case there is an error if you try to use 'ModelEntity...' in your process. One way to check the AssociatedObject and ContextObject is using a Notify step at the beginning of your process with Notification Type 'Warning', MessageHeading 'Token.AssociatedObject.Name' and MessageContent 'Token.ContextObject.Name'. Happy modeling! Adam
  3. Hi Glenn!! The purpose is to change the value of a state variable of the entity that cannot be assigned a destination. My (container) entities are trucks, and if they cannot be assigned a destination it means the material they were supposed to be loaded with is finished. Therefore, the change I wish to apply is to change the state variable that determines the material the truck has to go and be loaded with. Can you think of how I can do this? I have been trying to access the return values of the tokens of the route step as well as properties of routing group but I have not achieved my goal. Thank you very much! Tere
  4. Yes, I need to create a material based on the entities' arriving (each entity has a BOM ) and the entities have to wait in the node untill the production of the material (leather). It seems that the model can't see the process and it doesn't produce the material and it doesn't respect the lead time. Maybe there is a problem with the tokens and the varaibles' assignments.
  5. 1) Depending on how the entity is created in the first place, that assignment may already have been made. So, for example, if the table includes the arrival time and is used as an arrival table within a Source (Arrival Mode is set to 'Arrival Table'), then the entity that is created automatically has a row reference to the arrival table row from which it was created. Alternatively, if you create an entity, you can use the SetRow step to assign it a specific row in a specific table. ** The entity doesn't ever become a token ** Please refer to the Tokens page and the Tokens and Entities page within Simio help for more information. Tokens can be associated with entities (or with a model if a process is triggered by a timer, event, etc.) 2) If the entity has a row reference within a data table, simply referring to the TableName.ColumnName to access the table information is sufficient. This will automatically retrieve the information in the TableName table, ColumnName column at the designated row that the entity has a reference. If the entity doesn't have a reference within that table, Simio will give an error if you attempt to refer to the data in that fashion. Alternatively, you could reference a TableName[RowNumber].ColumnName to specifically reference a given RowNumber. Refer to Data Tables page within Simio help for more information.
  6. Hello, One approach you could use is have an initial capacity of 0 at the Enfriado servers to hold the entities in the input buffer queues. During the entered event of the input nodes of the Enfriado servers, you could insert the tokens into a storage element. And a "controlling" server could then use process logic triggered by a scan step that determines if the number of entities in the input buffer queues are greater than 1, that would perform a search of those Storage.queue for the Entity with the longest processing time. To determine the processing time, one has to track it. The real state variable on the ModelEntity, ModelEntity.RealStateVariable, would be created and TimeNow would be assigned before processing. Then that is assigned TimeNow - ModelEntity.RealStateVariable after it processes at the previous servers. Once the entity is found from the storage queue, a transfer step would take that entity and pass it to the Cortador server's input node. The search step could look for Candidate.ModelEntity.RealState1 using a Backward search type and a limit of 1. Once the entity is transferred, the entity can be removed from the storage element. Judy
  7. Is the search step being executed? Have you tried a break point on that step? If tokens are entering that step but not exiting through either the "original" or the "found" branch that would imply a pretty major bug, I think Can you post an example model demonstrating the behavior you are seeing? -Adam
  8. In the attached Sim, I have a process that is executed when a button is pressed. The process uses a custom token (MyToken1), which has 2 element references (refSelf and refParentToken). I have successfully saved the reference to the token and the parent token (I can see it in the trace), but I can't then access the states of the saved token, say in an assign step. What is the correct syntax to be able to access the token saved in refParentToken? In Assign 4, I am looking to replace "X" with something like MyToken1.refParentToken.MyToken1.sDescription, but that just gives me an error "No element reference available to resolve identifier 'MyToken1'". Ultimately, I'm trying to be able to access and modify parent or grandparent (or higher) tokens by spawned tokens, even after several searches. An implicit (for tables) or explicit (for objects, using ContextObject) reference seems to be possible for depth 1 search, but not for deeper searches/spawned tokens. TokenReferences.spfx
  9. If the EntityA is an instance of ModelEntity, for example, the model contains entities of type EntityA, EntityB, and EntityC, then you could have a Decide step as the first step in the process that says Conditional "Is.EntityA" and only that type of entity will go out the True exit and perform the steps following, while others will exit the False and if you do nothing, the process will not continue for those other entity tokens. If EntityA is an actual specific entity, such as EntityA.139, for example, and you somehow know earlier than Server processing which entity it is, you could use a State (Definitions window) of type Object Reference / Entity to store the exact entity and use that within the Decide step into the process.
  10. Does anyone perhaps know how we can track/see the suspend and resume steps lodged against an object in the watch window ?? Alternatively, visibility of these tokens will be appreciated as a standard in Simio.
  11. Hi everyone, Working on a model that should interrupt a delay function in a different process. The interrupt in that manner prevent the execution of a process. Tokens for this process are generated when an entity is being created, and destroyed (by means of the interrupt) when the entity arrives at its destination. The entities are being transported by means of a vehicle, so sometimes not all the tokes are destroyed since some of the tokens are still in the delay (waiting for transportation of the vehicle). The problem that I am facing is that the tokens are not destroyed in order, this pattern seems rather random. It even occurs that tokens with a very low ID number are still in the delay when this should not even be possible (they should have been destroyed long ago). So the question is, does Simio interrupt tokens within a delay in the correct order or randomly and how to ensure that this occurs correctly? Thanks !
  12. Thank you gocken! Your help has been exteremly useful! I appreciate it a lot. I have solved batching in a slightly different way. However I am having other difficulties. 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? I am attaching the printscreen of my model to visualize the described above situation.
  13. It is hard to troubleshoot a model without knowing the system under study and what you are trying to do. That being said, there a couple of things that jump out at me. First, I would recommend testing your logic with a trivial data set, so that you can see what is happening. For example, did you know that you are creating two material source trigger events with the first order? The worker parks itself at output@Source1 on initialization. When the order creation logic starts and a purchase order is released, the worker transfers from the parking station, into the node, and on to free space. That triggers the “ReleaseMaterial” process, which starts the next material release ahead of its scheduled time. 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. Again, I would start testing your logic with a very simple data set to see if the model is behaving the way you expect. 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. Once you have decided on a tractable approach and have started modeling, there are several built-in tools to help with verification and validation: the trace window and the profile window. Both of these can be used to figure out what is happening in the model—the profile window is particularly helpful for identifying model performance issues. -Adam
  14. Hello everobody, 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. I include a model as an attachement. Maybe somebody would be able to find out where is the problem. Thanks in advance for any help. NewLogicModel v4 MAIN.spfx
  15. So each wait step would require a state/property, a timer and two assign blocks. It's simpler than making the re-usable process with passed tokens, and probably more durable. Thanks. I'll have to go back and update my models, and keep it in mind in the future.
  16. What appears to be happening is that both the original token leaving the Original segment and the new token, leaving the Found segment, are both associated with the same Entity and therefore the Transfer Steps are trying to transfer the same entity. This is shown in the Trace when it says which entity it is trying to transfer. Therefore, when the second Transfer step attempts the transfer, it says that it cannot transfer because the entity is already in the middle of being transferred. It is difficult to determine why the process logic is having both tokens transfer the same entity, but the first thing I would suggest that you check is whether or not the Search step is finding the correct entity during it's search. Or if you are using the Entity Type property of the Transfer Step to transfer a specific entity, you might look to make sure you are transferring the correct entity.
  17. Hi All I have a recurring problem that I don't seem to be able to get to the bottom of. I think it revolves around the creation of a second token in the Search Step when found. I have a situation where I need to search multiple queues and depending on the outcome, transfer an entity from one queue to another queue. Irritatingly, the error is intermittent as the process will work sometimes but not for others. I'm guessing there is some kind of Race condition occurring but my understanding of Tokens is still a work in progress! I have been wrestling with this error for a while now and would greatly appreciate any advice. I have attached as much info as possible which hopefully explains the issue. Thanks............Dave
  18. Hi Everyone I seem to be having a problem with a search step with a transfer step following depending on whether a match is found. I'm sure this is due top my lack of understanding of tokens - apologies, I'm pretty new to Simio! As I understand it, the Search step creates a new token when the match criteria is found but retains the original token which continues through the process. I think the original token is causing the problem. I guess my question is; is there a way to suppress the original token (or destroy it) once the new token is play? I believe the original is trying to initiate an unwanted transfer step which is clashing with the wanted step, resulting in a runtime error. I've attached the error message which may help. Any help, advice or direction to texts explaining tokens would be very much appreciated. .......Dave
  19. I can catch you on skype to show you for I have various timers performing different things.... One example would be where I have priority based maintenance...i.e...Shutdown...Planned...Breakdown....each running off of their respective timers...As these activities timers can overlap as they form part of their own unique distributions, events are fired based on the priority constraint to allocate the transporter a different state...The logic involves correctly disposing of the tokens in a wait state of the previous constraint process as well as resetting and adjusting the timers....i.e....If I am on breakdown and scheduled maintenance hits, then the schedule maintenance process is executed and Breakdown processes stopped or delayed until a corresponding event is fired....this includes material handling assignments, crew, etc.... Another example would be dynamic generation of "demand" transporters based on a varying monthly rate dictated by variations in supply due to statistical randomly generated constraints... The timer is adjusted based on a change in arrival rate which is calculated and dynamically updated to ensure that there is always just enough demand for current available supply...This forms part of optimized planning for bulk carriers which cost a hell of a lot of money if they are just chilling in the ocean... But ultimately and perhaps the crown jewel is handling flow transfers from one transporter to another...since i had developed the logic before this super awesome new release of the transporter library, I needed events to check when the load or discharge level had been reached, or the full or empty state of the flowcontainer had been reached on either transporter, or objects fired events which needed to seize loading/discharging and stay, or seize loading/discharging and move away, as well as handle inherent timers on the transporter for breakdowns that will execute different processes depending on the type of breakdown....i.e. move the transporter or stay put... It all sounds really complex but its very simple.... Hit me up on skype...
  20. I dont recall making a variable timer being an easy thing to do. I believe they required their own state variable. It will make the code harder to read and debug too. I currently execute side processes with delays that fire events. This is even worse in some ways as it makes multiple tokens that then need to be handled.
  21. I think Simio might be a bit different than you're expecting here... First, an entity is never in a waiting step. A token, which can be a messenger of an entity, is. As each token will be in a separate realization of the process, you will not be able to 'select' from them. An alternate methodology might be to store the entities in a station or in storage, and then use the search step to pick which one you want. You might find it helpful to read the sections in the user guide called Processes and Tokens and Entities, under Simio Concepts.
  22. Thank you. I probably should/will stop now. I have learned very much from these last two days (seeing how you code the steps). But, I did run your most recent four models. And got wild results. I added a column to your results. Ketils runtime | RunTime Approach 1,4 sec | 42 sec Facility model (Source-Connector-Sink) 20,0 sec | 13 sec Process that creates objects (Create-Destroy) 1,3 sec | 3.2 sec Process with Tokens (no entity objects) created by Timer 1,6 sec | 1.7 sec Process with single Token (no entity objects) that recycles hourly Your facilitymodel (was "objectapproach") still runs VEERY fast. Recall, mine took 53 seconds, yours took 3 in my previous message. Was hoping you could elaborate how yours get the 10x faster time? I also downloaded/installed .NET 4.5. No change in execution times. Have to check to see if Simio actually loaded the correct DLL-files, I am a bit unsure of the way .NET installed (it is an in-place replacement, overwriting the DLL-files, but keeping the 4.0 version numbering, ... That's another story ...
  23. First, if you are not running XP, then I highly recommend updating to .Net 4.5 - this can make a dramatic difference in Simio execution speed. Second, I made an error in my model - I accidently ran one for 5200 weeks and the other for 5200 days. Perhaps you did something similar because 3 of the 4 models in your project had different run durations as well. I fixed that problem and while I was at it illustrated 4 different approaches to this simple model. All had periodic activity every hour for 5200 weeks (100 years). All at least track the number of activities logged (873,601 events) by adding an Integer State, an Assign to that state, and an OutputStatistic to make it display in the results. The approaches vary based on the objects involved. The approaches using objects provide additional statistics. If you run them in the Experiment window you can look to the Pivot Grid to verify results. RunTime Approach 42 sec Facility model (Source-Connector-Sink) 13 sec Process that creates objects (Create-Destroy) 3.2 sec Process with Tokens (no entity objects) created by Timer 1.7 sec Process with single Token (no entity objects) that recycles hourly Sorry for the confusion. I hope this helps.AcademicTestModel.spfx
  24. SSS was used as shorthand for Source-Server-Sink. Actually no, the difference/advantages I cited were in comparison to products like Arena. Arena does not have objects, it's modules have no intelligence, it's entities are much like Simio tokens, Simio entities are MUCH more sophisticated, Simio has built-in statistics calculations, ... . A process/tokens approach in Simio is the only thing remotely comparable. Simio objects are so much more sophisticated that REAL systems can be more accurately modeled in Simio in less than half the time. The products are only superficially similar so why would one expect them to execute at the same speed? This is like comparing a car and a jet going 1000' down a runway and declaring the car "faster". But if your journey involves traveling 1000 miles and carrying 100 passengers, I think your conclusion would be much different. For such a simple problem, I'm sure you could program a solution in assembly code that would run MUCH faster. Why don't people do that? Because it would take too long to build the model and they value their modeling time and time to solution, more than the computer time. If your study is looking to see how solving a trivial academic problem in different ways can impact execution speed, then you should probably include the assembly code solution. But if your analysis involves any measure of how people solve real problems, then I think you need to start with a real problem and measure all aspects of project performance. Writing this is rather odd for me because within Simio staff I am often on the opposite site of this argument. I am continually (and successfully) arguing that we should put more time into optimizing Simio to make it run even faster. And in fact, at least quarterly we put significant effort into improving Simio execution speed, so Simio is getting steadily faster. But the other side of this argument is that computers keep getting faster, so the execution speed tends to take care of itself (particularly considering the cloud) and we can better serve our customers by improving the product features to permit even faster and more accurate modeling of real projects.
  25. OK. Forget programming sims in C/Java. Arena is a competitor to Simio. Has many of the same advantages as mentioned by Sturrock. Arena executes 6x faster for M/M/1. They ought to be similar in speed? I still insist that I must be doing something wrong in the way I set up my Simio experiments. Just tried something even simpler this morning. Set up a Source/Create that generates 1 job/hr for 100 years. 876000 jobs. Jobs go to a Sink/Dispose via a connector/link. Simio: 53 sec (can be reduced if using tokens) Arena: 2 sec ?????
  • Create New...