Jump to content

Search the Community

Showing results for 'user defined statistics'.

  • Search By Tags

    Type tags separated by commas.
  • Search By Author

Content Type


Forums

  • Simio Public Forums
    • Welcome and How To Become a Simio Insider
    • Simio News and Announcements
    • Simio Product Details
    • Simio-Related Positions Desired or Positions Available
    • Help Getting Started with Simio
  • Forums for Simio Insiders Only (See Public Forums Welcome topic to sign up)
    • SI General Discussions
    • SI Sprint Releases
    • SI Shared Items
    • SI Ideas and Suggestions
    • SI Known Issues and Workarounds
    • SI Performance Tips
    • SI Non-US Cultures
    • SI Student Competition
    • SI Educational
    • SI Libraries and Objects
    • SI Animation and Visualization
    • SI Distributions, Functions, and Expressions
    • SI Simio Tabs
    • SI Experimentation and Optimization
    • SI Functional Approaches
    • SI Industries / Domains
    • SI Types of Simulation
    • SI Emulation
    • SI API

Categories

  • Files
    • Academic Information
    • Product Information
    • Case Studies

Find results in...

Find results that contain...


Date Created

  • Start

    End


Last Updated

  • Start

    End


Filter by number of...

Joined

  • Start

    End


Group


About Me


First Name


Last Name


Company/University Name


OCCUPATION


ICQ


WEBSITE


YAHOO


AOL


LOCATION


FACEBOOK


GOOGLEPLUS


SKYPE


TWITTER


