Jump to content
Simio Forum

jdoran

Members
  • Content Count

    670
  • Joined

  • Last visited

  • Days Won

    1

Everything posted by jdoran

  1. I didn't find a mention of how to go setting up a MySQL binding on a table, so here is a quick guide that I would like to see included in the help manual. First, navigate to the data tab. Select your table, and you should be able to add a binding for "databases". When attempting to bind to a database for the first time, it is likely that you will not have a connector installed. You will receive an error similar to: "Could not load available tables from database connection, error message: Unable to find the requested .NET Framework Data Provider. It may not be installed." I
  2. Nope, the 64bit version still will not open the model with a massive data table (at least not within the 5mins I was willing to wait for it). I left the model opening over night (via the 32bit client), and came in this morning to it opened. I have removed the datatable, and will have to explore using a database, etc.
  3. Nice pick-up. I had completely forgotten about that. Let's see if that works.
  4. Has anyone else experienced significant performance hits when dealing with large tables in their models? One of my tables has a bit over 230k rows. Since adding the table the model can take up to 30seconds to save (on a SSD), and since closing the model, it no longer seems to load. I can see that tables are added directly into the model xml data which does not seem to make much sense.
  5. 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.
  6. 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). Essential
  7. 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.
  8. Is it possible to implement a wait step that either waits for a specified time, or for an event to be fired (which ever comes first). I hacked together a model where I execute a process before the wait step, that delays for the time and fires an event. I then simply listen for either event at the wait step. I don't think this is very neat. Is there a better way? I can see there are timer elements, but I don't see how you would invoke one simply to act as a countdown.
  9. The SimBits are a valuable tool though. It would be nice if we could make our own collection and host them centrally. Ideally we would have an xml file that contained the metadata and all the SimBits sitting on a network share, and get each user to map a network drive to them.
  10. I don't think it is something take offense over, as even the guys behind the new HTML standards still haven't come close to solving this issue yet. No matter how much meta data you put on elements (in this case Simio models), unless the user has an exact idea of what they are specifically looking for, they will overlook things. If I were describing generic model objects or even complete models using just those three fields, I may completely describe the use cases I would use it in, but not necessarily every single one it could be used in or what techniques I used to make it with. Perhaps
  11. I have been using Simio for quite a while now, and have started to build up my own library of common objects. It is great that Simio allows you to build Object Oriented models, as these objects should in theory be re-usable. I now have to start thinking about what happens when my colleagues all start moving to Simio. This could mean 2, 5, 10, or more than 100 modellers all working on different projects at the same time. How do we effectively collaborate and expand our toolbox of common elements? The notion of SimBits is novel, but as proved time and time again on this forum (myself
  12. Thanks Glenn. It is certainly a more compact way of correcting for zero, than what I usually do. I will have to keep this trick in mind.
  13. Math.If(Token.ReturnValue > 0.0, Size.Length / (Token.ReturnValue + (Token.ReturnValue == 0.0)), Infinity) determines the EntityMovementRate on a timepath. Can someone explain the "(Token.ReturnValue == 0.0)"? Token.ReturnValue is equal to the time the entity will take to traverse the path, so I can see the inverse relationship of time and speed, but I do no understand the purpose of that sub expression. If my thinking is correct, it will always evaluate to 0. If the IF statement somehow broke, only then would it evaluate to 1.
  14. If I recall, the trace is only written to disk when you look at the trace window. If it has too much extraneous stuff in it, disable reporting on each object in the model you don't need (paths, etc. can be quite spammy). If you really require the extra disk space, then delete the trace file after tracing. You probably wouldn't want to auto-delete it, as I recall it crashing Simio if you have the trace window open at the same time.
  15. Some SimBits that may be relevant. Pick Up Drop Off Flow <- flow related, i.e. liquids Appointment Arrivals Moveable Operator Using A Storage Queue Seizing Vehicle Vehicle Finishes And Parks When Off Shift The two most relevant SimBit sections will probably be: Vehicles Schedules / Changeovers
  16. Just a tip from briefly reading your description: You will want to look at some of the SimBits around entities getting transported by transporters. In general I advise just looking at each SimBit as regardless of name, there are some interesting concepts/techniques that will apply regardless of the scenario you are trying to simulate. I will dig out the SimBit names when my model stops running. =P
  17. Hadn't seen the above happen before. It would be nice if there was a way to view this in real-time, and also expose it via the API. Was this a new feature, or is there some condition for it to display? It doesn't seem to update.
  18. There are always significant issues with states and inheritance. Namely that you can't change them, which means that you can't reference them either then in your top level model. You have to override entire processes just to make the references to your state variables valid.
  19. Hard to pinpoint, but it occurs more frequently for me when the interface needs to redraw a long line... i.e. moving a block from one chain to another (within same process).
  20. I think the more pertinent question is what backup files are actually meant to do. I have found that when ever my model corrupts, the backup is _usually_ useless too. Why would you want to disable them anyway?
  21. Thanks for the offer, but the routing has to be decided by entities in my case.
  22. I was using entities to seize transporters as they entered servers, I then abstracted these chains of servers into sub-models, and then sub-models of these sub-models such that I could re-arrange and order these chains easily, and so I could have 12 or so of these long chains encapsulated in single objects that sit in the top level model where the transporters and entities start. When the entity enters one of these servers, it is added into the allocation queue for the transporter (I might be referring to the token... but for all intents and purpose it is the entity as these tokens are cr
  23. I don't think I solved this one. I think I worked around it by making better logic to ensure that sure I didn't get into dead-locks in the first place. It is kind of awkward to do a looping find and remove on the AllocationQueue over many transporters before every seize in the model just to try and keep synchronicity between different levels of nested models that can't directly see each other. The downside with messing with the allocation queue (by either removing or only seizing when conditions are ideal), is that you can't generate any kind of Gantt chart to see what is SPECIFICAL
×
×
  • Create New...