In this article, you will learn:

  • How to track the status of a work order across multiple stations
  • How to drill down into data around an individual work order
  • How to combine apps, tables and analytics

What if you could have a “Domino’s Pizza Tracker” for work orders on your shop floor?

You know, like the real-time visualization that Domino’s shares when you want to see the progress of your pizza delivery:

Similarly, let’s imagine that a work order must pass through 5 workstations on your shop floor before it is completed. And, there are 20 active work orders on your floor at any given time.

Do you know the real-time status of each work order, and its progress towards completion?

In this walkthrough, you will learn how to track the live status of work orders and allow any operator or engineer to instantly check order status via a shop floor dashboard, or a visualization that is running on a touch screen on your floor.

By default, Tulip tracks the amount of time it takes to complete every app. But, you need to use Tables to track work orders across multiple stations. 

To accomplish this, you will need to build two types of apps:

  1. Apps that will run at each station on your floor
  2. A shop floor dashboard app that will display data on a touch screen that is connected to the internet

Here is the general flow of data:

  1. At the first station, operator scans or enters a barcode, which will create a record in a Table.
  2. Every time the work order passes through a subsequent station, the table record will be updated with cycle time data.
  3. Every time the work order passes through a subsequent station, the visualization of all work orders on your floor will be updated with the latest data.
  4. When the work order passes through the last station, it will be added to a separate visualization that just includes completed work orders.
  5. If an operator or engineer is curious about an individual work order, they can enter the work order number on the shop floor dashboard and get a breakdown of cycle times across each station and any remaining progress.

In order to build these apps, you will use these Tulip features:

Here's what the final product might look like:

This shows the number of workstations that each work order has passed through. The two work orders on the right are still in progress since they have no value for "Station 5".

Before you use this tutorial, make sure you have completed Tulip Basics to understand the basics of app building.

Here’s how to track cycle time data by workstation for every individual work order.

Add the Work Order To a Table

First, you need to create a “Work Orders” table to store cycle time data for each individual work order. 

Here are some of the fields you may need in your table:

  • ID- this is required, and will be the work order number that is stored when a work order is scanned at the first station. (string)
  • target_cycle_time- the cycle time goal for the entire work order in minutes (number)
  • stations_required- the total number of stations that the work order must pass through (number)
  • stations_passed- the total number of stations that have completed their work on the work order (number)
  • s1_cycle_time- the cycle time for the work order at station 1 (interval)
  • s2_cycle_time- the cycle time for the work order at station 2 (interval)
  • s3_cycle_time- the cycle time for the work order at station 3 (interval)
  • s4_cycle_time- the cycle time for the work order at station 4 (interval)
  • s5_cycle_time- the cycle time for the work order at station 5 (interval)

Here’s what that might look like:

To build it, first create a Table called “Work Orders”.

Then, add each individual field to the table using the “+” button.

After you have added all fields, head over to the App Builder and create a new app. You should create a new app for each station in the process. 

Adding Work Orders to the Table

We will start by covering the first station, where we will need to create a new table record for the work order based on the work order ID.

First, in the new app, you will need to create a record placeholder. Click the Records tab, then choose “Add a record.”

Name the placeholder “Active Work Order” or something similar so you know that you are creating a new record.

Then, on the first step in the app, you will want to prompt the operator to scan a barcode. This is what the step looks like in the Tulip Terminal: 

Or, you can create a Form Step that has a single text input:

You will need to create a trigger that will add a new record to the “Work Orders” database.

It might look like this:

  • “When” “Barcode Scanner” outputs at “This Station”
  • “Table Records” “Create Record” by ID: “Device Output” “data” into “Active Work Order”
  • “Go To Step” “Next”

Finally, you need to add a Form Step following this step so the operator can confirm the number of stations that the work order must pass through, and the expected total cycle time.

It would have two fields:

  1. A number field for total stations needed to complete the work order
  2. A number field for the expected total cycle time (in minutes)

It might look like this:

In each case, you will need to create a variable in the Context Pane to store the value in the field.

You can also add a default value in the Context Pane so that operators will not need to manually add a value every time.

Next, you need to set the Submit Button to “Custom Action”, and add a trigger that will store these two numbers in the “Active Work Order” record placeholder and then complete the app to save the data.

Here’s what the Trigger might look like:

  • “Data Manipulation” “Store” data: “Variable” “station_num” location: “Table Record” “Active Work Order” “stations_required”
  • “Data Manipulation” “Store” data: “Variable” “cycle_time_num” location: “Table Record” “Active Work Order” “target_cycle_time”
  • “Data Manipulation” “Store” data: “App Info” “Time Elapsed on App” location: “Table Record” “Active Work Order” “s1_cycle_time”
  • “Data Manipulation” “Store” data: “Static Value” “number”  “1” location: “Table Record” “Active Work Order” “stations_passed”
  • “App” “Complete App”

Now, you are ready to create the other 4 apps that cover each step of the manufacturing process.

Update the Table Record After Each Station

So far, we have created an app for the first station on your production line that will: 

  1. Create a new work order when a barcode is scanned
  2. Update that record to show that it has passed through one station, and log the cycle time

