Keywords

1 Introduction

For decades, simulation has been used primarily for facility design improvements. Domains like manufacturing, airports, mining, ports, call centers, supply chains, and military have provided a rich set of case studies describing how simulation has been used to save tens or hundreds of thousands of dollars—sometimes even millions of dollars—per project. These are well accepted and documented applications of Discrete Event Simulation (DES). Almost 50 years of such case studies can be found on-line at the Winter Simulation Conference (WSC) Archive [1]. But Industry 4.0 introduces many new modeling demands. This chapter discusses some of those new demands and how mainstream DES technology can be used with Industry 4.0. Some material in this chapter is adapted from similar material in the book Simio and Simulation: Modeling, Analysis, Applications [2] and is included with permission.

There are many DES products on the market. Two popular sites that list and compare simulation software are Capterra [3] and the Informs Simulation Software Survey [4]. AnyLogic (Russia), Arena (USA), Plant Simulation (Germany), Simio (USA), and Witness (UK) are among the most widely used. Some DES products use the latest object-oriented technology, others are based on older procedural programming. Some have particular functional strengths like debugging tools or data handling, while others specialize in domain strengths like material handling or healthcare. What they all have in common is demonstrated strengths in providing value when used in the broad system design space. They are routinely used for purposes like:

  • Supply Chain Logistics: Just-in-time, risk reduction, reorder points, production allocation, inventory positioning, contingency planning, routing evaluations, information flow and data modeling

  • Transportation: Material transfer, labor transportation, vehicle dispatching, traffic management (trains, vessels, trucks, cranes, and lift trucks)

  • Staffing : Skill-level assessment, staffing levels and allocation, training plans, scheduling algorithms

  • Capital investments: Determining the right investments in the right things, at the right time. Investing for growth. Objective evaluation of return on investment

  • Productivity : Line optimization, product-mix changes, equipment allocation, labor reduction, capacity planning, predictive maintenance, variability analysis, decentralized decision-making.

A few of these usage areas, like human resource management, supply chains , and sustainability analysis are discussed in other chapters. While these DES tools have demonstrated significant value in traditional design-oriented applications , can these same tools provide useful value to Industry 4.0 implementations? And if so, how?

The first answer to how simulation can assist with Industry 4.0 is ‘all of the above’. At its simplest, a smart factory is just a factory—it has all the same problems as any other factory. Simulation can provide all the same benefits in the same areas where simulation has traditionally been used. In general, simulation can be used to objectively evaluate the system and provide insight into its optimal configuration and operation.

2 Simulation Case Studies

In this section we will illustrate the more traditional role of simulation with a few brief case studies. Some of these are drawn from material published in Pegden [5].

2.1 Healthcare—Denmark Health

The health system in the Capital Region of Denmark is a world-class automated health system that includes two Central Sterile Services Departments (CSSD), and two distribution centers that handle the receipt and dispatch of goods for the two CSSDs. The CSSDs and distribution centers are automated (Fig. 1) by robots for loading and unloading of storage goods and AGVs. Besides the transport of sterile goods, the distribution centers also handle other goods such as medicine, linen, uniforms, and waste. The CSSDs also supply other hospitals in the system with surgical equipment, ensuring the right equipment will be in the right place at the start of each day.

Fig. 1
figure 1

AS/RS system in Denmark Health CSSD

This system was modeled in two phases. The first phase was to access and fine-tune the system design using a Logisim model developed by ALECTIA. After the basic design was complete, a second simulation was created using a Simio model created by CGI for more detailed design and for operational control.

From the goods receipt, SAP system, or the sterile system, the Wonderware MES system receives information about items in the distribution center that must either be delivered within the hospital or sent by external transport to additional hospitals. Planning and scheduling of all transports is done using Simio, which directly integrates with the MES system. The schedule considers the type of object that must be transported, the expected transport time, and the capacity constraints in the facilities. Simio then creates an optimized plan for execution that is based on the simulated model of the system. Scheduling and re-scheduling is carried out automatically in response to events, and it reflects the current load of the facility.

2.2 Manufacturing—John Deere Cast Iron Foundry

