Jump to content

Leaderboard

Popular Content

Showing content with the highest reputation since 07/01/2018 in Posts

  1. Thanks for visiting our Simio User's Forum. This forum has been created to: 1) Share information about Simio, 2) Provide a way for users to communicate with each other and with us, and 3) Provide a mechanism for us to to hear your ideas so we can make the best product possible. Guests If you are Guest (visiting without having registered), you are welcome to browse all our public forums, but we request that you first join our Simio Insiders group before you view the private areas or can post on any areas. Simio Insiders I encourage you to become more involved as a Simio Insider. Insiders will have full access to browse and post in an extended set of forums available just for you. You will find more information on this in Forum & Insiders | Simio. There is one more category of membership that is a little harder to achieve. Simio Team Members (employees) are identified as such when we post so you know that we are providing the straight scoop. (This is not to imply by any means that we are always right ) Finally, if you have any other questions about how the forum works, I encourage you to consult the "FAQ" item from the main Forums menu (top center). Again, welcome to the forum. I am always anxious to hear your feedback (positive or negative) and any ideas on how we can improve this forum or our products. Email me anytime using dsturrock at simio.com
    5 points
  2. A demo model on how to create sub-classed object with moving part, collect stats and show on dashboard. Have fun! ParkingEntryAndExitBoomGates.spfx
    3 points
  3. Hello, I am trying to use git to track changes when working on Simio projects collaboratively. For this I am saving the project as *.simproj and the resulting file and folder structure looks good. But there are too many time stamp changes that make it difficult to track the "important" changes. For example, I only changed the location of the DefaultEntity in the model and hit save. The resulting changes are shown in the attached screenshot, with 20 files shown as changed. The main changes are related to the time stamp. Is there a way to configure Simio such that fewer files will be affected by each change? Thank you. Annika
    2 points
  4. Hi Annika, Check out the Support Source Control option in the Project Properties. (Right click the project in the Navigation Window to access Project Properties)
    2 points
  5. Simio’s neural network implementation allows the import and export of ONNX files, which ensure that Simio is compatible with many machine learning frameworks. This format is well-documented, and there are many third-party packages and applications that can help you convert machine learning models to/from ONNX, or to open and view ONNX files. The attached document provides a basic summary for several of these packages, including tensorflow-onnx, onnx2pytorch, and Netron. Please note that none of these packages are affiliated with Simio, so any issues or limitations of these packages can be discussed on the package’s GitHub page. ONNX Format Utilities.pdf
    2 points
  6. People often want to model two or more vehicles or entities moving together. There are a few components to this: 1) Seizing the resource appropriately - can be done in processes, but often best done within the vehicle object to make the modeling easier. Here, a vehicle has 4 properties added to support use of an operator. 2) Animating them moving together - the picture below shows use of a second queue animated on the custom vehicle. 3) In some cases, you also need the "driver" to be shown moving. The Attached Animation Speed illustrated below, accomplishes that. I have attached a model that uses a custom vehicle object to model a wheelchair which is "driven" (pushed) by a person to pick up a patient. *********** FOR VERSION 190 AND EARLIER ************************************* VehicleWithDriver.spfx You could use the same approch, possibly with just animation changes, to model something like a truck or forklift that requires a driver. In fact, I just added a second model to that same project that illustrates use in manufacturing (e.g. a lift truck and driver).VehicleWithDriver.spfx VehicleWithDriver.spfx *********************************************************************************** ************** FOR VERSION 191 AND LATER *********************************** VehicleX3.spfx VehicleWithDriver_VehicleX3_Examples.spfx For more information on the update, see the post below. ***********************************************************************************
    2 points
  7. This post contains additional files associated with the paper "Agent-base modeling and simulation in Simio" by Thomas Kehl. The additional files include the original paper, an installer for the Simio Agent Library, the Simio Agent Library user extension, and further documentation. These files were created by Thomas Kehl and are not endorsed or supported by Simio LLC. Note also that these files were published with the paper in 2018 and might be out of date. 1585821475_SimioAgentBasedModeling-ThomasKehl.zip
    2 points
  8. Pls refer to below paper for integrating simio and M/L algorithms. very good read. SIMIO和机器学习算法的整合框架【AI】Aston大学Andrew Greasley博士.pdf
    2 points
  9. Entities are prioritized in server according to the server Ranking Rule. Check my attached model. I set Entity1 priority to 1, Entity2 priority to 2 and told the server to prioritize the ModelEntity with the highest priority value. You can play with that logic to prioritize everything the way you want. entity priority.spfx
    2 points
  10. Hi jord41, Simio loads the bound tables once during the initialization in the Simio tables. Data access requires a lot of computing time. (More for writing as reading). I see that you only have 1 column of integer values. My recommendation is that you do not import the table into a Simio table. It's best to create an integer or real state of type vector. Then you use e.g. the Read-Step or the ExcelRead-Step. In conjunction with a timer or the sample example loop of GFurtado you can load the data at intervals. I think that this could be a solution. At least that's how I would do it if I had to work with real-time data. Normally, such real-time data is written to a SQL database by a PLC or something like that. Then you can use the SQL steps anytime in Simio. Best regards Pascal
    2 points
  11. At some point I would start looking for a SCADA system, write it in Python or anything outside Simio. A Simio Engineer would be better suited to help you, but I still believe you could build this inside Simio (maybe through an API?). I manage to build a very ugly version of this that kinda works. It's not real real-time, because I still need to click on the manual import button (I don't know how to help you with this). I set my source's Arrival Mode to On Event; Create a process with a Decide step that checks if the table received a new value: If it received a new value, trigger SourceEvent; If it didn't, check again a second later. As I said, it's not very elegant, but I hope it inspires you to find the right solution.
    2 points
  12. Hi all, I met some questions in building the model. It seems a very general quesiton but I didn't find any solution from internet... I'm building a general workflow model. I want to decide the quantity of a server to optimize the workflow. I want to use experiments or optquest to get the 'best' number for each server. If I set the capacity type as Fixed, then I can set the initial capacity as ''referenced property'', then I can use this as control in experiments/optquest. However, I have a work schedule for each server now which means I couldn't set the capacity type as Fixed. And then I couldn't set capacity as ''referenced property''. I don't know how to control this capacity in my experiments/optquest. I know I can change the 'value'(which means the capacity) in workschedule table. But I can not change this number flexible in experiments... Or I don't know how to set this value as ''referenced property'' . Is there anyone who could help me with this? Thanks a lot!
    2 points
  13. We have an opportunity for an intermediate to advanced modeller to join us for both a Simio and Operational related role. Relocation to Australia/New Zealand is a prerequisite with Visa sponsorship provided. Please note that a minimum contract duration will be in play. Should you be interested, please pm me, or send your resume with contact details to mark@masterschedulingsolutions.com All conversations will be treated as confidential. Mark
    2 points
  14. Thank you .. this is amazing stuff. By the way, is it possible to import and export Process step as well?
    2 points
  15. Is there an example or a SimBit which shows how to do this?
    2 points
  16. We would like to let everyone join Simio Insiders, but since some of the topics discuss unreleased competitive advantages, you must first agree that you won't "borrow" Simio ideas and share them with our competitors. If you can agree to that then please request membership in Simio Insiders at our signup page. Note that free emails such as hotmail and yahoo may not be accepted. We will contact you when your request to join Simio Insiders is approved. Welcome to the group.
    2 points
  17. Simio is a simulation modeling framework based on intelligent objects. The intelligent objects are built by modelers and then may be reused in multiple modeling projects. Objects can be stored in libraries and easily shared. A beginning modeler may prefer to use pre-built objects from libraries; however the system is designed to make it easy for even beginning modelers to build their own intelligent objects for use in building hierarchical models. An object might be a machine, robot, airplane, customer, doctor, tank, bus, ship, or any other thing that you might encounter in your system. A model is built by combining objects that represent the physical components of the system. A Simio model looks like the real system. The model logic and animation is built as a single step. An object may be animated to reflect the changing state of the object. For example a forklift truck raises and lowers its lift, a robot opens and closes its gripper, and a battle tank turns its turret. The animated model provides a moving picture of the system in operation. Objects are built using the concepts of object orientation. However unlike other object oriented simulation systems, the process of building an object is very simple and completely graphical. There is no need to write programming code to create new objects. The activity of building an object in Simio is identical to the activity of building a model – in fact there is no difference between an object and a model. This concept is referred to as the equivalence principle and is central to the design of Simio. Whenever you build a model it is by definition an object that can be instantiated into another model. For example, if you combine two machines and a robot into a model of a work cell, the work cell model is itself an object that can then be instantiated any number of times into other models. The work cell is an object just like the machines and robot are objects. In Simio there is no way to separate the idea of building a model from the concept of building an object. Every model that is built in Simio is automatically a building block that can be used in building higher level models.
    2 points
  18. You are not able to use an index to return an item in a List. I would suggest using a Table instead of a List
    1 point
  19. Hi! Yes, there is a way. What you could do is use a String.Format expression. This way you can show multiple variables on the dynamic text. On your case something like: String.Format("{0}: {1} {2}{3}: {4}", "Material Costs", MyModelEntity.MaterialCosts, String.NewLine, "ProductionCosts", MyModelEntity.ProductionCosts) should work. As a plus, you could use a state to disable/enable these labels with a button and a process. Something like: Math.If(EnableTxT, String.Format("{0}: {1} {2}{3}: {4}", "State1", ModelEntity.State1, String.NewLine, "State2", ModelEntity.State2), "")
    1 point
  20. Hi, What you could do is set up another column with the weights (likelihood) of creating each entity type... so you can set up probabilities any way you want it. Look SelectEntityTypeFromTable - SimBit to learn how to do it.
    1 point
  21. Good to know Simio has embeded ANN in new sprint
    1 point
  22. Please find the solution. CreateEntities.spfx
    1 point
  23. Please note that space is limited, click the link below soon to register: MORE INFO AND REGISTRATION
    1 point
  24. yes, it works if the sink objects are in the course of these customer entities.
    1 point
  25. To answer your question specifically with regards to the MultiEchelonSupplyChain example, the OnReplenishOrder process that you see in the process logic of the data table driven example is automatically executed by the Inventory elements when the inventory detects the need to replenish. Go to Definitions -> Elements and click on the Inventory elements and you will see where that process is being referenced. The ShippingReceivingLogic process is being executed when an entity enters any of the BasicNodes placed in the Facility View. For example, click on the DistributionCenter node and in the Add-On Processes -> Entered property you will see the name of that process befiling referenced. The TryFulfillOrder process is executed by the OnCustomerOrder process using an Execute step, which is in term triggered by a customer order arrival. Note that If you are trying to figure out where the name of a process is being referenced, you might go to Project Home in the ribbon UI and go to the Search window. And then search for the name of the process in the model, and it will show you the locations where it is being referenced.
    1 point
  26. This option was released on Sprint 191 on June.
    1 point
  27. Hi George, thank you for your response! If you have a other question. You are welcome :-)! Have a great day too! Best regards Pascal
    1 point
  28. Updating the data mid-run isn't a good simulation practice, unless you're building some gimmicky application. But I manage to work this out with this little guy in the Table Ribbon. Have you tried it yet?
    1 point
  29. If you right-click on the Standard Library you'll see a Show Deprecated Objects option. The Workstation should appear in your library after that, but you could try to solve this using servers instead as a bonus challenge.
    1 point
  30. A sample is attached. Time In System.spfx
    1 point
  31. Kindly check the attached model for how to search the lowest value , kindly note the lowest value maybe more than 1, so I first search out the lowest value and check again if there is many copies of the lowest value..... all the best! →→→→❤ Model_totalRollContainer_JZ(2).spfx
    1 point
  32. You can predetermine the length of a timeslot then the number of timeslots. By multiplying length of the timeslot with the number of timeslots you can calculate the total simulation time. At the beginning of each timeslot you can trigger a process by using a timer element for performing any task within that timeslot. Note that, you should set the iterval lenth of the timer element to the legth of each timeslot.
    1 point
  33. Because we assign the speed of path 3 and 5 to PathXXX.Contents.NumberWaiting at assign3 step of process 1 which is triggered whenever an entity enters node A. As I said in my previous post this expression may not serve your purposes. This is only for illustrative purposes. Here the message is you can increase all existing entities' speed (but all of them at the same time) on path 3 and path 5 whenever the process1 is triggered. Also, you can trigger process 1 by using monitor elements (which seems more suitable for your purposes). For example, using a monitor element you can track the number of entities on each path seperately and whenever this value crosses some treshold value (got congested) you can trigger process1 using monitor element. Note that in your attached model status labels shows how many enitities exist on each path. At the end, change the assignment expression of assign3 step of process1 accordingly.
    1 point
  34. That does provide a limited fix if I were to subclass everything in the Standard Library and only use those. However if I ever wanted to subclass the "ModelObjectImperial" or any of those "[StandardLibraryObject]Imperial" those subclasses revert back to metric.
    1 point
  35. why do you use source? In Workstation 1_exited step you can just increase the currentrownumber by one using an assign step and use a create step just after this assign step, set its properties using any table (and also currentrownumber state variable). and transfer this entity to the appropriate place. you do not need to use source step?
    1 point
  36. a! You may refer to Simbits ‘serverusingtasksequcencewithdatatables_sequencedenpendentSetups
    1 point
  37. If you only assign the four entities ,it's easy. you can use a statevariable as a counter and use Decide to check the 1st one, the 2nd one, etc..
    1 point
  38. I have taken a glance at your model. At first look your timer element needs to be revised and you should not change the capacity a resource via a user-defined state variable. Use resource.currentcapacity state variable. I have revised your model and it looks like working. Due to having no more time I could not deeply analysed. see attached file. Resource.spfx
    1 point
  39. I have changed the logic of the server 2's add-on process you included and add an additional search condition to output@server1. Also, delete all others. It seems it works like you want. see how it is? if there are any other issues do not hesitate to ask further pls. RoutingProblem_Myway.spfx
    1 point
  40. I think "TheCombinersName.MemberInputBuffer.Contents.AverageTimeWaiting" is the expression you are looking for. -Adam
    1 point
  41. So I see what you are trying to achieve, and your approach can be moddelled yet you will need to really know what you are doing if you want to start transferring entities in and out of queue's, as well as adjusting capacity of vehicles to circumvent default routing logic. Alternatively, I would set the Retailer capacities back to one and treat an entity as a shipment from the warehouse to a retailer. I would also look at add a material element to the transporter and each server and utilize Simio's produce and consume functionality to drive variation in supply and demand. This will allow you to utilize the base functionality of the transporters, without dabbling in capacitative resource allocation, unless you fully understand the intricacies of the inner workings of a transporter. Task Sequences embedded within the servers should allow you to easily accomplish your objective (basis production and consumption of material), without needing to utilize process logic and corresponding Produce and Consume Blocks. Hope this Helps.
    1 point
  42. I think 2 more entities (at ridestation of vehicle) for server 1 forces vehicle to wait at server 1. Because they have nowhere to go or wait ? Increasing the capacities of inputbuffers of both servers should solve this problem? if this option is not possible for your problem setting then you have to know how many entities to send from source to servers exactly? or think about many other solutions...
    1 point
  43. You need to search the queue when the server goes off shift (Search Block_Queue), and Transfer the Students back to the Decision making node (Transfer Block -> Make Sure its the last block in the process). That is the easiest fix, other than setting the input buffers to zero.
    1 point
  44. 1 point
  45. You were close, but resources and vehicles all use ResourceState to track their status and that function is referenced by the generic expression: ResourceName.ResourceState.AverageTime(stateValue). You can find the numeric value of StateValue in help if you search on the topic ListStates or ResourceState. In your case the expression might be: Vehicle1[1].ResourceState.AverageTime(7) for Transporterting
    1 point
  46. Hi, The conversion of Distributions to the correct Simio format has been an issue for me for a while, thus I created this macro to convert from @Risk distributions to simio format distributions. I hope that more will share there conversion methods from other software. Regards, Willem DistributionsSimioTo@Risk.xlsm
    1 point
  47. Simio LLC is a private company headquartered just outside Pittsburgh Pennsylvania dedicated to delivering leading edge solutions for the design, analysis, and scheduling of complex systems. Our company mission is to lead the industry with a truly innovative family of simulation-based design and scheduling products to improve the productivity of our customers. Simio was founded by a highly experienced team. C. Dennis Pegden, Ph.D., Founder and CEO of Simio LLC, has over 30 years of experience in simulation and scheduling and has been widely recognized as an industry leader. He led in the development of SLAM (marketed by Pritsker and Associates) and then founded Systems Modeling Corporation, now part of Rockwell Automation. Dr. Pegden led the creation of the market-leading simulation products SIMAN® and Arena®, as well as the finite capacity scheduling product Tempo (later renamed RS Scheduler). Many of the same team members who brought you Arena and a long line of industry breakthroughs have now focused their efforts on creating the next generation of simulation tools. This very talented team is bringing to bear an additional 125+ years of combined simulation experience to provide you with the best possible suite of simulation and scheduling tools. Simio has an experienced management team to provide leadership in the day-to-day management of the company. Simio also has an Advisory Board of experienced executives to provide strategic input to long term planning. Simio also has a worldwide network of over 25 very experienced partner companies who supply local sales, training, technical support, and consulting services.
    1 point
  48. A common way to create object definitions in Simio is by combining other objects, for example combining machines and a robot to define a work cell object. This type of object is called a composed object because we create this object by combining two or more component objects. This object building approach is fully hierarchical, i.e. a composed object can be used as a component object in building higher level objects. A second, more basic method for creating objects in Simio is by defining the logical processes that alter their state in response to events. For example, a machine object might be built by defining the processes that alter the machine state as events occur such as part arrival, tool breakdown, etc. This type of modeling is similar to the process modeling done in traditional modeling systems in use today such as Arena or GPSS. An object that is defined by describing its native processes is called a base object. A base object can in turn be used as a component object for building higher level objects. The final method for building objects in Simio is based on the concept of inheritance. In this case we create an object from an existing object by overriding (i.e. replacing) one or more processes within the object, or adding additional processes to extend its behavior. In other words we start with an object that is almost what we want, and then we modify and extend it as necessary to make it serve our own purpose. For example we might build a specialized drill object from a generalized machine object by adding additional processes to handle the failure and replacement of the drill bit. An object that is built in this way is referred to as a derived object because it is sub-classed from an existing object. Regardless which method is used to create an object, once created it is used in exactly the same way. An object can be instantiated any number of times into a model. You simply select the object of interest and place it (instantiate it) into your model.
    1 point
×
×
  • Create New...