Jump to content

Search the Community

Showing results for 'tally wait times'.

  • Search By Tags

    Type tags separated by commas.
  • Search By Author

Content Type


Forums

  • Simio Public Forums
    • Welcome and How To Become a Simio Insider
    • Simio News and Announcements
    • Simio Product Details
    • Simio-Related Positions Desired or Positions Available
    • Help Getting Started with Simio
  • Forums for Simio Insiders Only (See Public Forums Welcome topic to sign up)
    • SI General Discussions
    • SI Sprint Releases
    • SI Shared Items
    • SI Ideas and Suggestions
    • SI Known Issues and Workarounds
    • SI Performance Tips
    • SI Non-US Cultures
    • SI Student Competition
    • SI Educational
    • SI Libraries and Objects
    • SI Animation and Visualization
    • SI Distributions, Functions, and Expressions
    • SI Simio Tabs
    • SI Experimentation and Optimization
    • SI Functional Approaches
    • SI Industries / Domains
    • SI Types of Simulation
    • SI Emulation
    • SI API

Categories

  • Files
    • Academic Information
    • Product Information
    • Case Studies

Find results in...

Find results that contain...


Date Created

  • Start

    End


Last Updated

  • Start

    End


Filter by number of...

Joined

  • Start

    End


Group


About Me


First Name


Last Name


Company/University Name


OCCUPATION


ICQ


WEBSITE


YAHOO


AOL


LOCATION


FACEBOOK


GOOGLEPLUS


SKYPE


TWITTER