Simio’s RPS was implemented to improve the production scheduling at the John Deere Cast Iron Foundry (Fig. 2) in Waterloo Iowa. Many industries demand complex sequencing that involves multiple constraints in order to find the most feasible production schedule. This is particularly true for the highly automated and complex John Deere Cast Iron Foundry, which produces several hundred parts with various iron recipes and production constraints. The challenge was to have an integrated production scheduling system that allows for real-time data exchange between the Wonderware MES , and SAP ERP , as well as a system that could create a schedule based on the actual status of the production line with complex production constraints. The solution was implemented using Simio’s RPS, and it has allowed us to consider complex material requirements, equipment resource availability, due dates, and nine different sequencing constraints.

Fig. 2
figure 2

Casting Iron at John Deere Cast Iron Foundry

2.3 Logistics—Shell Exploration and Production Company

In the Gulf of Mexico, Shell moves more than 50,000 tons of materials and equipment to offshore facilities (Fig. 3) each month using more than 40 offshore supply vessels. The shipments are broken into voyages, which include loading of the vessel, transiting to offshore locations, transferring materials offshore, returning to port, unloading, and possibly tank cleaning. In a typical month, Shell will schedule over 200 voyages that transport more than 9000 tracked items—anything from a simple pallet of chemicals to 20,000 feet of tubular goods.

Fig. 3
figure 3

Offshore Drilling Logistics

The offshore supply vessels employed come in a variety of sizes and configurations: the vessels range in length from 100 to over 350 feet, with cargo capacities ranging from 500 to 6000 tons. Open back deck areas and below deck storage vary in terms of capacities and types of storage. Vessel travel durations are determined based on the distance between the port and rigs, and the travel rate of the vessel is dependent upon weather and location.

The complex scheduling process revolves around shipping requests, which identify the materials and equipment that need to be shipped within the next 5–10 days. Requests include the pickup and delivery points, quantities, dimensions, weights, and time constraints. Each port has a number of loading, unloading, and tank cleaning slips, and information about the slips’ capabilities, vessel capacity, selection ranking, and load and unload times are configured for each slip.

Because of the enormity of the system and the presence of so much variability, Shell selected Simio’s RPS for the solution. RPS has allowed Shell to generate schedules that meet their complex constraints , and to assess the risk associated with the schedules. The results from RPS are displayed in Gantt charts that visually display the details of each rig, slip, vessel, and demand item, and customized reports and dashboards are used to view the schedule from different perspectives.

2.4 Manufacturing—Defense Contractor

As a defense contractor, BAE Systems must reliably plan and predict production resources to meet the military’s needs—items such as illustrated in Fig. 4 must be produced with on-time delivery and within budget. What their managers needed was more effective methods for production resource risk mitigation.

Fig. 4
figure 4

Large gun barrels deployed on a ship

BAE Systems used Simio’s RPS solution to provide planners and schedulers with a customized interface for generating schedules, performing risk and cost analysis, investigating potential improvements, and viewing 3D animations. Gantt charts now make it easy for their managers to see the timing of processes and to explore how changes in equipment or employees affect that timing. BAE Systems can run additional simulations whenever one or more factors change, resulting in a “finger on the pulse” awareness that allows quick adjustments and assures confident decision making.

Simio’s RPS helps BAE Systems meet production deadlines and is now used for a variety of forecasting and scheduling challenges including decreasing overtime, managing equipment reliability issues, developing training goals, writing proposals, and evaluating capital investments.

3 More Than just a Factory

We said above that at its simplest, a smart factory is ‘just a factory’, and so can benefit from simulation in all the same ways as a typical factory could. But of course, a smart factory implementation is much more than ‘just a factory’ and differs in many important ways. A smart factory is generally larger and has not only more components, but more sophisticated components. While an optimist might read ‘sophisticated’ as ‘problem free’, a pessimist might read that as ‘many more opportunities to fail’. Either way, a larger system with more interactions is harder to analyze and makes the traditional application of simulation even more important. It is difficult to assess the impact of any specific advanced feature . Simulation is possibly the only tool to allow you to objectively evaluate the interactions and contributions of each component, design a system that will work together, and then tune and optimize that system.

In a smart factory , IT innovations such as Big Data and Cloud Operation make real time data much more available. Although effectively handling large amounts of data is not a strength of all simulation products, more modern products allow incorporating such data into a model. While this enhanced data access potentially enables the system to perform better, it also exposes still more points of failure and the opportunity for a model of sufficient detail to identify areas of risk before implementation.

