Introducing Simio Version 10.181 – December 2018

Simio 10.181 Overview

Simio is proud to announce their latest software release, Simio 10.181. This video will guide you through all the new and exciting features and enhancements that has been introduced to Simio since the last major release.  Please note that each year we have 2-3 public releases including a late-year and a mid-year release. While typically our late-year release has been a major release with a new version number, we have decided to instead coordinate our next major release with our May 2019 Simio Sync Users Meeting.

Here are quick video summaries of some of the newest features of Simio 10.181. Detailed release notes are below.

New Features

New Product Editions

In this release we have introduced two new products as a step toward simplifying our product line: 

Simio Professional Edition

Simio Professional Edition provides the same functionality as Simio Design; however, it allows building and distribution of models using the freely available Simio Personal (evaluation) version as a runtime platform. Models built with the Simio Professional Edition will run and generate results with the Simio Personal version. Simio Professional Edition is ideal for consultants that want to deliver a running model to their customer. It also provides the capability to distribute scenarios and replications across computers in a work group. Simio Professional Edition includes Output Tables/States, and Gantt charts for the interactive runs/validation.

Simio RPS Edition

Simio RPS Edition adds a powerful set of patented features to build and execute new models for Risk- based Planning and Scheduling (RPS). This edition provides full scheduling capabilities: custom tailor reports, graphs, and tables for use by schedulers. Reduce your risk and costs by analyzing your schedules in ways never before possible!

 

New Inventory Element

A new Inventory element may be used to define a storage bucket for holding stock of a specific material. A Site Object Name property is provided to designate a fixed object in the Facility window, such as a Server or TransferNode, as the inventory’s physical location.


The Inventory element is now available from the Elements ribbon. *Note: Organization of buttons within the Elements ribbon has also changed slightly.

Materials specified within the simulation model may then be associated with the inventory locations.


States and Functions for Inventory Element

The states for the Inventory element include:
QuantityInStock - The current quantity of material present in the inventory.
AllocationQueue - Accesses the inventory’s queue of material consumption requests.

The functions for the Inventory element include:
AverageQuantityInStock - Returns the average quantity of material present in the inventory during the simulation run.
MinimumQuantityInStock - Returns the minimum quantity of material present in the inventory during the simulation run.
MaximumQuantityInStock - Returns the maximum quantity of material present in the inventory during the simulation run.
QuantityConsumed - Returns the total quantity of material removed from the inventory during the simulation run.
QuantityProduced - Returns the total quantity of material added to the inventory during the simulation run.
QuantityReserved - Returns the current quantity of material from the inventory that is reserved. QuantityReserved (owner) - Returns the current quantity of material from the inventory that is reserved for use by a specified owner object.
QuantityBackordered - Returns the current quantity of material required to satisfy all material consumption requests waiting in the inventory’s allocation queue.
AverageQuantityBackordered - Returns the inventory’s average quantity backordered during the
simulation run.
MinimumQuantityBackordered - Returns the inventory’s minimum quantity backordered during the
simulation run.
MaximumQuantityBackordered - Returns the inventory’s maximum quantity backordered during the
simulation run.
UsageCostCharged - Returns the total cost that has been charged to consumers of material from the inventory.

Material Element Enhancements

The Material element has been enhanced to include the Location Based Inventory property (default set to ‘False’). When the material is location based, the Initial Quantities and Allocation Ranking Rule will be specified on the associated Inventory element.


New Material Element Functions

With the Material element enhancements, we have added the following new functions for materials: Inventory (site) - Returns a reference to the inventory holding this material at the specified site (a fixed object). If there is no such inventory defined, then the Nothing keyword is returned.
QuantityBackordered - Returns the current quantity of material required to satisfy all material consumption requests waiting in any allocation queues.
AverageQuantityBackordered - Returns the material’s average quantity backordered during the
simulation run.
MinimumQuantityBackordered - Returns the material’s minimum quantity backordered during the
simulation run.
MaximumQuantityBackordered - Returns the material’s maximum quantity backordered during the
simulation run.
UsageCostCharged – Returns the total cost that has been charged to consumers of the material.
** NOTE: The MaterialCostCharged function is now deprecated, use the UsageCostCharged function instead.

Fixed Object Function Added

