CIP Scheduling Customization

This sample customization allows you to set up CIP's between processes.

This guide will explain the CIP customization and how it is used. If you are just getting started, view the following articles for more information on the basics: getting started with customizations.


This customization allows the user to attach a CIP, Clean In Process, to the end of a job. The user can define the parameters of when the CIP needs to be performed. The customization goes through every job that is scheduled and checks to see if the time or quantity exceeds the limit set by the user before another CIP is required. If the job can not run before the CIP is required the CIP gets scheduled for the previous job. 

The user can set and change the quantity or time in between CIP's in the UDF window. The CIP can be set by two different values, either the CIP after Quantity which sets a number of units that can not be exceeded before performing another CIP. The other value is CIP after Run hours which requires another CIP after a resource has been ran for a set amount of time. The user can also enter the total amount of time the CIP takes to perform.

Below you can see an example of how to set up the values in the UDF window.


Possible issues

If there are any orders that won't be scheduled inside the planning horizon due to missing materials or conflicts PT might enter an infinite loop. To correct this make sure the PostPlanningHorizon code is added to the IsSchedulable function so those orders can be scheduled outside the planning horizon.

if (a_sd.GetPlanningHorizonEnd().Ticks < a_simulationClock)
return true;

If the user wants to perform a CIP before the earliest job on the schedule they must use the Setup Time resource to allocate time before the order begins. From the image below you can see that the 12 hour CIP is being scheduled as a Setup before the job instead of as a CIP after the job.SampleCIPSetup-1

Without the customization

Without the customization the jobs would schedule in the first available position, not taking the CIP into account. As shown below the CIP is not scheduled even though the next order would exceed the limits before having to run a CIP.


With the customization

With the customization, the CIP is scheduled and takes priority over the next job that would exceed the limits of the time or quantity before another CIP is required. As you can see below the limit was going to be exceeded by the next job so a CIP is scheduled at the end of the last order that wouldn't exceed the limit.



Download the Visual Studio project.

Download the customization file for version 11.39.15.

Rename the sample scenario file to scenarios.dat when loading in PlanetTogether.

Download sample scenario.dat for version 11.39.