Another way that a smart factory differs is its level of automation and autonomy. The dynamic processes in a smart factory enable operational flexibility such as intelligently responding to system failures and automatically taking corrective action both to correct the failure and to work around the failure with appropriate routing changes. Again, this is an opportunity for a simulation to help assess those actions by evaluating the performance of alternatives.

Just as in a normal factory, a smart factory can’t readily be run over and over with different configurations and settings. Simulation is designed to do just that. It projects future operations, compressing days into just seconds. Further, the simulation model can be easily adjusted when the effects of scaling up or down need to be studied. The resulting information answers fundamental questions about the processes and overall system, for example how long a process takes, how frequently some equipment is used, how often rejects appear, etc. Consequently, it predicts performance criteria such as latency, utilization and bottlenecks for direct improvement.

A benefit for larger organizations using this virtual factory model is standardization of data, systems, and processes. Typically, each factory within a large corporation has implemented their systems differently. These differences cause big problems when moving these facilities to single instances of ERP or attempting to implement other consistent operational controls. People need to be using the same processes and workflows, but how do they decide what process is the best and what data is correct or preferable? Using the virtual factory model to test different operational policies and data is the best way to determine the single best global process and adjust all factories accordingly. Using simulation with a data generated approach is valuable and interesting to these large corporations with multiple global factories.

Two other benefits of simulation are particularly applicable to smart factories—establishing a knowledgebase and aiding communication. It is very difficult to describe how a complex system works, and perhaps even more difficult to understand it. Creation of a model requires understanding of how each subsystem works and then representing that knowledge in the model. The simulation model itself becomes a repository of that knowledge—both direct knowledge embedded in its components as well as indirect knowledge that results from running the model. Likewise, the 2D or 3D model animation can be an invaluable way of understanding the system so stakeholders can better understand how the system works, more effectively participate problem resolution, and hence have better buy-into the results.

Although time consuming, the modeling stage requires the involvement of operators and personnel who are intimately familiar with the processes. This imparts an immediate sense of user involvement and ownership that can help in the later stage when implementing findings. To that end, a realistic simulation proves to be a much easier and faster tool for testing and understanding performance improvements in the context of the overall system. This is especially true when demonstrating to users and decision makers.

In these ways, simulation assists with:

  • predicting the resulting system performance,

  • discovering how the various parts of the system interact,

  • tracking statistics to measure and compare performance,

  • providing a knowledgebase of system configuration and its overall working, and

  • serving as a valuable communication tool.

In summary, use of simulation in its traditional design role can provide a strong competitive advantage during development, deployment and execution of a smart factory . It can yield a system that can be deployed in less time, with fewer problems, and yield a faster path to optimal profitability.

4 Building a Simple Model

Each of the DES tools mentioned in the introduction have their own strengths and weaknesses for building design-oriented models of an Industry 4.0 system. But since Simio has some unique capabilities (see Chapter “Using Commercial Software To Create a Digital Twin”) in being used in a highly integrated role in Industry 4.0, we will include here a brief example of building a Simio-based model of a simple system for design and operational purposes. You can build this model with the Simio Personal Edition —available by download at no charge from https://www.simio.com/free-simulation-software/.

When you first load Simio you will be presented the option to view a Quick Start video. Watching this short, 15 min, video will introduce you to the basics of navigation, model-building, and experimentation in Simio. We will assume that you have carefully watched that video and so already know the basics of model building. If you accidentally dismissed that video, you can locate it on the Support Ribbon—it is the first video listed under the “Videos” button.

Now that you have watched the Quick Start video , you should see a new Simio project. If not, create a new model by clicking on the “New” item in the File page Fig. 5 shows the default initial view of a new Simio project, looking at the blank model. Although you may have a natural inclination to start model building immediately, we encourage you to take time to explore the interface and the Simio-related resources provided through the Support ribbon (described in the video).

Fig. 5
figure 5

Facility window in a new Simio model

Using Standard Library objects (Table 1) is the most common method for building Simio models. These pre-built objects will be sufficient for many common types of models. Start with a new project and place a Source, three Servers, and a Sink, then name the servers and connect them with paths as illustrated in Fig. 6. As you build the model, leave all the object properties at their default values. Group select the three servers and in the Advanced Options property group set Log Resource Usage to True. Set the Ending Type on the Run ribbon to a Run Length of 1 h.

