Jump to content


  • Posts

  • Joined

  • Last visited

  • Days Won


Everything posted by dsturrock

  1. We continue to welcome volunteer involvement in our student competitions. 1) We welcome ideas for new competition problems. 2) We welcome your involvement in creating a problem. This could be scaled to any level ... from simply providing some detailed modeling situations and possibly blinded data up to public sponsorship and recognition of your organizations involvement. 3) If you would like to practice your skills by getting early access to a draft of the problem, we would welcome your involveent as long as you have no other competition involvement and commit to secrecy :). 4) We are always looking for judges. It typically requires a time commitment of about 6-8 hours spread out over about 7-10 days. Please contact me (dsturrock@simio.com or academic@simio.com) if you can help us with any of the above. Thanks in advance, Dave Sturrock
  2. The SkyBox icon on the View Ribbon opens a library of static and dynamic scenes that can be placed in the 3D animation. Dynamic scenery includes several options for clouds that move with the animation as the model runs. Typically, the Speed Factor should be set to 5 - 10 or greater to see movement. Static skybox options include many indoor and outdoor scenes. Indoor applications include adding building walls to surround your model. The 'None' option will remove any existing skybox. Users can create their own SkyBoxes as well. The “library” skyboxes are simply *.zip files with images inside them with the names front, back, left, right, top, bottom. They don’t need to have all of those names in them, Simio will use whatever ones it finds. They are located in the Skybox folder under \Public\PublicDocuments\Simio. Note when you first apply the SkyBox, you can only view it in 3D and you may need to use the Ctrl Scroll wheel to move the camera down to where you can see the horizon. There are over 20 SkyBoxes that are installed with Simio. A few more are attached below. Simply download and save these zip files in the C:\Users\Public\Documents\Simio\SkyBox folder. The next time you open Simio you should see something like this under SkyBox options: Here is an example of the MFGPlant SkyBox with a server in the foreground: If you create your own skybox images that you feel might be useful to others, please share them here. Hospital.zip MFGPlant.zip Warehouse.zip Airport.zip CleanMFGFacility.zip NEW NOTE: We just decided to reduce the size of these and some existing skybox files and include them all in Sprint 215. So it is probably better that you just wait a bit unless your need is urgent.
  3. Llario, Thank you for the offer. You are correct that I don't see many current sales in Bulgaria. Do you think a Bulgarian translation of the software would make a significant difference? It is fairly easy to generate a machine translation, but can be fairly tedious to clean up mistakes in the machine translation.
  4. People often miss the fact that a Combiner is basically just a Server with some extra combining logic. It sounds like that is exactly what you need here. Replace your Server with a Combiner, then immediately follow your Combiner with a Separator to restore the entities to their individual members.
  5. I have attached a simple example of one approach. 1) I edited the ModelEntity object and added a state array of type MatrixFromTable. This type of array is automatically initialized from a table. Ideally I might have also added a table to the entity, but Simio doesn't work that way. Instead, I added a RepeatGroup named InitializationValues consisting of a Real property. I used this repeat group as a way to essentially add a "table" into the object, since internal to Simio there is almost no difference between a table and a repeat group. 2) Back in the model I added a table and then imported data into that table from Excel. I used 10 rows, but I could have imported 350 rows with no change to anything else. 3) Now when you place the ModelEntity object into a model, you can pass a table into the InitializationValues repeat group. Again, intead of just typing a bunch of values into the repeat group, I just say go get the whole repeat group from a specified table. This has the result of sizing that state array inside the model entity to match the current size of the table, and then initializing the state values to whatever is in the table. 4) If you run the model, you can open the Watch window on any entity and view the values of its states. I expect this won't solve all your problems, but maybe it will give you a fresh approach to consider. ImportStateValues.spfx ImportStateValues.xlsx
  6. I ran your model until the warning occurs and then examined the Content and Throughput categories in your Results Pivot Grid. I didn't notice any alarming buildups in any of the Combiners, Conveyors, or Servers, but the Entity statistics appear unusual: None of your 3 entity types ever exit the system. Your problem is with creation of too many empty pallets. Another thing I noticed that could be the main problem is that your Empty Pallet source creates 6 empty pallets every .25 minutes, with no limit. When I converted this to a just-in-time (Event Based) creation the entity limit problem went away for that entity type: To answer your specific question, on the Project Home ribbon there is a place to open a Breakpoints window that allows a lot of flexibility to trigger a model break (pause) when a specific condition occurs. I hope this helps.
  7. A couple quick thoughts: Both from your description and from what I know about chair lifts, it seem that using a conveyor might be the best modeling approach. You might consider using a combiner instead of a server to synchronize all waiting skiers together into a lift car.
  8. First, do you really need 5000 different entity instances? What makes them differ from each other? In general, a better approach is to have one, or a few, entity instances, and perhaps add a state (or possibly a property) that indicates their difference from each other (like PartNum, Color, Part Family, Sequence Followed, ...). But assuming you have a good reason for this approach, what you need to do is take advantage of the AutoCreateInstance feature as illustrated in the screen shot. While it is not required, in general when you automatically create instances, you also want to specify where they are displayed. So I added a XLocation column to your data file. When you import that data file, the entity instances are automatically created in your facility view. CVOR Data Table.csv CVOR v2.spfx
  9. As you indicated, you can open and run an RPS or Enterprise model in Professional or Team. But Professional/Team is NOT designed as a "run time" version for scheduling. You cannot see, change, or take advantage of the scheduling-specific features. But I believe that you could change the model, save it, and reload into Enterprise and I think you will not lose any Enterprise features.
  10. Absolutely. Look at SimBits that reference Task Sequences.
  11. Using paths and networks this is pretty easy. You can specify that a worker follows a given network and that network can prevent him from traveling in forbidden areas - for example a visitor network vs an employee network. I expect it is possible in free space but it would likely involve user written code (steering behavior, ...) or some cleverness. But I can't help much beyond that.
  12. To start with, Destinations in Simio are always nodes. So the table should have a column of type Object Reference Property > Node. Although its not on the pull-down list, when you specify a entity destination as Select From List, you can also specify a table column of type node list and it will automatically respect the table rows associated with that entity. Model_RandomRow_FilteredTable.spfx
  13. For each location where you want to start a time interval (Server 1 and "the very beginning" in your example) you would need to add a state to the ModelEntity (NOT to the model). Then for each place you want to end a time interval (server6, "the very end", and server4 in your example), you would need to add a TallyStatistic element and Tally and observation at the point. For example to record the time between between Server1 and Server6: create a modelentity state named TimeDepartingServer1 assign TimeDepartingServer1 the value of TimeNow when entity departs Server1 create a TallyStatistic element named Server1ToServer6Time record a Tally observation (using node or Tally step) at Server6 recording the value TimeNow-TimeDepartingServer1 to Server1ToServer6Time add a status or floor label using the expression Server1ToServer6Time.Average
  14. Yes, you can certainly model this in Simio, and can easily make it terminating. I would suggest reviewing any simulation textbook for verification and validation techniques. The general answer for number of replications is to run for a few (5-10?) replications and look at the half-width on your key output measures. If the HW is too wide, then run additional replications until all your key measures are at the precision you need.
  15. Tricky problem. If you had posted this in a Simio Insiders forum instead of the public forum I could have replied with a model and figures. I would probably take the opposite approach - instead of adding additional "fake" machines, I would consider representing each workcell as a single server that makes use of associated resources for metrology, CNC, and airblast. I'd use Task Sequences to do the sequential processing of each part, then use the associated Loopback feature of Task Sequences to start over with the subsequent parts. There are a number of SimBits demonstrating task sequences. Unfortunately the only one demonstrating loopback (ServerUsingTaskSequencesWithDataTables_Loopback) uses data tables (which complicates things) but you might get the idea. Or you could do a similar approach with process logic steps. If you repost this in Simio Insiders you might get more help.
  16. I assume that you are aware that on the Run Ribbon > Units Settings you can set any of the units defaults. For example, you can change the default Length & Distance from Meters to Feet. While this does not change the default in any object, it does change things like: the grid in the facility view will now be in feet, distances in the trace window with be in feet, and output statistics of type length or distance will be reported in feet. I expect that you are requesting that when you place a object with a distance-related property like Initial Desired Speed on ModelEntity, that it would automatically be labeled in Feet per Minute rather than Meters per Second. Of course you would also want the corresponding default value to change along with it, for example from 1.4 m/s to 275 f/m. While I expect that is possible, it seems to me that is best as defined object behavior. For example, you could easily subclass ModelEntity to create a ModelObjectImperial that has those values and units as you desire and simply use that in all your models.
  17. Any entity traveling on a path at a faster speed than the entity ahead of it with catch up to that lead entity, and continue following it as long as the path Passing property is False. I have used this as a quick way to model things like a vehicle that tows several carts around the model. You might also look to the Trains or Transportation library that is in the shared items folder.
  18. There is no easy way to automatically convert an Arena model into Simio. But more important, you probably wouldn't want to. I am reminded of the early days when Siman was written in FORTRAN and we wanted it to be in C. We ran it through the best automatic FORTRAN to C translator of the day. While it "technically" worked, what we got was a whole bunch of FORTRAN code that was expressed in the C language. It used algorithms and constructs that were inappropriate to C and was extremely hard to read and maintain. We ultimately manually recoded everything into "good" C code. Likewise, Simio has many advanced constructs that are not found in Arena. The modeling approach that you would take with Simio's object orientation, would be very different that you would take with Arena's limited set of procedural modules. So while it is theoretically possible, I would recommend giving no further thought to an automatic translation. Instead I would: go back to the modeling objectives and constraints which guided your Arena model, consider all the things you learned about the system as you developed the Arena model, and consider the trade offs that you had to make in Arena to model your system with enough accuracy. Then I would design a Simio model using all the Simio features available and design the best model to meet your current needs. When complete, I expect that you would find the Simio model to be smaller, more accurate, and easier to use and maintain than the original Arena model.
  19. An Arrivals table with 3 entries would cover your request: Time EntityType Quantity 10.0 TypeA 100 20.0 TypeB 200 30.0 TypeC 300
  20. I suggest exploring Task Sequences on the Server. It has much better capability than the Workstation.
  21. You asked for "a way to start/stop timers on a specific entity without creating a bunch of different events". As I understand it, Enable is just a switch that stops/starts the Timer clock. It has nothing to do with triggering events and does not require any events. So if you set a timer to fire in 60 minutes, then after 10 minutes disable the timer, the timer should fire its event 50 minutes after it is enabled.
  22. Simio conveyors do not currently support discretely modeling two or more entities side by side. That feature has been proposed and designed, but it not yet scheduled for development (just a priority thing). One choice is to use the Flow constructs to model it as some combination of discrete and continuous. Another possible approach is to Combine discrete entities together or to have a single entity represent 2 or more entities - perhaps use a Separator when you need discrete processing. Yes, there is extensive information available about each entity (see screen shot from Watch window below). You can write this data to a file using the Write or ExcelWrite step.
  23. There is a user assignable enabled state associated with each timer. For example you can assign Timer1.Enabled to False or True.
  24. Simio B2MML data tables and importing are compatible with the standard. It is my understanding that it is common that adopting companies will customize the data to their own needs, just as we have done by example within Simio. B2MML consists of a set of XML schemas that implement the data models in the ISA-95 standard. Companies may use B2MML to integrate business systems such as ERP and supply chain management systems with manufacturing systems such as control systems and manufacturing execution systems. The actual standard is an XML implementation of the ANSI/ISA-95 (IEC/ISO 62264) Enterprise-Control System Integration Standard. Searching on them will yield more information. The e-book Planning and Scheduling with Simio that is included on the Support Ribbon, explains more about B2MML.
  25. I think I know which video you are mentioning and it is quite old - perhaps from Simio 1.0. Many things, especially building objects, have gotten much easier since then. The interface you still mentioned is still available -- it is the External view found under the Definitions tab. But there is a much easier way now. In my classes, I typically give a demonstration where I start by building a TandemServer, then hierarchically build 3-4 more objects, revise all the objects, save the project as a library, then load that library and build a model from that new library - all in the space of 10 minutes! I have attached a very informally recorded snippet of a class. Perhaps it will be helpful. BuildingObjects_QuickDemo.mp4
  • Create New...