Cookies are important for this site to function properly, to guarantee your safety, and to provide you with the best experience. By clicking OK, you accept all cookies. For more information, please access our Privacy Policy.
Table of Contents
Tutorials / 
How to Build Recipe Management in WinCC Unified
Advanced

How to Build Recipe Management in WinCC Unified

Siemens
TIA Portal
WinCC
HMI Development
SCADA

Introduction

Managing recipe or process parameters across multiple products can quickly become a maintenance headache if your PLC and HMI aren't configured to handle it cleanly. This tutorial walks you through building a robust parameter set control system in TIA Portal and WinCC Unified, using a mixing application as a practical example. Whether you're managing a handful of recipes or planning for dozens down the line, getting this foundation right from the start will save you a lot of rework later. We'll cover everything from the initial PLC and HMI setup to getting parameter sets running smoothly in your browser-based simulation.

PLC Engineering Workflow

Begin by launching TIA Portal and creating a new project, then giving it a name that reflects the mixing application. For the PLC, insert a 'CPU 1516-3 PN/DP', and for the HMI, insert a 'MTP1200 Unified Comfort Panel', since these are the hardware components required for this setup.

Figure 1.1: WinCC Unified Parameter Control - PLC & HMI selection
Figure 1.1: WinCC Unified Parameter Control - PLC & HMI selection

Double-click 'Devices & Networks' in the project tree to open the network configuration editor. In the 'Network View' tab, click the 'Connections' button, then select 'HMI Connection' from the drop-down list positioned beside it. Next, link the appropriate PROFINET ports of the PLC and HMI by dragging a connection line between them.

Figure 1.2: WinCC Unified Parameter Control - Setting up the HMI connection
Figure 1.2: WinCC Unified Parameter Control - Setting up the HMI connection

The next step is to create a new PLC data type since it will be reused across multiple data blocks later. Expand the 'PLC data types' folder in the project tree and double-click 'Add new data type' to open the editor. When the new UDT editor appears, rename the data type to 'Mixing_IngAll_Simple_UDT' so you can easily identify it later. Next, begin adding the individual elements that will make up this data type. Click <Add new> and enter your variables one at a time, giving each a clear and descriptive name. Assign the correct data type to each variable as well, matching it to the kind of value it will store. Make sure the 'Accessible from HMI' checkbox is enabled for every element, since this is required for HMI communication to work correctly.

Figure 1.3: WinCC Unified Parameter Control - Building the custom UDT
Figure 1.3: WinCC Unified Parameter Control - Building the custom UDT

Now add this newly created PLC data type to the project library so it can be reused for future projects. Open the 'Libraries' task card from the right-hand panel of the TIA Portal window. Drag the new data type into the 'Types' folder within 'Project library' and release it there. An 'Add Type' dialog box will appear, prompting you to enter the name, version, author, and an optional comment. Click OK to confirm and save the entry.

Figure 1.4: WinCC Unified Parameter Control - Publishing the UDT to the library
Figure 1.4: WinCC Unified Parameter Control - Publishing the UDT to the library

Next, create an instance of the UDT within a new data block. Double-click 'Add New Block' under the PLC's 'Program Blocks' folder to open the creation dialog. In the dialog that opens, select 'Data Block (DB)', enter a suitable name, set the block type to 'Global DB', and click OK.

Figure 1.5: WinCC Unified Parameter Control - DB creation for the UDT instance
Figure 1.5: WinCC Unified Parameter Control - DB creation for the UDT instance

With the DB editor now open, define your static tag inside it. Click <Add new>, name the tag 'Mixing_Bread', and set its data type to 'Mixing_IngAll_Simple_UDT'.

Figure 1.6: WinCC Unified Parameter Control - Adding a static tag
Figure 1.6: WinCC Unified Parameter Control - Adding a static tag

Next, expand 'HMI Tags' in the project tree, add a new tag table, and name it 'Mixing'. Begin defining the HMI tag by entering a name and selecting an appropriate data type. In the Connection column, choose 'HMI_Connection_1'. As a result, the tag is linked to the UDT instance inside the data block.

Figure 1.7: WinCC Unified Parameter Control - Configuring communication connections
Figure 1.7: WinCC Unified Parameter Control - Configuring communication connections

Under the 'PLC Tag' column, select the 'Mixing_Bread' variable you created earlier in the data block.