Table 1 Simio Standard Library
Fig. 6
figure 6

Facility window of our simple Simio model

Select the Planning Tab and the Operational Planning Ribbon and click the Create Plan button. When you view the Resource Plan (click top button on the left) you will see each resource listed and on the right side you will see the activity on each resource—more specifically, you will see when each entity started and stopped processing on each resource. If you use the Zoom In or Zoom Range functions on the Gantt ribbon, or simply scroll the mouse on the Gantt time scale, you will be able to more closely examine the activity in a view that looks like Fig. 7.

Fig. 7
figure 7

Resource Plan zoomed to show entity details

Click the Entity Workflow button on the left, to see a different Gantt view displaying all entities in separate rows, which resources it used, and when it started and stopped processing on each resource. Again, you can use the Zoom features to zoom in, so you can see the detailed activities of the first few entities listed (Fig. 8). Note that the entity ID’s are sorted as strings (not numerically)—so the first entity created ‘DefaultEntity.19’ comes between ‘DefaultEntity.189’ and ‘DefaultEntity.190’—perhaps not intuitive, but we will address that shortly.

Fig. 8
figure 8

Entity Workflow Gantt zoomed to show resource details

5 Creating a Data-Driven Model

A Simio Data Table is similar to a spreadsheet table . It’s a rectangular data matrix consisting of columns of properties and rows of data. Each column is a property you select and can be one of about 50 Simio data types, including Standard Properties (e.g., Integer, Real, Expression, Boolean), Element References (e.g., Tally Statistic, Station, Material), or Object References (e.g., Entity, Resource, Node). Typically, each row has some significance; for example, the row could represent the data for a particular entity type, object, or organizational aspect of the data.

Data tables can be imported, exported, and even bound to an external file. They can be accessed sequentially, randomly, directly, and even automatically. You can create relations between tables such that an entry in one table can reference the data held by another table. In addition to basic tables, Simio also has Sequence Tables for creating process plans and Arrival Tables for scheduled arrivals, each a specialization of the basic table. Refer to Simio help for more information on these topics.

While reading and writing files interactively during a run can significantly slow execution speed, tables hold their data in memory and so execute very quickly. Within Simio you can define as many tables as you like, and each table can have any number of columns of different types—you can define any table schema you need. You’ll find tables to be valuable in organizing, representing, and using your data as well as interfacing with external data.

Let’s make our model more realistic by using a data file containing orders we want to produce and using more appropriate processing times. First, back in the Data tab, we want to go to the Schema ribbon, add a table (Add Table button) and name this new table ArrivalTable. You will find a CSV file named ArrivalTableData.csv from the folder named DataDrivenModelDataFiles found in the student downloads files. Use the Create Binding button on the Content ribbon to bind this CSV file to your new table. This action establishes a relationship between the table and the file, as well as creates the schema (column definitions) so we can import the data. With this established, we can now Import the file into the table (Fig. 9). Since this table has actual calendar dates in it, the model must be configured to run during those dates. On the Run ribbon, set the Starting Type to Specific Starting Time matching the first arrival (12/2/2019 12:00:00 AM) and set the Ending Type to Run Length of 1 Days.

Fig. 9
figure 9

ArrivalsTable after import from CSV

In the Facility view select the Source1 object so we can configure it to create entities using the new table. Set Arrival Mode to ArrivalTable and set the Arrival Time Property to ArrivalTable.ArrivalTime. Let’s also make the server processing times more realistic. Group select (select, Ctrl-select, Ctrl-select) the three servers and change the Units on Processing Time to be Hours instead of Minutes.

The last thing we want to do for now is to use the OrderID listed in the table to identify our entities. Drag a ModelEntity into the Facility view so we can edit its properties. In the Default Entity Advanced Options category set the Display Name to ArrivalTable.OrderId. Under the Animation category also set the Dynamic Label Text to ArrivalTable.OrderId. These two changes will let Simio identify each entity with the information in the data table rather than its default (e.g., Order_10001 instead of DefaultEntity.17).