YOUTUBE

  1. Can a second job be added to the first tank already in process? --If not, how long (if any) will the first job wait for a match before starting? --If so, how long after the first job starts can it be joined by the second? So for example, if job 1 arrives to the empty tank at 1:00 and job 2 of the same type arrives at 1:05, will it process? If so, how long does it take? It sounds like it would be a merged processing, not two independent processes, right?
  2. Hi Dave, Thanks so much for the quick reply. I took your advice and scaled everything down by 10. At least this way, everything runs pretty quickly and I can focus on building in the rest of the logic. The sim actually does run without scaling down in 64-bit mode (it may run in 32-bit mode, but I perhaps did not wait sufficiently long), but it is quite slow. Thanks again! Bruce
  3. So this may be an easy answered question, but I'm at a roadblock. I want to have an entity wait in a server until a specific date and time. Once that date and time is reached within the model run, I need it to fire and move to the next server. This would be easy if it were one entity, but essentially a batch all arrives at different times and then needs to wait until that date/time to ALL move at the same time into a combiner. Any help would be greatly appreciated.
  4. Hello, I was wondering if it is possible to change the vehicle initial home node during the simulation. In my model , I want to vehicle to park at home after his work, but in the middle of the simulation I want him to go wait in another place. Is it possible ?
  5. The expression (inventoryA+ inventoryB)/(OrderA+OrderB) will always work if either is > 0 because there is no chance to divide by 0. The expression (inventoryA)/(OrderA) will not work if the only product produced is B because it will cause a divide by 0. I'm not sure why you would want to record a Tally observation when there are no observations yet? And it seems equally inaccurate (but won't generate an error) if you record a Tally observation on both service levels even though you only just produced one of them. It seems like the correct approach is to record the service level ONLY on a product that has just been produced or completed. But in case I don't understand what you are trying to do, to do exactly what you requested: 1) For the observation Value use an expression like InventoryA/Math.Max(1,OrderA) to avoid the divide by 0, but it will generate a bad value when the value is undefined. 2) To avoid recording that bad value, in the Advanced Options > Number of Observations field put the logical expression OrderA>0 which will cause it to record 0 observations when false or 1 observation otherwise.
  6. OK I resolve half of my problem. I decide to put a combiner where 1 parent wait to have 6 membre to batch and process. Now, I have some problems when I want to stop temporary my source. I tried to create a process at Source_CreatingEntities , but I think I don't write well my conditions for the decide steps. The Process goes like this Begins------Decide---(true)------Decide--(true)----Wait-----End | | | (false) | (false) ---- ------ The first Decide, I want to be true when there is 3 entities waiting at the member input link : MemberInput@Combiner1.NumberTravelers>=3 The second Decide, I want to be true when my combiner is processing : Combiner1.Capacity.Allocated>=1 The wait step is a event that is fire when the combiner finish processing the batch Can you tell me how to write well the condition for the decide steps ? Thanks
  7. Hello, I am working on a model that process jobs (dolls) on a single station. I have 3 types of job that could be processed by just 1 resource. Resources are flexible and may do the same job but each one has its own time to do the task. Jobs are processed based on their smallest processing time. So far, the attached model could select the smallest processing time and pick the right resource (based on the index on the table) but I could not find a way to physically seize the right resource. On the seize step, I just put the preferred one; which means, it will always seize Resource 1. Here, I am starting by deterministic processing times (known in advance) but targeting the stochastic ones later on (for example: Random.Uniform(1,4)), that is why the selection must be dynamic. For example, when I get the green doll, the model is able to process it in 4 min and pick the correspondent resource (resource 4 in this case as we can see on the attached status label) but physically, Resource 1 is doing the job. Any help folks. Thank you. MyModel_6_Version 3.spfx
  8. via the method I suggested it is not possible to achieve what you expected. But, there are many ways to accomplish what you want. For example, you can first store your entities (i.e., 4 entities) in a storage element then search for the least processing time among them, then transfer that one to the server. You should repeat this search operation 4 times or until no entities left in the storage element. You should look for something like this.
  9. 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...
  10. I want to calculate the idle time of the worker in different time windows throughout the week. For example I want to get data regarding the idle time of my workers from 7 am to noon and noon to 5 pm in weekdays and 7 am to noon in weekends. Does anyone know how I can get this data and save all the idle times in different time windows?
  11. One option is to look at the HourlyStatistics SimBit. This provides a general approach for collecting any statistic in any time periods. You can also do something somewhat similar using TallyStatistics that are specified in a Time Indexed Table. For a single replication with any use of TallyStatistics, you can also Enable Interactive Logging (on Advanced Options) to see the individual tally observations. The ultimate is to use the Write or ExcelWrite step to record any information at any time. For example each time you want to record the value of an expression or state, you might write out ReplicationNumber, TimeNow, ExpressionValue, (and anything else that might be of value).
  12. Hi everyone, I have the following question, regarding this: If I run my model for 200 times in the Experiment section, how could I get the Server utilization over time? I mean over all of these 200 replications I want to get the figures for the average sever utilization in different special time periods (over the Simulation run). So I want to see how the average utilization is in time 1, time 2, time 3 and so on.... Please provide me with Information, to set this up. Thanks in advance. Best regards
  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
  14. To acess a state variable of an entity that is being processed at a server (let's call it Server1) you should type the following into the label, assuming there is only a single entity at the server: Server1.Processing.Contents.FirstItem.ModelEntity.Name Mind that you will get a warning if you run with such expression in a label, because you will be at times trying to reference an entity at an empty station. Then, you should expand the expression to: Math.if(Server1.Processing.Contents.NumberWaiting != 0, Server1.Processing.Contents.FirstItem.ModelEntity.Name, "")
  15. Thanks for the suggestion. It now takes 30 seconds runtime for 1 million ... tokens, I guess that would be. First time I try this low-level approach. I followed your instructions (begin-seize-delay-release-tally). Read the Reference PDF as well. Added a Resource1 though (so there was something to seize?). Can see utilization of Resource1 (seems correct at .8321), but no queueing stats and cannot find any results from that Tally Statistics. Will continue to try. Still, I find it slow. I have a Javasimulation of an M/M/1 that takes only 4 seconds to run 1 million customers (=tokens/entities in Simio). Each customer has to be generated, wait for a resource (seize), delay, release it and ends up in a sink (that tallies). Same computer. The javasim has none of the GUI that Simio has, but then, there's no GUI processing overhead in FastForward/experiment mode. And, the Javasim reports queue and worker statistics (mean, variance). Perhaps Simio is collecting excessive statistics (if so, can it be turned off)? Or is it that I made a mistake by adding a Resource1 (to be seized)?
  16. As you have discovered (and I discussed in my post above), running an experiment puts Simio in its fastest run mode possible. And in this mode it will automatically distribute the replications and scenarios across all of your processors/cores. This alone can provide dramatic speedups. If you have Team Edition, you can actually extend that to use spare processing power in your work group. So if you have 4 quad-processor machines available on your local network, you can run up to 16 simultaneous replications or scenarios. In terms of modeling, the most dramatic improvement you could make is to build your model at a lower level. The model you described is simple to model entirely in a single process with steps: (begin) - Seize - Delay - Release - Tally - (end) with the process triggered by a Timer element and using TallyStatistics elements for any token-related statistics like Time In System. You would not even need to create any entities, it could all be done using tokens which are smaller and faster. The process approach should be many times faster.
  17. want to make a model where the entities visit same server two times ,but each time their processing time and destination is different. I tried using sequence tables,but it does not work. Would really appreciate if someone could help me with this.. Thanks
  18. Maybe it's something trivial, but I want to know, a much time a transfernode is occupied by an entity, I've modeled a simple model, where the entities, wait in a transfer node until a station turns free.
  19. You can create a list state with 2 values: occupied or empty. Then every time an entity enters you set to occupied and when it leaves you check if it is the last entity and if so then set it to empty. The rest is taken for you and you can access percentage or total times easily. Otherwise, you need to have 3 global variables, call them Sum, Aux (both Real) and and Occupied (Boolean) to keep track if occupied. Then: OnEntered: If not Occupied then Aux = TimeNow, Occupied = True. OnExited: If Node.NumberTravelers == 0, then Sum = Sum + Aux - TimeNow, Occupied = False.
  20. Tally Statistics are more for recording the same numeric expression throughout the simulation. You should use the Write or ExcelWrite steps under User Defined steps in the Processes tab. The Write step write data to a csv file and is usually faster than writing to an Excel file with ExcelWrite. Check out the SimBits Writing To A File and Excel Read Write. You can record numeric and string value. The Date expression should look like 'String.FromDateTime( TimeNow, "MM/dd/yyyy HH:mm:ss")', and then Excel will convert the string to a date if need be. For the Entity ID the expression would be 'ModelEntity.ID' and for the Server name use the expression 'Server.Name'. If you only want to write data in interactive mode and have an Enterprise license, you can use an Output Table. SimBit Using Add Row And Output Table Enterprise
  21. Hello, I am currently working on a SIMIO model simulating a maintenance workshop. The model is made of roughly a 1000 entities of various type, going through potentially different paths among 30 servers over the course of a year. I would like to be able to extract an excel file keeping the flow history of each entity, meaning at least the date, the server, and the ID of the entity and of the worker used, for each step of the simulation. I feel like this must be possible to achieve using Tally statistics, but even after reading some simbits solution, I can't figure out a way to do this. Thank you for your help, Clem
  22. We have never encountered that problem among our staff, but I discussed it with a developer and your guess is a good possibility. Currently the undo history is both comprehensive and unlimited. For example, if you import a data table it probably keeps a copy of the old one to support undo. Things like that could use up a lot of memory. If this is reproducible for you, you can do an easy test. Wait until you start having the problem and then do something that clears the undo buffer. I don't recall all the things that clear undo, but I think loading OptQuest is one. Closing and reopening the project (not Simio itself) is another. If this really is the cause of the problem, then we could probably add a feature to optionally limit the size of the undo buffer.
  23. I am using a table with two columns, first is the arrival time of the entity and the second is the property. The first column is used as the arrival times (one entity per row). In other words I should set the row for each entity which indicated the arrival time and the property. But I could not find a way to do that. I can use the first column to create the entities using "Arrival table" in the source. But then I can not make sure the specific row which was used to create that entity is assigned to it. If I know how to do that, then I know how to set the property using state definition. Thanks
  24. This fixed the outstanding bug where writing in an experiment would dump all csv files in the simulation root directory, ignoring the relative directories you specify in the file path in the file element. The fix was trivial, and I am sure I have raised it several times both on this forum. I made the fix a few months ago, and have kept meaning to post it here (if indeed I have not already). The problem with unofficial fixes is that it is another moving part to update, keep track of, and adds to installation complexity. I have lost previous fixes twice (due to fresh re-installs). Essentially "fileNameWithoutExtension = System.IO.Path.GetFileNameWithoutExtension(fileName);" was the culprit. I changed the "_writerFileName" directive from using the above variable to: _writerFileName = "fileName + "_" + simioScenarioName + "_Rep" + simioReplicationNumber + fileExtension;" I could do something neater (as the current output will have a ".csv" in the middle of the name), but did not spend any time on this. It would be appreciated if this was fixed and applied to the official write block (even if as a toggleable option), as due to the over-zealous licensing terms, the DLL will not load on an unlicensed client... meaning I have to choose between having the bug fixed and not dumping hundreds of thousands of CSV files in my simulation root... or causing clients considerable inconvenience by writing hundreds of thousands of CSV files into their simulation root. Here is the relevant code extract in the file element: if (String.IsNullOrEmpty(fileName) == false) { string fileRoot = null; string fileDirectoryName = null; string fileNameWithoutExtension = null; string fileExtension = null; try { fileRoot = System.IO.Path.GetPathRoot(fileName); fileDirectoryName = System.IO.Path.GetDirectoryName(fileName); fileNameWithoutExtension = System.IO.Path.GetFileNameWithoutExtension(fileName); fileExtension = System.IO.Path.GetExtension(fileName); } catch (ArgumentException e) { data.ExecutionContext.ExecutionInformation.ReportError(String.Format("Failed to create runtime file element. Message: {0}", e.Message)); } string simioProjectFolder = _data.ExecutionContext.ExecutionInformation.ProjectFolder; string simioExperimentName = _data.ExecutionContext.ExecutionInformation.ExperimentName; string simioScenarioName = _data.ExecutionContext.ExecutionInformation.ScenarioName; string simioReplicationNumber = _data.ExecutionContext.ExecutionInformation.ReplicationNumber.ToString(); if (String.IsNullOrEmpty(fileDirectoryName) || String.IsNullOrEmpty(fileRoot)) { fileDirectoryName = simioProjectFolder; fileName = fileDirectoryName + "\\" + fileName; } _readerFileName = fileName; if (String.IsNullOrEmpty(simioExperimentName)) _writerFileName = fileName; else _writerFileName = fileName + "_" + simioScenarioName + "_Rep" + simioReplicationNumber + fileExtension; } Using relative file paths worked at one stage, and was later broken. Below are two threads with work around un-offical dlls that probably implement the fix nicer. 10/07/2012 - http://www.simio.com/forums/viewtopic.php?f=19&t=829 07/12/2012 - http://www.simio.com/forums/viewtopic.php?f=20&t=987 TextFileReadWrite_compiled.zip TextFileReadWrite_source.zip
  25. Ah, so you want to create 10 different entity types at the same simulation time? Why? What is the fundamental difference between them? Typically, you have 10 initializations of the same type, that you distinguish by giving them various values of state variables, especially in a small model like yours. My suggestion from above will not work. The error happens because you have not set a row in the table. Make your own add-on process that handles it if you really want to do it like that, I do not think the standard library source supports what you are trying to do. I would seriously rethink your approach though, it does not seem right. As for states, if you want your entities to have different processing times, the easiest way is to create a state for your ModelEntity that you use as a processing time. It won't automatically read the values from a table without setting the appropriate row, and the entity does not 'remember' it. Well, it can but that would be a bit more difficult.
×
×
  • Create New...