Figure 1.8: WinCC Unified Parameter Control - Selecting the PLC tag
Figure 1.8: WinCC Unified Parameter Control - Selecting the PLC tag

Next, navigate to the parameter set type section under the HMI folder, add a new entry, and name it 'Mixing_Bread'. Set its data type to the 'Mixing' UDT created previously.

Figure 1.9: WinCC Unified Parameter Control - Defining the parameter set type
Figure 1.9: WinCC Unified Parameter Control - Defining the parameter set type

In the Tag column, select the HMI tag you just created to complete the link to the instance.

Figure 1.10: WinCC Unified Parameter Control - Selecting the HMI tag
Figure 1.10: WinCC Unified Parameter Control - Selecting the HMI tag

From within this parameter table, you can configure each element's start value, its limits (either constant or tag-based), and its unit of measurement.

Figure 1.11: WinCC Unified Parameter Control - Defining start values for elements
Figure 1.11: WinCC Unified Parameter Control - Defining start values for elements
Figure 1.12: WinCC Unified Parameter Control - Defining measurement units for elements
Figure 1.12: WinCC Unified Parameter Control - Defining measurement units for elements

Next, open the screen belonging to your HMI device. From the Controls section of the Toolbox task card, drag the 'Parameter Set Control' object onto the main screen.

Figure 1.13: WinCC Unified Parameter Control - Adding the parameter set control to the HMI screen
Figure 1.13: WinCC Unified Parameter Control - Adding the parameter set control to the HMI screen

Select the newly placed object, then open the Properties tab within the Inspector window. In the General section, assign the new parameter table to the 'Fixed Parameter Set Type' field.

Figure 1.14: WinCC Unified Parameter Control - Assigning the parameter set type to the screen object
Figure 1.14: WinCC Unified Parameter Control - Assigning the parameter set type to the screen object

Then locate the 'Editing Mode' setting within the Miscellaneous section. Use this setting to control precisely which actions operators are permitted to carry out at runtime.

Figure 1.15: WinCC Unified Parameter Control - Setting the editing mode
Figure 1.15: WinCC Unified Parameter Control - Setting the editing mode

HMI Engineering Workflow

Now let's move on to creating a new WinCC Unified HMI UDT, separate from the PLC-side data type. Open the Libraries task card again from the right-hand panel. Expand 'Types' under 'Project library' and double-click 'Add New Type' to start the process. In the dialog, choose the 'HMI User Data Type' tab, set the type to 'Unified Panels / WinCC Unified PC', and enter a descriptive name.

Figure 2.1: WinCC Unified Parameter Control - Defining HMI-specific UDTs in the project library
Figure 2.1: WinCC Unified Parameter Control - Defining HMI-specific UDTs in the project library

Next, add the necessary elements to this new HMI UDT. Click <Add new>, enter each element in turn, and assign the correct data type to it.

Figure 2.2: WinCC Unified Parameter Control - Adding elements in the HMI UDT
Figure 2.2: WinCC Unified Parameter Control - Adding elements in the HMI UDT

Right-click the newly created HMI UDT and choose 'Release Version' to formally publish it for use. Click OK when the confirmation dialog appears.

Figure 2.3: WinCC Unified Parameter Control - Releasing the HMI UDT version
Figure 2.3: WinCC Unified Parameter Control - Releasing the HMI UDT version

Open the HMI tags table and add a brand-new tag entry. Name it 'Mixing_IngAll_Simple_1', set its data type to the HMI UDT you just built, and set the Connection field to 'Internal tag'.

Figure 2.4: WinCC Unified Parameter Control - Creating a non-PLC linked internal HMI tag
Figure 2.4: WinCC Unified Parameter Control - Creating a non-PLC linked internal HMI tag

In the project tree, add a new parameter set type to hold this configuration. Name it 'Mixing_Bread_1' and set its data type to the HMI UDT you created earlier in this section.

Figure 2.5: WinCC Unified Parameter Control - Configuring the new HMI-specific parameter set type
Figure 2.5: WinCC Unified Parameter Control - Configuring the new HMI-specific parameter set type

Link the new HMI tag to this parameter set type to complete the association.

Figure 2.6: WinCC Unified Parameter Control - Binding the HMI tag to the new parameter set type
Figure 2.6: WinCC Unified Parameter Control - Binding the HMI tag to the new parameter set type

Next, open the HMI device screen. From the Controls section of the Toolbox task card, drag the 'Parameter Set Control' element onto the main screen.