We are done with this series of enhancements, so let’s examine our results. Navigate back to the Entity Workflow Gantt under the Planning tab. You should see a bright red bar indicating that we have changed the model since we last ran it, so let’s refresh the Gantt chart by clicking the Create Plan button. After zooming again to adjust to the new times, you should see all your entities listed, now with more meaningful names based on how they were identified in the ArrivalTable (Fig. 10). And in the Resource Plan, you should see each of your resources as they were, but now the entities again have more meaningful names (Fig. 11).

Fig. 10
figure 10

Entity Workflow Gantt with better times and entity labels

Fig. 11
figure 11

Resource Plan Gantt with better times and entity labels

6 Adding Performance Tracking and Targets

Now that our model is working, let’s add a few features to help us evaluate how well our schedule is working. One important item is to record when each order is planned to ship. We do that by first adding a State to our table. Navigate back to the table and select the States. Select a DateTime state to add it to the table. Name this column ScheduledShipDate. This is an output column that is assigned values during the run, so initially it will show errors indicating no data yet. We must assign those values in Sink1, where orders go when they are completed. In the State Assignments section of Sink1 assign ArrivalTable.ScheduledShipDate to TimeNow.

Another important item is to evaluate whether the order is scheduled to be shipped on time . We do that by adding a Target to the table. Navigate back to the Table and open the Targets ribbon. When you click on the Add Targets button, two columns are added to the table—a Value and a Status for that target. Name this target TargetShipDate. The Expression we want to evaluate is ArrivalTable.ScheduledShipDate which has the Data Format of DateTime. The value we want to compare this to is ArrivalTable.ExpectedShipDate—we don’t want to exceed that value, so we make it the Upper Bound. You will typically want to replace the default terminology for clarity. Under the Value Classification category set the values of Within Bounds to On Time, Above Upper Bound to Late, and No Value to Incomplete. If you run the model now, you will see that the status of all the orders is Late.

Let’s balance the system by changing the Processing Time for all the servers to be Random.Triangular(0.05, 0.1, 0.2) Hours. Rerun the model and look at our table again. You will see that now all orders are On Time. If we move over to the Entity Workflow on the Planning tab and run Create Plan, you will see that the plan now has a gray flag on each entity indicating the Target Ship Date. When that flag is to the right of the last operation, that indicates a positive slack time (e.g., the plan calls for that order to complete early). But we don’t yet know how confident we can be in those results. If you click the Analyze Risk button the model will run multiple replications with variability enabled and those flags will change color and display a number that is the likelihood that the order will be On Time.

This model does not yet include much variation , so let’s add variation in three places. First, let’s allow for variability in order arrival times. If orders typically arrive up to a quarter hour early or up to a half hour late, we would represent that on the Source by setting the Arrival Time Deviation under Other Arrival Stream Options to Random.Triangular(−0.25, 0.0, 0.5) Hours. Second, let’s assume that the Drill is a bit longer and less predictable than the others and set its Processing Time to Random.Exponential(0.2). Finally let’s recognize that all three servers have some reliability problems. Under Reliability add a Calendar Time Based failure to each, leaving the default Uptime Between Failures and Time to Repair. Return again to the Entity Workflow Gantt , click Analyze Risk, and now you will see that even though most orders are still projected to be on time in the deterministic plan, when the variability is considered most of them have a low probability of actually being on-time (Fig. 12).

Fig. 12
figure 12

Higher variability system with risk analysis

7 Summary

This chapter provided only a brief introduction into model-building, illustrated with Simio. We created a very simple model, imported a data table to drive the model, generated a schedule, and performed basic risk analysis. While we did not take the time to animate our simple model, Fig. 13 illustrates the 3D animation that is possible for a large system.

Fig. 13
figure 13

Sample 3D animation (model created by Mosimtec)

Simulation can be used in all aspects of design analysis including the inclusion of more complex modeling features like AGVs, ovens, conveyors, and overhead cranes. Simulation can also represent complex interactions like and worker scheduling, skill-based worker selection, and sophisticated resource and routing rules, and then be used to objectively evaluate system design and performance. All of these encompass traditional design-oriented use of simulation, in support of modeling Industry 4.0 applications to design and implement the most effective systems.

In Chapter “Using Commercial Software To Create a Digital Twin” we will build on these concepts, to explore the additional benefits of using simulation in support of a digital twin. You can obtain more detail about Simio features and building Simio models by accessing one of the popular Simio textbooks [2, 6] or the videos, examples, SimBits and other training materials available with the Simio software (see the Support ribbon).