YOUTUBE

  1. Hi, I am trying to build an object library for an airport terminal. For this, I build the objects as separate models and place them in a 'sampleairport' model for testing them all together. The 'sampleairport' model contains all the objects, so it has no issue referencing to properties from the placed objects. However the other way around does not seem possible. For example; I want the user to import a standard format flight schedule, which will be uploaded in the 'sampleaiport' model. Now I need to reference this table from the other models, but Simio does not allow me to do this? Is there a way I can reference the table or other properties from models in my other models? Thank you Jason
  2. 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.
  3. try simproj format , read it in user manual...basically xml stuff..
  4. Hi! I'm sea, making some user-defined selection rule. I wonder that what is the exact meaning of "based on entity ID" in your question. is it same as creation sequence, like order date? I know original value expression was "Candidate.Entity.Priority" in the dynamic selection rule. But I'm not sure that is oriented from arrival sequence at specific buffer.
  5. I often see that the recommended place to install UserExtensions (dlls) is in the the user's documents (i.e. C:\Users\\Documents\SimioUserExtensions), but I would just like to point out for network admins that installing it to the Simio installation directory works too, and can save having to copy files on login to user directories. Example path: C:\Program Files (x86)\Simio\UserExtensions
  6. 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
  7. Thank you Adam, It does seem to work. But it is gathering statistics even when it is off-period (lunch break). Is there an easy option to not collect statistics troughout these periods? I have workdayschedule defined in the model, if that helps.
  8. Hi all, This one has been confusing me for a few days now. I'm busy building a large 200+ task process, using Task Sequence. For 95% of the tasks, task predecessors are used, and it works fine. However, some tasks can only start after x days. For example, task 5 requires task 4 to be complete & can only start after 4 days. I've tried looking for a place to put this. Things I've tried: 1. Branch type in Task info, where the condition is: "TimeNow > ModelEntity.TimeCreated + ProcessingTasks.Delay_Days" that checks if the current time is more than the initial start of the task plus the time that it needs to wait. This works, but it just skips these altogether. I'd like the resource to check again the next day the tasks that were skipped. 2. Add in additional resources that only become available after x days, and the tasks seizes this additional resource. However, the tasks are seizing multiple resources (e.g. Finance team, Accounts team, etc., so it's specifically looking at a column I've defined in the task resource table. 3. Creating additional servers to represent these "waiting tasks", however, this looks messy and not sure how it can scale/be modified. Any ideas?
  9. Hi, Janik! Thank you for using the Simio Forum. First, if your logic uses any user-defined state variables, ensure that those state variables have been created in the new model (in ModelEntity > Definitions > States). If your problem persists, you may have copied the ModelEntity (and/or ModelEntity references) from your previous model, which may be the source of your error. In that case, you need to replace any references from the old ModelEntity to the new ModelEntity. You may be interested to know that you can right-click on the model object in the Navigation pane and select Object References > View to see if there are in fact competing ModelEntity definitions. Best, Alex
  10. How do I access a table column by name using a table property defined for the model? In my model, I have multiple data tables each with the same named columns defined for each. Each table has a different number of rows. For a run or a set of replications, I want to select a table to use. I have defined a model-level table property named _SelectedTable to support this. During simulation runs, I want to access this selected table's data by row and column name. Specifically, I want to use this data to update model entity state variables. I also want to stop creating entities when all of the rows of the table have been accessed. I've tried two partial solutions to this problem (attached), but neither are ideal. 1. Create a large set of decide add-on processes to choose the decide the correct table and explicitly reference it by its name. This requires a lot of redundant steps and maintenance if tables are added or removed. The attached example contains just two tables. Controls OptionId and _SelectedTable must be set to either (Option1 and tableOption1) or (Option2 and tableOption2). The first control selects the Entity Type and the second selects the Table. 2. Using the column index number instead of the column name, I found I can use the table property to access the selected table. This method is prone to error if the table schema changes. It is also unclear which table properties, such as "AvailableRowCount" are accessible via this approach. The attached example contains two tables just as the previous. The control _SelectedTable chooses which table from which data is acccessed. In practice, the data tables will be substantially larger than the ones included in the attachments. Looking forward to constructive guidance, Ryan table_selection_by_name.spfx table_selection_by_column_number.spfx
  11. If you are binding a table to SQL Server Express, use the following connection properties If using SQL Server Security, you can specify the server name, database name, user id and password in the fields that are provided. If using Windows security, use a custom connection string. In the connection string, specify the server (e.g. Server=.\SQLExpress), database (e.g. Database=MESDB) and Trusted_Connection=True
  12. An alternate approach is to place a monitor element which looks at the TimeTillDeath State variable. If this reaches zero, within the monitor element you may choose to execute a user defined process named "proc_WhateverYouWantToCallIt". Within this process, I will use the "remove" block if the entity is in a queue, or simply just utilise the "destroy" block. You may have to utilise the aforementioned blocks with a conditional "search" block as to ensure the correct entity is destroyed. Hope this helps.
  13. First define a real state variable to your modelentity named "livingtime" after its creation. Then make a copy of your modelentity and send the copy of modelentity to a process (maybe called as death_process). Place a delay step and set delay time as modelentity.livingtime. Of course the original one should go its way. Then place a search step and find the original modelenity in the system when the time is up at delay step (while finding the original entity you should set a match condition such as candidate.modelentity.ID==modelentity.ID etc. I am not sure whether the ID's of both entities are same, you should try. If it does not work you should try to match creation times of them (both should be same) or any other user defined state variables or properties). If the search is succesful make necessary controls (i.e., if it owned any resource release them etc.) by placing necessary steps following found branch. You should remove and transfer the found modelentity (it is the original one) to appropriate place. At the end you should place a destroy step following the original branch or even transfer it to appriate place. It depends on your goals.
  14. Currently we don't have the options to fast forward or reset through processes. You could try to add your own step (see user defined steps in help) using our API. I'll add this to our list of user suggestions as well. Thanks for the feedback!
  15. 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...).
  16. Entities don't have a facility view , so they can't contain nodes, so they cannot themselves be a destination. --One option is that when the machine fails, have it move to a node to fail, and then have the worker go to that node to work on it. --Another possible approach is to model the machine as a node or a server. As long as there are no links to the node(s), you can use the RelocateObject user defined step to move the object around at runtime. Then you could move the worker through free space to get to the machine's current location.
  17. If you want statistics on that, it (or something similar) is already recorded in the TimeInSystem statistic on the sink. But to get exactly what you asked, in the Entered Add-on Process on the Sink use the Write step found in the User Defined steps. You can write out anything you want about the system and the entity about to be destroyed, to a file of your choice.
  18. Hi! I have so many ModelEntity states defined in my Model and I want to organize this mess. Is there any way I can group them in different categories, just like the categories in user defined processes? Thanks , Zaki
  19. Tally Statistics are more for recording the same numeric expression throughout the simulation. You should use the Write or ExcelWrite steps under User Defined steps in the Processes tab. The Write step write data to a csv file and is usually faster than writing to an Excel file with ExcelWrite. Check out the SimBits Writing To A File and Excel Read Write. You can record numeric and string value. The Date expression should look like 'String.FromDateTime( TimeNow, "MM/dd/yyyy HH:mm:ss")', and then Excel will convert the string to a date if need be. For the Entity ID the expression would be 'ModelEntity.ID' and for the Server name use the expression 'Server.Name'. If you only want to write data in interactive mode and have an Enterprise license, you can use an Output Table. SimBit Using Add Row And Output Table Enterprise
  20. You can change an object position mid-run through the "Relocate Object" User-defined Step. Check this:
  21. It depends on what type of data you are referring to - for example, some statistics, such as time in system for the various entity types, can be found automatically within the pivot grid, under the Object Type of ModelEntity and the various Object Names (Type1, Type2, Type3, Type4). These statistics would include the Number in System, Time in System (Flowtime), Throughput (NumberCreated and NumberDestroyed) - all by type of entity. Additionally, statistics are generated on the Paths (number and flowtimes on links), as well as at Servers and other fixed objects (number processing, number/time in inputbuffers). For more specific entity statistics at various areas within the system, you could use the Write step (under User Defined steps) to write out specific entity data to a file by using this step in the Processes window at any point(s) in the process.
  22. This can be done by calling c# from simio and calling Matlab from c# with Simio API. Details can be found here: https://www.sciencedirect.com/science/article/pii/S1569190X16301356 And here: https://www.simio.com/resources/events/2018-User-Group-Meeting/presentations/API.pdf But another problem is that how do we pause Simio until the MATLAB problem is finished? Any suggestions on this?
  23. Hi Glen, I need your support for an error that I have to manage very often. My company set an automatic backup on One Drive and that is creating problem to load your Add-In. The body of the error is the following: Exception in loading types from 'C:\Users\username\OneDrive \documents\.\SimioUserExtensions\ExportImportModelAddIn.dll', message: 'Could not load file or assembly 'file:///C:\Users\username\OneDrive\documents\SimioUserExtensions\ExportImportModelAddIn.dll' or one of its dependencies. Operation is not supported. (Exception from HRESULT: 0x80131515)' Loading 'C:\Users\username\OneDrive\documents\.\SimioUserExtensions\ExportImportModelAddIn.dll' may have failed because the DLL was copied from another computer and has been blocked by Windows. To unblock it, copy the file to a user writable directory, right click on it and select Properties, on the General tab, click Unblock, then click OK, and then copy it back to your UserExtensions folder if necessary. Off course the file is unblocked, do you have some suggestion to fix it? Simio version is 11.197.19514.0
  24. Hi LizMB, I have a few specific recommendations for you below, but generally I suggest looking into the SimBit models provided on Simio's Support Ribbon. A PDF opens with each model that contains a detailed description, so they are a great tool for learning specific approaches and techniques. A few that I believe are related to your particular problem are "Moveable Operator", "Interruptible Operator","Keeping Worker Reserved", and "Entity Follows Sequence". Worker1 carries both entities to their respective nodes and leaves them in their respective stations after worker(A/B) "checks them" (I used a delay to simulate this check) and then Worker1 moves on. For this objective, I suggest setting up your drop off stations A and B as a Servers. Use the Processing Time property to represent the "check" while seizing both workers needed (see the Operator related SimBit for more information). Make sure all entities are assigned a sequence, so Worker 1 knows where to drop them off. The worker(A/B) only picks up the entity if needed. So if the worker was with another entity in process (like Srv(A/B)), he would go check the new entity so that worker1 can move on, but would return to finish out the first entity to the end. Assign entities that enter the pick up stations a higher priority, and interrupt the Workers at SrvA and Srvb if a pick up task arrives (See Interruptible Operator for more information). Ensure that the Workers have the needed paths to travel to all of the destinations required in all directions. Currently, WorkerA and WorkerB cannot travel to the Outputs of the Servers. Other suggestions: Look into using a Timer Element that could trigger the entity creations at SrcA and SrcB. That should remove the need for Source1 and Sink1. If the Worker's travel doesn't need to be defined by a path, I suggest setting the Initial Travel Mode to 'Free Space Only'. The error message you are receiving is related to the Add-on Processes on the A and B nodes. Whenever Worker 1 enters either of those nodes the process is triggered and tries to complete the process with relation to the Worker. Restructuring the model with Servers in this area should help you get around this issue. Thanks, Ryan
  25. The Simio product and its documentation is obviously created in English but we would like to expand that availability. Software As of this writing (April 2013) the Simio software is currently available in English and German. But the software has been designed from the start to be translatable. In fact we can quickly create a Google translation in any language, but unfortunately while that can be a good start of a translation, it's accuracy is not good enough to serve as a finished product. So we are looking for any volunteers who would like to see Simio in their native language. Textbooks We currently have book translations in Spanish (both books), Portuguese, Mongolian, and Italian. We are looking for additional translations and the translator(s) will be acknowledged as co-authors on the translated edition. Royalties will also be shared, but given the relatively small quantities and low book price your motivation should probably be mainly "fame and glory". Training and Other Materials Volunteers have also translated selected training and other supporting materials. We are always anxious to have this type of user participation to help the broader community. Existing and new materials will be available in this forum. Software Features A few features have been added to the software to make it easier to use in other cultures. One such feature is a setting to control the separator character used in CSV files which now defaults to your systems culture setting. Please let us know if additional such features are necessary. If you or your team are interested in helping with any of the above, please contact me directly. (dsturrock@simio.com)
×
×
  • Create New...