Basic Training Fundamentals
Basic Training Fundamentals
documentation
Basic Training -
Fundamentals
© 2023Ing. Punzenberger COPA-DATA GmbH
Distribution and/or reproduction of this document or parts thereof in any form are permitted solely
with the written permission of the company COPA-DATA. Technical data is only used for product
description and are not guaranteed properties in the legal sense. Subject to change, technical or
otherwise.
Table of contents
2 Welcome! ..................................................................................................................................................... 7
GENERAL HELP
If there is any information missing from this document or anything that you would like to be added,
please send an email to [email protected].
PROJECT SUPPORT
You can get support for questions about your own specific projects from our customer service team,
which you can contact via email at [email protected].
6 | 175
Welcome!
2 Welcome!
We are glad that you want to learn more about zenon.This training material is intended to help you
and at the same time serve as a reference guide.
Note: This documentation is not intended as a standalone document; it should accompany an online
course or face-to-face training.
You will find several advanced training courses on our learning platform, zenon Academy
(http://www.zenon-academy.com)!
You will learn how to configure in zenon and how Engineering Studio and Service Engine
components are divided and interact with each other. Throughout the course of the training, we will
help you create a continuous project that you will expand with each chapter.
At the end of this training you will be able to create and manage projects on your own.
During this training, we will give you a better understanding of the zenon software platform. The goal
is for you to understand how to effectively use zenon to tackle challenges and what advantages you
will get from it. This training serves as an introduction to the vast world of zenon.
In our zenon Academy (http://www.zenon-academy.com), you will find many additional and
in-depth courses, which will build on the basic knowledge of this training.
Attention
Throughout the course of the training, you will have many opportunities to
independently apply what you have learned. Take your time when doing these
exercises. This will reinforce what you learned and quickly determine if you
understood everything correctly.
7 | 175
zenon Basic Training - Fundamentals
TRAINING STRUCTURE
You will create a project that requests weather conditions on several planets. The planets are shown
together in the overview at a glance and can also be separately viewed in detail. You will configure
the project to trigger alarms at certain limit values and you will learn several ways to visualize data, for
example as a trend curve.
In addition, you will configure access rights for different users and also allow users to customize
language, measuring units and so forth, as you see fit.
You will learn about efficient engineering by reusing objects and applying substitution in zenon.
At the end of the training, your project will look something like this:
Note: A project backup is available for each chapter. You can jump right into the training at any
point if you already have previous knowledge. You can also expand the project at any time and
playfully explore new zenon functionalities.
ZENON CERTIFICATION
You can obtain a zenon Basic Certificate by successfully completing the zenon Basic -
Fundamentals training online in our zenon Academy. You can access the certificate at any time in
the zenon Academy and download it as a PDF. You can find more information at
www.zenon-academy.com (http://www.zenon-academy.com).
8 | 175
zenon Basic Training - Fundamentals
Unlimited applicability & application zenon does not specialize in a specific industry the
sets software platform can be used universally. We also offer
pre-made application sets and additional components
for different industries, such as Smart Objects, which can
easily be integrated into existing or new projects.
Reusability You can centrally manage and reuse objects and symbols
in zenon. This allows you to expand or create projects
quickly.
Multi-project administration You can smoothly manage and apply multiple projects at
the same time in zenon. You can easily break down a
huge project into smaller units and thus remain flexible
when configuring and on the user side.
Network redundancy Data security and reliability have the highest priority. You
can easily implement different types of redundancies in
zenon, by setting the appropriate parameters during
configuration.
9 | 175
zenon Basic Training - Fundamentals
zenon Online Help Do you have any questions? zenon Online Help will
provide you with all the information about the software
platform and its specialized modules.
Engineering Studio This is where you can configure and manage your
projects. You can also create Service Engine files from
here.
Service Engine This is where projects are carried out and operated by
the users.
License Management With this tool, you can manage and assign licenses.
Report Engine Use this to create reports based on data from the
Service Engine.
Smart Server & Smart Client Allow the Service Engine to run in a browser.
The two main components of the software platform are Engineering Studio and Service Engine. We
will address these two in this training.
10 | 175
zenon Basic Training - Fundamentals
After creating a project, you then transfer the Service Engine files to the Service Engine PC.
Note: In this training, the development PC and the Service Engine PC are identical. However, in most
cases they are different computers. The Engineering Studio does not need to be installed on the
Service Engine PC.
11 | 175
zenon Basic Training - Fundamentals
The Service Engine PC is connected to the PLC, and they communicate via a driver. This means that
control commands can be sent, and information can be called up. In the example below, zenon
would ask the PLC for the temperature sensor value, and the PLC would then provide this value to the
Service Engine PC. In short: You can read the temperature on the monitor.
If you already have zenon 11 (or a higher version) installed, you can simply skip this chapter and
sub-chapters.
12 | 175
zenon Basic Training - Fundamentals
After that, you can choose from different zenon versions (you will need zenon 11 or higher for this
training).
13 | 175
zenon Basic Training - Fundamentals
Confirm the next dialogs until you get to the Components step. There you will select Engineering
Studio and Service Engine.
3.3.3 Licensing
The license will be checked when the program starts. The product will launch with the licensed
modules. If no valid license is found when the program starts, a dialog will indicate this. You can then
choose to cancel the launch or use zenon in demo mode.
You can adjust the licensing in the Startup Tool and choose from the available licenses.
14 | 175
zenon Basic Training - Fundamentals
This PC has zenon 10 and zenon 11 installed. The zenon 11 version is active and has the
two main components Engineering Studio and Service Engine installed. You can go to the
zenon Help directly from the Startup Tool.
If you have different zenon versions installed on your computer, you can activate the required version
by registering it with the Standard button. Only one version can be active at a time.
15 | 175
zenon Basic Training - Fundamentals
If you switch to the Tools tab, you will see several entries.
The most important application here is the License Manager, which allows you to manage your zenon
licenses.
The System Information Collector and the Diagnosis Viewer are particularly important for support if
something does not run smoothly.
And with the Update Help application, you can update the zenon Help, tooltips, etc. Keep in mind that
you will need an active internet connection to do this.
You can find detailed information on these and all other tools, in the zenon Help.
16 | 175
zenon Basic Training - Fundamentals
However, for the purpose of this training, let’s not go into detail about all the different options. You
can find more information in the zenon Online Help.
17 | 175
zenon Basic Training - Fundamentals
3.4.3 Profiles
Profiles can be found back in the Startup Tool.
You can create new profiles as well as edit or delete existing ones. What are these profiles for?
We previously mentioned that in practical terms, the development PC and the Service Engine PC are
not identical. You will also create a wide range of different projects on a development PC, which will
then be used worldwide. On each PC, the user can set which project should be opened by default
when the Service Engine is launched.
Select the entry Edit Profile in the context menu of the Service Engine component.
In the next dialog, you will see all the information contained in this profile.
Here you can enter the name of the profile and determine which workspace and project should be
loaded when starting the Engineering Studio or the Service Engine.
With the Engineering Studio, a so-called project is created and configured, then the Service Engine
files of this project are compiled. The Service Engine is launched with these files.
The Engineering Studio saves its project data in a separate SQL database (Microsoft SQL Server
Express). During installation, this database is automatically prepared for saving zenon projects.
18 | 175
zenon Basic Training - Fundamentals
1. Project tree
The project tree is the central place in which a zenon project is edited. The content of a
workspace, including its projects, is displayed in the project tree. In addition, it displays an
overview of configuration options in a zenon project such as variables, screens, etc.
2. Detail view
The detail view dynamically displays the content of a selected object in the project tree. For
example, if you select the Variables entry in the project tree, all variables are displayed in the
detail view. The project tree and detail window together are called the project manager.
3. Main window
The main window is the design area for Engineering Studio. In the main window, zenon
objects are drawn and linked to corresponding zenon functions/variables.
4. zenon elements toolbar
The zenon elements toolbar displays an overview of a few graphical elements in zenon.
Select the desired element and create it in the screen editor by holding down the left
mouse button.
5. Properties window
The properties window displays the properties of the selected item. You can display and edit
the properties of a zenon element or of an item listed in the project tree or detail view.
6. Property help
19 | 175
zenon Basic Training - Fundamentals
The property help window will give you immediate support on the selected properties.
7. Output window
Various information is displayed in the output window when you interact with the
Engineering Studio.
8. Status line
The status information for the Engineering Studio is displayed in the status line.
Individual areas of the Engineering Studio can be shown or hidden. You can also define their order by
using Engineering Studio profiles.
You can quickly return to the original layout at any time, by clicking on the Load
standard profile button.
20 | 175
zenon Basic Training - Fundamentals
Very helpful settings for clean layouts are the grid and the magnetic points.
21 | 175
zenon Basic Training - Fundamentals
zenon Workspace:
In the zenon workspace, projects are created in the Engineering Studio. Several projects can be
stored and managed within a workspace. The workspace is also used to configure and display project
hierarchies.
zenon Project:
A zenon project in the Engineering Studio contains all the data and settings for compiling Service
Engine files. Projects must be assigned to a workspace to be edited. A project can be used in different
workspaces.
The directory name and workspace file name are issued automatically by zenon but can be changed
later on during creation.
Information
Open last used workspaces:
Under File, you will find a list with the file names of the last few workspaces
opened. This gives you direct access to them and allows you to open these
workspaces.
22 | 175
zenon Basic Training - Fundamentals
A global project is a central expansion of a standard project. The objects (frames, fonts, colors, etc.)
that are created in a global project are also available in all other projects within the workspace. The
global project cannot be started in the Service Engine.
23 | 175
zenon Basic Training - Fundamentals
24 | 175
zenon Basic Training - Fundamentals
The next dialog opens the Project Wizard, to support you in creating the project.
6. We will not use the wizard for this project, so close it by clicking Close. Also close the next
dialog with No.
So that you do not always have to load the workspace manually, you will now define it as the default
workspace when restarting the Engineering Studio. This can be done in the zenon Startup Tool.
25 | 175
zenon Basic Training - Fundamentals
26 | 175
zenon Basic Training - Fundamentals
27 | 175
zenon Basic Training - Fundamentals
Engineering Studio will now launch with your workspace and project as the default.
But first we will introduce you to the meaning of frames and screens in zenon and how you how you
can use them creatively to create your layouts.
Screens are always linked to a frame in zenon. zenon won’t let you leave your vacation photos all
over the place and make a mess.
A screen is always linked to a frame (always exactly one frame). The screen derives its size and
position in the Service Engine from this frame. Screens represent content and can contain a wide
variety of objects, such as buttons, static and dynamic text, numeric values, background colors, ...
Without frames and screens, you would not be able to see anything in the Service Engine, and thus
you would not be able to call up or control anything either.
If you try to create a screen without creating a frame, zenon will automatically create an
accompanying frame.
28 | 175
zenon Basic Training - Fundamentals
Before starting a new project, you absolutely need a clear concept. What do you want to achieve with
the project, who will operate it, should it be scalable later on, ... With large, extensive projects, you will
have to include different users in your planning.
Make sure there is a clear look and feel that does not overwhelm the user with too much information
all at once. Please take the time to make scribbles prior to configuring. Think about what information
is important and should immediately be recognizable.
We have something like this in mind - a navigation on the left, a status bar below, and then the main
area where we want to retrieve all kinds of information:
29 | 175
zenon Basic Training - Fundamentals
You will see that the frame you created earlier is already preselected since there is only one
frame. The screen type is also Standard by default.
5. Confirm the dialog with OK.
The new screen will open in the main window. In addition to dimension and placement, the screen will
also inherit the background color of the frame at the time it is created. If you change the color of the
frame later on, the screen color will no longer change. This will prevent the background color of the
screen from being accidentally overwritten.
2. Change the text to “Hello World!” (for all the nerds among us).
30 | 175
zenon Basic Training - Fundamentals
Here is where the designer in all of us gets to shine - we don't want the background to stay a
gray box.
3. In the properties, go to the Fill group and set the transparency to 100%.
So far so good. Now let's look at our result in the Service Engine.
But first save the project. You can use the buttons at the top left corner in Engineering Studio to do
this.
You can see the details of which files will be created in the output window. You can also filter for
errors, warnings and information there.
Don't let the data.rgmwarning make you nervous. There are some files that zenon can
overwrite only with your explicit permission - more on this later in this course.
Note: For larger projects, you will love the Create modified Service Engine files button. With this
command, zenon checks which files have changed since Service Engine files were last created and
31 | 175
zenon Basic Training - Fundamentals
only recreates those files. Now that we have created these files for the first time, zenon has to create
them all anyway.
Start the Service Engine. You can do this with the button or function key F5. Once the Service Engine
opens in the background, go to the window via the Alt-Tab.
You will now see your greeting to the big wide world on your screen.
On the left we want to navigate through the project, the status information should be displayed
below and the main area should show the specific area of the project that the user is navigating to.
32 | 175
zenon Basic Training - Fundamentals
Task: Create the Navigation and Statusbar frames separately and then adjust the existing Main frame
so that it is directly adjacent to the two new frames. Give the two new frames a background color.
You now have frames but no content for them yet. You still need screens.
Task: Create a new screen of the Standard screen type for each of the two new frames. Name the
screens the same as the corresponding frames.
You will immediately notice that the new screens take on the background color of their frames.
33 | 175
zenon Basic Training - Fundamentals
To do this, create Service Engine files again (since you’re a pro, this time you can just have modified
files created) and then start the Service Engine.
Where are the navigation and status bar? Did something go wrong? Why isn't the Service Engine
showing our new screens?
The short answer is: No, nothing went wrong. We just haven't told the Service Engine to load those
two screens yet.
The longer answer is: The Service Engine only loads what we tell it to load. Imagine you have a
project with a few hundred screens and the Service Engine always loads them all, maybe even in any
order. You would end up with a different home screen each time. The first screen created in the
Engineering Studio is the start screen of the Service Engine by default, as long as we don't define
anything else.
You can quickly see in the Engineering Studio which screen is set as the start screen for a project.
34 | 175
zenon Basic Training - Fundamentals
To do this, click on the project in the project tree and go to the Graphical design property group in
the property window.
You can see here that the Earth screen is defined as the start screen.
Change the start screen to Navigation. If you create files for the Service Engine again and run a new
test, you will notice that this time the navigation loads - but the rest will be blank... not ideal either.
In order to load any additional screens now, we will need our first functions.
Note: Should you encounter errors during the previous configuration or if you have skipped a
chapter, we have provided you with a project backup for this chapter. Import this and start with a
working zenon project.
35 | 175
zenon Basic Training - Fundamentals
For example, if you want to open a screen, there is already a function called Screen switch.
You only have to determine in the function which screen should be displayed .
In the final step, you will only have to set when the function should be performed.
36 | 175
zenon Basic Training - Fundamentals
Since the function needs a screen as a destination, the dialog for the screen assignment will
automatically open.
2. Select the Earth screen as a destination.
You now have a new function. However, the name is anything but helpful. As a project evolves, you
could lose track of Function 0, Function 1, Function 2 very quickly.
Hint
Use understandable and consistent names in your projects.
In this training, we will name all the functions of the Screen switch type with the prefix scrSwitch_,
followed by the screen name.
37 | 175
zenon Basic Training - Fundamentals
Note: You can delete functions from favorites or add them to favorites for even quicker access. To
do this, right-click on the respective function in the context menu.
38 | 175
zenon Basic Training - Fundamentals
You can see the assigned function of the button under Variable/function in the properties
window.
After launching the Service Engine, you will now see the navigation with the newly created button on
the left side. The rest is still gray.
39 | 175
zenon Basic Training - Fundamentals
When you click on the button, the Service Engine will execute the assigned function and the Earth
screen will open in the Main frame.
Close the Service Engine one last time from the title bar. In zenon , there is a separate function for
ending the Service Engine. We will now use this function and remove the tedious title bar that we do
not need.
1. For starters, go to the project in the Engineering Studio and then to the Graphical design
property group.
2. For Service Engine caption, select the no title (entire screen) entry.
40 | 175
zenon Basic Training - Fundamentals
3. Now create the function to stop the Service Engine in the Functions module. You can find the
Exit Service Engine function in the Application group.
4. Again give the function a comprehensible name. We will call the function appExit.
You can already guess the next step. That's right, again, we need a button so that users can
carry out the function whenever they want.
5. To do this, create a new button in the navigation and name it Exit.
Note: You can simply duplicate the existing Earth button with CTRL+D. Don't forget to assign it the
correct function afterwards.
So that we do not accidentally confuse the two buttons, give the Exit button another color.
If you hover over an element in the Engineering Studio with the mouse, you can see the
most important properties - for example the linked function.
41 | 175
zenon Basic Training - Fundamentals
Therefore, you will now use a new (and very valuable) zenon function that will reload the files that
have been changed while the Service Engine is running.
1. Create a new function from the Reload project online type (found in the Application
group).
2. Name the function appReload.
3. Create another button in the navigation.
42 | 175
zenon Basic Training - Fundamentals
4. Link the new function to the button and give it a suitable name.
It's time to try out the new button and see what it does in the Service Engine. Create changed Service
Engine files and start the project. Then change the color of the button in the Engineering Studio while
the Service Engine is running.
Don't forget to create the changed Service Engine files afterwards, switch back to the Service Engine
and reload the change you just made.
You can let your imagination run wild, make even more changes and reload them while the Service
Engine is running.
The user can click the Earth button to call up our greeting to the big wide world. However, we aren’t
able to display the status bar in the Service Engine yet.
We now want the navigation, status bar and main screen to automatically open when the Service
Engine launches.
Don't worry, also that is quite simple. In zenon, you can easily perform multiple functions by using
scripts. Scripts are nothing more than lists of functions that are executed one by one, from top to
bottom.
43 | 175
zenon Basic Training - Fundamentals
1. Navigation
2. Statusbar
3. Earth
So far we only have a Earth function for the Screen switch screen.
Create the required functions for the other two screens (scrSwitch_Navigation and
scrSwitch_Statusbar).
Note: When creating the Screen switch function for the Navigation screen, you will get an
additional dialog with all the functions contained in the objects in this screen. Ignore this dialog for
now - you will get to know it better later on when we go over substitution. Only this much now: This is
an important functionality in zenon, that will save you a lot of work.
Note: Also here, the property help, to the right of the properties window, offers very good
explanations about the property and the possible options.
Now you still need to tell the script which functions to execute.
44 | 175
zenon Basic Training - Fundamentals
Before we test the script, we want to put the buttons for reloading and ending the Service Engine in
the empty status bar. You can cut out the two buttons in the navigation with CTRL+X and paste them
back into the Statusbar screen.
For the AUTOSTART script to run, you will have to restart the Service Engine. Simply reloading will not
be enough in this case (you probably could already tell that from the name of the script or from the
property help).
45 | 175
zenon Basic Training - Fundamentals
The layout is set: all screens are loaded, the world is greeted and we can reload and end
the Service Engine.
You will also create a screen where you will display the average values of the weather stations.
Note: Should you encounter errors during the previous configuration or if you have skipped a
chapter, we have provided you with a project backup for this chapter. Import this and start with a
working zenon project.
46 | 175
zenon Basic Training - Fundamentals
You will get to know and use these drivers throughout the course.
In zenon, there are already numerous predefined data types based on the IEC 61131-3 standard. You
can also create your own data types according to your needs and requirements. You can make
changes centrally in the data types which are reflected in the variables hat are based on them.
47 | 175
zenon Basic Training - Fundamentals
1. Select the Modbus RTU and Open Modbus TCP drivers. These drivers provide us with simple
simulation options, which we will use in this training.
Note: If you connect the driver to a PLC, you can make the appropriate settings here - depending
on the hardware. You can also change these later.
Let's test this counting simulation by creating a variable and incrementing the counter in the Service
Engine.
Create a variable. Select the newly created driver and as Driver object type, Holding Register.
48 | 175
zenon Basic Training - Fundamentals
For the Data type, select USINT (this is necessary for the counting simulation).
Next, create a numeric value element in the Earth screen and link the test variable there.
The maximum value of the linked variable is displayed in the numeric value element.
Now you can test in the Service Engine how the variable is incremented.
Note: Don't forget to create the new Service Engine files first.
49 | 175
zenon Basic Training - Fundamentals
In the data type, you can set the measuring unit, for example degree Celsius. The variable based on it
is then also assigned this measuring unit and already has significantly more informative value.
You will now create your very first data type on which your future temperature variables will be based.
Attention
The data types contained in zenon by default are based on the IEC standard
and serve as templates. You should not change these!
1. Create a new Temperature data type based on USINT.
2. Enter °C as a Measuring unit.
You still have to convert the data from the controller (in our case from the counting
simulation) to the appropriate temperature values. To do this, go to the Value calculation
property group.
3. You will find the minimum and maximum value of the data type in the value range of the
controller. This can be adjusted depending on the sensor or controller. In our case, we will
leave the values from 0 to 255. But we also want to measure and display negative
temperatures. Therefore, you will now insert the appropriate values in the Value adjustment
linear.
Note: In a real application, the values depend on the specifications of the sensor or the values that
the PLC provides to zenon.
1. Delete the test variable you created earlier and create five new variables based on your new
data type.
50 | 175
zenon Basic Training - Fundamentals
2. To avoid going through the same process five times, simply enter the value 5 for Dim 1 in
the array settings.
3. In the Earth screen, duplicate the numeric value four more times.
4. Assign the temperature variables to the numeric values via drag&drop.
After assigning the temperature variables, you can see the maximum value and
measuring unit in the numeric values. If you hold the mouse over an element for a longer
period of time, you will also see the respective allocation.
Test the new variables in the Service Engine. With a right-click, you can also see more details about
the individual elements in the Service Engine.
Now create another simple data type on your own and the corresponding wind speed variables. Use
the following parameters:
Data type:
Name: Windspeed
51 | 175
zenon Basic Training - Fundamentals
Variables:
Name: Windspeed
Driver: Modbus RTU
Driver object type: Holding Register
Data type: Windspeed
Dim 1: 5
Create five more numeric values and link the variables to them.
But first delete the variables we created - we will now show you a more effective way. Please keep the
data types.
Use the Temperature data type as the basis for your first structure element.
52 | 175
zenon Basic Training - Fundamentals
Make sure that the embed data type option is enabled and confirm the dialog.
Note: By embedding the data type, we can make changes later on in the structure element without
changing the underlying base data type.
Expand the structure data type with the Windspeed structure element.
Now create the variables for the five planned weather stations on our planet.
Finally, assign the variables to the numeric values in the Earth screen using drag&drop.
Now create a new simple data type for rainfall on your own and add it to the structure data type
afterwards.
Data type:
Name: Rainfall
Basis of data types: USINT
Measuring unit: mm/m2
53 | 175
zenon Basic Training - Fundamentals
After you have extended the structure data type, you can see the corresponding variables in the
variable list. These are grayed out for now and must be activated first. The best way to do this is using
the filter option in the variable list.
As an alternative, you can go to the context menu of the structure variables and activate all the
variables that are included there.
Then create five more numeric values and link the variables you just activated.
Up until now, a user can conclude only from the measuring units used what the values are.
Now use static text objects to assign titles that correspond to the values. Use the Alignment toolbar to
make sure that the objects have the same appearance and are aligned with each other. You might
also want to make the background of the beautiful gray boxes for the numeric values invisible. To get
rid of the concrete bunker look.
54 | 175
zenon Basic Training - Fundamentals
If you haven't used the grid and snap points yet, you can activate them in the settings. This makes
alignment much easier.
Now that you have clearly arranged and labeled the objects, another problem comes up: Where are
we actually?
So far, no one knows which weather station is where. The first obvious solution is to change the text
Hello World! to Earth. But where are the individual weather stations?
To solve this problem, let’s use dynamic text for a change. This screen element requires variables to
display content. This does not necessarily have to be the variable value, it can also be the name or
description of the variables. But let's look at this with an example.
We want to spread out our five weather stations around the world, one on each inhabited continent.
We proceed alphabetically and place the first one in Africa.
1. For the first three variables, enter Africa in the Identification column.
You now can tell at a glance where the values in the variable list come from. Now we want to
make this information visible to users.
2. To do this, create a dynamic text element and select one of the variables you just edited.
3. Select Variable ID as the Display text.
55 | 175
zenon Basic Training - Fundamentals
Your project should now look something like this in the Service Engine.
It definitely looks cleaner and clearer. But it is still not really clear at first glance.
Now we want to integrate graphic objects to give the user a quick overview.
Create your first universal slider and assign it the temperature variable from your first weather station.
Design the universal slider however you want. Because of the classic thermometer, we have decided
to go with a vertical display and want an LED appearance for our design. But feel free to let your
creativity run wild with your project.
56 | 175
zenon Basic Training - Fundamentals
Do the same for the other weather stations and then test your project in the Service Engine.
Creative chaos is no excuse for chaotic design. Now the user has a quick overview of the
temperatures.
Adjust the Time representation property group so that only the time is displayed and not the date.
Then use two static text objects in order to give both the date and time the appropriate titles.
Now users can read the date and time directly in the project. But what project are they actually in?
To answer this question, we will create two more static text objects below the time.
57 | 175
zenon Basic Training - Fundamentals
Now the user already has basic information in the status bar.
4. Then go to the Value calculation property group for entering the formula.
5. In the dialog, add every temperature variable and then calculate the average.
The good old arithmetic average. That brings back memories of school.
Now we have the average, but where do we put it? As previously stated, we want to expand the
project later on to include other planets. So let's create an overview window, where we can
immediately read the average values of all the planets.
1. Create a new Overview screen based on the Main frame.
2. Create the necessary screen switch function and a button.
3. Name the objects according to the previous scheme and link them.
4. You can now create a static text element to identify the screen.
58 | 175
zenon Basic Training - Fundamentals
Information
If the text for the button does not fit on one line, you can either split it into Text
line 1 and Text line 2 in the Text property group or force a line break with \n.
Finally, you will need a numeric value screen element to represent the mathematics variable. Once
you have created the element and linked it to the variable, you will notice that they do not have a
measuring unit. For math variables, measuring units are not taken from used variables. Now set the
measuring unit directly in the avgTemp_Earth variable.
Can you switch to the new screen? Is the average value (including measuring unit) displayed there?
If you have created and configured everything correctly, you can now read the average temperature
on Earth. But of course we are not satisfied with this - now we want to display the average values for
wind speed and rainfall.
You already know how to proceed. Finally, test your project in the Service Engine.
Granted, still a bit spartan - but we’ll improve that a little bit later.
59 | 175
zenon Basic Training - Fundamentals
You have probably already let your curiosity run wild and clicked into one of the numeric value
elements to enter a value there while the Service Engine is running. By default, zenon then opens a
dialog box in which you can enter the value or adjust it with a controller. But that gets a bit
cumbersome over time. In the future, we want to directly enter the values without dialog.
1. To do this, go to the Engineering Studio and select all numeric value elements in the Earth
screen.
2. In the Write set value property group, make sure that the set values are directly replaced via
the Object.
3. Now you can directly enter changes in the Service Engine without the standard dialog.
But we also have other dynamic elements in this screen, namely dynamic text elements. Yes, our
continents.
We want to avoid that the user can change the values here (i.e. the names). Therefore, select the
continents and un-check the box next to Write set value.
Note: In a real project, the values come from sensors and are not manually changed. In this case,
you would have the opportunity to prevent set values from being written in the numeric values, just
like you did for the dynamic text elements.
Does everything work like you want? Even if you want to enter a negative value for the temperature?
Ahhh... There was something else.
Think back: We selected the base data type USINT for our temperature data type because our
counting simulation needs this data type to properly work. Then we determined that the value
adjustment would be performed (from -100 to 155).
As a result, zenon adjusted the maximum set value to 155 and the minimum set value to the
permitted minimum for USINT, which is 0. Therefore, we cannot enter negative values.
60 | 175
zenon Basic Training - Fundamentals
2. In the Write set value property group, set the minimum value to -100.
That's it. Now you can also set negative temperature values.
Finished, the function writes the set value of the variable. But we still need the ability to say when this
should happen. So once again we need a button.
Create a button in the Earth screen and properly name it. Don't forget to assign the function.
Create additional functions to write set values for variables you choose. Use meaningful names again
so that you do not lose track.
61 | 175
zenon Basic Training - Fundamentals
If you wanted to set all these values now, you would need many buttons and would then have to click
on each button individually. We now want to set all our values with a single button and a single
mouse click.
You can certainly set a lot more values. Have fun with it!
Finally, you will need of course a function that starts the script.
1. Create a function of the Script: execute type.
2. Select your script in the next dialog.
3. Clearly name your new function e.g. scriptExecute_ControlWeather_Earth.
4. Link the new function to the button with which you previously influenced the weather
conditions in Africa.
You can now rename the button and then test the new functionality in the Service Engine.
62 | 175
zenon Basic Training - Fundamentals
However, we also want to save ourselves this click and have the variables set to the values when
starting the Service Engine. That's where our good old friend, the AUTOSTART script, comes in.
First delete the button in the Earth screen, we won’t need it in the future.
Next, integrate the weather control script into the AUTOSTART script by simply adding the function to
run the script.
Finally, when starting zenon, we want to see the overview screen instead of the Earth screen. Change
this entry accordingly in the AUTOSTART script and then test everything in the Service Engine.
Reminder: For the AUTOSTART script, the Service Engine must actually be restarted, reloading is not
enough.
63 | 175
zenon Basic Training - Fundamentals
Note: Should you encounter errors during the previous configuration or if you have skipped a
chapter, we have provided you with a project backup for this chapter. Import this and start with a
working zenon project.
Symbols can either be linked or embedded in screens, like data types in structure data types. For
linked symbols, additional changes in the symbol template are applied to individual symbol instances.
Embedded symbols, on the other hand, are like a snapshot at the time of embedding and then
separated from the symbol template.
The big advantage of symbols is that you can store them in a library in zenon and then use them
again and again. You can even export them and use them in other projects (and also import them
from other projects).
64 | 175
zenon Basic Training - Fundamentals
It is possible to selectively release properties for symbols, which can be individually changed for single
instances.
Basically, it is like search & replace in a text editor. One term is replaced by another.
In zenon, there are two different ways in which you can substitute functions and variables:
in screen elements
in screens
For example, you can create a symbol for a weather station and then use it again and again just by
changing the linkings. You do not have to create another symbol every time.
But enough theory! As always, everything becomes more clearer once you get to do the hands-on
work.
Let’s go!
Something needs to be done about this immediately. Let’s take care of this with a symbol.
Give the symbol a descriptive name (for both Element ID and Visual name).
Note: The Element ID is the internal identification of the symbol in zenon. If you change this later,
symbol instances that have already been created will lose the link to the symbol.
1. Open the new symbol and increase its workspace - after all, a (small) planet has to fit on it.
65 | 175
zenon Basic Training - Fundamentals
2. Now customize it to your liking so that you can then graphically integrate the three average
values of the earth. By the way, you can simply copy the numeric values from the Overview
screen and paste them into your symbol, then you do not have to create them again. It's as
simple as that.
3. Let your imagination run wild and play around with the elements in zenon.
4. Finally, save the symbol if you are satisfied with it.
Now drag the new symbol to the overview screen and delete the numeric values that have since
become redundant.
Confirm the dialog that now automatically appears. Here you can specify the substitution rules - but
that’s not necessary now, because we want to keep the variables. We’re still on Earth.
66 | 175
zenon Basic Training - Fundamentals
Note: Again, you can rename the Element ID without hesitation because there are no instances of
the symbol yet. The original element group that you inserted into the library as a symbol is just the
frame and has no link to the symbol.
Now you have an entire weather station as a symbol. Normally, that would have been the first step in
creating all the weather stations in the Earth screen. But back then you didn't know about symbols in
zenon.
But now that you have become acquainted with symbols, we want to show you how easy it is to
create as many weather stations in zenon as you like.
First, delete all the weather stations from the Earth screen. Don't worry, you'll recreate them in a few
seconds, using substitution. But for the moment, let's look at the difference between linked and
embedded symbols.
67 | 175
zenon Basic Training - Fundamentals
Let's take a closer look at the two new symbol instances. Do you notice anything?
The small arrow is indicating it: The first object is still linked to the symbol.
To see what that means in practice, let's change the weather station symbol a bit.
Open the symbol in the symbol library and make graphical changes, for example, put a border
around the objects.
Save the symbol and see what has changed in the instances.
The changes are applied to the linked instance, however the embedded symbol remains
untouched.
Note: If, like we, you have also changed the size of the symbol, you can set the Graphic size to
Original size in the symbol instance in the Representation property group. More details can be
found in zenon Help.
You can now delete the embedded symbol - we like the new design a lot better.
68 | 175
zenon Basic Training - Fundamentals
Simply drag the weather station symbol again onto the Earth screen next to the existing weather
station.
In the Linking rule area, you can specify which term should be replaced with what. To do this, use
asterisks (*) as placeholders for any text in the source.
We have a clear structure when naming our variables (structure variable[number].variable), where the
number represents a continent. So, we will have to change this number if we want to have the
weather variables from another continent.
Under Source use the entry *1* and under Replace with put 2 (without asterisk).
When you click the Preview button, you will be informed that 3 shortcuts have been replaced. You
can also preview them.
Confirm the dialog and repeat the steps until you have created all five weather stations.
69 | 175
zenon Basic Training - Fundamentals
Finally, test the result in the Service Engine. You should now have the correct names of the continents
and their weather values for all weather stations. Now you finally know why we used a dynamic text
object instead of static text for the continent names.
Substitution allows for many more possibilities - but that was a good start.
Let's take a look at this with an example. At this point, we already have some buttons in our project -
and we can already tell you now that there will be a lot more.
Our buttons have a similar look, except for color and text. Now let's make a central symbol for the
navigation buttons.
Enter the element group into the symbol library and name the new symbol Navigation Button, for an
example.
Finally, replace the Overview button in the navigation with the new symbol.
70 | 175
zenon Basic Training - Fundamentals
If you want, you can test the project in the Service Engine. You will see that the functionality is the
same.
Again, ignore the dialog - we will replace the function a different way.
You now have two buttons with the same text and the same underlying function. You will notice that
you cannot specify either text or function in the properties of the symbol instance because these
properties are defined in the symbol itself.
You will now see the list containing the entry for this released property directly below the symbol.
Do the same with the Function property or simply drag it directly into the list.
71 | 175
zenon Basic Training - Fundamentals
Definitely a list.
If you now go back to the navigation, you will still have the same button twice - this time it is simply
called differently. But now you can specify text and function directly in the properties of the two
buttons.
Name the buttons and assign them the appropriate functions. Finally, test your project in the
Service Engine.
Everything looks pretty good. But we need to continue tidying up a bit. For starters the released
properties.
1. Open the symbol with the navigation button again.
2. In the list of released properties, create a new group for both the text and the function.
3. Give the groups suitable names (for example, Text and Function).
4. Save the symbol and look at the result of one of the buttons in the navigation.
But ... do you notice something? The entries in the instances were reset by editing the released
properties in the symbol again. No big deal, you already know how to quickly fix this.
72 | 175
zenon Basic Training - Fundamentals
Wonderful.
And now it’s time to apply what you have just learned. Replace the buttons in the status bar with a
symbol. To do this, create a new symbol because in addition to text and function, you will also be
releasing the color.
Take your time to work accurately. Give the symbol a descriptive name, keep the content as neutral as
possible and recreate groups for the released properties.
Once you've replaced and adjusted the buttons in the status bar, test the result in the Service Engine.
They give the user a very quick overview of the current situation.
Note: Should you encounter errors during the previous configuration or if you have skipped a
chapter, we have provided you with a project backup for this chapter. Import this and start with a
working zenon project.
73 | 175
zenon Basic Training - Fundamentals
You can configure limit values either centrally in the data type or individually for single variables. This
definition is done as usual in the Engineering Studio.
You can also specify whether the triggering of limit values should be recorded in the Alarm Message
List or the Chronological Event List. Both of these lists will be covered in later chapters.
Unlike limit values, you can configure reaction matrices centrally and then assign them to different
data types or variables. A reaction matrix can also react to different variable conditions.
Reaction matrices are very versatile and offer several configuration options. More details can be
found in the zenon Help.
74 | 175
zenon Basic Training - Fundamentals
4. Enter too hot as the limit value text so that you can see at a glance what this limit value says.
5. Finally set the color (we will use a red color for this limit value).
If you check one of the temperature variables now, you will see that the limit value is also entered
there.
75 | 175
zenon Basic Training - Fundamentals
Now you can see at a glance whether it is too hot or too cold according to our definition.
In addition to the colors, we also want to display a text that clearly tells the user what is actually going
on. We have already defined the texts for this in the limit values; now we also want to display them.
And maybe you have already noticed: The names of the continents also change color. We will change
that soon enough.
Remember: We created the weather station as a symbol and then used it several times with
substitution. This is now extremely useful because we have to make the changes mentioned for the
five weather stations on Earth just once.
What luck! Well, actually this has nothing to do with luck, but intelligent and efficient engineering.
76 | 175
zenon Basic Training - Fundamentals
Now let's change the name of the continent in the symbol so that it does not change color. You can
easily do this by unchecking Use limit value color under Text.
The names of the continents no longer dynamically change colors and the limit value
texts are displayed as additional information.
IDEALLY...
Now that you are almost a pro with limit values, create another limit value directly in the data type:
Limit value text: ideal
Limit Value: 14
Minimum/Maximum: Minimum
77 | 175
zenon Basic Training - Fundamentals
From -19°C to 14°C, the temperature is now ideal - at least according to our project.
Feel free to play around with other limit values and assign the appropriate limit values and colors.
In the project tree, open the Variables module and create a numeric reaction matrix under Reaction
matrix.
78 | 175
zenon Basic Training - Fundamentals
Each reaction matrix has a default state. This is used if no other condition of the reaction matrix
applies . We will now create these new conditions and classify the wind speed according to the
Beaufort scale.
Create a new condition that applies to a wind speed of less than 2 km/h and name it accordingly.
Now select the default state again and create a new condition.
79 | 175
zenon Basic Training - Fundamentals
Use the Beaufort scale again, just like above. Assign a limit color as well.
You can immediately see at which values the conditions in the overview are valid.
This time, leave the condition you just created selected and create the next condition. You will see
that this condition is now used as a template.
80 | 175
zenon Basic Training - Fundamentals
This knowledge will be very helpful to you when you now display the Beaufort scale without gaps in
our reaction matrix.
Note: The order of conditions in a reaction matrix is relevant to functionality. The conditions are
processed from top to bottom - as soon as the first valid state is found, the rest are ignored.
However, in our case the conditions do not overlap anyway.
Before you can test the reaction matrix in the Service Engine, you will still have to assign it to the data
type.
81 | 175
zenon Basic Training - Fundamentals
Finally, we want to have the limit value texts below wind speed again. Carry out the adjustment on
your own (similar to the limit values before). If you are not sure, here are a few keywords:
Weather station symbol
dynamic text element
correct wind speed variable (observe the existing linking rule)
Create Service Engine files and test your project. Does everything work the way you want it to?
Note: If you are having trouble viewing the limit values, go back and take a look at how we did it
when creating the limit values for the temperature.
82 | 175
zenon Basic Training - Fundamentals
Link the reaction matrix directly to the data type again. Make sure that the limit values from the
reaction matrix are displayed.
The screen tells the assigned variable whether it is currently open or closed. The variable itself is from
the type BOOL, so it can be 0 or 1.
Since we already have two screens now (and there are more and more), it would be beneficial to
create our own data type, in which we can then manage the colors centrally.
So create a new data type based on the BOOL data type and name your data type ScreenActive.
83 | 175
zenon Basic Training - Fundamentals
Note: In zenon, for variables with the BOOL data type, both possible values are also automatically
configured as limit values.
We have two screens that we open via the navigation. Therefore, we will need a variable for each of
the two screens. Let's start with the overview.
1. We will call the first ScreenActive_Overview.
2. Use the internal driver and the internal variable as the driver object type.
3. Select the data type you just created.
Now we have to assign the variable to the correct screen and button.
Now the Overview screen always gives value 1 for open and 0 for closed to the assigned “Screen
active” variable in the Service Engine.
Finally, we have to assign the corresponding variable to the button so that it can take the limit value
color from there.
Let's take a quick look back: We created the navigation buttons as symbols. In order to be able to
assign each individual button in the navigation its own “Screen active” variable, we will first have to
release this property in the symbol.
Go to the symbol for the navigation button and release the Fill color property under Fill.
84 | 175
zenon Basic Training - Fundamentals
Now you have to assign the variable to the button in the navigation.
Appropriate and consistent names allow you to work quickly and efficiently.
Now test your project in the Service Engine. If you have not missed a step, the button will turn green
when the overview is open and red after switching to Earth.
Now the navigation lights up in green and red. It works, but now we want to make it a little nicer. The
colors are too bright for us. And besides, it’s enough if the button changes color as soon as its screen
is open.
As smart as we are, we have created our own data type. Now we can make this change centrally
there.
1. Go to the ScreenActive data type.
2. Simply deactivate the first limit value and instead of the bright green, select a color of your
choice for the other one (we’ll just use white).
85 | 175
zenon Basic Training - Fundamentals
86 | 175
zenon Basic Training - Fundamentals
At the end of the chapter, you will have an overview of the alarms in your project.
Note: Should you encounter errors during the previous configuration or if you have skipped a
chapter, we have provided you with a project backup for this chapter. Import this and start with a
working zenon project.
The Alarm Message List is intended to give users an overview and specifically inform them so that
they can take appropriate measures.
However, in order for these alarms to be listed accordingly, you will first have to define what an alarm
is. You can do this either with the limit values or in reaction matrices.
Before we do that, let's first check if the Alarm Message List is active for our project (it is by default).
To do this, we will go to the Engineering Studio.
You can find the required information under Alarm Message List, in the properties of the project.
Alarms only are recorded and can appear in the Alarm Message List if the AML is activated.
87 | 175
zenon Basic Training - Fundamentals
You can make several other settings here to adapt the AML to your requirements. Take your time to
look at some of the settings. Go to the embedded help in zenon for additional information. There you
will also find more links to the zenon Help.
This is very easy in zenon because the AML already exists as a template.
Just create a new screen in the Engineering Studio that uses the Main frame and name the screen
AML.
However, this time you will also select a special screen type, namely the ... Alarm Message List. How
convenient!
Once you have confirmed the dialog, you will see that the new screen has already been prepared for
you and contains several objects.
But now we still need a new function to open the screen. You know the drill... So create the
scrSwitch_AML function. When you have selected and confirmed the screen for the Alarm Message
List, a filter dialog will open. Just confirm it; we will take a closer look at this dialog later on.
You have the screen, you have the screen switch function - now you still need another button. Use
the navigation button from our symbol library again and link the function there.
And finally, we again want to be able to tell from the button whether the AML is open. Use a “Screen
active” variable again and don't forget to link it to the screen and the button as well.
88 | 175
zenon Basic Training - Fundamentals
Test in the Service Engine if everything works as intended. Is the Alarm Message List activated when
you press the button? Is the button colored to signal that the AML is open?
Okay. Everything works, but the AML is still so empty... but not for much longer.
In order to fill the empty AML, we still have to tell zenon what an alarm is. That is what we'll do next -
of course centrally and with as little effort as possible.
Go to the Limit value [1] (too hot), scroll to the AML/CEL area and activate the In Alarm Message
List option.
89 | 175
zenon Basic Training - Fundamentals
Alarm!
In the AML, you can now see which alarms were triggered at what time (including limit value text).
Feel free to test out a few of the buttons. For example, if you acknowledge an alarm, the
corresponding entry appears in the list.
You also might have noticed that the alarms disappear after some time. This happens when the alarm
condition is no longer valid and the alarm does not have to be acknowledged (you can change this
setting in the Engineering Studio).
We promised that you would also define alarms for conditions in a reaction matrix. So now let's do
that together.
90 | 175
zenon Basic Training - Fundamentals
You can now do this individually for each additional condition with higher wind speed - but
that would not be the zenon way. Simply mark all the conditions that you want to make
these settings for and do it all at once.
3. In addition, you can also specify that wind speeds over 117 km/h require acknowledgment.
Finally, rainfall: Adjust the reaction matrix so that rainfall from 6mm/m2 appears in the AML and must
be acknowledged at more than 30mm/m2.
Keep an eye on the Alarm Message List. Significantly more alarms are now displayed, and some of
them will not go away on their own. These are the alarms that require acknowledgment.
In the filter dialog, activate the Historical data option in the General tab under Data origin and set
the maximum number to 10000.
Go to the Time tab and change the relative period of time from one hour to one day.
91 | 175
zenon Basic Training - Fundamentals
Then adjust the column widths as desired in the Column settings tab. You can specify which columns
to display and in what order. Deactivate the Computer name column and arrange the other columns
as you wish. Activate the Sort descending option, so that the latest entries always appear at the top.
You can also disable grids and background colors, or adjust the colors. We want the time and date to
be displayed.
We will not go into the countless other filter options right now, but feel free to click through the other
tabs. See the zenon Help for detailed information about filter options.
92 | 175
zenon Basic Training - Fundamentals
In order not to lose these filter settings as soon as you leave the AML, you still have to save the filter
profile. To do this, click in the field below the Filter profiles label. Enter a name, such as History, and
save the new profile.
Now switch to the Earth and change any value there. Then return to the AML.
You will see that the original filter is applied again. The button executes the screen switch function
that we created during configuration in the Engineering Studio - including the stored filter profile.
If you had not saved your profile, you would have to make all the settings again. Instead, you can
now simply select and activate your profile in the drop-down list.
Now create another profile based on the one you created earlier.
Change the data origin to the ring buffer and the time filter to 5 minutes. You can also make column
settings if you want.
You have now created filter profiles for the Alarm Message List in the Service Engine. You can also
export or import them as XML.
Note: Filter profiles that users create in the Service Engine are stored locally in the Service Engine
files on this computer.
But now we want to offer our users two predefined profiles that they can open immediately at the
click of a mouse.
Now go to your screen switch function for the AML in the Engineering Studio and open it. Confirm
that you want to open the AML. You already know the following filter dialog from the Service Engine.
Create the filter profile Current, which we created earlier in the Service Engine (ring buffer, 5 minutes
relative period of time,...).
Test your project in the Service Engine. Now, when you open the AML, the profile you just created in
the Engineering Studio is applied. In order to display the entire day, users still have to manually load
the History filter profile.
93 | 175
zenon Basic Training - Fundamentals
As already mentioned, we want to allow users to activate the specific filter with a mouse click.
However, rather than create create two AML screens and provide them each with a filter profile, we
want to open the same AML screen with different filters.
To do this, simply create a new screen switch function and select the AML screen again. In the
following filter dialog, set the filter options for the History filter (historical data, 1 day relative period of
time,...).
Give the function a descriptive name, such as scrSwitch_AML_History, and change the name of the
existing function from scrSwitch_AML to scrSwitch_AML_Current.
Create a button for the new function and give it a meaningful name. Change the name of the
previous AML button as well.
The filter profiles are implemented as requested, users can now switch back and forth with one click.
However, only the AML button with the Current filter profile lights up.
Of course: The AML screen has a “Screen active” variable that is active in both cases. We can also only
store one “Screen active” variable for a screen. Does this now mean we have to create two AML
screens?
Of course not.
You already learned about the necessary tool for the solution: Substitution.
Navigate to the already known filter dialog in the screen switch function scrSwitch_AML_History.
94 | 175
zenon Basic Training - Fundamentals
Take some time to marvel at your project in the Service Engine. That looks pretty good.
At the end of the chapter, you will have an overview of several events from your project.
Note: Should you encounter errors during the previous configuration or if you have skipped a
chapter, we have provided you with a project backup for this chapter. Import this and start with a
working zenon project.
95 | 175
zenon Basic Training - Fundamentals
Under Chronological Event List in project properties, make sure the CEL is enabled (it is by default)
and the CEL is updated automatically.
You can implement several other settings here to adapt the CEL to your requirements. Take your time
to look at some of the settings. Go to the embedded help in zenon for more information. There you
can also find more links to the zenon Help.
Needless to say, you will need a screen switch function again, with which you can open the new CEL
screen.
You can make several changes in the filter dialog of the CEL. Right now, we just want to adjust a few
basic things:
1. Set the data origin to historical data with a maximum number of 10000.
96 | 175
zenon Basic Training - Fundamentals
We are choosing to sort in descending order; that way we will always have the most recent event at
the top.
Don't forget to give your new screen switch function a descriptive name (scrSwitch_CEL).
Note: If you want more details about the numerous settings in the filter dialog, you can always find
all the information you need in the zenon Help.
New screen, new screen switch function ... therefore we will need a new button.
Create a button and make all the necessary settings. Don't forget to add another “Screen
active”-variable to immediately recognize in the navigation when the CEL screen is open in the
Service Engine.
97 | 175
zenon Basic Training - Fundamentals
If you open the CEL there, you will already find a full list.
You can see when the project was started, stopped or reloaded. But you will also see a myriad of
messages for all your “Screen active”-variables. Every time you open a screen, one “Screen
active”-variable is set to 0 and another to 1. Each time the value of the variable changes, an entry is
made in the CEL.
In fact, we are not interested if someone opens a screen or not. Let's look at how we can keep these
entries out of our list.
1. To do this, go back to the Engineering Studio.
2. Go to the Write set value property group in your ScreenActive data type.
At the moment, you will find the entry Only via dynamic element in Logging. Since our
button is a dynamic element, the value change is logged in the CEL.
3. Change this entry to Nothing.
98 | 175
zenon Basic Training - Fundamentals
4. Finally, for the sake of completeness, deactivate Write set value via API so that logging via
macros is also deactivated.
Note: You can find out more about macros in the zenon Help. We will not work with macros in this
training.
Switch to the Earth screen and change a temperature value there. Then switch back to the
Chronological Event List.
You can now see the spontaneous change in the temperature variable; the value change in the
“Screen active”-variable is no longer recorded.
Add a comment to the temperature value change (e.g. Test CEL logging) so that we know why this
value was changed manually.
Since the project was reloaded, “Screen active"-variables are no longer logged.
Have fun, change values, close and start the Service Engine,... The CEL patiently records everything.
Now we want to specify that all limit value violations or all condition changes in the reaction matrices
are automatically logged and displayed in the CEL. Since you already know zenon a little, you
probably already have an idea.
It's the same principle as in the AML. And just like that, you are also done with a few mouse clicks.
99 | 175
zenon Basic Training - Fundamentals
Activate the In Chronological Event List option, for all three limit values.
That’s it.
Select the conditions you created and tick the checkbox next to Chronological Event List.
Finished.
Now all changes of the conditions are recorded in the CEL. After a short time, you will have a lot of
such entries - you can soon lose track of things. However, there is also a simple solution for this,
which you already know from the AML: Filter profiles.
Now let's create a filter together that only shows us system events.
Open the CEL filter dialog in the Service Engine and navigate to the Categories tab.
Now simply move the Variables category to the Excluded categories section.
As soon as you confirm the dialog, the messages for the variables will disappear from the list.
Of course, you already know that you still have to save the profile, so it does not get lost when you
switch to another screen. So name your profile and save it.
You can now create and save even more profiles. Test the effects of different filtering options. Like
with the AML, here you can also export and import profiles as an XML.
100 | 175
zenon Basic Training - Fundamentals
By the end of this chapter, your project will look a lot nicer.
Note: Should you encounter errors during the previous configuration or if you have skipped a
chapter, we have provided you with a project backup for this chapter. Import this and start with a
working zenon project.
COLORS
With your own color palettes, you can design your project’s appearance according to your
preferences - for example, you can define and use your company colors and use them in line with
your targeted goals. You can also perform central color changes, which are then applied to the entire
project.
You can clearly structure your color palette by naming the colors and only defining the colors you
actually need. You can also create several color palettes simultaneously to, for example, switch
between day and night mode.
101 | 175
zenon Basic Training - Fundamentals
FONTS
You can define fonts in font lists so that they fit into your design. Just like colors, you can also manage
fonts centrally. You can also create several font lists simultaneously and switch between them.
STYLES
In zenon, you can combine fonts and colors in styles. However, you can also set many other graphical
settings in styles. Style groups allow you to combine several styles and apply them all at once.
And of course, you can also centrally manage styles and style groups and customize your project in
no time at all.
Now we have Color palette 0 with Color 0. We will change that immediately.
4. We will call our color palette Basic_colors and our first color NaviStatusBackgr because we
want to use it as the background color for our navigation and status bar.
5. Now define a color according to your wishes.
We will still need to define this color as the background color for the Navigation and Statusbar
screens.
102 | 175
zenon Basic Training - Fundamentals
To do this, select the two screens and change the background color in the properties.
Now we realize that we would actually prefer a more subtle color. Maybe something dark blue again.
Switch to the Engineering Studio and simply change the color in your color palette.
103 | 175
zenon Basic Training - Fundamentals
If you create another color palette now, the existing color will be defined as white by default. Now
activate the new color palette and look at the result in the Engineering Studio in the Navigation
screen.
However, we only need one color palette at the moment, so let's delete the one we just created.
You can export and import colors as XML files. For example, once you have defined your company
colors, just import them into your new project instead of working from scratch.
104 | 175
zenon Basic Training - Fundamentals
Create additional colors and link them with the desired objects as text colors, fill colors,... Play around
with the display options in zenon.
First, let's go to the symbol for navigation buttons and see what font we are actually using.
Note: The size of the standard font adapts to the resolution or scaling used in Windows when the
project is created. So if your Standard font2 is a different size, it is because of that. But this does not
have an effect on the training.
Change the font to Standard font1 and look at the change in the button.
But now we want to define new fonts ourselves, because Arial is not very interesting. To do this,
navigate to the Font lists module.
Here you can see the Font list 1, which is created in zenon by default in every new project. You have
five entries in the list. You can only use fonts in your project that are defined in a font list.
The new font list is a copy of the first. Change the Standard font1 in the new list. You will notice that
the font in the button does not change in the Engineering Studio. Like with the colors, you first have
to activate the list so that the zenon Engineering Studio knows which font list you want to use. You
can recognize the active font list by the font color.
105 | 175
zenon Basic Training - Fundamentals
You can see that the original font list is being applied again.
Now we are creating new fonts for our project. We will do this in the existing font list below the
standard fonts. First, we will create a new font for our navigation buttons and name it. Then, we need
to of course select the right font in the symbol.
Create more fonts just as you wish and give them a suitable name.
This is what your font list might look like right now.
You can also export and import font lists as XML files.
106 | 175
zenon Basic Training - Fundamentals
We briefly mentioned before that you can, for example, define colors and fonts in styles, but also line
width and much more. You can combine multiple styles into one style group and easily apply them.
You always need a style group to create styles. Name the style groups and styles so that you can
assign them by name. It also makes sense to group styles into themed style groups - we will do that
together right now.
Name your style group PlanetLines. You can already guess from the name what we want to define in
the styles of this group...
Now use styles to define how you want your lines to look. We are using a glow effect and a line style,
but there are no limits to your imagination.
Finally, assign the new style group to the lines in the planet symbol.
Now the values are still missing. Define a text style in the PlanetLines style group, and then assign the
style group to the dynamic numeric values in the symbol.
The lines do not change their appearance because they are not affected by the text style.
We don't want a glow effect with the average values - but this is part of the style group.
107 | 175
zenon Basic Training - Fundamentals
Select the dynamic numeric values and remove the style group (found in the Representation
property group). Then only apply the text style to the elements.
However, it makes much more sense to create a separate style group for the numeric values. We will
call it PlanetText.
Copy the text style from the previous style group and paste it here.
Finally, delete the text style from the PlanetLines style group.
After you have deleted the text style, you will immediately see that the objects change their
appearance again. You have lost the allocation to the style.
Now assign the new style group to the dynamic numeric values.
But we also have a static text in our symbol. Create another text style in the PlanetText style group,
this time for the heading which should differ from the average values.
You now have two text styles in a style group. Now you should name the two styles so that you know
which style should be used for what.
Now reassign the PlanetText style group to the static text object.
The headline now looks like the average values. But didn’t we define another text style?
The explanation is simple: If you assign a style group and several styles of the same kind (e.g. text) are
created there, the first style is always applied. Now select the correct style via the properties of the
object or simply by drag&drop.
108 | 175
zenon Basic Training - Fundamentals
There is still a lot to improve. The contrast is sometimes very bad and when it comes to colors, we
haven’t been this creative since we were 5 years old. Now we want to make it a bit calmer and clearer.
Thanks to the applied style groups, we can do this again both quickly and centrally.
If you have not already defined a color for lines and text in the planet symbol in your color palette, do
that now - we will select white, but maybe you have a favorite color that you absolutely want to have
in your project.
Then apply the color to the line style and two text styles. You can immediately see the changes in the
design.
Better! But our earth somewhat fades with the background. So let's go back to the symbol to adjust
that. We can also do this manually, but we want to work efficiently.
109 | 175
zenon Basic Training - Fundamentals
However, this time we are doing it exactly in the other direction. We are letting zenon create the style
group from the existing elements.
Let’s name our new style group GlobeEarth and confirm the dialog.
If you expand the new style group now, you will see the included styles. You can now remove
unnecessary styles if you want. In our case, we will delete the Border and shadow style.
You will now have to apply the new style group to the circle element from which zenon created the
style group.
Make modifications to the styles until you are satisfied. If you do not already have suitable colors,
create them in your color palette.
110 | 175
zenon Basic Training - Fundamentals
Now create additional style groups for other elements that you can use again and again. Improve
your project’s design with colors, fonts and styles until you are satisfied with it.
Reminder: You can also apply individual styles to elements, not just entire style groups. When you
assign style groups, an element receives all applicable styles in the style group. If there are several
styles of a property (e.g. line) within the style group, the first defined style is used - you can change
this later in the element.
Note: Should you encounter errors during the previous configuration or if you have skipped a
chapter, we have provided you with a project backup for this chapter. Import this and start with a
working zenon project.
111 | 175
zenon Basic Training - Fundamentals
COLOR SWITCHING
You will need different color palettes to switch colors (e.g. between day and night mode). You will
then use a function to switch between these color palettes. You do not have to limit yourself to two
color palettes.
Color switching only affects objects that use colors from the color palette. Therefore, a well
thought-out configuration is essential.
LANGUAGE SWITCHING
There is also a predefined function for language switching. This function switches between different
language files. You can export and import these language files as XML files.
For correct language switching, you must define these language files in your project and also specify
which text will be translated. You can do this with the special character @. But you will get more
details on that shortly.
To do this, you will define a base unit in zenon (for example, °C) and can then use this to convert to
other units (°F, °K,...).
Not only can you switch individual measuring units but also an entire measuring system (e.g. metric to
imperial).
The new color palette has all the color entries of the first palette, but all colors are white by default. In
order not to have to recreate all the colors manually, you can copy the colors from the first palette.
Then change the colors however you want.
112 | 175
zenon Basic Training - Fundamentals
Give your color palettes meaningful names, so you know later on what they are intended for.
We also need a way to switch between color palettes in the Service Engine. The Switch palette
function is just what we need (found under Application).
1. Create the function and select the color palette for night mode.
This works great. But you probably noticed a small drawback after switching: We can't switch back to
day mode.
Go ahead and create a corresponding function and another button in the Engineering Studio.
Reload the data in the Service Engine and switch back and forth a few times.
113 | 175
zenon Basic Training - Fundamentals
This is how quickly you can implement the color switch in zenon.
First, you will need to create language files and define keywords - after all, zenon will need to know
which words to translate and what the translation is.
1. Go to the Language file module in the project tree.
In the Keyword column, specify which words zenon should actually translate. The
ZENONSTR.TXT column serves as the source language for the translations and cannot be
deleted.
2. Create a new language file. We choose German, but of course you can also use any other
language.
Now we have three empty columns. Time to fill them. Let's start by navigating our project.
3. Go to the Overview button.
4. Put an @ in front of the text.
114 | 175
zenon Basic Training - Fundamentals
Now, when you create Service Engine files, you might find some warnings about missing keywords in
the output window:
Double-clicking on the entry will take you directly to the affected object.
This only means that zenon found keywords in the objects that are not stored in the language file. So
let's do that right now.
1. Enter the first keyword.
The keyword is automatically entered into all columns.
2. Now enter the translation in the appropriate column.
115 | 175
zenon Basic Training - Fundamentals
Note: Keep in mind that keywords are case-sensitive. zenon can distinguish between History and
history.
Now test language switching in the Service Engine. If everything is still not translated correctly, check
that you have placed the @ everywhere and all of the keywords are correctly spelled (including upper
and lowercase). Also check the output window for the warning messages mentioned above.
Now the Overview button in the navigation is translated, but not the title in the overview window:
In the Engineering Studio, go to the relevant static text and just put an @ in front of it.
Finished.
116 | 175
zenon Basic Training - Fundamentals
The Overview keyword is already defined in the language file and is used wherever we signal to zenon
with an @ that we want to translate this part. This time we will test the result directly in the
Engineering Studio.
We now want to give our users the opportunity to switch back to English. We could switch to
ZENONSTR.TXT in a function - after all, in our case it is in English. But we would prefer to create our
own English language file, because ZENONSTR.TXT is actually not a specific language. It can of course
be English, but more often it is another language or many abbreviations that were used during
configuration.
Now create a new language file for English. Then you will have to enter the keywords in the new
language file.
Now go through your project and think about which parts should be translated. You will probably
also want to make adjustments to symbols or add an @ to the text for the identifiers of the variables.
Do not forget to enter the required keywords.
117 | 175
zenon Basic Training - Fundamentals
In Europe the temperature is measured in °C, and we are constantly racking our brains about whether
65°F is hot or cold, and for Americans it’s probably the other way around.
We will now give users the opportunity to convert all our metric units to imperial units with one
button. You will have to define the base units first in order to do this.
1. Go to the Variables module and create a new base unit under Measuring units.
For the switching to work, the base unit must be identical to the measuring unit of the variable or
data type.
Take a look at the temperature data type of the weather station in the Engineering Studio. You will
now see a drop-down list with a - still very short - list for the Measuring unit entry. Once you have
defined base units, they are available for selection.
118 | 175
zenon Basic Training - Fundamentals
We also want to be able to switch back again. So create a new function to switch back to the base
unit.
As you know, we have other measuring units that we want to switch. Use the following table to create
the base units and conversion units:
Base unit Conversion Unit Factor
Now you could create a new function and a separate button for each measuring unit, but that would
be more work than necessary and would also mean that users would have to switch each individual
measuring unit. We want users to be able to switch between metric and imperial systems with one
click.
119 | 175
zenon Basic Training - Fundamentals
At the end of the chapter, we will have weather stations on three planets, and we will also expand the
overview so that users have an overall view of all the planets.
Note: Should you encounter errors during the previous configuration or if you have skipped a
chapter, we have provided you with a project backup for this chapter. Import this and start with a
working zenon project.
120 | 175
zenon Basic Training - Fundamentals
First, we will of course need variables for the weather stations on Mars. To do this, simply copy the
Weatherstation_Earth structure variable and change the name to Weatherstation_Mars. The variables
within the structure are also renamed accordingly.
The identifiers of the variables are still the Earth’s continents. Time to correct that. Do a little research
to find 5 appropriate names on Mars or use your imagination.
1. Create a new Screen switch function.
But which screen should you switch to now?
Did we forget to create a screen for Mars? Of course not! We will simply use the Earth screen
again and adjust it using substitution.
2. After you have selected Earth as the target of the function, the filter dialog will appear, in
which you will adjust the substitution rules.
Do you still remember? Here is where you define which term is replaced and with what. In
this case we want Mars instead of Earth.
Now it's time to create Service Engine files and test the extended project.
121 | 175
zenon Basic Training - Fundamentals
If you switch between Earth and Mars, you can see the values change. However, what does not
change is the active button and the title of the screen. In both cases we see the earth here. As for the
caption, we will show you a little later on how to elegantly solve this.
And as for the “Screen active”-variable and button: We will have that solved in no time.
In the Engineering Studio, go to the previously created function that switches to Mars and open it by
double clicking.
Again, confirm Earth as the target of the switch. After that, the familiar filter dialog will open.
Remember, this is where we replaced *Earth* with Mars, and 15 links were replaced in the process.
What was not replaced was the “Screen active”-variable because we had not created the new one yet.
You can also see that the target is still ScreenActive_Earth.
Now carry out the substitution again. This time 16 links have been replaced.
Test the result in the Service Engine. Now the correct button lights up.
You will now create another planet. We will use Venus, but feel free to invent a new planet.
Please keep in mind consistent naming, which is important for a successful substitution. And - now
that you know more about it - you could create the “Screen active”-variable before creating the new
function.
If you want, you can also adjust the initial measurements of the planets and include them in your
AUTOSTART script, just like you did earlier in this training course for Earth.
But first, let's open the Earth screen in the Engineering Studio.
The heading is static text. However, substitution can only be applied to dynamic elements.
Before we insert a dynamic text element, we will need a suitable variable that we want to link to it.
122 | 175
zenon Basic Training - Fundamentals
Create a new internal variable named PlanetTitle_Earth of the STRING data type.
Use as Identification for the variable @Earth so that the title is also translated.
Now create a dynamic text in the screen and link the new variable.
Customize the screen title layout the way you want. You can fall back on your styles that you already
defined earlier.
You will also still need corresponding internal variables and the appropriate identification for the other
two planets.
Create these variables for the other two planets on your own.
If you paid close attention before, you already know what is still missing. We have a new element in
the Earth screen that has not been substituted yet. Go to the screen switch functions for the two
additional planets and execute the substitution there again - this time 17 links are replaced.
123 | 175
zenon Basic Training - Fundamentals
We will now also include the new planets in the overview. We could now copy the symbol we used for
Earth twice and adjust everything manually – but that wouldn't be the zenon way. Thanks to
substitution, we can simply reuse the symbol over and over again.
Since we want to display the average values of a planet in the overview, we will need to create these
variables for Mars and Venus first (or whatever planets may inhabit your universe).
zenon-hack: Simply copy the math variables that were created, change the name for the specific
planet and replace the variables with which the calculation is performed. You do not have to re-enter
the formula or reassign measuring units.
You are already familiar with the dialog that opens automatically.
Substitute the existing variables so that zenon can assign the variables from Mars.
124 | 175
zenon Basic Training - Fundamentals
The result is that it is correctly assigned, but the planets and the relevant titles still look identical. We
can do better than that - and again quite easily.
Looks the same, but it’s actually Mars...currently only recognizable in the Service Engine
by the different values.
We want to be able to change the title and color of the planet in the symbol instances. Of course, you
already know what to do: We will release these properties in the symbol.
Now to adjust the planet graphically, you can release the individual graphical properties in the symbol
(in our case fill, line and gradient). But we used a style group for the circle and are now releasing the
Style group property under Representation. After that, we can later simply define a separate style
group for each planet and apply it in the symbol instance.
Also create groups with meaningful names for the released properties.
125 | 175
zenon Basic Training - Fundamentals
After you save the symbol, you can change the name in the symbol instance for Mars.
Next, create a new style group for Mars (GlobeMars). You can simply copy the GlobeEarth style group
and change the colors - create the colors in the color palette beforehand to be able to manage them
centrally.
Now create the third planet on your own. Give it its own style group and colors in the color palette.
126 | 175
zenon Basic Training - Fundamentals
Once you have embraced the principle of substitution, you can expand and adapt your project in
zenon in no time at all. It is important to have a clean configuration and consistent naming of the
objects, functions and variables.
127 | 175
zenon Basic Training - Fundamentals
Note: Should you encounter errors during the previous configuration or if you have skipped a
chapter, we have provided you with a project backup for this chapter. Import this and start with a
working zenon project.
It makes sense to create a equipment model for an entire company, and to break it down into
systems, areas, process units, etc. Due to this increasingly specific division, process units, for example,
can easily be controlled and analyzed separately from each other. Equipment modeling can also be
used for quick filtering in the AML and CEL.
128 | 175
zenon Basic Training - Fundamentals
You can configure equipment modeling in zenon, both per project and across projects. Equipment
models are divided into equipment groups, which can be hierarchically divided more and more finely.
You can then assign these equipment groups to variables, screens, symbols, functions, and so on.
Because of this hierarchical structure, you can also display secondary equipment groups during
filtering, as needed.
129 | 175
zenon Basic Training - Fundamentals
1. In the project tree, go to the Equipment modeling module and create a new equipment
model named Solar system.
2. In the equipment model, create a new equipment group for the Earth.
3. Create five additional equipment groups for the five weather stations (hierarchically under
the Earth).
4. Create the other two planets and their weather stations in the Solar system equipment model
as well.
130 | 175
zenon Basic Training - Fundamentals
Our equipment model is ready - now we can assign the equipment groups to the variables.
1. Go to the Weatherstation_Earth structure variable.
2. Select the three variables for the weather station in Africa.
3. Under Equipment Groups (in the General property group), assign the equipment group for
Africa.
4. On your own assign the corresponding equipment group to all the weather stations
variables.
You have completed all the necessary preparations. Now let's look at how we can filter by equipment
groups.
In summary: You have now integrated the variables into your equipment model, telling zenon which
part of the equipment uses the variables for the Australian weather station for instance. So now, if you
want to know what the weather is like in Australia, you do not have to search for the variables, but just
filter for Australia.
131 | 175
zenon Basic Training - Fundamentals
You will see the weather information for all the planets.
2. To quickly see how the weather in Australia has developed, open the filter options.
3. Go to the Equipment modeling tab. Here you can see the equipment model you created.
4. Select Australia and then confirm the dialog.
Now you only see the weather variables for Australia.
132 | 175
zenon Basic Training - Fundamentals
6. Select the Earth and make sure that the hierarchical filter option is checked.
Now independently create filters for all planets in the AML and save them. That's how quick and easy
it is for you to filter and switch between planets via your equipment modeling.
133 | 175
zenon Basic Training - Fundamentals
Note: Should you encounter errors during the previous configuration or if you have skipped a
chapter, we have provided you with a project backup for this chapter. Import this and start with a
working zenon project.
In zenon, you can use trends to graphically display and analyze data. For this purpose, both a trend
element and a so-called extended trend are available. As the name suggests, you have more options
in the extended trend. This involves its own special screen type. In this training, we will work with the
extended trend.
Archives are used to efficiently store data. For example, you can access the temperatures of the
planets and see how hot it was on Mars at 3:34 p.m. yesterday. You can make several settings for
archives and define them according to your requirements. For these purposes, zenon offers its own
module, the Historian.
Archiving and displaying data are quite extensive topics in zenon. Therefore, we will only look at basic
possibilities so that we do not get ahead of ourselves during this training.
134 | 175
zenon Basic Training - Fundamentals
We are now going to create a trend together, which will allow us to graphically display the data over
a selected period of time.
Create a new screen in the Engineering Studio and select the Extended Trend screen type.
Adjust the objects accordingly and expand the drop-down list for the filter profiles downwards, to be
able to read entries better later on.
At first glance the dialog that opens now is similar to the AML and CEL filters. But there are a few
differences.
Then check the Sort data option so that the entries are sorted chronologically.
135 | 175
zenon Basic Training - Fundamentals
In the next step, select the variables whose values you want to display. We decided on the average
values of the planets.
We still have to determine how often the data should be stored on the storage medium and what
period of time should be covered.
Change the Refresh rate to 1 second and give the trend a descriptive name, e.g. Trend average
values.
You can find more information about the other settings options in the zenon Help.
In the Time tab, change the preset setting to 1 minute for Relative time range.
Back in the Data tab, you can now see the values you just defined in the lower section under Number
and Cycle time.
Make sure that the Accept recommendation option is active and confirm the dialog with OK.
136 | 175
zenon Basic Training - Fundamentals
Note: The number of values for the variables is still set to 0 . This is because these variables do not
have a definition for storing the values on the storage medium yet. As soon as you confirm the
dialog, these properties are set for all selected variables.
Now if you go to the Harddisk data storage property group of any of the variables that you have
assigned to the trend, you will find the defined values there.
Note: If you “only” reloaded the new data into the Service Engine, you will notice that the curves are
constantly being redrawn when you switch to the trend screen and the data does not seem to be
saved. Changing the data storage for the variables is a system change that requires the Service
Engine to be restarted.
137 | 175
zenon Basic Training - Fundamentals
To do this, simply go to the curves listed in the Service Engine and activate the check boxes for the
y-axis (you will probably have to scroll a little to the right first).
Now all three scales are displayed - but they are directly on top of each other. You can easily solve
this by moving the axes while holding down the mouse button.
Next, we just want to see the values for the Earth. Hide the other trend curves by deselecting the
check boxes in the Active column.
138 | 175
zenon Basic Training - Fundamentals
You can zoom in on the trend and when you activate the cursor, you can read the values of each
variable.
Note: If the trend is zoomed, the data will continue to be recorded, but the zoom range will remain
static to allow for a more detailed analysis.
With the Stop/Continue button, you can stop the trend in the display, but the data will still be saved.
Please switch back to the Engineering Studio - we now want to refine the filter of our screen switch
function.
1. Open the screen switch function for the trend.
2. Activate the y-axes, for the average values of the Earth.
This ensures that all three labeling axes are now displayed in the screen switch function. You
will remember though that the three labels in the Service Engine were placed directly on top
of each other, and we had to reposition them with the mouse. However, we can also
correctly place the y-axes next to each other in advance.
3. To do this, select one of the three curves and click on the Edit button.
You can define several properties for the curve and the y-axis, in this dialog. We are currently
only interested in one possibility, and that is how to place the three y-axes next to each
other.
4. Go to the Y-axis tab.
139 | 175
zenon Basic Training - Fundamentals
140 | 175
zenon Basic Training - Fundamentals
Test the new filter by loading the new files in the Service Engine and switching to the trend screen
again.
Now the three y-axes are placed next to each other when the screen is loaded.
So far we have used the curve colors that zenon automatically assigned. Now we want to adapt this
to the appropriate color scheme of the planets. Since we also want to work effectively here again, we
will first create the colors in the color palette and give them suitable names.
In the Engineering Studio, go to the trend’s filter dialog via the screen switch function.
141 | 175
zenon Basic Training - Fundamentals
If you load the new data in the Service Engine and switch to the trend screen, you will also see the
colors you assigned.
Create several more profiles in the Service Engine to be able to immediately display all the curves as
well as only those from each planet.
142 | 175
zenon Basic Training - Fundamentals
3. We want to record the weather data of all planets in the archive. Assign an appropriate
identification and name.
Note: Once you have created the archive, you cannot change the ID.
4. In the Recording type tab, set the Cycle time to 15 seconds.
143 | 175
zenon Basic Training - Fundamentals
Note: With these settings, the values are recorded every 15 seconds, stored in the database
after one minute, and kept for one day before being deleted again. You could also evacuate
the data before deleting it locally, but that is going too for this training. More information on
this is available in the zenon Help.
7. Confirm the settings by closing the dialog with OK.
You have just created your first archive and defined the desired variables.
In order to display a trend of the archive values in the Service Engine, we do not need to create a new
trend screen - we only need a new screen switch function for the existing screen.
1. Create a new screen switch function and assign the trend screen to it.
In the following already familiar dialog, you will this time make slightly different settings.
2. For the Origin of the data, select the Archive data.
3. Under Options, check Sort data and untick the box for Delta data only - this will ensure that
the value is recorded every time even if, for example, the temperature has not changed.
Next, we need to of course determine which variables to display.
144 | 175
zenon Basic Training - Fundamentals
4. Click on Add.
In the following dialog, zenon provides exactly those variables that are recorded in an
archive. Quite practical, because it makes the selection a lot easier for us.
5. Select all variables and click Add.
Of course, you already know what's coming next: Give the new function a meaningful name, create
another “Screen active”-variable and a new button in the navigation. Then link everything accordingly.
Note: You have already learned about the solution for the “Screen active”-variable. You have to
replace the variable for the correct functionality in the filter dialog of the screen switch function (in the
Replace links tab). If you do not see this tab, you have not previously assigned a “Screen
active”-variable to the trend screen.
145 | 175
zenon Basic Training - Fundamentals
Create the new Service Engine files again, and then restart the Service Engine. Since the data is
recorded every 15 seconds and the archives are only saved every full minute, you will have to be a
little bit more patient before you can read anything in the display.
As an experienced zenon user, you know that you are making these changes in the Engineering
Studio in the screen switch function for the archive so that they are effectively and automatically
applied in the Service Engine when the archive trend is opened.
146 | 175
zenon Basic Training - Fundamentals
In the filter dialog of the screen switch function, select the colors for your curves and deactivate the
unnecessary y-axes. Adjust the remaining y-axes so that they do not overlap.
Load the changes into the Service Engine and open the trend again via the Archive button.
147 | 175
zenon Basic Training - Fundamentals
If you look at the filter profiles, you will notice that the previously created profiles from the trend are
still listed. Now create additional profiles for the archive trend and make appropriate changes to the
filter.
This is what your profile might look like. But don't forget to have fun and create more.
That is how in zenon users can also create filter profiles and switch between them very quickly and
easily.
148 | 175
zenon Basic Training - Fundamentals
You will set up an overview of different active alarms in the status bar.
Note: Should you encounter errors during the previous configuration or if you have skipped a
chapter, we have provided you with a project backup for this chapter. Import this and start with a
working zenon project.
There is a simple solution in zenon: You can divide alarms into different alarm classes.
1. In the project tree, go to the entry Alarm/Event Classes (found under Variables).
2. Create three alarm classes - one for critical alarms, one for warnings and one for purely
informational alarms.
3. Create a color in the color palette for each of the alarm classes and then assign it to the
alarm classes.
149 | 175
zenon Basic Training - Fundamentals
Next, we need to assign the new alarm classes to the limit values. We will do this directly in the data
type, so we do not have to change each variable individually.
1. Select the temperature data type for the weather station. We have three limit values here.
2. Assign the appropriate alarm class to the limit values (e.g. critical if it is too hot, warning if it is
too cold and information for the ideal temperature range).
With the data types for wind speed and rainfall, we used reaction matrices instead of limit values.
However, you can also apply the alarm classes in a reaction matrix.
But now it is time to take a look at the new alarm classes in the Service Engine. Once you have
reloaded the new Service Engine files, go to AML.
1. Open the filter dialog.
2. You will now find your alarm classes listed.
150 | 175
zenon Basic Training - Fundamentals
4. Activate the Alarm/Event Class column and line the columns up as you like.
If a limit value with an alarm class is exceeded, you will now see the name of the alarm class and the
alarm will be displayed in the corresponding color.
However, if you now look closely at the AML, you may have noticed that we never see the alarm class
for the ideal temperature (in our case Information). There's a good reason for this: we adjusted the
limit value and added an alarm/event class, but we never defined this limit value as an alarm.
Let's take a closer look at this in the Engineering Studio and change it. To do this, check In Alarm
Message List for the third limit value of the temperature data type of your weather station.
Reload the data in the Service Engine and create new filters (e.g. only for critical alarms, etc.). Do not
forget to save the filters. You can also do the same in the CEL.
151 | 175
zenon Basic Training - Fundamentals
Luckily, with zenon, we can solve this problem very quickly and easily. We will simply use alarm areas
for this.
1. In the Engineering Studio, create a new alarm area and give it a suitable name.
We want to use this to cover the alarm status of our entire solar system and therefore
appropriately name the alarm area SolarSystem_Status.
2. Next, link the previously created alarm classes via Class linking.
The alarm area is created and linked to the classes. Now we just have to link the alarm area with the
desired variables.
You probably remember that we linked the alarm classes directly in the data type. With regard to the
alarm area, we want to take a different approach this time so that we keep open the option of adding
other solar systems that we might want to include in our project in the future.
Filter your variables for the temperature variables and select them.
152 | 175
zenon Basic Training - Fundamentals
Note: You can also see here, just how important consistent and clear naming are during project
planning. Also make sure that you are not selecting the variables for the average values.
Now link the alarm area for the solar system, in the Alarm handling property group.
If you have also previously linked alarm classes for wind speed and rainfall, assign the solar system as
the alarm area here as well.
Now you have already done the most important preparatory work. We will now create an overview of
the number of active alarms in the status bar.
This allows users to immediately see the active alarms at all times.
153 | 175
zenon Basic Training - Fundamentals
The attentive among you have already noticed during the class linking in our alarm area that we can
also link variables in addition to alarm classes.
Now we want to retrieve the number of active alarms for each alarm class of the alarm area and
assign each of them to a variable. We can do that with the Number of active alarms option. To do
this, we will first need the appropriate variables.
1. Create three internal variables of the Integer data type.
2. Once again use suitable names (z.B. AlarmClassSum_Critical, etc.).
Now we only need numeric value elements to display the new variable values in the Service Engine.
Create numeric values in the status bar and link them to the variables you just created. In order to
know what they refer to, create appropriate texts - and for those of you who are familiar with
usability, we also recommend working with different colors for the different alarm classes.
154 | 175
zenon Basic Training - Fundamentals
This is also very easy to do in zenon. You will need a so-called aggregated alarm for this.
1. First, select the alarm area of our solar system.
2. Go to the Aggregated alarms property group.
Note: Aggregated alarms contain all alarms stored in an alarm area via Class linking.
The properties are probably already familiar to you from the class linking. This time we do
not want to retrieve the total number of active alarms but only see if at least one alarm is
active. This is done via the Status variable. We will of course again need an internal variable
for this.
3. Now create an internal variable (BOOL as data typle) and give it a suitable name (e.g.
SolarSystem_Status).
155 | 175
zenon Basic Training - Fundamentals
As soon as an alarm is active, the status variable is set to 1. Now we still need our actively flashing
warning symbol. We will use the combined element for this.
156 | 175
zenon Basic Training - Fundamentals
Note: In the Engineering Studio, the default state is always displayed for combined elements.
Now test the new configuration in the Service Engine. You should definitely not miss any alarms now.
As soon as one of the alarms in the alarm area is active, the alarm area will start actively
flashing.
157 | 175
zenon Basic Training - Fundamentals
With this knowledge, you can protect your project or individual elements in the project from
unauthorized individuals operating them.
Note: Should you encounter errors during the previous configuration or if you have skipped a
chapter, we have provided you with a project backup for this chapter. Import this and start with a
working zenon project.
It is reasonable to assume, that you will want to make sure that only certain people have access to all
the information or are allowed to make changes while the system is running.
You can create three different user types with different basic rights in zenon.
User type Authorization in the Service Engine
Power user Can create power users and users if the administrator has enabled these
rights.
You can create any type of user in the Engineering Studio. First, let's look at the basic settings for user
administration. You can set several properties for user administration, Active Directory, automatic
logout, etc. For this training, we now want to simplify the required complexity for passwords.
158 | 175
zenon Basic Training - Fundamentals
Now we can use grandiose passwords such as 123 and make security experts cry. Of
course only for training purposes.
Note: If you want to set the password length to 3 first, zenon will point out the mathematical
impossibility - a password that has requirements for four special characters cannot consist of 3
characters. The laws of mathematics apply even to zenon.
Now it's time to create our first user. It is best to start with an administrator.
1. In the project tree entry User administration, go to the User sub-entry.
2. Create a new user and specify a user name and full name.
3. For User type, select Administrator.
4. Go to the Change password tab and select the desired password for the user.
5. Confirm the dialog with OK.
159 | 175
zenon Basic Training - Fundamentals
In the Service Engine, we will also need a way to log in. There is a predefined function for this in the
Engineering Studio.
160 | 175
zenon Basic Training - Fundamentals
Create a new button in the status bar, link it to the new function and name it.
If you now reload the new data in the Service Engine, you can already log in using the new button.
You will receive an error message when trying to log in. You have allegedly entered an invalid
username. But why is that?
We still need to make a setting in the Engineering Studio before creating Service Engine files.
Behind this name hides an important functionality. Here you can define which files should be created
and transferred from the Engineering Studio.
Now all user administration data will be created and transferred the next time you create Service
Engine files. Let's test this right away.
161 | 175
zenon Basic Training - Fundamentals
Note: If users are created in the Service Engine during operation, they are overwritten with this
method. Please go to the zenon Help for more details (such as how to read back users from the
Service Engine to the Engineering Studio).
Let's log in as an administrator. No error message. Next, log in as Tony. Also no error message.
However, we also do not see anywhere who is currently logged in. That would be quite helpful and
will be our next task. To do this, we will use a system variable.
Select SYSDRV as the driver and System variable as the driver object type.
Note: You will soon notice that now you cannot specify a name or a data type - both are
automatically selected depending on the system variable.
162 | 175
zenon Basic Training - Fundamentals
After clicking Continue, select the complete user name in the following dialog under User
administration and click Add.
Next, create a dynamic text element in the status bar and link the new variable. We will also provide
an explanatory static text.
Create the new Service Engine files and reload them in the Service Engine. Now you can always see
who is currently logged in.
163 | 175
zenon Basic Training - Fundamentals
Now you’ve earned a coffee break. But if you leave and are still logged in, anyone else can make
changes to the current project on your behalf. The option for users to log out is still missing.
Now take the necessary steps to log out of the Service Engine. The required function is called
Logout.
Finally, test the functionality in the Service Engine. Sign in and then sign out. After a successful logout,
the user is SYSTEM.
It's time to change that. In zenon, you can easily do this with authorization levels.
There are a total of 128 authorization levels, from 0-127. These levels are not hierarchical, i.e. if a user
has authorization level 7, then they do not automatically have authorization levels 1-6. Each user has
authorization level 0.
In order to not lose track of 128 authorization levels, we will assign names to the levels we want to
use.
1. In project properties, go to the User Administration property group.
2. Open the dialog in Rename authorization levels.
164 | 175
zenon Basic Training - Fundamentals
We will use level 2 for administrative activities and give it an appropriate name. Every user
automatically has authorization level 0; that is why we name it also.
For the users, you can immediately see the authorization levels in the detail view.
Now we still have to tell zenon which objects should only be operable for authorization level 2. In our
case, we want only the administrator to be allowed to reload or end the project in the Service Engine.
Since these two buttons are symbol instances, first we will have to release this property in the symbol.
1. Open the symbol for the status bar buttons.
2. In the Authorization/eSignature property group, release the Authorization level/level for
"Perform" property.
165 | 175
zenon Basic Training - Fundamentals
3. Create a group for the new released property and give it a descriptive name, like
Authorization level.
Set the necessary authorization level for the buttons for reloading and ending the Service Engine so
that only the administrator is allowed to perform this action.
Note: Please keep in mind that the user administration box for the Service Engine changeable data
must not be checked, otherwise the changes to the authorization levels for the administrator will not
be transferred .
Now try to reload or end the Service Engine without logging in. You will see the login dialog because
you are not authorized to perform this action without logging in. If you cancel the dialog (or log in as
Tony), zenon will tell you that you are not authorized to perform this action.
Perfect. The authorization levels are working as intended. But of course we aren’t satisfied with that.
166 | 175
zenon Basic Training - Fundamentals
We now want users in the Service Engine to be able to immediately see whether they are allowed to
perform a certain action or not. Currently, you will only find out about this after you have already
clicked on the button.
3. If you restart the Service Engine with the changed files, you will immediately see the locks
next to the buttons.
Now we also want to give Tony Earth special authorizations. Although he should not be able to end
Service Engine, he should be allowed to change values at the weather stations.
1. Now assign a suitable name for any other authorization level (let's take level 5 and call it Edit
values).
2. Assign this authorization level to Tony.
We still have to assign the authorization level to the appropriate objects in the weather stations. Since
these are again symbol instances, we have to open the respective symbol again and release the
necessary properties.
1. Select the numeric value objects in the symbol of the weather station and release the
authorization levels there.
167 | 175
zenon Basic Training - Fundamentals
3. After saving the symbol, go to the Earth screen where we have depicted all 5 weather
stations.
4. Select all weather stations and assign the correct authorization level.
Test these changes now in the Service Engine. If your Service Engine is still running, you have to of
course be logged in as an administrator to reload the files.
168 | 175
zenon Basic Training - Fundamentals
Then, when you go to one of the planets to look at the weather stations, you will see locks there. As
an administrators you do not have authorization to change values because you do not have the
appropriate authorization level.
If you log in now as Tony, these locks will disappear and you will be allowed to change the values.
As you can see, the principle of authorization levels is very easy and quick to implement.
But what if we want to perform an action without prior login for which we need special permission?
Simply log out now of the Service Engine and try to change one of the values. The login dialog
opens. Log in now as Tony.
You can see that you can now change that very value while the others remain locked. As soon as you
have completed the entry, this object will also be locked again. In the status bar you can also see that
the user SYSTEM is still logged in.
What happened?
169 | 175
zenon Basic Training - Fundamentals
To do this, filter for user administration by only including the user administration in the Categories
tab.
It is best to save the filter immediately, in case you need it again later.
You will now see the login events listed. According to the CEL, Tony last logged in using a temporary
login.
The temporary login allows you to perform exactly one action. This can be useful for some critical
applications, because you will be logged out immediately after the action.
If you do not want to allow temporary logins in your project, you can simply deselect this option in
the Engineering Studio.
Just deselect the Temp. login active option (found in the User Administration property group).
Now if you reload the changed files in the Service Engine, you will no longer receive a login dialog for
locked objects.
In the Chronological Events List, you can see when the value was changed and by whom.
170 | 175
zenon Basic Training - Fundamentals
Create two more users (please select User again as the User type).
We now have three users who should have the same rights. Instead of always having to manually
assign them the appropriate authorization levels, we will now do this via user groups.
1. Create your first user group and give it a suitable name. Since we want to set the rights for
operating the project here, we will use Operators.
2. In the second tab, assign the authorization level for changing values and confirm the dialog.
In the detail view, you can now see the user group including the assigned authorization levels.
However, we still have to assign the user group to the desired users.
1. Select the three colleagues together and assign them the new user group.
2. You must execute and confirm the dialog for all three users.
You can immediately see that Tony, Watney and Amelia are all in the Operators user
group.
171 | 175
zenon Basic Training - Fundamentals
Now Amelia and Watney can also change values at the weather stations. Fantastic!
Now we would like to distribute the workload among the three users. Each of them should be
responsible for exactly one planet and only be allowed to change values there.
1. To do this, go back to the Engineering Studio and remove the authorization level for value
changes from the Operators user group.
2. Reload the changed files in the Service Engine and log in as Amelia. You can no longer
change values.
However, if you log in as Tony, you can still change the values on all planets. This is because we
previously individually assigned him the authorization level for it. In order to assign our users to one
planet each, we will create additional authorization levels and user groups.
172 | 175
zenon Basic Training - Fundamentals
3. As soon as you have saved the symbol, you can assign the appropriate authorization level
for the buttons of the individual planets.
If you now test the changes in the Service Engine, you will notice that the navigation buttons for the
planets are locked for all users - including Tony. Of course, we still have to assign the authorization
levels to the users. But we will do this again via user groups. This makes it very easy for us to assign
an authorization group to another user later on or centrally manage the authorization levels in
authorization groups.
Let's use our existing user group to operate Earth's weather stations.
1. Rename the user group and assign it the authorization level for operating the navigation
button.
2. Create two more user groups for the other two planets.
173 | 175
zenon Basic Training - Fundamentals
Before you assign the user groups to the appropriate users, let’s take a look at the detail view
of the users together.
You will immediately notice that the users still have the old name of the previously assigned
user group - including the note that this user group no longer exists. This means that the
renamed user group is not automatically reassigned. This is for security purposes, so that you
do not unintentionally assign authorizations to the wrong users.
3. Now assign the user groups to the users. As soon as you confirm the assignment dialog, the
deleted user group will automatically disappear.
Test the new user groups in the Service Engine. Log in as Tony and change values for the weather
stations on Earth. Let Watney cause havoc on Mars and Amelia determine the weather on Venus. If
Watney and Amelia can go to the correct planet but are not able to change any values, think about
what might be wrong.
We have provided the buttons with an authorization level; the objects in the screen are still locked
with the authorization level to change the values. Have you assigned this authorization level in the
user group?
Once everything works the way you want it to, it is time to put your creativity into action again. Create
more users, use additional authorization levels, assign different combinations of user groups. You will
see that you can very quickly and easily adjust the authorizations to your needs. As always, using
suitable names here is very helpful.
You have now learned about all the important basic functionalities and elements of zenon that you
can use to create your first projects. Feel free to expand your project (there are a few more planets in
our solar system) while continuing to familiarize yourself with zenon.
174 | 175
zenon Basic Training - Fundamentals
You will find several advanced courses online in the zenon Academy, and if you get stuck configuring,
you can always use the property help directly in zenon at any time or go to the zenon Online Help.
175 | 175