Now, we need to add 2 triggers to each of the other 4 apps on the production line that will update this same record.

  1. Load the table record related to a specific work order in each app
  2. Add the cycle time for each station after work is completed and increment the total number of stations that the work order has passed through

So, let’s say that an operator at the 2nd station on the line opens an app when they are ready to continue the work order.

First, you need a record placeholder called “Active Work Order” so you can update it.

Then, you must load up the appropriate record. You can add a trigger around a barcode scan just like the first step: 

  • “When” “device” “Barcode Scanner” outputs at “This Station”
  • “Table Records” “Load Record” by ID: “Device Output” “data” into “Active Work Order”
  • “Go To Step” “Next”

After the operator at the 2nd station completes their work, you will want to update the record upon app completion. Here’s the trigger that you would want to add to the “Complete” button.

  • “Data Manipulation” “Store” data: “App Info” “Time Elapsed on App” location: “Table Record” “Active Work Order” “s2_cycle_time”
  • “Data Manipulation” “Increment Value” value: “Table Record” “Active Work Order” “stations_passed” by: “Static Value” “number” “1”
  • “App” “Complete App”

For stations 3-5, you can recreate both the barcode scan trigger and time storage trigger at the beginning and end of each app. You just need to update the field from the table where you will be storing the time for app completion.

Create Two Analyses of All Active Work Orders

After you have an app running at each workstation, you will be able to collect data on each step in the process. Now, you need to set up a live visualization to automatically track data.

In order to do this, you can create a bar chart that separates data by work order ID. Each bar will be split up by the amount of time that a work order spent at each station. You will be able to quickly see which stations have the longest cycle time and the status of each work order.

First, make sure that at least one work order has passed through every step in the process so you have some test data.

Here’s an example of what your “Work Orders” table might look like after a few work orders have passed through all 5 stations.

This will give us 6 work orders to test our analytics. 4 have been completed, while 2 are still in progress.

To create an analysis, go to the Station 1 app, and click “Create Analysis” in the App Summary View.

Then, choose the “One Operation” template, since we will be looking at cycle times for each app.

In the “Apps” field in the Context Pane of the Analytics Builder, add all 5 stations where the app is used.

Then, in the “X Axis” option, choose the “ID” field from the record placeholder that you used in all 5 apps.

In the “Y Axis” option, choose a “Sum” of Process Cycle Times.

In the “Compare By” option, choose “App” so that the bars will be colored based on the app.

Then, choose “Stacked Bar Chart” in the Display options to more easily visualize the progress of work orders.

In the “Date Range” option, choose the maximum amount of time that work orders typically remain in progress after being started.

For example, if work orders typically take 1 month from start to finish, choose "Last 1 Month".

Here’s an example of what data from all 5 stations for the past month might look like:

Now, you have a live visualization that will refresh every 60 seconds with the status of all work orders from the past month. You need to create an app that will allow you to dig into the details of individual work orders. We will cover that in the next section.

Viewing All Completed Work Orders

There is one issue that is remaining. Although this visualization will show all work orders within a timeframe, there is no way to highlight work orders once they have been completed! 

To accomplish this, we can analyze data from the 5th station in the sequence. Select the "Compare Variables" template.

Then, just choose the 5th app in the sequence in the "App" field.

On the X axis, choose "Active Work Order ID" just like above. 

For "Y Axis", choose the "Sum" operation.

Under "Compare", choose the 5 cycle times that you have stored in your table record.

Here is the last part, and it is the most important for segmenting completed work orders. Under the "Filters" tab, choose the cycle time for the last station, and set it to "Greater than 0" to remove all data from work orders still in progress.

Create A Shop Floor Dashboard App

Create one more app called “Work Order Dashboard” to investigate individual work orders. On the first step, we will embed the analysis that we just created.

Choose “Embed Analysis” from the Widget Bar.

In the Context Pane, choose “Active Work Orders On Floor”, or whatever title you chose for the previous analysis.

Then, add a “Drill Down” button that will send users to the next step to choose a specific work order.

The full step should look like this:

The next step should be a Form Step with one field: a work order ID input in text.

Save the response in a variable called “active_wo”. This allows any user to choose a specific work order from the graph in the previous step.

Now we need to add a record placeholder for the record we will be loading from the “Work Orders” table. You can call it “Record Drill Down”.

On the Submit button, add a custom action with a trigger that will look up the given ID and then goes to the next step. Here’s what the trigger looks like:

  • “Table Records” “Load Record” by ID: “Variable” “active_wo” into “Record Drilldown”
  • “Go To Step” “Next”

In the final step of the app, you should add a “Menu” button and a “Restart” button to allow users to return to the first step.

Then, add Table Record text using the Text widget in the Widget Bar.

And then rearrange and reposition the Table Record text so that it looks balanced.

Here’s an example:

And that’s all! Now anyone can dig into an individual work order and see the progress of all active work orders at once.

Now, just run this dashboard app in the Tulip Player on a touch screen on your shop floor.

Further Reading

Did this answer your question?