Jump to content

jdoran

Members
  • Posts

    670
  • Joined

  • Last visited

  • Days Won

    1

Posts posted by jdoran

  1. I haven't done routing using tables, but I have definitely done server based decisions where each server had a row in the table. And things from server properties to parameters used within the server logic were also in the same row. The search step in conjunction with logic that tells you what the parent object you are in is.... works wonders. It is a staple form of modelling for me now. It is far easier to control parameter values from a table, than via the UI.


    As to the usage of the API... as you might guess... the API is not advanced enough to create or even edit models. All of the model development is done via the GUI, and a single experiment is created (with relevant properties to drive it), as experiments can't be created via the API either.


    The API is then solely invoked to change the parameters in the experiment, and run the experiment. The CSVs written out from the experiment are then sucked into the program, and processed and displayed in graphs or available to be spat out into pre-made excel sheets.


    This reduces the requirement of running a model from needing knowledge of excel + simio (quite a bit of knowledge is required here), to solely needing to run the one custom app and understanding what all the parameters you change do (API can't pull out definition descriptions). The custom app obviously uses the Simio API, but at no time requires the user to open the Simio GUI or touch the model directly.


    It won't mean much, but attached are a few screenshots of what kind of data we put in and get out using the custom tool. As you can see, you can add multiple scenarios in, and do the same kind of scenario comparison, and even look at what is happening Gannt chart wise.

    2012-11-13_15-46-58.png.bcfa400b8125bd4e3ce1d1592fbdfc4d.png

    2012-11-13_15-46-38.png.cc17ad4576dd8d522137c2f99b174502.png

    2012-11-13_15-45-17.png.52f2823131970fb75c488119350d4b8c.png

  2. I have not looked too deeply at this specific problem for a while (there may be some obvious gotchas I have forgotten), however... have you looked at the Write step, and the bind excel sheet to table?


    You can bind excel sheets to tables, which will solve the feeding problem, and you can write out to csv files and use macros in the main spreadsheet to suck in that data.


    I have gone off excel sheet DRIVEN models though. The capability within Simio was just not there in making it easier for users. It is painful having to explain to end-users of models that they need to fix the absolute path references to the sheets... and that they must manually import the data into the tables if it caches incorrectly... etc.


    I only use excel for examining the results now, and for the rest I use experiments via the API and a written custom application.

  3. Thanks for clearing it up.


    I did a quick forum search and this was the only relevant post I found.


    I was a bit disappointed in the stance on experiments. I would have thought the ability to run, but not create experiments to be more fair (for Team edition and higher).


    I guess we are either going to have to drop support for experiments in our team models, or buy an express license.

  4. {Updated above}

    Where do Team licenses fit in?


    For the first time I was without my team license, and to my horror discovered that you can't run experiments without a license if your model has anything more than: 16steps or 19objects, or 4models.


    I guess that means you can't distribute a model for "experimentation".

  5. I remember in previous models being able to put a property on a model, in which I could reference a file from a higher level model.


    Is this possible?


    I am looking and can't see a file property.


    I want to be able to write out to a file that is defined in a top level model.


    Attached is a screenshot of the current element property selections. Also attached is a picture from an old model where I had successfully implemented the file element... but it looks weird now.


    I then copied that element into a new model and it works. (Screenshots attached)


    Was this functionality removed, or was I just a genius for one day in figuring out how to do that? :|


    Model attached for reference.


    EDIT: I attached the pictures in wrong order, so look at the pics starting from the bottom, and read the comments.

    2012-10-19_14-59-50.thumb.png.36810274b857260eb53ad5879641f1da.png

    2012-10-19_15-01-59.thumb.png.bdb74bc17d424f3bc47beedf20f8b774.png

    2012-10-19_15-04-39.png.6ed1af1f4c80b8fa45d659574a2fb9a9.png

    2012-10-19_15-09-20.thumb.png.2c838e9b1ce783acf750b96eff640635.png

    test.spfx

  6. I am working on a rather large model, and the starting conditions are rather important. I would like to establish exact start conditions prior to each excursion. For example, if I have 100 servers, I would like a certain number and type of entity in each server once I begin the run. Is it possible to establish this starting condition in some way? I cannot run my way to this condition due to both changes caused by random number generation and the unexplainable complexities that brought us to the current conditions.

    Slightly off topic, but I have never seen a model with a dynamic number of servers. Are you spawning servers on initialisation? And if so, should I assume you are using freespace?


    I make frequent use of dynamic entities and vehicles in freespace, but have never had much luck in terms of servers etc.

  7. This is something I have heard others talk about, but never actually got working for myself.


    Is it possible to reference a file with a dynamic name? I want to write out to a csv file during simulation runs, but the write originates from a submodel. This means that it is called multiple times, meaning that only one of my sub models actually gets to write.


    What is the easiest way to over come this? And yes, the write must originate from the sub-model.

  8. In my instance, I have a list state of about 30states (last I checked). So this if statement is quite hefty, and a pain to update across all instances of the label.

    While an If like Dan suggested but with 30 clauses would certainly be tedious to create, I think you could do it once in a Function, perhaps named StringState that returns the string. Then in all of your objects you simply reference StringState.

    That's a good work around. I had forgotten about functions in this kind of situation.

  9. That function does not currently exist. I have added it to our backlog, It should not be very difficult to implement.


    Right now you can use Vehicle1[X].ResourceState (Where Vehicle1 is just an example vehicle name, and X signifies the population member) - or just 'ResourceState' if you are attaching the status label - but this returns the numerical value of the Resource State...for example 0 means Idle, 1 means Busy, etc.


    You can manually convert these numeric values to words using an If statements similar to:


    Math.If(ResourceState == 0, "Idle", ResourceState == 7, "Transporting", " Busy") <-In an attached label.



    Thanks,

    I was afraid you would say that. Thanks anyway though. Looking forward to that feature.


    In my instance, I have a list state of about 30states (last I checked). So this if statement is quite hefty, and a pain to update across all instances of the label.

  10. I just want to make a label that outputs a list string, given a list state number. Similar to the Busy, Transporting, Failed list state types objects have.


    E.G. Have a label over a vehicle, that says "Transporting" while it is moving, "Failed" when it has failed... etc.


    The only way I can see how to do it, would be to make my own table, and do a search in it using the resource state number.


    Will post back if I find it before someone else posts.

  11. If you want to collaborate on a library of objects, then I would recommend some source control system (like svn). If you decide to use source control, I would suggest saving in the .simproj format, since this will give you the raw xml file and the data files which make it deasy to revision and see changes made in source control.

     

    Just a word of warning using .simproj (or .xml) files with SVN: if there is a conflict you cannot use the merge capabilities of SVN because the Simio hash will no longer match. Simio will not open the "resolved" file. This limits the usefulness of version control particularly in an environment with multiple developers (or, in my case, an inexperienced SVN user :) )


    Perhaps another reason to allow licensed users the ability to edit/load xml files?


    Thanks,


    Adam

    Yeah that is a good point. We were aware of it, and somewhat frustrated by it.


    What we were after though is a better way of illustrating the Simio models we make to non-simio users. Hopefully in the form of structural diagrams, or even at a very basic level,: videos, pictures, and flow charts.


    As there doesn't appear to be a good way of doing this, we are writing our own parsing app to do this.

  12. If you have a model that will generate results, you can certainly just put it up there and have various people work on it. However, you would need some sort of exclusive lock mechanism, like an email telling the rest of the group that you are currently working on the model - because we do not provide merge capability between model revisions. I'm not sure if Sharepoint has this sort of notification system though.


    If you want to collaborate on a library of objects, then I would recommend some source control system (like svn). If you decide to use source control, I would suggest saving in the .simproj format, since this will give you the raw xml file and the data files which make it deasy to revision and see changes made in source control.


    Thanks

    From what I have seen of it so far, share point is kind of like a wiki, and has some file versioning capabilities too.


    Thanks for your answer, I will keep u posted on what we eventually do.

  13. This is something I have been meaning to implement for a while, and now have finally decided it needs to be done.


    I have a submodel, and due to the limitations of the software can't transfer it into the submodel and keep the model clean. I followed advice posted here, and have made the submodel seize the worker and send it to a node in the higher level model... while the submodel is in progress.


    Is there a nice efficient way to have the worker/vehicle (vehicles are the new worker in terms of having all the functionality i require) able to interrupt the submodel and either remember where it was up to and return after break... or allow another seize request for a different worker, and have that worker continue where it was left off?

  14. Jdoran, I have the same love-and-hate feeling towards Simio, I get a lot of user feeback from chinese community, some comments are really disappointing and let many people doubt simio’s capabilities.

    Many guys like you had quite bad experience starting using Simio, they don’t think Simio is so easy to grasp,not so intuitive and have many obstacles to solve the “unreasonable” demands,

    Lots of people tell me that tools like flexsim, automod, or even Plant Simulation rules( being the mostly used tool in china,especially academic worlds., that Simio is too crude..

    But after two years of learning and modeling, I really begin to find the real value of a object-oriented process-driven tool like simio, it’s really efficient and the power is only limited to your imagination,

    But during modeling, I do bump into many unpleasant experiences like yours, ex.bugs, strange crash, slow opening and execution of large models. But thanks to god and thanks to SIMIO TEAMs,

    They input a lot of effort into customer feedback and I have confidence ,in a few years , I will proudly say, Simio RULES now 


    The good thing of being a reseller is that I can get a great deal of request and feedback for simio to grow..!

    Ah good to hear. A lot of my job revolves around the use of this tool, but I definitely do not envy you for using the tool, during what I can only assume would be its more "rough" stages of development, and having to support multiple users all trying to do weird and wonderful things with the tool... in ways that it probably wasn't intended to be used.


    I can only see Simio getting better in the near future, and look forward to the new features we will see.


    Although I was left a little confused with the release of the Enterprise version. Based off of the release notes, the only things added seem like new features I would expect to see in the Team version. If I got my hands on it, I want to take it out for a test drive. :mrgreen:

  15. Today I had to do a quick and dirty model in Arena. I just thought I would take this opportunity to do a quick post on my findings. By no means is this a comprehensive analysis of the two tools, but I just felt like sharing my opinion of the two.


    Being the predecessor to Simio, it is natural to compare the two tools, and even after using Arena for the short amount of time I did... the differences were astounding.


    I will admit that Simio was my first immersion into the world of using corporate modelling tools. It was a tough journey to get to the stage where I felt comfortable using Simio, but looking back... I wonder how I got by using the archaic tools I did. The learning curve to Simio was extremely steep (in my humble opinion that is), and I still don't believe I am anywhere near utilizing 100% of Simio's capabilities. That being said... Simio is a relatively new tool and is still under active development.


    After launching Arena for the first time, the first thing that struck me was how bland/simple it was. Putting that to one side, I was impressed with how intuitive it was to use. This may be a side effect of using Simio, but barring my inability to find the Connect button for linking the objects together, I simply dragged objects into the process view and linked them up. The objects all had names that made sense (workstation... server... what were you guys thinking? >_>), and ignoring the fact that most of the symbols looked like they were drawn by pre-schoolers... the process of getting a simple model running was child's play. Within 5minutes I had my first working model. (I can tell you that it took a lot longer than that for my first Simio experience)


    One of the features I would love to see the most in Simio... AVI export. It was right there, and it was easy. Come on Simio!


    After placing multiples of an object, there was a table at the bottom of the screen with every other object of the same type, allowing you to quickly locate and edit properties of said objects... Simio... adding something like this would immeasurably improve productivity (mine atleast) and increase my levels of sanity after working with large models.


    Another point to note was that Arena felt very responsive, and while this normally would not be an achievement for a piece of software... Arena did not crash or give cryptic errors. (Simio crashed multiple times during my first 30minute experience with it... and I didn't even know how to do anything more advanced with it at that stage).


    The last point to make in this section of the post, is how human readable the reports were. My eyes were not assaulted with a million numbers. You could argue this is a bad thing or a good thing, but at the end of the day, some of these reports matched what I typically look for in Simio, and have to waste time trying to get. They were also laid out clearly and concisely.


    I am sure Arena has a fairly similar learning curve to Simio once you get to the more advanced stuff, but I have got to say that Arena definitly has the edge of many years of polish and tweaking.


    I am not here though to plug Arena. Let's get to the meat of this post now. The things I saw in my short time using Arena in comparison to Simio, that Simio did better. Even though I feel Simio has a lot more work to do on getting their product to the kind of a level Arena sits at (polish and usability) in terms of: aesthetics, power, time-savings (gained from re-usability of objects in Simio, instead of hard coded processes in Arena), feature base, and on-going development... Simio wins hands down.


    The benefits of object based models in comparison to process based models are imeasureable, and while some of the more basic features you would expect (or take for granted) in a modelling tool are lacking or missing in Simio, a lot of thought and has gone into the development of this tool. You can really see how Simio is the next generation of tool.


    I guess the point I am really trying to convey is, Simio rocks. It may be buggy as hell, it may not have every bell and whistle to satisfy my unreasonable demands, and it may not be as smooth or intuitive as Arena, but it is actively developed and a lot of love and care went into its development. I dare say that given time and a bigger/more active community, Simio will truly come into its own.


    The Arena community may be larger, but it does not appear as if Arena itself is evolving to meet the ever changing demands of the market. I guess it won't be long until the remaining Arena modellers move on and embrace newer technologies like Simio.



    Sorry for the long post.

    TLDR: Keep up the good work guys!

×
×
  • Create New...