When a fixed object, such as a Server, Combiner, Separator or TransferNode, is specified as the Site Object Name of an Inventory element, the function Inventory (material) can be used.
Inventory (material) – Returns a reference to the inventory holding the specified material at this fixed object. If there is no such inventory defined, then the Nothing keyword is returned.

Consume, Produce, Reserve, UnReserve and Route Step Enhancements

The Consume, Produce, Reserve, UnReserve and Route steps now include an Inventory Site Type
property which can be specified as ‘None’ (default), ‘AssociatedObject’, ‘ParentObject’ or
‘SpecificObject’. Additionally, the Site Object Name property will then be visible if the Inventory Site Type
is ‘SpecificObject’. This allows these steps to then work with the Inventory element features.

If consuming, producing, reserving or unreserving a single material that is location-based inventory, then Simio will look up the Inventory element holding the specified material at the specified inventory site. If producing a bill of materials, then Simio will look up the inventory elements holding the component materials at the specified inventory site. This holds true for routing with required materials as well.


Standard Library Enhancements - Server, Combiner, Separator and TransferNode

The Server, Combiner, Separator objects have been modified to have Inventory Site Type and Site Object Name properties within the Task Sequences, Required Materials section of properties. This will allow users to specify, on a task basis, the inventory site area (if any) from which to consume or produce materials.

Additionally, the TransferNode object has been enhanced to allow required materials before routing out to include material that is location-based inventory.


Material Usage Log Enhancement

If logging material consumption and production, then the Material Usage Log now includes a new Site Id
field and the existing Stock Level field will now be the site location quantity in stock.

Resource Usage Log / Task Log Enhancement

We have added two properties to the Custom Column fields within the Resource Usage Log and the Task Log. The ‘Add Column’ button on the Log ribbon is used to add custom columns to the logs. This is typically done to provide the user with ‘Additional Details’ information on a tooltip or to categorize the resources or tasks. However, there are some instances when the extra column is used to provide information on the Gantt (border color, for example) but the user may not wish to have it shown on the hover tooltip and/or categorization fields dropdowns. The Show in Gantt Tooltips and Show in Gantt Dropdowns properties have been added to allow the user to turn off (‘False’) the display of the custom column in various places.

OptQuest – Minimum Replications

Within Simio experiments using OptQuest, users can now specify the minimum replications (Min Replications property) to 1. Previously, this value was required to be 5 or more.

Ability to View Product Version for Model

We have added the ability to view the product version and date with which the model was saved. Users can right click on the Project Name within the Navigation window to see the Project Properties. The Date Saved and Saved In Version fields are now available, as seen below in red. This was a user requested feature.


e'vePrQ,e
nll

,

 

 

Right-Click – Export View To

We have added a new right-click option on the table areas (tables, experiment, etc.) that allows users to export the table view to several different sources, such as Excel, CSV, PDF, Html and Word
.

Material and Inventory – Partial Allocation

For a Material element, there is now an Allow Partial Allocation If property that is a default optional condition indicating whether an entity may immediately consume only a portion of its requested quantity if the full quantity is not available. If the condition evaluates to true, the entity will consume the partial amount, but will still wait until the entire quantity fulfilled before moving from Consume step.

For an Inventory element, we also added an Allow Partial Allocation If property that is an optional condition indicating whether an entity may immediately consume only a portion of its requested quantity if the full quantity is not available. If specified, then this condition will override the Allow Partial Allocation If on the Material element associated with the inventory.

 

Inventory Replenishment Framework

The framework that is now available in Simio to model inventory replenishment is illustrated in this video.

Inventory Position

The inventory position is a key input typically used in inventory replenishment decision making. It is equal to inventory-on-hand plus inventory-on-order minus backorders and any other commitments.

Continuous or Periodic Inventory Review

These terms refer to the frequency of inventory review to determine when orders must be placed for replenishment.

A continuous inventory review keeps a constant track of the inventory position; as soon as it falls below a pre-determined level (the reorder point), a replenishment order is placed. Tracking inventory levels in real-time is typically more expensive to administer but allows for a lower level of safety stock, as the only uncertainty is the magnitude of demand during the delivery period.

Alternatively, a periodic inventory review evaluates the inventory position at discrete points in time to determine if a replenishment order needs to be placed. Replenishment decisions can be made only at those points. The time between two review points is called the review period. A periodic review system is cheaper to administer compared to continuous review since inventory counts take place only at fixed times, but a higher level of safety stock is typically required to buffer against a longer period of uncertainty in demand.

 

Replenishment Policies

At the time of an inventory review, a decision strategy often referred to as the replenishment policy is used to determine whether replenishment is required and, if so, then by how much.
Some commonly used replenishment policies:

Min/Max Replenishment Policy
This policy is sometimes referred to as the (s, S) policy where s is the reorder point, the ‘Min’, and S is the order-up-to level, the ‘Max’. When the inventory position falls to or below the reorder point, s, then replenishment is required to bring the inventory position to the order-up-to level, S. In other words, if the inventory position is y, and y ≤ s, then a replenishment order of size S−y is required.


Figures 1 & 2 illustrate the Min/Max replenishment policy using either continuous or periodic inventory review.
Figure 1 – Continuous Review Min/Max Replenishment Policy

Figure 2 – Periodic Review Min/Max Replenishment Policy

Order-Up-To Replenishment Policy
This policy is sometimes referred to as the base-stock policy or “one-for-one” policy. When the inventory position decreases below the order-up-to level, S, then replenishment is required so as to bring the inventory position back to the order-up-to level. In other words, if the inventory position is y, and y < S, then a replenishment order of size S – y is required.

Figures 3 & 4 illustrate the Order-Up-To replenishment policy using either continuous or periodic inventory review.




Figure 3 - Continuous Review Order-Up-To Replenishment Policy
Figure 4 - Periodic Review Order-Up-To Replenishment Policy

Reorder Point/Reorder Qty Replenishment Policy
This policy is sometimes referred to as the (s, nQ) policy where s is the reorder point and Q is a fixed reorder quantity (a fixed lot size). When the inventory position falls to or below the reorder point, s, then replenishment is required to bring the inventory position just above s. The size of the replenishment order is a multiple of the reorder quantity, Q. In other words, if the inventory position is y, and y ≤ s, then a replenishment order of size nQ is required, where n is the smallest integer such that y + nQ > s.
Figures 5 & 6 illustrate the Reorder Point/Reorder Qty replenishment policy using either continuous or periodic inventory review.



Figure 6 - Periodic Review Reorder Point/Reorder Qty Replenishment Policy

Inventory Element – Replenishment Features

Within the Inventory element, we have added multiple properties to handle inventory replenishment, including Review Period, Replenishment Policy and On Replenishment Order Process. The Review Period determines the frequency of inventory review to determine whether a replenishment order is required.
This can be ‘None’, ‘Continuous’ or ‘Timer’ (periodic as discussed above). The Replenishment Policy
property can be specified as ‘None’, ‘Custom Reorder Condition’, ‘Min/Max’, ‘Order-Up-To’ or ‘Reorder Point/Reorder Qty’. Finally, an On Replenishment Order Process property can be executed to handle an inventory replenishment order. The initiation of this process automatically increments the inventory’s quantity on order. The created token’s material order detail reference (new) will provide the detail of the order replenishment.


Material and Inventory Elements – QuantityOnOrder state

For both the Material and Inventory elements, we have added a QuantityOnOrder state variable that returns the quantity of the material that has been ordered to replenish inventory in the system but has not yet been received.

If a material is not location-based inventory, this value will return 0. Otherwise, it is automatically assigned the value of the total aggregate quantity on order across all inventory sites and is not user- assignable. The inventory’s QuantityOnOrder state may also be assigned using the Assign step.

Inventory Element – InventoryPosition function

A new InventoryPosition function has been added for Inventory elements that is equal to the inventory’s quantity in stock plus quantity on order minus quantity backordered minus quantity reserved (excluding reserved units already backordered).

Consume Step – On Consumed Process
The Consume step now includes an option process to be executed when material is consumed. The created token's material order detail reference will provide the detail of the material consumption. This process will be executed any time a quantity of material is consumed; either a full or partial allocation.

Produce Step – Record As Order Received If Property
The Produce step now includes a Record As Order Received Condition property which, if ‘True’ and the material is location-based inventory, then the inventory’s quantity on order is automatically decremented by either the produced quantity or to zero, the latter if the produced quantity is greater than the quantity on order.

Token Function Enhancements

The following new functions will be provided by a process token:
MaterialOrderDetail - Returns a reference to the material order detail associated with the token, if applicable.
MaterialOrderDetail.Material - Reference to the material.
MaterialOrderDetail.SourceInventory - Reference to the inventory that is the source of the material. MaterialOrderDetail.SourceSiteObject - Reference to the inventory site object that is the source of the material.


MaterialOrderDetail.DestinationInventory - Reference to the inventory that is the destination of the material.
MaterialOrderDetail.DestinationSiteObject - Reference to the inventory site object that is the destination of the material.
MaterialOrderDetail.Quantity - The quantity of the material.
MaterialOrderDetail.LotID - The lot identifier of the material.

Note that If a token has been created to execute an On Replenishment Order Process specified for an Inventory element, then the destination in its material order detail will be the inventory site requesting the replenishment. Since built-in features for modelling sourcing policies will not yet be available, the source in the token’s material order detail will always be set to nothing.

If a token has been created to execute an On Consumed Process specified for an Consume step, then the source in its material order detail will be the inventory site from which the material was consumed. The destination in its material order detail will be copied from the material order detail of the original token, if applicable.

Simio API Extensions Enhancements

This section describes the interfaces that will be provided within the SimioAPI.Extensions namespace to create user-coded replenishment policies.
IReplenishmentPolicyDefinition Interface
string Name { get; } - Name of the replenishment policy. May contain any characters. string Description { get; } - Description text for the replenishment policy.
void DefineSchema(IPropertyDefinitions propertyDefinitions) - Guide which uniquely identifies the replenishment policy.
IReplenishmentPolicy CreatePolicy(IPropertyReaders properties) - Defines the property schema for the replenishment policy.
IReplenishmentPolicy CreatePolicy(IPropertyReaders properties) - Creates a new instance of the replenishment policy.

IReplenishmentPolicy Interface
bool CheckPolicy(IReplenishmentPolicyContext context, out double orderQuantity) - Checks the replenishment policy to determine whether a replenishment order is required. Returns true if a replenishment order is required, along with the order quantity; otherwise, returns false.

IReplenishmentPolicyContext Interface
double CurrentInventoryPosition { get; } - The current inventory position.

Note: When getting the value of a property in the IReplenishmentPolicy.CheckPolicy() method using the IReplenishmentPolicyContext context argument, that execution context is going to be the inventory element. Thus, the property value may be a table row reference that has been set for the inventory element.

Material and Inventory Stockout Functions and Statistics

A stockout is when there is no inventory on hand to fulfill demand. A frequently used service measure is a desired probability of no stockout occurrences during a defined risk period, a criterion sometimes referred to as the ready rate. For example, a target service level might be a 95% ready rate.
In Simio, time-dependent statistics on the stockout frequency for each inventory is now automatically collected and reported.

Material element functions include:
Stockout - Provides functions for accessing time-dependent statistics on the material's stockout frequency.
Stockout.TotalTime - Returns the total time that no material was present in the system. Stockout.PercentTime - Returns the percent time that no material was present in the system. Stockout.NumberOccurrences - Returns the number of occurrences where no material was present in the system.
Stockout.AverageTime - Returns the average time of the occurrences where no material was present in the system.

Inventory element functions include:
Stockout - Provides functions for accessing time-dependent statistics on the inventory’s stockout frequency.
Stockout.TotalTime - Returns the total time that no material was present in the inventory. Stockout.PercentTime - Returns the percent time that no material was present in the inventory. Stockout.NumberOccurrences - Returns the number of occurrences where no material was present in the inventory.
Stockout.AverageTime - Returns the average time of the occurrences where no material was present in the inventory.

Automatic Statistics display of these functions will be shown under the Content Category: TimeStockout Data Item section under the Material or Inventory Data Source:

Material and Inventory Fill Rate / Demand Functions and Statistics

Fill rate is the fraction of demand that is immediately satisfied from inventory on hand (no balking or backordering). It is one of the most frequently used service measures in practice to evaluate an
inventory’s ability to meet demand. For example, a target service level might be a 95% fill rate.
In Simio, two types of fill rate statistics for each inventory will be automatically collected and reported: Quantity Fill Rate: The percentage of the total quantity demanded that was immediately satisfied from inventory on hand. Sometimes referred to as unit fill rate or case fill rate in industry.
Order Fill Rate: The percentage of material consumption requests (orders) whose full quantity demanded was immediately satisfied from inventory on hand.

