Jump to content

Leaderboard

Popular Content

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

  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. 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.
    3 points
  4. 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
  5. 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
  6. 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
  7. 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
  8. 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
  9. Pls refer to below paper for integrating simio and M/L algorithms. very good read. SIMIO和机器学习算法的整合框架【AI】Aston大学Andrew Greasley博士.pdf
    2 points
  10. 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
  11. 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
  12. 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
  13. 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
  14. 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
  15. Thank you .. this is amazing stuff. By the way, is it possible to import and export Process step as well?
    2 points
  16. Is there an example or a SimBit which shows how to do this?
    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. Hello, I have a simulation model where each server has a task sequence. For some of the tasks, a worker is seized. However, when the workers go off-shift, the entity is left in the server until a worker goes on-shift the following day. I need the workers to stay until all entities are out of the servers each day. I already have the off-shift rule for each task as "Finish Work Already Started". I also cannot reserve the worker because the worker needs to be free to do other tasks when they are not seized by that entity. Any advice would be appreciated, thank you!
    1 point
  19. Hi Annika, First, you will need to set up a data table where you are auto-creating the objects. I would recommend subclassing the Server into MyServer like you mentioned. In the data table, add an Object Instance Property column and set Object Type to 'MyServer' and Default Value Instantiation to 'AutoCreateInstance'. Then add two Node Instance Property columns, one that you can list the destination Node and the other where you list the Output Node of the auto-created MyServer. Ensure you set Auto-set Table Row Reference on the column where you list the Output Node of the auto-created MyServer to 'True'. Then on the MyServer, set Entity Destination Type to 'Specific' and Node Name to 'TableName.NodeInstancePropertyName'. You can then right click on the MyServer and select 'Update 'MyServer' Property Defaults From This'. You can then add more MyServers into the data table where you are auto-creating them and they will all route the entities to the correct next Node. Caleb
    1 point
  20. Here is a simple utility that will export, import and delete artifacts of your model. Here is a screen shot of the available capabilities. The code and DLL have can be found on SImio GitHub. Please find at this link: https://github.com/SimioLLC/ExportImportModelAddIn You will also find install instructions in the ReadMe. Here are the changes that have happend over time: Updated 2023-01-31....Added the ability to select multiple tables for export and delete table data functions. Updated 2022-10-05....Updated the exports to sort the data first my name and then export. This ensures that the data exported is in a consistent order. Updated 2021-12-07....Added the ability to select a table and then remove the data from the selected table. If a table name is not selected, all the tables in the model will have their data removed. Updated 2021-09-20....Added Update Model Properties (CSV). With this new method, you can import model properties into your model. If the file contains 3 fields...First is name, then type and last is default value. The only valid types are real, datetime, Boolean and everything else is string. If the model property already exists, it will only update the default value on the property. Note: The example assumes the field separator is a caret '^'. To change this, you need to change the delimiter field. Updated 2021-09-08....Updated the sequence of the exports, deletes and imports happen. When OK is pressed, first the exports are run, then deletes and finally the imports. With this change, I am able to Export Table to DB, Delete Table Data and Import Table from DB from in a single run. I typically do this when re-mapping auto creates elements. Since the table data need to be removed and recreated before mapping of the elements are correctly mapped. Updated 2021-09-06....Upgraded to .NET 4.7.2. Also, fixed the windows form so it displays correctly. When opened, the form should no longer need to be expanded to see all the options. Updated 2018-11-08....Added Export To CSV, Export To DB and Import From DB. Export To DB will create a table in the SQL Server database with the same table name as the table in Simio. The data columns will be of type nvarchar(max) and the default value will be the same as the default value in the Simio table. It is assumed that Simio desktop will still do the data validation, not the database. This feature is used to save the Simio data into a database so it is backed up and can be shared across users. Each time the Export To DB, if the table already exists, it is dropped, and a new table is created. This ensures that the data schemas match between the Simio model and the SQL Server database. Updated 2017-12-05....Fixed index issue with links import. Updated 2017-09-25....Fixed the import of lists. Updated 2017-07-14....Added the ability to auto generate and auto read files. Previously, the files needed to be created prior to running the add-in. Now, they will create by the export. Also, the import will retrieve the same file generated by the export. These options are available when the "Auto Generate and Read Files" option is selected. Updated 2017-07-13....Added the ability to multi-select options. Now, more than one option can be initiated when the OK button is selected. This will streamline the process of exporting, deleting and importing. This tool is very helpful for testing out your model with various configurations to ensure that runs properly under various object and/or data configuration. Updated 2017-07-11....Now supports exporting and importing of model properties, exporting and importing of table properties and delete table data. Updated 2017-06-22....Now supports exporting and importing of data tables using XML. This is simple way to export all the table data from one model and import the same data into a new model (assuming that the same tables schema exists in the new model). Updated 2017-01-27....Now supports exporting of object types using XML. This can be used with the new Configure Scheduling Resources in Simio 9.150 capabilities to define your own object type properties based on an XML document. Updated 2017-01-23....Now supports exporting and importing objects using XML. When using XML, property units are also exported and imported back in. Updated 2016-10-24....Updated files...Added support for repeating properties.
    1 point
  21. You can use Unbatch and match condition. thanks! Unbatch one entity.spfx
    1 point
  22. Check the SimBit project called "Neural Networks" for a detailed example of this new feature.
    1 point
  23. Thanks to you both. Anyway, the approach that I understood the most, it was Mauricio's and I found it really useful.
    1 point
  24. Hello Mauricio, Your model is a good approach but it is incomplete because I explained myself a little wrong: What I really meant was that the server the entity came from should not start its processing time. Anyway, thanks for the effort. In case anyone is wondering a similar question, I attach the solution i came up with in a even more complex version. block.spfx
    1 point
  25. try simproj format , read it in user manual...basically xml stuff..
    1 point
  26. Today, I found this topic talks about updating data in real-time when simulation is running. I thought it could be useful for me in the future so I decided to try it myself. But, when I used the Read/ExcelRead Step, I found it only "read" the external file at the first time: It seems the Read Step creates a copy of the external file at the first read and then it will use the copy for the future reads within the simulation. For example, at the start of my simulation, I used a button to call ExcelRead Step to read a excel file. Then, I manually changed some values in the excel file and I called the ExcelRead Step again. However, the second ExcelRead Step didn't read the changed values.If I want to use the changed values, I need to restart the simulation. For the Write/ExcelWrite Step, only when I stop the simulation, the external file will be updated. If I don't stop the simulation, no matter how many times I call Write/ExcelWrite Step, the external file is not changed. Are these kinds of behavior bugs? Because from the above topic, I think the Read and Write step can update the external file within the simulation. My Simio version is 12.207.20659. Thanks to everyone in advance!
    1 point
  27. Heidy, maybe you can do it using 2 timers. The first one for the starting time and the second one for the 3 hrs period. You can also use the first timer and a Delay step of 3hrs, then a Fire step. Rds
    1 point
  28. To the best of my knowlegde every process can be enable or disable by using ProcessName.Enabled. You can assign this state variable true at the beginning of the three hour period (not a must but probabily using a timer element) and false at the and of the three hour period. I hope it works?
    1 point
  29. You can use seperate servers (each has 1 capacity) each represents individual firms. Create entities (raw products) via a data table where you should also include one column (a node property from object reference property) to represent where the created entity will be processed (as its destination). Then at the output node of the source object set entity destination type property to specific. Then set node name to Table1.NodeInstanceProperty1. The entities will be routed appropriately.
    1 point
  30. Hi Alb, What I would suggest is for you to use process logic to create your order entities rather than a source. The Create process step can be used to create entities just like a source, and you can put in logic that looks up the percentages. I would also suggest you use timers or perhaps a source to just create trigger entities that tells your model when to fire events (perform logic). For example, in your above case, perhaps have a source that creates an entity at 7pm, 7:30pm, and 8pm. These entities then trigger the process to be executed that decides the percentage of entities to be created at each time.
    1 point
  31. Is it possible to run stored procedures directly from simio? I have seen that there is the DbExecute step that I can use to run an SQL-statement. Is there something similar for stored procedures?
    1 point
  32. No, it seems your add-on process is working correctly. How do you transfer the entities to the sink? It seems there is not time advancement between creation and disposing the entities.
    1 point
  33. place a delay step with a constant time (for example 5 minutes) in the same add-on process and examine the results?
    1 point
  34. Have you tried State == Nothing ? You could also create a decoy object and assign it on run innitialized.
    1 point
  35. 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
    1 point
  36. Actually I want to include input parameters in there as well.... Thought about writing some process logic to read through a table on run initialized, but I can't use a state for the rows to specifically look at for the starting/ending index for table value input parameters.
    1 point
  37. 1) You can find what the save index value means by trial and error. Assign this value to a state variable and place a breakpoint onto the search step. Then, when simulation stops at that breakpoint check the state variable's value. 2) you can use match conditons sequential by using "&&" and "||" mathematical operators. For example, a) match condition with "&&": candidate.modelentity.color="red"&& candidate.modelentity.timecreated<500. The search step will found a modelentity when the expression written for match condition evaluated to "true". Fot match condition to be "true" both conditions have to be "true" (the value of candidate.modelentity.color="red" must equal to 1 and the value of candidate.modelentity.timecreated<500 must equal to 1). If not then the match condition will be "false". The search step can not found any modelentity. b) match condition with "||": candidate.modelentity.color="red"|| candidate.modelentity.timecreated<500. The search step will found a modelentity when the expression written for match condition evaluated to "true". Fot match condition to be "true" one of the conditions have to be "true" (the value of candidate.modelentity.color="red" must equal to 1 OR the value of candidate.modelentity.timecreated<500 must equal to 1). If not then the match condition will be "false". The search step can not found any modelentity.
    1 point
  38. If the entity is created (similar to the Bicycle Assembly example in Simio) using an arrival table where the arrival time is specified in the table, the entity will automatically be assigned the associated row in that table. To assign a row reference to an entity without such logic, you would have to have the entity enter an add-on process when it is created and then use the SetRow step to assign the entity an associated row in a given table. The GlobalCurrentRowNumber you mention above could be used as the RowNumber assigned for the entity within the SetRow step, provided there were no conflicts with relational tables.
    1 point
  39. Jay, I have attached the revised model. If you examine the model I have followed somewhat different way to achieve your goals. Resource (1).spfx
    1 point
  40. Hello, there! I'm quite new to Simio. I saw "SchedulingDiscretePartProduction" example recently and noticed that there was B2MML data schema which was very impressive. So, What i have wondered is whether the data schema in the example is exactly same as B2MML data schema. Or, are there some changes from original schema? In addition, does anybody know where to get some information about B2MML data schema? Thank you. Jay.
    1 point
  41. until
    Visit us at Booth #29!
    1 point
  42. 1 point
  43. It seems the best way to achieve to what u want is to define three storage elements (called barstorage, gridstorage, sheetstorage) just before the combiner object or combiner node. Whenever an entity is put into any of these storages check the the condition u defined (i.e., exactly 4 bars, 4 grids and 8 sheets are exist in the individiual storage) is valid. If the condition is satisfied remove appropriate number entities (exactly 4 bars, 4 grids and 8 sheets) from appropriate storage by using search and remove step and transfer them to combiner object from standard library (or even combiner node object you get from forum) to combine them all. Else wait for the condition to be met. By this way you are able to collect some extra statistics from storages (averge waiting times and average number of each materials in the storage etc...).
    1 point
  44. Hi J, The following two function might help: StandardWeek.TimeUntilNextValue(TimeNow) - the amount of time before a change in Schedule StandardWeek.TimeOfNextValue(TimeNow) - the duration of the next value in schedule StandardWeek.NextValue(TimeNow) - the next value in the schedule So create a schedule and reference the schedule in your expression builder. Regards, Willem
    1 point
  45. Hi, Can any of these methods be used to write time series data during the simulation run and then at the en of the simulation write it into a database? Thanks, H
    1 point
  46. The standard library vehicle has the option of a loading and unloading time per entity, but it is often difficult to model a situation where a vehicle stops for a specified time (like a bus or train). This object (with an example model) adds a single reference property and a single step to the standard Vehicle to allow you to specify that time. Smple, but convenient. VehicleWithFixedLoadTime.zip Done using Sprint 68
    1 point
×
×
  • Create New...