Figure 2.7: WinCC Unified Parameter Control - Placing the parameter set control screen object
Figure 2.7: WinCC Unified Parameter Control - Placing the parameter set control screen object

Click the inserted object and open the Properties tab in the Inspector panel. Assign your newly created parameter set type to the 'Parameter set control' object.

Figure 2.8: WinCC Unified Parameter Control - Assigning the new parameter set type to the screen object
Figure 2.8: WinCC Unified Parameter Control - Assigning the new parameter set type to the screen object

Usage & Settings

Compile the completed project and download it to the physical or simulated controller. Click 'Start Simulation' on the top toolbar to launch the HMI screen inside your web browser.

Figure 3.1: WinCC Unified Parameter Control - Compiling and downloading the project
Figure 3.1: WinCC Unified Parameter Control - Compiling and downloading the project

Once the browser window opens, click the 'Create Parameter Set' button to begin. Here, you can create a brand-new data set simply by entering a name and an identifying number. For this example, start by creating the 'Normal_Bread' data set and assigning it the number 1.

Figure 3.2: WinCC Unified Parameter Control - Creating and numbering new parameter sets in runtime
Figure 3.2: WinCC Unified Parameter Control - Creating and numbering new parameter sets in runtime

Next, create a second data set named 'Com_Bread' and assign it the number 2.

Figure 3.3: WinCC Unified Parameter Control - Defining the name and ID for the second parameter set
Figure 3.3: WinCC Unified Parameter Control - Defining the name and ID for the second parameter set

At this point, you can adjust the individual ingredient values as needed. For instance, set the CornFlour value to 50 kg for this recipe. Click Save afterward to store the updated value within the data set.

Figure 3.4: WinCC Unified Parameter Control - Editing recipe values
Figure 3.4: WinCC Unified Parameter Control - Editing recipe values

Keep in mind that this change applies specifically to the 'Com_Bread' parameter set, not to 'Normal_Bread'.

Figure 3.5: WinCC Unified Parameter Control - Distinguishing value adjustments between the two datasets
Figure 3.5: WinCC Unified Parameter Control - Distinguishing value adjustments between the two datasets

Click 'Download' to write this updated configuration back to the PLC.

Figure 3.6: WinCC Unified Parameter Control - Downloading the updated parameter set to the PLC
Figure 3.6: WinCC Unified Parameter Control - Downloading the updated parameter set to the PLC

Return to the PLC's data block under the 'Program Blocks' folder and switch the view into online mode.

Figure 3.7: WinCC Unified Parameter Control - Accessing the PLC data block in online view
Figure 3.7: WinCC Unified Parameter Control - Accessing the PLC data block in online view

From this online view, you can now modify the parameters directly on the running PLC. For example, double-click the monitored value for Flour, then use the Modify window to change it from 100 kg to 150 kg.

Figure 3.8: WinCC Unified Parameter Control - Modifying PLC parameters directly in the online view
Figure 3.8: WinCC Unified Parameter Control - Modifying PLC parameters directly in the online view

Switch back to the WinCC Unified simulation running in your browser, and click 'Upload' to read the current parameters from the PLC. In the Upload dialog that appears, you can choose either to overwrite an existing parameter set or create an entirely new one for the changed values. Choose to overwrite the modified values into the 'Com_Bread' parameter set.

Figure 3.9: WinCC Unified Parameter Control - Uploading live PLC values to the WinCC Unified simulation
Figure 3.9: WinCC Unified Parameter Control - Uploading live PLC values to the WinCC Unified simulation

You'll now see the updated Flour value clearly reflected within that parameter set.

Figure 3.10: WinCC Unified Parameter Control - Viewing the synchronized PLC changes in your dataset
Figure 3.10: WinCC Unified Parameter Control - Viewing the synchronized PLC changes in your dataset

Conclusion

In conclusion, you have learned how to build a complete parameter set control workflow that spans both PLC and HMI engineering in TIA Portal. You've created a reusable PLC UDT, linked it to a data block and HMI tags, and configured a parameter set control object to manage recipe data like 'Mixing_Bread'. On the HMI side, you built a separate WinCC Unified UDT, published it, and connected it to its own parameter set control. You also practiced creating multiple data sets, editing ingredient values, and syncing changes between the PLC and HMI using download and upload actions. As a next step, try expanding this framework with additional recipes or ingredients, and explore how editing mode settings can further control operator permissions at runtime.