Here are quick video summaries of some of the newest features of Simio 9.158. Detailed release notes are below.
The Station element has been enhanced to include reneging, which is when an entity decides to abandon waiting in a queue or station. Within the Advanced Options properties, a Renege Triggers repeating property editor allows users to define multiple triggers for reneging. Triggers can be Time or Event based, and ocne the trigger has occurred, the reneging can happen always or based on a probability or condition of the system.
There is also a new function, NumberReneged, that returns the total number of entities that have abandoned waiting in the station.
Balking options is now included in the input and output buffers many objects including Source, Server, Combiner, Separator and Workstation within the Standard Library, as well as the Filler, Emptier, ItemToFlowConverter and FlowToItemConverter within the Flow Library.
For each input buffer and output buffer, the Balking & Reneging Options includes the balking properties as well as a Renege Triggers repeating property editor to specify one or more methods to trigger reneging within a buffer.
Within the Renege Triggers repeating property editor, there is a Trigger Type property to allow for either ‘Time Based’ or ‘Event Based’ triggering. For Time Based triggering, a Wait Duration expression is specified, while for Event Based triggering, the Triggering Event Name property is displayed.
If reneging is triggered, the action can happen either always (no conditions), or based on a probability or condition of the system. This allows for logic such as an entity evaluating the buffer size after a wait duration to determine whether to remain in the queue. The reneged entity can either be destroyed or sent to a different node for alternative processing.
Simio also includes statistics on the total number of reneged entities for a buffer in the automatically reported results.
The Properties window of selected Standard or Flow Library objects has been enhanced to allow optional state assignments whenever an entity is balking at entering a buffer or reneging from a buffer. Options are available for making assignments under different conditions.
The ‘Failed’ & ‘Repaired’ events for Standard and Flow Library objects that have resource capabilities and failures are now accessible. These events may now be used in Renege Triggers as event based triggers, thus minimizing or eliminating any excess process logic.
To make it easier for a modeler to check in a conditional expression whether an entity is currently waiting for a specific type of constraint, the following new functions will be provided for an entity object:
If using the ‘Task Sequence’ for processing in Server, Combiner, or Separator, and a task’s Process Type is specified as ‘Submodel’, the user now has an option to copy over the attributes of the original entity to the created submodel entity (e.g., state values and table references). Previously only the ‘Create New (No Copying)’ behavior was supported. This new feature allows for greater flexibility for submodel type processing with the task sequences.
As requested by customers, the Token.ContextObject function has been un-deprecated and for completeness, have added Token.TaskInfo.IDNumber function.
Token.TaskInfo.IDNumber - Returns the unique integer identifier number of the task assigned to the token. It is valid when using task sequences and the Task Precedence Method of either ‘Immediate Predecessors Method’ or ‘Immediate Successors Method’ where the task ID Number is specified.
There has been a new string function that will compare sequence number strings.
String.CompareSequenceNumbers(sequenceNumber1, sequenceNumber2) - Compares two specified sequence number strings and returns 0 if the two sequence numbers have no implied dependency relationship, -1 if an item assigned the first sequence number must come before an item assigned the second sequence number, or 1 if an item assigned the first sequence number must come after an item assigned the second sequence number.
Each sequence number argument may be expressed as a string that contains either an integer or a dot- delimited sequence of integers (example: 10.2.3.1). Or, in a data table, you may add a property (column) of type ‘Sequence Number’ and the arguments of this function may be references to row values in such table columns.
The Snap to Grid has been updated slightly to snap to a quarter of a grid line in the default Facility window upon opening a model. This provides more flexibility in placing objects while maintaining the snap to grid feature ‘on’ setting at the start of the model building process.
Within the Planning tab of Simio Enterprise Edition, the Work Schedules and Changeover Matrices panel buttons have been added to allow easy access to creating and modifying either resource work schedules or changeover matrices times. These are also available in ‘Scheduler mode’.
The C# Visual Studio Templates has been updated to support Visual Studio 2012, 2013 and 2015, and have added corresponding templates for VB.NET.
Simio has added a Scan step which provides a new polled waiting approach that allows a modeler to hold a process token until a specified condition is true, where the logical condition may be specified as any arbitrary expression.
The Resource Plan Gantt has been enhanced so that when a user clicks on a resource name in the Resource Plan, the Resource related tables are displayed in the property view. For example, this will be useful if there is a column in the Resources table than allows the user to specify the work schedule. The enhancement allows the work schedule to be changed for a Resource from the Planning tab.
There is a new menu item on the Data tab under Binding Options that lets users to NOT do the automatic importing it would normally do for data bound tables. This is a model-level setting that is saved to the project file.
Note that this does not “temporarily remove table bindings” but will bypass the automatic import at start of run. When a model is in this state, bound tables that are set to automatically import show the following statement in red: Automatic importing of bound tables is currently disabled.
The Monitor element is now able to monitor more than one state variable, which will simplify the event-driven waiting approach (Wait step). The enhancement will make it easier to model a single ‘Status Changed’ event that pertains to some logical grouping of state variables in the system, such as a set of variables that relate to the status of an area, a processing location, etc.
For example, suppose a single Monitor element named PackingAreaStatusChanged is defined that is monitoring discrete changes in the state variables Packer1.AllocationQueue, Packer1.ResourceState, Packer2.AllocationQueue, or Packer2.ResourceState. Somewhere in the modeled process logic, perhaps a Wait step is then used to hold a process token until event name PackingAreaStatusChanged occurs and event condition Packer1.ResourceState==0 && Packer2.ResourceState==0 is true.
The new NotifyConstraint step allow users to add custom (i.e. user-defined) constraint entries into the Constraint Log (and by extension the Entity Gantt chart).
Entries in the Constraint log show up like with the first two rows are existing automatic ones and the next two are custom ones.
When the user executes one of these steps with Notification Type set to ‘StartConstraint’, a new entry in the Constraint Log, setting the Start Time column to TimeNow. Then later, when the user executes one of these steps with Notification Type set to ‘EndConstraint’, with matching values for the other properties, that entry is closed in the log by setting the End time column to the current TimeNow.
The Dynamic Selection Rule grouping of properties has been enhanced to include a Filter Expression. This allows a user to optionally filter out any candidate entities that don’t satisfy a specified logical condition. It is like the Filter Expression property provided by the ‘Smallest Value First’ and ‘Largest Value First’ rules.
New schedule based functions have been added to allow users more flexibility accessing schedule based information. These functions can be accessed using ScheduleName. or SchedulePropertyName.Schedule. (examples of this could be ResourceObjectName.WorkSchedule.Schedule. if the resource is following a work schedule or TableName.SchedulePropertyName.Schedule.)
The Binding Options within Data tab and Tables now includes the option to append and update data when importing. If this option is enabled and data is imported into a table with existing data, any new data will be appended to the existing table. If a record already exists (based on a value in the key column of that table), the data will be updated.
A standard Data Table can now be changed into a Sequence Table by using the new ‘Sequence Destination’ property type. This can be done by adding a new column of that type or changing an existing column to that type. This is useful if the user has already defined multiple columns in a standard Data Table and realizes it should be a Sequence Table OR if the sequence destination column of a Sequence Table has been accidentally deleted.
Within the Planning tab, Results panel for Simio Enterprise edition, we have added an additional report named Entity Activity List. This report is an entity based listing of all resources and activities that have been allocated over time. The Entity Name, as well as Start Date and End Date are specified. As with the other reports in this section, the ‘Show Detail’ option provides more details on a resource by resource basis.
Named views in the various pivot grids are now “Public” by default, allowing them to be used by any other pivot grid in the model or any of its experiments:
When using named views in a pivot grid, you’ll now see public ones from the other pivot grids associated with the same model. For example, when viewing the Results pivot grid for a model, you’ll see its own named views, followed by public named views from other pivot grids (including those defined by the model’s Experiments, as well as Planning results in Enterprise edition).
When applying a named view to a pivot grid, Simio will automatically hide or show certain columns as appropriate to the pivot grid. Specifically, the Minimum, Maximum, Half Width, and Standard Deviation columns will be hidden when applying an experiment’s named pivot view to a model’s pivot grid, while the Minimum, Maximum, and Half Width columns will automatically be shown when applying a named pivot view from a model’s pivot grid to an experiment’s pivot grid.
There is a new application setting that lets users turn off the validity checking of names of properties created by the API.
The Seize step is upgraded so if multiple resources are required, there is an option that indicates whether all must be available before any can be seized. If Must Simultaneously Seize is set to ‘True’, all resources must be available before they are seized.
The Simio ‘trace’ for the seize step now allows users to more easily view why a resource or group of resources is seized or not seized.
For task sequence type processing, processing tasks, the Must Simultaneously Seize is specified within the Processing Tasks repeating property. If the resources are specified and referenced within a table or if multiple objects are required as specified by the Number of Objects and/or Units per Object, this new field will be used.
For secondary resources within processing of the various objects, the ‘Other Resource Seizes’ sections of properties each have the option for Must Simultaneously Seize.
Simio added the capability within several steps to allow for list members to also be specified within tables (in addition to Lists). The Seize, Move and Release steps now all allow for the TableName.ColumnName reference to be used as the Object List Name property value. Note that this table reference does not currently appear on the pull-down list for that property. Given that the Standard Library objects use the Seize/Release steps for allocating secondary resources, these table references are also available within the Secondary Resources section of objects (as shown below), as well as the Resource Requirements section within Task Sequence type processing.
Please note that this also includes the use of table state columns (Enterprise edition) for the list which, combined with the Output tables and the RemoveRows step, allows for dynamic runtime building of Seize lists.
Simio Enterprise Edition Gantt charts can now use the scroll wheel on the mouse to zoom in and out. Within either the Resource Gantt or Entity Flow Gantt charts, the cursor should be placed within the time scaler area to enable the scroll wheel for zooming. This now functions similarly to the Simio Portal edition for the Gantt charts.
Team and Enterprise Edition licenses no longer check for an overall signature on the entire file. This will enable merges in various source control scenarios to generate still readable files by the user modelers. Note that Simio added an additional signature on the “document info” section of the file that must be present for the file to load if the signature of the entire file is missing or incorrect. Thus, if a user does wish to use this functionality, they will need at least one save in the new version of Simio to generate this document info signature.
For multi-file save targets, Simio will save each Object Definition to its own file and each Table to its own file *IF* the project level property setting of Save Project As Multiple Files property is set to ‘True’ (which is the default for new projects). If it’s set to ‘False’ (the setting for all existing projects), Simio will continue saving the way it previously did.
To make use of the multi-file feature, the user should save the project as a .simproj. When the model is saved with this target, each object in the model will has its information stored in a folder by the same name located in the Model.Files\Models folder. For example, the HierarchyWithTables SimBit would look as follows:
Each folder will contain an XML file with information pertaining to that object type. If multiple modelers are working on the same project, but different objects, the updated object folder can be copied over the existing object folder. In the above example, if a modeler wanted to make changes only to the SearchTable object, the modeler can make the edits in a separate copy of the model, save the model as a .simproj and then replace the old SearchTable folder with the updated folder.
Please Note: In this and future Simio versions, projects saved with an academic license will no longer have their contents written in human-readable XML.
Identifiers, such as names of objects within the Facility window and elements within the Definitions window, can now start with a number and/or use expanded character set. For example, ‘123abc’ is now a valid object and element name. We also have greatly expanded the available characters that are valid, so all Unicode uppercase and lowercase letter categories and well as others are supported
Simio doesn’t allow identifiers that evaluate to numbers so ‘123’ is not valid, but ‘3f4’ is valid. ‘3e4’ is not valid because that is exponential notation for 3 x 10^4.
The RoutingGroup element has been enhanced so that the route selection algorithm prevents a lower priority entity from bypassing a route request queue that potentially contains higher priority entities. Additionally, if multiple destination candidates available in the list of possible destination nodes, the route selection algorithm consistently applies the destination selection goal specified on the Route step or TransferNode.
More specifically, there are two changes that have been made to the route selection algorithm
If no dynamic selection rule is being used (static queue ranking rule only)
If dynamic selection rule is being used
If trace is on and Simio detects during trace that there is less than 50 MB of memory left, it now stops tracing and give you a warning, allowing for a model save.
We have added several new simbits during this release: