Storage Object

Overview and Key Concepts

The Storage Object is a parent class of several objects that are used to store flow items in a two dimensional grid of storage locations, called slots. These slots are organized, first by bay, then by level, and finally by position/slot number.

The Storage Object is an abstract class, meaning you do not create instances of this specific class directly. Rather, the Storage Object is a parent class of the Rack, Floor Storage, Gravity Flow Rack, Push Back Rack, and Drive In Rack classes. Thus, when you create an instance of one of these classes, you are inherently creating an instance of a Storage Object.

The Storage Object is a Fixed Resource. However, fixed resource functionality is turned off by default. You can enable it through the Flow Tab, or merely by connecting other fixed resources to it using an 'A' connection. When fixed resource logic is enabled, the storage object receives flow items through its input ports until its maximum content value is met. When each flow item enters the rack, it executes the minimum dwell time function for that item. This function returns the minimum stay time for that flow item. The rack starts a timer for that amount of time. After the timer expires, the rack releases the flow item.

Events

For information on events, see the Event Listening page.

The Storage Object is a Fixed Resource, and uses the standard events that are common to all fixed resources. See Fixed Resources - Events for an explanation of these events.

The Storage Object has the following additional events:

Minimum Dwell Time

This event occurs when the Minimum Dwell Time field is evaluated. It is only evaluated if a storage object's Use as Fixed Resource checkbox is selected.

It has the following parameters:

Parameter Type Description
Item Object The entering item, which will be assigned a dwell time
Port int The input port number for the entering item

This event returns the minimum dwell time for the specified item.

On End Dwell Time

This event occurs when an item has reached its minimum dwell time. After this event, the storage object will release the item. It is only evaluated if the storage object's Use as Fixed Resource checkbox is selected.

It has the following parameters:

Parameter Type Description
Item Object The item that has just completed its dwell time

On Slot Assign

This event occurs when an item is assigned to a specific slot in this object, i.e. when the Storage.Item.assignedSlot property of the item is set.

It has the following parameters:

Parameter Type Description
Slot Storage.Slot The assigned slot
Item Object The assigned item

On Slot Entry

This event occurs when an item enters a specific slot. It occurs at essentially the same time as the On Entry event, however, it is executed after a slot has been assigned. The slot is therefore a parameter of the event.

It has the following parameters:

Parameter Type Description
Slot Storage.Slot The associated slot
Item Object The entering item

On Slot Exit

This event occurs when an item exits a specific slot. It occurs at essentially the same time as the On Exit event, however, it is executed specifically associated with the slot that is being exited. The slot is therefore a parameter of the event.

It has the following parameters:

Parameter Type Description
Slot Storage.Slot The associated slot
Item Object The exiting item

Slot Assignment Strategy

This event occurs when the respective Slot Assignment Strategy field is evaluated.

It has the following parameters:

Parameter Type Description
Item treenode The entering item, which will be assigned a bay or level

The execution of this field is responsible fore finding a proper slot to place the item into, and assigning the item to that slot by setting the Storage.Item.assignedSlot property.

States

The Storage Object does not implement any states. Instead, use the content graph to get statistics.

Statistics

The Storage Object uses the standard statistics that are common to all fixed resources. See Fixed Resources - Statistics for an explanation of these statistics.

Properties

The Storage Object has six tabs with various properties. The last three tabs are the standard tabs that are common to all 3D Objects. For more information about the properties on those tabs, see:

The Storage Object additionally includes a Flow tab. While this tab primarily includes the same properties as any standard Fixed Resource's Flow Tab, the Storage Object includes additional properties that enable standard fixed resource logic. These unique properties are explained in the Flow section below.

The remaining two tabs, the Storage Object tab and the Dimensions tab are unique to Storage Objects. The properties on these tabs will be explained in more detail in the next sections.

The Storage Object Tab

The Storage Object Tab includes the following properties.

Slot Assignment Strategy

The Slot Assign Strategy is evaluated when a flow item arrives in a storage object and must be assigned a slot. Note that the slot assignment strategy is evaluated only if a flow item is placed into the storage object without having been assigned a slot. If the flow item has already been assigned a slot, through setting the Storage.Item.assignedSlot property, then that assigned slot will take precedence and the slot assignment strategy will not be evaluated.

Slot Stacking Order

The Slot Stacking Order defines how items will be stacked within an individual slot. The user can define one or more axes by which to stack items. The items will be stacked in the order of the axes defined. Example settings are shown below.

Slot Stacking Order Sample
X+ >> Y+ >> Z+
Z+ >> X+ >> Y-

