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.
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:
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.
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 |
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 |
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 |
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 |
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.
The Storage Object does not implement any states. Instead, use the content graph to get 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.
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 includes the following properties.
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.
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.
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.
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.
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.
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.
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.
This checkbox will highlight slots that have outbound items in a red color.
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.
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.
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 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 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.
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.
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.
You can also change the corresponding sizes of bays, levels, or slots through their corresponding input controls at the bottome of the window.
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.
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.
If checked, the object will perform fixed resource logic, receiving items through its input ports, and releasing items to exit through its output ports.
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.
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.