When Will You Need This?
This model object simplifies entry of scheduled arrivals for build to order products. Build to order products have codes that define product characteristics. The codes could affect what is assembled and how much production time is needed at each station (or even how much time is required by each person at each station).
You define the codes in a table, with the corresponding production requirement for each code. The production schedule contains all the codes required to build an order. Before running the simulation, the codes pick up the production requirements for each product.
For example, an east coast window manufacturer has 30 codes that define options on a window. Options define the size, materials, number of panes, type of glass, type of sash, etc. Changes to any of these codes could change the production time at one or all the stations. In addition, assembly requirements are added as a result of the codes. The number of combinations of options is in the millions. Each day, a new production schedule has unique window requirements defined by the codes.
A west coast truck manufacturer has 26 codes that define production requirements of the chassis. The codes describe the number of axles, drive type, suspension, load capacity, number of air tanks, etc. Changes to any of these codes change the production time for each person at a multi-person assembly station. Assembly quantities and types also change as a result of code changes. There are thousands of possible combinations of codes. As with the window production, the production schedule is defined by a base part with a series of codes defining the production options for that chassis.
The following model object can be found in the model objects directory:
1. Arrivals \ Scheduled Arrivals with Table Input
2. Arrivals \ Scheduled with codes
Ease of Use: Easy
Ease of Modification: Moderate
How Does It Work
There are three main components to the Scheduled Arrival with Table Input:
Before using this Excel file for the first time, or after changing your model name, make sure that a manual export of data is done via ProcessModel. From your model, click Tools \ Export Data, click ‘Yes’ to all prompts until the data export file opens, close the data file and then use this Excel file.
You enter or import the production schedule with codes that describe the product characteristics.
The tables define the production time required for of the product codes. The production schedule queries the table to and adds the time to attributes used for each assembly station.
Tables defining time for each code
The production time information is imported into the model. Each product will have different values in the attributes specifying time at each station.
Once the model and tables are setup, testing a new schedule takes seconds to perform.
How to Use the Model Object
1. Develop the Model with Attributes to Define Time and Assembly
The model uses attributes to define the production time at each station. A different attribute is used for each station time (or person at the station).
Attributes define the sub-assembly attaches at stations. A unique attribute is needed for each subassembly.
The Attribute a_Assy1 of the base entity is set to one (the requester of the Attach) then 1 subassembly is requested. If the a_Assy1 of the base entity is set to zero, then no attachment is requested.
If several exclusive subassembly options are attached at the same assembly station, use several attach routes as shown below. The attribute a_Assy1a could be set to one, while a_Assy1b is set to zero or vice versa.
The options for the values of each attribute might include:
If several non-exclusive subassemblies are attached at the same assembly station, use several Attach routes as shown below.
The options might include:
2. Create a Scheduled Arrival in the Model
In the model, the arrival must be set to scheduled AND you must have at least one entry in the schedule. After making sure you have a scheduled arrival, save your model.
3. Insert the Model Object into Your Model
1. Locate the model object Scheduled Arrivals with Table Input and select the insert button.
2. Move the cursor to the point of insertion and left mouse-click. The upper left corner of the model object will be inserted at the location of the mouse-click.
4. Open the Excel File
Right click on the Scheduled Arrivals with Table Sheet Excel icon and click on the third option from the bottom to open the Scheduled Arrivals with Table vx-x Excel file, where x-x represents the version number of the Excel file.
Click Enable Content if prompted
5. Set up the Excel Arrivals Sheet
1. Select the far-left Tab (located in the lower left corner of the Excel sheet).
2. Use the setup button to identify scheduled arrivals in your model.
If you have more than one scheduled arrival, each scheduled arrival will show as a separate tab.
3. All the attributes form the model will automatically be copied into the Excel file. Remove any attribute columns that you do not want to be updating using the Excel file.
6. Set up the Excel Time Table
1. Copy the TIME attributes into the table (Column1).
2. Enter the codes into Row 2 starting with Column C. Base is a built in code that is not to be removed.
3. Enter the time changes for each Code at each station
Base Time: This is the time required at the station irrespective of which code is selected. If there is no Base Time then set the Base Time to zero.
7. Set up the Excel Assembly Table
1. Copy the Assembly attributes into the table (Column1).
2. Enter the codes into Row 2 that will cause assembly quantity changes (example: single, dual, tri).
3. Enter the assembly quantity changes for each Code at each Attach.
8. Enter Arrival Schedule
Now the Excel sheet is ready to receive your data. This file is generally built by querying a database, pulling the historical production or planned production. The information is copied and pasted into the Schedule Input (first tab) as show below:
Each row contains the data for a single product with its associated codes. The quantity will be one if one of that part type is to be built. A quantity of five would build five parts, all with the same with the same codes.
Date of arrival: If you are pulling data to test the model, choose a date that starts on a Monday or change the starting date to a Monday so parts will enter the system when the simulation starts.
Production codes: Separate each production code with a comma.
9. Populate Arrivals
The Populate button uses the codes to query the tables and add time for each station and capture the number of attaches for each attach attribute. After pressing the Populate button the following happens:
10. Import Data from the Spreadsheet to ProcessModel
You can now click the 3. Update button to import data into ProcessModel. Once successful, you will be prompted if you want to simulate the model.
The following series of steps ensure that you do not run into any issues during update:
1. Export the model data file from ProcessModel.
2. Save the ProcessModel Export File and close the file.
3. Translate the data from the Scheduled Arrival tab to match the format of the ProcessModel Export file and export the data to the ProcessModel Export file.
4. Import the newly updated ProcessModel Export file and save the ProcessModel file.
The values for the attributes (pulled from the codes) will be updated in the action logic of the Scheduled arrival.
The model object is now integrated into your model, you should now be able to save and then simulate the model.
What Can Go Wrong?
No Scheduled Arrival in Model (Or Has Been Changed)
When the Setup button is pressed, no schedule arrival is found. Change the arrival type to Scheduled and enter at least on scheduled arrival.
Attributes Entered into Excel Sheet Are Not in Model
You must add the attribute to the model yourself. If the attributes are entered in the Excel file and are not available in ProcessModel, you will receive a prompt during simulation regarding the same.
Attributes Created in the Model Are Not in Excel Sheet
You must manually add the attributes to the Excel sheet by following step 5.3 above.
Start Date Is Not a Monday
The arrival dates you enter at step 8, make sure the first date is a Monday.
All Workers and Machines Start and End at the Same Time
When you have workers and machines (resources) that work only during a shift it it a good idea to simulate the model based on the shift times rather than simulating for x number of days and trying to add shift schedules to each worker, machine (resource) and activity. The main reason for this is to simplify your model, and avoid advance analysis. For example; You have a scenario where the workers, machines and activities that work only during an 8 hour shift and you need to simulate for 2 weeks to get accurate outputs. You can choose one of the following two paths to simulate the scenario:
1. Simulate the model for 14 days and then do advanced analytics on resource and activity utilization % to find out actual utilization by removing weekdays and off shift times.
2. Simulate the model for 80 hours (8 * 10 – 8 hours, 10 working days in 2 weeks) and get a readable and simplified output.
Multiple Employees Work at the Same Station – Each Having Unique Times
If 4 employees are working on an assembly, each having different tasks and different times, and you need to make sure that the entity only moves forward when everyone has completed their tasks.
1. Divide the assembly into two activities and connect them, example: Assembly1 Begin and Assembly1 End.
1.1. The input queue and time for the new split activities should be set to 0.
Input queue set through Properties Dialog
2. From Assembly1 Begin create four new activities based on the tasks of the resources. The routes should be Create routes.
Change the Created entity name to something other than the current entity name. If the created entity is not being used anywhere else, you can change it Statics value to No.
2.1.. The input queue and time for the new task activities should be set to 0.
3. From all for task activities, create an Attach route with Attach to set at entity that created it.
4. In the action logic of all tasks, get the resource type needed and then spend the time needed based on task.
5. On the route exting from each task, free the resource.
Worker and Time Based on What Is Available
Use an IF statement with FREEUNITS to find which worker is free and then do the time based on the worker that is free.