Note that the slot stacking order is only visible on Racks and Floor Storage objects. For Gravity Flow Racks, Push Back Racks, and Drive-In Racks, the stacking order is inherent in the nature of the rack type.

Visualization

The object's Visualization defines how a storage object should appear in the 3D view. Choose from a list of pre-defined (or custom-defined) visualizations that are defined on the Storage System in the toolbox.

Addressing Scheme

The object's Addressing Scheme defines which of the Storage System's potentially multiple addressing schemes is applicable to this storage object. Note that you only need to define this property if your model accesses slots directly by their address, specifically using the Storage.system.getSlot() method.

Zone ID

The object's Zone ID defines the zone ID of the object, in relation to its address scheme. The Zone ID, in conjunction with the Aisle ID, allow you to uniquely address slots in a storage object.

Aisle ID

The object's Aisle ID defines the aisle ID of the object, in relation to its address scheme. The Aisle ID, in conjunction with the Zone ID, allow you to uniquely address slots in a storage object.

Start, Stride, and Progression

For the object's bays, levels, and slots, you can define start, stride, and progression settings. These properties work in combination to enable unique addressing of the slots. The Start properties define the number (or letter) that is associated with the first bay/level/slot in the storage object. The Stride properties define how many addresses to skip over when progressing from a given bay/level/slot its next neighboring bay/level/slot. The Progression properties are used to define the direction in which the bays/levels/slots progress, relative to the storage object's local coordinate system.

Below are some examples of how you might use these properties to properly define your addressing system.

Mark Slots with Outbound Items

This checkbox will highlight slots that have outbound items in a red color.

Extend Columns

If this box is checked, the object's support columns will be drawn extending above the top shelf. This property is not applicable with Floor Storage objects.

Shelf Tilt Amount

This number defines the amount of tilt of items placed in a given slot of the rack. This mostly used in Gravity Flow and Push Back Racks, products slide down from the back of the rack to the front. This property is not applicable with Floor Storage objects.

Picking/Placing Y Offset

This value is used to configure how close transport objects come to the storage object when they drop off or pick up flow items from the rack. This is especially useful if operators are used to drop off and pick up from the rack, because often they will walk into the middle of the rack to get a flow item. Specify a value of 1, for example, and the operators will keep better distance from the rack when dropping off and picking up flow items. This property is not applicable with Floor Storage objects.

Flow Speed

Flow Speed is only visible on Gravity Flow or Push Back Racks. This property defines the speed by which items flow down the rack. Unless using fixed resource logic, this property is purely for animation purposes, and does not affect model results.

The Dimensions Tab

The Dimensions Tab lets you define the dimensions of the slots that make up the storage object. Bay, level, and slot sizes and counts can be defined individually or across the entire object.

The main pane at the top of this tab displays the dimensions of the bays, levels, and slots as they appear when facing the object's pick face. There are also color-coded numbers showing bay, level and slot numbers.

The set of color coded controls below the main pane display inputs for defining various widths, heights, and counts.

If you have not selected any specific cells in the main pane, then any inputs you define will apply across the entire object. If, on the other hand, you select specific cells, then the inputs you define, if applicable, will apply to the specific cell(s) you have selected.

To select a specific set of cells, just press the mouse button at the top corner of the target area, and drag the cursor to the bottom corner. This will select the set of cells contained within the encompassed area.

Number of Bays/Levels/Slots

Defining the number of bays/levels/slots will change how many bays/levels/slots should be in the selected set of cells, or in the entire object.

Bay Width / Level Height / Slot Width

You can also change the corresponding sizes of bays, levels, or slots through their corresponding input controls at the bottome of the window.

Storable Slots

You can also make a set of cells "unstorable" by clearing the Storable Slots checkbox. When a slot is not storable, the pane will show a red X over that slot. You cannot assign items to that slot, and it will be excluded by default from slot searches that are done with the Storage.system.findSlot() method.

Slot Padding

Pressing the Slot Padding button on the right will expand a pane of controls for defining the padding of slots. A slot's padding defines how much space on the edges of a slot cannot be used for item storage. You can individually define the amount of padding for all 6 sides of your slots.

The Flow Tab

Use as Fixed Resource

If checked, the object will perform fixed resource logic, receiving items through its input ports, and releasing items to exit through its output ports.

Minimum Dwell Time

This field returns a value of how long a flow item must stay in the rack before it is released to continue downstream. You can also return a value of -1 from this function so the rack will not release the item at all, and then implement your own releasing strategy using the releaseitem() command.

Maximum Content

This number defines how many flow items the rack will be allowed to hold at a given time.

For the remaining properties on this tab, see the Fixed Resource Flow Tab.