This table shows an example of calculating quantity fill rate versus order fill rate.

Order

Quantity
Demanded

Quantity Immediately
Consumed

Order Fill Rate Count

1

10

10

1

2

50

40

0

3

30

0

0

4

60

60

1

Total

150

110

2

Quantity Fill Rate = 110/150 = 73.33%

Order Fill Rate = 2/4 = 50%

Table 1: Calculating Quantity Fill Rate vs. Order Fill Rate

Material element functions include:
Demand - Provides functions for accessing additional statistics on the material’s demand. Demand.NumberOrders - Returns the total number of material consumption requests (i.e., orders) received during the simulation run.
Demand.QuantityDemanded - Returns the total quantity that was demanded to satisfy the material consumption requests received during the simulation run.
Demand.OrderFillRate - Returns the percentage of material consumption requests (i.e., orders) whose full quantity demanded was immediately satisfied from inventory on hand (no balking or backordering). Demand.QuantityFillRate - Returns the percentage of the total quantity demanded that was immediately satisfied from inventory on hand (no balking or backordering).

Inventory element functions include:
Demand - Provides functions for accessing additional statistics on the inventory’s demand. Demand.NumberOrders - Returns the total number of material consumption requests (i.e., orders) received during the simulation run.
Demand.QuantityDemanded - Returns the total quantity that was demanded to satisfy the material consumption requests received during the simulation run.
Demand.OrderFillRate - Returns the percentage of material consumption requests (i.e., orders) whose full quantity demanded was immediately satisfied from inventory on hand (no balking or backordering). Demand.QuantityFillRate - Returns the percentage of the total quantity demanded that was immediately satisfied from inventory on hand (no balking or backordering).

Automatic Statistics display of these functions will be shown under the Demand Category under the Material or Inventory Data Source:

Display Category Enhancement- RPS

The Display Category property on objects that are enabled as resources, such as Server, Worker and Vehicle, can now reference a table value. Display Category can be found in the Advanced Options section of properties and is used for hierarchically arranging resources in the Resource Plan Gantt. This enhancement is useful for table generated simulation models, so that the category can be specified in a Resources table.

New Schema/Content Ribbons to Replace Table Ribbon

Within a model’s Data ribbon / Tables panel, the Data window will now include both a Schema and
Content ribbon (replacing the Table ribbon and States/Targets ribbons that was shown for some Simio
versions). When you first navigate to Data/Tables, if no tables exist yet, Simio defaults to the Schema ribbon. Otherwise, the Content ribbon is shown.


Within the Schema ribbon, users can add any type of table, including Data Tables, Sequence Tables and Output Tables (available in Simio Professional and RPS). All users will have the option to add standard Property columns, as well as Element Reference, Object Reference and Foreign Key properties.

The Schema ribbon now contains the contents of the old States ribbon, which will allow users to add standard State columns, as well as Element Reference, Object Reference and Foreign Key states (available in Simio Professional and RPS).

The Schema ribbon also contains a Target (from the old Targets ribbon). Targets are used within the Simio RPS Edition.

The Scheduling and Wonderware MES add-ins now appear on the Schema ribbon, in a new “Templates”
group.


The Content ribbon allows users to edit the content of the table, including Binding to data sources, importing and exporting, as well as the adjusting the Target Performance Classification slider.

Object and Element Naming Enhancement

Simio now allows dash and other characters within object and element names. For example, the name of an entity type may be T0-3456, where in prior versions of Simio, the user would have to modify this name slightly to T0_3456 as the ‘-‘dash character was not valid. Similarly, characters such as spaces, $, and # are now permitted in names. This includes names for objects, such as Servers or elements, such as Materials.

SimBits – New and Updated

We have added a new SimBit to illustrate the new inventory type features that were added to the previous Sprint 176. Additionally, we have modified the DBReadWrite SimBit to use SQL Server Express. InventoryAndMaterials – This model illustrates an example where materials are stored in and consumed from inventories at different locations. The simulation model shows material consumption from site-specific inventories.
DBReadWrite – This SimBit has been updated to use SQL Server Express instead of MySQL. This model demonstrates how to read data into Simio and write data from Simio using SQL Server.