Coffee Maker using PLC

Coffee Maker using PLC, Siemens S7 PLC, HMI and step 7 software by simulating an industrial system control. In this project the author baseline the functions of a Coffee machine and display the physical process with the help of HMI.

Coffee Maker using PLC

This project contains the PLC program, design and displays the communication between the external input output and HMI.

Siemens Control Technology

The Siemens semantic s7 control system from Siemens provide great flexibility and high level performance and also provide necessary tools to configure the industrial system. It contains the entire logical block which can be combined with the logical operation through motion control of all the linear and rotational axes.[1]

These are feature which are required to solve the entire processing task to complete the industrial project and the controllers which provided by the Siemens for automation are cost-effective and performance oriented. The interface provided by the Siemens contains all the functionality and meet all the standards. The TIA portal provides the advantage of scalability and functional consistency which is best in class in terms of safety and security.[2]

The key requirement of using Siemens S7 PLC to write program for the PLC and HMI is to have modern technique of structuring programs. The advantage of this technology is that the logical block can simply be used by dragging the block into the network which helps in reducing the lines and times for writing the programs.

Brief Overview of Project

This is a project to demonstrate the functionality of coffee machine with the use of Step 7 software, HMI and PLC from Siemens. We are using step 7 to create a design of a coffee machine and then download it to Siemens S7 PLC 1200 and create a interface with the help of HMI.

The base of the project is how the coffee machine works and the how the other processes help in creating the coffee machine. In this project the author design a simple coffee machine which is able to produce coffee-milk and only coffee output.

This machine contains two tanks one for coffee and one for milk and three valves, one for the coffee, one for the milk and the last valve for the output. This coffee machine contains a mixer which is required to mix the coffee and milk properly to create the best output, the mixer is designed to work for four seconds after that the mixer will automatically stops and the output valve will open to get the output.

The mixer is designed with the timer and it will automatically starts after the tank in the mixer reaches to the maximum level, the tank is attached with the mixer as both the valves of coffee and milk are open and it started to fill the mixer and then the tank level comes into play with the preset maximum level, the tank can be filled upto 130ml as it reaches to maximum level, the valves of coffee and milk will close and then it will start the mixing.

The coffee machine contains four Push buttons. Button one is for emergency stop, Button two is to start the machine, Button three is for Coffee and Milk button and the last button is for Coffee only.

The emergency stop is use as a safety button if anything goes wrong in the machine like if any of the valves not open, if the tank level does not work properly, if the mixer fails to work properly or any of the unexpected events occur, then there is a need of emergency stop to stop the machine instantly.

Second button is to start the machine which starts the actual working of the coffee and create a desired output and the other two is choice button for Coffee and milk and coffee only.

Now we need a hardware test rig that will be used in the working demonstration of Coffee machine.


This is a hardware test rig which is having a processor, where we can download the PLC program. Multiple switches to demonstrate the working of coffee machine switches, Red LED indicator, one Emergency stop button and Ethernet industry cable.

PLC Program Design

You can start your project by opening the step 7 software and by clicking start new project, you can name your project as coffee maker and then you can writing the PLC program.

First thing you need to define is the default tags in the default tag table.

This is the default tag table we use to define all the global variables and these global variables are input and output with the descriptive comments and will be used throughout the program in all the blocks.

Once the global variable is defined then we need to define the local variables.

This is the default tag table we use to define all the global variables and these global variables are input and output with the descriptive comments and will be used throughout the program in all the blocks.

Once the global variable is defined then we need to define the local variables.

These are all the local variables which are going to use in program press.

Now after all the global and local variables are defined now we can start assembling the program. The following networks are designed in the network overview within step 7.

The network was designed by dragging building blocks from the library on the right side of the window. Then the local variables are used in the building blocks to describe the functionality of the building blocks and the program can be tested according to its functionalities.

Before we start testing, the program had to be compiled before upload to the PLC. The program can be compiled by pressing the small download button on the toolbar. This result in a screen showing the progress of program compilation. Once the compilation is completed, program will automatically launch into the above window.

When the correct configuration and network information is entered when prompted by the software, a green line is being displayed in the window between the symbol of operating system and symbol of the PLC.

Then the downloading of the program into PLC is done by the pressing load button. Once this completed, the program can be tested. The test view in initiated by pressing the test button which is shown in the next image.


In this window you can see that in network 6 the author used X-OR and & gate to make the Start and Emergency Stop logical circuit. Which is further going to be use as a input to start a machine.

After the machine is started the user need to select from two options coffee and milk and coffee only, in this fig the author used coffee and milk option. Now we can see that both the valves for coffee and milk are open and the coffee and milk is collected in the mixer.

