Tank Scheduling is intended for manufacturers that make use of large storage vats to hold liquids such as beverages, chemicals, or formula blends for an indeterminate amount of time. These tanks are considered “in use” until they are emptied by downstream operations. With Tank Scheduling, the normal Item/Warehouse inventory plan is bypassed, since the storage of the material is being recorded in the tank and ultimately emptied from the tank.
Tanks are used as indefinite storage but come with the caveat that no other item can be stored unless the Tank is emptied. Emptying a Tank entails the creation of jobs or activities that consume the Item stored in the Tank as a Stock Material.
Configuring a Tank Resource
The following steps are required in order to configure a Tank Resource.
On the Resource:
- Right-click the Resource and click Open
- On the Capacity tab, under Capacity Type, ensure that “Tank” is checked.
- On the Work Assignment tab, set the Quantity constraints:
- Max Qty Per Cycle: This sets the maximum amount of material that can be stored in the Tank at any time.
- Max Qty: If the Max Qty is set lower than the Required Quantity of the operations scheduled on it, the operation will fail to schedule. Otherwise, this has no effect on the Tanks.
On the Job:
- The Operation scheduled on the Tank must list a Product.
- On the Product tab, ensure that “StoreInTank” is checked
- On the Resources tab, make sure the Resource Requirement that will run on a Tank Resource is using one of two Used During options:
- Setup, Run, Post-Processing, and Storage
- Setup, Run, Post-Processing, Storage, and End of Storage Post-Processing
- On the Material Requirement tab of the consuming Operation, make sure the specified warehouse is null/blank.
Note: If StoreInTank is not checked, the Operation will still schedule to the Tank, but no graphic will show and it will not prevent a second item from being stored in the Tank before it is emptied by another Activity.
If StoreInTank is checked, but the Operation does not run on the Tank Resource, there will be no graphic displaying the quantity level of the stored item, but PlanetTogether will prevent a second item from being stored in the Tank unless emptied by another Activity.
- The OverlapType on the Manufacturing Order Path must be set to ‘TransferSpan’. This will allow both the producing operation (tank operation) and the consuming operation to finish at the same time. You will also need to make sure to add a value to the OverlapTransferHrs field, which will enable the successor operation to begin after the first has been running for a specified time.
- Create a Warehouse and set its TankWarehouse property to true.
- Create an inventory for the Tank Item in Warehouse created in (1). Set up to generate Jobs as usual. The template should produce a StoreInTank product to this Warehouse.
- Demands (MaterialRequirements) should also pull from this Warehouse.
Once a Job has been created that requires the stored item as a Stock Material, other items can be stored in the Tank, but only as the job consuming the stored item has started.
Note: If there is no Activity consuming the stored Item, all Operations requiring the Tank for storage will Fail to Schedule.
As the consuming job is moved out further in time, the graphical portion of the Tank Resource will change, displaying a green triangle that grows smaller as more time elapses. It is important to note that PlanetTogether does not control the flow rate of the Tank. Instead, it displays that the flow rate is dynamic depending on when the consuming job is scheduled in relation to the job producing the item currently being consumed. The farther apart they are scheduled, the slower the flow rate.
In order to improve performance where many Tank resources might all be displaying changing inventory levels of stored items simultaneously, Tank plots can also be hidden via the Simplify Gantt dialog. Although the plots may not be displayed, the behavior of the Tanks will not be affected. Additional activities cannot be processed and stored in the Tank unless the previous item has been entirely consumed by downstream Activities.
The post-processing time on a Tank Resource isn’t constrained to its online capacity intervals. Post-processing after the material is withdrawn will always start on an online capacity, but it can extend into offline capacity.
Using MRP/MPS Optimize with Tanks
MRP can generate Jobs that produce more than is needed by the demand. This is usually due to batching constraints (BatchSize, MinNbrOfBatches, etc.) on the inventory. This can be problematic on Tank resources since the excess quantity will not be consumed and the tank will not become available until either the production is expired (if using shelf-life) or until the end of the planning horizon. PlanetTogether resolves this issue by increasing the quantity of the parent Job so that any excess quantity is consumed. This is done by using a field in the Inventory Mappings called MrpExcessQuantityAllocation. This field controls which parent jobs are adjusted to accept the increased allocation. The following values are permitted for this field:
- None: Leave extra material as WIP in the warehouse or on Tank. This is the default.
- LastParentJob: Allocate the remainder to the last consuming Job (by NeedDate).
- AllParentJobsEqually: Divide the excess quantity equally among the parent Jobs.
- AllParentJobsProportionally: Divide the excess quantity proportional to the parent Job quantities.