Now the mixer is connected with the tank which monitored the minimum and maximum level of the mixer. As the content in the mixer goes to maximum level both valves of coffee and milk will be closed.

As you can see in this fig the author used two logical circuits to convert the tank data from analog to digital, as the level of tank is above the maximum level and logical circuit of tank maximum goes on.

After the tank level goes to maximum level it will close the valves for coffee and milk and it will start the mixer and the mixer is having a timer of 4 second which means the mixer going to mix the coffee and milk for 4 seconds.

Now in this fig you can see that the mixer goes on with timer. After 4 seconds goes off automatically and after mixer goes off it will open the valve for the output and generate the desired result.

Now as you can see in this fig after 4 second the mixer goes off automatically and the program is producing the desired output.

Main Function Block

In this figure the Main[OB1] was opened in the network overview, this function block was dragged from the program blocks from left of the screen into the main operation block.

The input and output of this block is required to assign the parameters but these are not local variable which we used before, these are global PLC tags. As you see in above image thee tags were assigned and the program is completed and project is saved.

Now after downloading this program to the device to check the program is working or not, we need to start machine as the start options goes true it means that the machine is ready to use as you can see in the image above.

Now as you can see both the options coffee and milk and coffee only is showing false it means it has to be in a true condition for further process of the machine as the user select one of the option, for example the user select coffee-milk, which makes coffee and milk goes true and opens the valve for both coffee and milk, as you can see in the above image.

Now as the tank level goes to maximum level both the valves goes off and it starts the mixer and it set the mixer on a true condition for four seconds because the mixer is bound with the timer which makes the mixer true for four seconds.

Now you can see in the above image the mixer goes off after four seconds and the program produce the desired result and the output is showing true condition.

HMI Program Design

Before we start with the HMI design the software want to know what model of HMI is going to be used. By adding the new device into the program we can add a HMI display and then configured the HMI display specifications, as is shown in the image below.

The step 7 provides wide variety of graphics in its library that can be used in the display for the design. In the HMI overview screen you can see the author use the best suitable available graphics from the library.

This is the display of the coffee machine which is having an Emergency stop button, a start button, Coffee (coffee-milk) button and coffee only button, it is also showing three valves for coffee, milk and output valve, each valve is associated with an indicator light, which will only stay β€˜on’ when the valves of the corresponding light is in active state.

There is also a tank, showing the level of content in the mixer. The machine showing is in a idle state because all the light corresponding to their function is not is a active state.

As shown in the above image the start button has been pressed to start the machine, the green light of the start button appears to be in a β€˜on’ state. Now the user needs to select from the options.

Now the user made his choice by pressing Coffee button, as shown in the image both the valve for coffee and milk is open as it showing the corresponding light of the valves is in a active state and starting to collect in the mixer.

Now you can see, the tank level is showing the mixer reaches the maximum level which directs the valves for coffee and milk to goes off and automatically starts the mixer to mix the content.

As shown in this image the mixer goes off because mixer works with timer of four seconds, as the timer expires, it will open the output valve to produce result.

OPC Overview

In this report the author want to give a brief overview about OPC architecture which is commonly used in the current industry standards. This report helps in demonstrating the some benefits of the technology which helps in keep u pace with increasing industry demands.

OPC is a industrial communication standard which is widely accepted, that enables the exchange of data between multi-vendors devices and control applications. If the hardware and software from different vendors, OPC compliance makes continuous real-time communication possible.

OPC has provides the needful interaction between the technology provider and the user. The open connectivity in industrial automation and the enterprise system is a component of OPC. The communication between the PLCs, HMI stations and software applications is being done by the OPC server.

OLE is for Process Control (OPC), which means Object Linking and Embedding for Process Control. The specification defined for OLE COM and DCOM technologies is a standard set of objects, methods and interfaces to manufacture automation applications and for the process control to have interoperability, the software framework can be developed with the help of technologies provided by the COM and DCOM. There are now hundreds of OPC data access server and clients.[3]


This project show that Siemens step 7 is a powerful tool to create and implement the program logic by using latest technology. This is the industrial demonstration of coffee machine by using PLC block and HMI as an interface to display the working of the coffee machine, this design can be upgraded as per the requirement of the user, we can add more options and check the compatibility with the current machine using Siemens step 7.

Author - arjun

References :

    1. The perfect PLC control system: highly flexible in dynamic applications . [ONLINE] Available at: Siemens. [Accessed 13 May 15].
    1. SIMATIC Controllers for cost-effective automation solutions . [ONLINE] Available at:Siemens. [Accessed 13 May 15].
  1. com. 2015. About OPC – OPen Connectivity through Open Standards. . [ONLINE] Available at: [Accessed 15 May 15].
1 Like

Can you give me this simulation file?