With this you are set up to continue with this learning path.
+
+
+---
+
+
+
+ What will you learn in this chapter
+
+
+
+
+
After you complete this training section, you will have:
+
+
Basic knowledge of hardware configuration
+
Know how to insert hardware devices into a project
+
Know how to use templates in hardware context
+
After you complete this training section, you will have be able to administer users through User Management
+
Know how to perform hardware basic setting assignment
+
Understand diagnostics in the hardware environment
+
+
+
+
+---
+
+
+
IT-Like Hardware Engineering
+
The description of the configuration
+
+
+
+
+
+ In order to create the hardware configuration for a PLC, the first step we need to take is to understand how the hardware configuration is described in a textual declaration for an IT-like context.
+
+
The format in which the hardware configuration is created is YAML. YAML has the following advantages as a format:
+
+
Text-based
+
Human-readable
+
Can be easily edited with a text editor
+
+
+
+
The devices and dependent modules, including all properties, can be easily defined and set.
In the hardware environment, there are two basic tools that perform the main tasks. The tools are added over sdk the `apax add --dev @ax/sdk` command. But it is also possible to insert both without sdk. This tools are as follows:
+
+
+
HWC - Hardware Compiler
+ The hardware compiler is the main engineering tool. Its main function is to support the customer in creating the hardware configuration (e.g., importing certificates, managing users, importing GSDMLs, and creating templates), as well as translating the configuration into the machine configuration that is also understood by the target. Furthermore, the plausibility of the configuration is checked during the translation process.
+ The call of HWC via the CLI looks like this: "apax hwc [command] [options]"
+
+
HWLD - Hardware Loader
+ The main function of the hardware loader is to transfer the machine configuration, which was created via the hardware compiler, to the hardware.
+ The call of HWLD via the CLI looks like this: "apax hwld [command] [parameters]"
+
+
+
For more information about the components and their commands and parameters, see:
To operate a system, you need to configure not only the PLC but also the corresponding modules, motors, and so on. Accordingly, AX offers various options for incorporating configuration information for modules into the project. There are two options here:
+
+
Importing the hardware as a standardized GSDML format.
+
Using standard Siemens modules that are supported and provided as apax packages that can be included as dev dependencies.
+
+
+
In the following section we will show you how to proceed in order to have the hardware information available in the project.
+
+
We will show how the modules are integrated into the project in the following chapter on templates.
+
+
+----
+
+
+
Use of GSD Files
+
+
+
+
+
The GSD (General Station Description) format is a description language used to describe and parameterize hardware settings. It is a standard supported by all PROFINET device manufacturers. Accordingly, each hardware manufacturer provides the description file.
+
+
First, you need to contact the manufacturer of the module you want to use and obtain the GSD file. This is then usually inserted into the project.
+ We recommend creating a folder called `gsd` in the project and inserting the files there centrally. After that, you need to make the module known in the project so that you can use it. This is done with the help of the hardware compiler. You call:
+
+
apax hwc install-gsd --input <name_of_GsdFile>
+
+
The install-gsd command will generate intermediate files that are required for Hardware Compiler from the GSDML or GSDX files.
+
+
These intermediate files will be placed in the GSD installation cache folder. If you use Hardware Compiler version 3.1 or later, it is located in the .ax folder of your user folder. After this, the hardware compiler is ready to use the information from the GSDML file by the compile.
Depending on how many devices and modules it describes, a GSD file can become very large, making it difficult to determine which configuration parameters an module has and which values it can assume.
+
+
For a graphical overview, we offer an extension that can be integrated into AX code (see image to the right). You can then click on a GSDML XML file, and it will open in the extension (see below).
A hardware support package is viewed as a package from the AX side. Accordingly, it can be added to the project like any other package. You call the `apax add` command, as in the following example for importing the standard 1500 modules:
+
+
apax add --dev @ax/hw-s7-1500
+
+
The package can then be seen in apax.yml under development dependencies:
+
+
+
+ If you now open the project on another PC, the hardware information will also be added to the project via a simple `apax install`.
+ By default, the hardware support package for the 1500 PLC is included in the SDK.
+ If additional Siemens hardware is required that is not yet offered as a hardware support package, it can of course also be imported as GSDML.
+
+
+
+
A current overview of available hardware can be found in the AX documentation: Hardware Support Packages
+
+
+
+----
+
+
+
Overview of what hardware is installed in the project
+
+
+
+
You want to know which modules are known to the hardware compiler in the project, and/or what IDs they have. This can be done using a corresponding command in the hardware compiler, which looks like this:
+
+
apax hwc get-supported-devices
+
+
After this, you'll see an overview in the terminal that looks like this. This is divided into different types (modules/PLCs, etc.) and the type of integration (support packages or via GSD file).
+
+
+
+
+---
+
+
+
IT-Like Hardware Engineering
+
Use of Templates
+
+
+
+
The previous section showed how to use the configuration information in the project. There are basically two ways to do this:
+
+
You can create the valid hardware configuration file yourself in your own way.
+
You can have it created for you via the hardware compiler, which we deal with in this section.
+
+
+
The hardware compiler has the function of creating a template, which creates all the attributes made available for parameterization by the configuration file with the default values.
+
+
A template is initially referred to as the template of a hardware module, but later also as files that can be used multiple times in a project for modules with the same configuration. In this sense, hardware templates offer several advantages. Among other things, they can be:
+
+
Be stored centrally and used in the project.
+
Be parameterized by using placeholders.
+
Split the hardware configuration into several HWL files.
+
+
+
It is important to note, however, that the identifier for the hardware compiler is the name. This means that a module name or template name in a project must be unique and cannot be used multiple times.
+
+
+----
+
+
+
Templates from GSD
+
+
+
+
+
The prerequisite for creating a template from a GSD file is that it is installed in the project. To call it, you need the GSD ID of the assembly in the file.
+
+
The command used to create a template from a GSDML file is shown on the right. The file and assembly ID must be specified accordingly. The result of the execution is shown.
+
+
However, placeholders are assigned for the template and assembly names, which must be manually modified to prevent duplicate names from being assigned when creating a second template.
+
+
+
The GSDML for Siemens modules, one of which was also used for the ET200SP, can be downloaded from Siemens Support: Link to Siemens Online Support Portal
The templates from the modules that come via the Hardware Support Packages are created in the same way as with GSDML. This is the same command, only different parameters must be specified. The command looks like this:
The "order number" and "version" must be passed. The generated template can now be seen on the right.
+
+
+
+----
+
+
+
Use of placeholders
+
+
+
+
In the example shown here, the same template is used in an ET200SP. Accordingly, a different name is passed. Additionally, the white potential module is passed for the first module, which is not necessary for the second, since the black module is the default value. Here is an example of how it is used:
+
+
+
+
The variables are parameterized accordingly under the keyword Placeholders. The following things are defined using the following keywords:
+
+
Name: The name of the placeholder, which is then also applied in the content
+
Value: The default value if the variable is not specified. If this is not set, the variable must always be specified when applying.
+
AllowedValues:
+A restriction of the values that can be entered. If, for example, the assembly has more setting options, but the process only allows certain values, this can be restricted.
+
+
The keyword Content contains the description of the module with the application of the placeholder, see "${Modulename}"
+
+
+
+
+
+----
+
+
+
Apply templates
+
+
+
+
Now that the template is ready for use, it must be applied accordingly in main (the file that instantiates the plc) yml file.
+
+
To use a template, the keyword "Apply" is used. Additionally, the name of the template to be applied must be specified.
+ Depending on whether placeholders are assigned and these are not initialized, they must be parameterized as "Arguments".
+
+
+
In the example shown here, the same template is used in an ET200SP. Accordingly, a different name is passed via the parameter ModuleName. As an example for the use of the default values in the template, the white potential module is passed via the parameter "BaseUnit" for the first module, which is not necessary for the second, since the black module is the default value.
Like all Siemens software, SIMATIC AX also represents the principle of "Security by default".
+ Accordingly, the security aspects must be set up in the project before loading the PLC.
+
Security consists of the following two aspects:
+
+
Authentication ensures that you are communicating with the expected PLC
+
Authorization ensures operations are only performed by users permitted to do so.
+ To create the appropriate security settings for a PLC, you first need a PLC description file. The PLC is the central element in a hardware configuration, to which all other modules are interconnected. The basic configuration can now be created, for example, by generating a template from a PLC in a hardware support package.
+
+
In this file you can also set some basic settings in relation of Authentication and Authorization:
+
+
Authentication: The services can be switched on here, such as OPCUA / Webserver
+
Authorization: The basic protection level is set here.
To fullfill the cyber security needs of a production facility, additional information must be stored and loaded onto the PLC. This information is not necessarily generic or even stored in a readable format, as you can see down in the screenshot. Examples include passwords or certificate keys.
+
+
+
+
Creating the file is also necessary in order to successfully compile the PLC.
+ If the file is deleted or manually modified, it must be deleted and completely recreated.
+
+
To create the file, the command "apax hwc setup-secure-communication" called with the following parameters.:
+
+
module-name: name of PLC
+
input: Path to the hwl config files.
+
master-password the masterpassword for the config on plc.
As already mentioned, the certificate handling is required for the authentication aspect. Accordingly, the hwc offers the option of importing certificates.
+ This is done via the command "apax hwc import-certificate"
+
In addition to the information about which PLC the certificate refers to, the certificate file, password, and purpose must also be specified.
+
Purpose can include TLS, WebServer, SysLogClient and OpcUaServer
+
Once the certificate has been added, you can find it in the security configuration file and also find the file index.
+
+
Some commands or blocks break the certificate index. The whole thing then looks like the screenshot shown:
+
+
+
+
For More Informations about the Command check the documentation on the AX Side: Import certificate command
+
+
+
+----
+
+
+
User Management UMAC - Define Users and Roles in hwl.yml
+
+
+
+
To enable authorization on a PLC, users, passwords, and roles must be assigned. This whole process is referred to as User Management Access Control (UMAC). It consists of two pillars: the assignment of roles and rights, and the assignment of passwords. Passwords are assigned via the CLI and are discussed on the next page.
+If the config file and PLC Security Configuration File are not kept synchronized, errors may occur during hardware compilation
+
+
+
+
Roles are configured in the hwl.yml file. A "UserManagement" section is created when defining the PLC. There, roles can be defined and then assigned to users.
+
The function roles can come from the following things, for example.:
User Management UMAC - Managing User Credentials over command line of hwc
+
+
+
+
Using the command "apax hwc manage-users", you can list all known users, assign passwords, and create users. As with the other commands, you must specify the PLC name and the location of the PLC config file the user is currently in with the same --input parameters you would pass to hwc compile. Note: Role assignment is still done via the hwl config file. Therefore, both the config file and user management in the PLC Security Configuration File must be maintained.
+
+
The command now offers the following options:
+
+
list: Lists all users for which credentials have been configured for the specified PLC in the PLC Security Configuration File.
+
set-password: Sets the password for a PLC's user. If the user does not yet exist, it will be created implicitly. If the user already exists, the previously configured password will be overwritten..
+
delete: Deletes a user from the PLC Security Configuration File.
+
+
+
+
For More Informations about mange User Command on AX Side: Manage User Command
+
+
+
+
+
+---
+
+
+
IT-Like Hardware Engineering
+
Hardware Identifiers
+
+
+
+
When you set up or assemble a system for the first time, it's important to assign communication addresses, such as the IP address, to the modules, since the modules are delivered with the same values from the factory. This applies to the spare parts use case.
+ Therefore, AX must have a way for a module to know its unique identifiers. Accordingly, you can describe in AX which port is connected to which module. This allows the system to recognize which device is involved and assign the device identifiers based on the network interconnection.
+ The following is a parameterization example showing how different modules are connected to a SCALANCE X208:
+
+
+
The keyword "PortInterconnections" opens the section where you describe everything.
Using the word "Ports" and the corresponding reference ("Ref"), you specify which port is connected to which port via network cable.
+
+
+
+
+
+
Additional information about templates can be found on the AX page: Topology Configuration
+
+
+---
+
+
+
IT-Like Hardware Engineering
+
Constant Values that will be used in software program
+
+
+
+
During hardware configuration, values/variables are assigned which can be referred to in the user program.
+
+
After compiling a hardware configuration, hwc will generate ST files that define variables for Hardware Identifiers and IO Addresses of each module inside the folder SystemConstants. The files or values you need can simply be copied into the src folder of the software program.
+ Additional information: When the PLC is generated, the values assigned are also saved in JSON files in order to retain values that have already been assigned.
+
+
We will briefly show the two files containing the values on the following page.
+
+
+----
+
+
+
I/O Addresses
+
+
+
+
The I/O addresses are the addresses used to access the signals via the module. This is the process image that contains the current values pending on the hardware or those to be written to the hardware.
+ The I/O addresses of a module will be stored as the largest possible type inside the IoAddresses file.
+
+
Here is an example of what such a generated file looks like:
+
+
+
+
+----
+
+
+
Hardware Identifiers
+
+
+
+
+
+
+Some functions require that you access the hardware in the program or specify which module it is. For this purpose, hardware identifiers are created during compilation. These are of type UINT. The names correspond to the module name. An example of such a file looks like the one shown on the right.
+
+
+
+
+
+
+---
+
+
+
IT-Like Hardware Engineering
+
Diagnostic and hardware functions
+
+
+
+
When commissioning a program, you need various tools for general diagnostics, for example, to view or trace online values from the PLC. Therefore, we have created a separate chapter in the Learning Path dedicated exclusively to general diagnostics.
+
However, we will show the hardware-specific diagnostic tools on the next slide that you need to get your first hardware running.
+
+
+----
+
+
+
HW Overview and Online / Offline compare
+
+
+
+
One of the main hardware-specific diagnostics is checking the online status or checking whether the hardware parameterized in the project is compatible with the current status of the existing hardware.
+
+
The AX Ecosystem provides the hardware diagnostics tool, which can be installed with "apax add --dev @ax/hardware-diagnostics" in the project like a package.
+
+
Once the tool is installed, you can run the corresponding command apax hw-diag compare to compare your online and offline hardware. It must be noted that appropriately parameterized authentication information such as user/password and certificate must also be transferred. The result will be displayed in the terminal and will look like the image below:
+
+
+
+
+
"Actual" refers to the values of the existing hardware
+
"Configured" refers to how configuration is done in the offline project
+
+
+
+
+
Additional information about hardware diagnostics can be found on the AX page: Hardware Diagnostic
+
+
+---
+
+
+
IT-Like Hardware Engineering
+
Exercise
+
+
+
+
Now it's time to put what you've learned into practice. To do this, please complete an exercise and follow the steps below. Feel free to flip back to the relevant pages for help.
+
+
Create a new project
+
Add the components hwc, hwld over sdk
+
Insert assemblies via packages and gsd
+
Create the template of a PLC from the hardware support packages and perform the setup of the security functions
+
Create a template for a PROFINET module from a GSDML. Set placeholders in the template e.g. for the name. Apply and parameterize the template.
+
Create also the topology connection for the PROFINET module.
+
Create your own scripts in the apax yml for loading / user management and hardware diagnostics.
+
Load your hardware configuration and compare online with offline.
+
+
+
+
+
The links to the following tools on the AX page are also helpful:
You have learned where to find variables for the software program
+
You have loaded your first hardware configuration
+
+
+
Congratulations, you've created your first hardware configuration. We recommend, however, that you use a template to store your basic settings so you don't have to start from scratch every time and have your usual settings and scripts available right from the start.
+
\ No newline at end of file
diff --git a/08_package_management/slides/theme/.DS_Store b/03_hardware_configuration/slides/theme/.DS_Store
similarity index 100%
rename from 08_package_management/slides/theme/.DS_Store
rename to 03_hardware_configuration/slides/theme/.DS_Store
diff --git a/08_package_management/slides/theme/siemens.svg b/03_hardware_configuration/slides/theme/siemens.svg
similarity index 100%
rename from 08_package_management/slides/theme/siemens.svg
rename to 03_hardware_configuration/slides/theme/siemens.svg
diff --git a/03_hardware_configuration/slides/theme/simatic-ax.css b/03_hardware_configuration/slides/theme/simatic-ax.css
new file mode 100644
index 0000000..8f32682
--- /dev/null
+++ b/03_hardware_configuration/slides/theme/simatic-ax.css
@@ -0,0 +1,294 @@
+/*! modern-normalize v2.0.0 | MIT License | https://github.com/sindresorhus/modern-normalize */
+
+/*
+Document
+========
+*/
+
+/**
+Use a better box model (opinionated).
+*/
+
+*,
+::before,
+::after {
+ box-sizing: border-box;
+}
+
+html {
+ /* Improve consistency of default fonts in all browsers. (https://github.com/sindresorhus/modern-normalize/issues/3) */
+ font-family:
+ system-ui,
+ 'Segoe UI',
+ Roboto,
+ Helvetica,
+ Arial,
+ sans-serif,
+ 'Apple Color Emoji',
+ 'Segoe UI Emoji';
+ line-height: 1.15; /* 1. Correct the line height in all browsers. */
+ -webkit-text-size-adjust: 100%; /* 2. Prevent adjustments of font size after orientation changes in iOS. */
+ -moz-tab-size: 4; /* 3. Use a more readable tab size (opinionated). */
+ tab-size: 4; /* 3 */
+}
+
+/*
+Sections
+========
+*/
+
+body {
+ margin: 0; /* Remove the margin in all browsers. */
+}
+body {
+ background: rgb(0,0,40);
+ background-color: rgb(0,0,40);
+ /* Siemens Stone light 35%. White background makes index page unreadable (white links). */
+}
+
+/* ugly trick to use white background for normal slides */
+.js body {
+ background: rgb(0,0,40);
+ background-color: rgb(0,0,40);
+}
+
+section.has-dark-background,
+section.has-dark-background h1,
+section.has-dark-background h2,
+section.has-dark-background h3,
+section.has-dark-background h4,
+section.has-dark-background h5,
+section.has-dark-background h6 {
+ color: #fff;
+}
+
+section {
+ display: flex!important;
+ flex-direction: column;
+ align-items: left;
+ text-align: left;
+ height: 100%;
+ margin: 1em 1em;
+ overflow: hidden;
+}
+
+section.centered {
+ display: flex!important;
+ flex-direction: column;
+ align-items: center;
+ justify-content: center;
+ text-align: center;
+}
+
+h1, h2, h3, h4, h5, p, td, li {
+ text-shadow: transparent 0px 0px;
+ font-family: "Siemens Sans Global", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen, Ubuntu, Cantarell, "Fira Sans", "Droid Sans", "Helvetica Neue", sans-serif;
+ font-weight: 700;
+ line-height: 0.9;
+}
+
+p, td, li {
+ font-weight: 500;
+}
+
+h1 {
+ font-size: 5em;
+ letter-spacing: -0.05em;
+ background: linear-gradient(90deg, rgb(0, 190, 220), rgb(0, 215, 160));
+ -webkit-background-clip: text; /* clip the background to the text inside the tag*/
+ background-clip: text;
+ -webkit-text-fill-color: transparent; /* make the text transparent so the background shows through*/
+ padding: 0 0 0.25em 0;
+ margin: 0 0 0.25em 0;
+}
+
+h2 {
+ font-size: 3em;
+ letter-spacing: -0.05em;
+ background: linear-gradient(90deg, rgb(0, 190, 220), rgb(0, 215, 160));
+ -webkit-background-clip: text; /* clip the background to the text inside the tag*/
+ background-clip: text;
+ -webkit-text-fill-color: transparent; /* make the text transparent so the background shows through*/
+ padding: 0 0 0.25em 0;
+ margin: 0 0 0.25em 0;
+}
+
+h3 {
+ font-size: 2em;
+ padding: 0 0 0.25em 0;
+ margin: 0 0 0.25em 0;
+}
+
+h4 {
+ font-size: 1.25em;
+ font-weight: 900;
+}
+
+p, li {
+ line-height: 1.75rem;
+ font-size: 1.2rem;
+}
+
+table {
+
+}
+
+th, tr {
+ line-height: 4rem;
+ padding: 0.75rem 0rem;
+}
+td {
+ padding: 0.5rem 0.05rem;
+ font-size: 1.25rem;
+ text-align: left;
+}
+
+.slide_header{
+ margin-bottom: 3rem;
+}
+
+.flex-row {
+ display: flex;
+ flex-direction: row;
+}
+
+
+.flex-col {
+ display: flex;
+ flex-direction: column;
+}
+
+.items-stretch{
+ align-items: stretch;
+}
+
+.items-center {
+ align-items: center;
+}
+
+.justify-center {
+ justify-content: center;
+}
+
+.justify-start {
+ justify-content: start;
+}
+
+.grid-two-col-eq {
+ display: grid;
+ grid-template-columns: repeat(2, minmax(0, 1fr));
+ grid-column-gap: 4rem;
+}
+
+br {
+ margin: 2rem;
+}
+
+ul {
+ margin-top: 0.75rem;
+ margin-left: 2rem;
+}
+
+li {
+ margin: 0.25rem 0;
+}
+
+/*
+Grouping content
+================
+*/
+
+/**
+1. Add the correct height in Firefox.
+2. Correct the inheritance of border color in Firefox. (https://bugzilla.mozilla.org/show_bug.cgi?id=190655)
+*/
+
+hr {
+ height: 0; /* 1 */
+ color: inherit; /* 2 */
+}
+
+/*
+Text-level semantics
+====================
+*/
+
+/**
+Add the correct text decoration in Chrome, Edge, and Safari.
+*/
+
+abbr[title] {
+ -webkit-text-decoration: underline dotted;
+ text-decoration: underline dotted;
+}
+
+/**
+Add the correct font weight in Edge and Safari.
+*/
+
+b,
+strong {
+ font-weight: bolder;
+}
+
+/**
+1. Improve consistency of default fonts in all browsers. (https://github.com/sindresorhus/modern-normalize/issues/3)
+2. Correct the odd 'em' font sizing in all browsers.
+*/
+
+code,
+kbd,
+samp,
+pre {
+ font-family:
+ ui-monospace,
+ SFMono-Regular,
+ Consolas,
+ 'Liberation Mono',
+ Menlo,
+ monospace; /* 1 */
+ font-size: 1em; /* 2 */
+}
+
+/**
+Add the correct font size in all browsers.
+*/
+
+small {
+ font-size: 80%;
+}
+
+/**
+Prevent 'sub' and 'sup' elements from affecting the line height in all browsers.
+*/
+
+sub,
+sup {
+ font-size: 75%;
+ line-height: 0;
+ position: relative;
+ vertical-align: baseline;
+}
+
+sub {
+ bottom: -0.25em;
+}
+
+sup {
+ top: -0.5em;
+}
+
+/*
+Tabular data
+============
+*/
+
+/**
+1. Remove text indentation from table contents in Chrome and Safari. (https://bugs.chromium.org/p/chromium/issues/detail?id=999088, https://bugs.webkit.org/show_bug.cgi?id=201297)
+2. Correct table border color inheritance in Chrome and Safari. (https://bugs.chromium.org/p/chromium/issues/detail?id=935729, https://bugs.webkit.org/show_bug.cgi?id=195016)
+*/
+
+table {
+ text-indent: 0; /* 1 */
+ border-color: inherit; /* 2 */
+}
diff --git a/08_package_management/apax.yml b/04_loading_and_debugging/apax.yml
similarity index 100%
rename from 08_package_management/apax.yml
rename to 04_loading_and_debugging/apax.yml
diff --git a/03_loading_and_debugging/assets/ax/HwConfiguration.hwdat b/04_loading_and_debugging/assets/ax/HwConfiguration.hwdat
similarity index 100%
rename from 03_loading_and_debugging/assets/ax/HwConfiguration.hwdat
rename to 04_loading_and_debugging/assets/ax/HwConfiguration.hwdat
diff --git a/03_loading_and_debugging/assets/ax/HwConfiguration.hwdat.hash b/04_loading_and_debugging/assets/ax/HwConfiguration.hwdat.hash
similarity index 100%
rename from 03_loading_and_debugging/assets/ax/HwConfiguration.hwdat.hash
rename to 04_loading_and_debugging/assets/ax/HwConfiguration.hwdat.hash
diff --git a/03_loading_and_debugging/assets/ax/Meta.json b/04_loading_and_debugging/assets/ax/Meta.json
similarity index 100%
rename from 03_loading_and_debugging/assets/ax/Meta.json
rename to 04_loading_and_debugging/assets/ax/Meta.json
diff --git a/03_loading_and_debugging/assets/ax/PkiContainer.hwdat b/04_loading_and_debugging/assets/ax/PkiContainer.hwdat
similarity index 100%
rename from 03_loading_and_debugging/assets/ax/PkiContainer.hwdat
rename to 04_loading_and_debugging/assets/ax/PkiContainer.hwdat
diff --git a/03_loading_and_debugging/assets/ax/PkiContainer.hwdat.hash b/04_loading_and_debugging/assets/ax/PkiContainer.hwdat.hash
similarity index 100%
rename from 03_loading_and_debugging/assets/ax/PkiContainer.hwdat.hash
rename to 04_loading_and_debugging/assets/ax/PkiContainer.hwdat.hash
diff --git a/03_loading_and_debugging/assets/certificateForConnection.crt b/04_loading_and_debugging/assets/certificateForConnection.crt
similarity index 100%
rename from 03_loading_and_debugging/assets/certificateForConnection.crt
rename to 04_loading_and_debugging/assets/certificateForConnection.crt
diff --git a/03_loading_and_debugging/assets/plcsim_advanced_v6_image.7z b/04_loading_and_debugging/assets/plcsim_advanced_v6_image.7z
similarity index 100%
rename from 03_loading_and_debugging/assets/plcsim_advanced_v6_image.7z
rename to 04_loading_and_debugging/assets/plcsim_advanced_v6_image.7z
diff --git a/03_loading_and_debugging/assets/tia/AxHwTemplate.zap19 b/04_loading_and_debugging/assets/tia/AxHwTemplate.zap19
similarity index 100%
rename from 03_loading_and_debugging/assets/tia/AxHwTemplate.zap19
rename to 04_loading_and_debugging/assets/tia/AxHwTemplate.zap19
diff --git a/07_tools_for_commissioning/exercises/0_first_exercise/README.md b/04_loading_and_debugging/exercises/0_first_exercise/README.md
similarity index 100%
rename from 07_tools_for_commissioning/exercises/0_first_exercise/README.md
rename to 04_loading_and_debugging/exercises/0_first_exercise/README.md
diff --git a/07_tools_for_commissioning/exercises/0_first_exercise/apax.yml b/04_loading_and_debugging/exercises/0_first_exercise/apax.yml
similarity index 100%
rename from 07_tools_for_commissioning/exercises/0_first_exercise/apax.yml
rename to 04_loading_and_debugging/exercises/0_first_exercise/apax.yml
diff --git a/03_loading_and_debugging/slides/img/DownloadHardwareTia.gif b/04_loading_and_debugging/slides/img/DownloadHardwareTia.gif
similarity index 100%
rename from 03_loading_and_debugging/slides/img/DownloadHardwareTia.gif
rename to 04_loading_and_debugging/slides/img/DownloadHardwareTia.gif
diff --git a/03_loading_and_debugging/slides/img/ExportCertificate.gif b/04_loading_and_debugging/slides/img/ExportCertificate.gif
similarity index 100%
rename from 03_loading_and_debugging/slides/img/ExportCertificate.gif
rename to 04_loading_and_debugging/slides/img/ExportCertificate.gif
diff --git a/03_loading_and_debugging/slides/img/PGPCInterface.gif b/04_loading_and_debugging/slides/img/PGPCInterface.gif
similarity index 100%
rename from 03_loading_and_debugging/slides/img/PGPCInterface.gif
rename to 04_loading_and_debugging/slides/img/PGPCInterface.gif
diff --git a/03_loading_and_debugging/slides/img/sdb_logpoint.gif b/04_loading_and_debugging/slides/img/sdb_logpoint.gif
similarity index 100%
rename from 03_loading_and_debugging/slides/img/sdb_logpoint.gif
rename to 04_loading_and_debugging/slides/img/sdb_logpoint.gif
diff --git a/03_loading_and_debugging/slides/img/sdb_start.png b/04_loading_and_debugging/slides/img/sdb_start.png
similarity index 100%
rename from 03_loading_and_debugging/slides/img/sdb_start.png
rename to 04_loading_and_debugging/slides/img/sdb_start.png
diff --git a/03_loading_and_debugging/slides/img/tiaxDirectLoading.png b/04_loading_and_debugging/slides/img/tiaxDirectLoading.png
similarity index 100%
rename from 03_loading_and_debugging/slides/img/tiaxDirectLoading.png
rename to 04_loading_and_debugging/slides/img/tiaxDirectLoading.png
diff --git a/03_loading_and_debugging/slides/img/watchtable.gif b/04_loading_and_debugging/slides/img/watchtable.gif
similarity index 100%
rename from 03_loading_and_debugging/slides/img/watchtable.gif
rename to 04_loading_and_debugging/slides/img/watchtable.gif
diff --git a/03_loading_and_debugging/slides/slides.md b/04_loading_and_debugging/slides/slides.md
similarity index 98%
rename from 03_loading_and_debugging/slides/slides.md
rename to 04_loading_and_debugging/slides/slides.md
index 55a5eef..5b2d8d7 100644
--- a/03_loading_and_debugging/slides/slides.md
+++ b/04_loading_and_debugging/slides/slides.md
@@ -13,13 +13,14 @@ mouseWheel: true,
| 00 | Introduction to the workshop |
| 01 | Introduction to AX Code IDE |
| 02 | Get started with your first AX Project |
-| **03** | **Loading and Debugging** |
-| 04 | Introduction to ST Programming |
-| 05 | OOP Elements of ST |
-| 06 | Unit Testing |
-| 07 | Tools for commissioning |
-| 08 | Package management |
-| 09 | Versioning and Continuous Integration |
+| 03 | Hardware Configuration |
+| **04** | **Loading and Debugging** |
+| 05 | Introduction to ST Programming |
+| 06 | OOP Elements of ST |
+| 07 | Unit Testing |
+| 08 | Tools for commissioning |
+| 09 | Package management |
+
---
diff --git a/07_tools_for_commissioning/slides/theme/.DS_Store b/04_loading_and_debugging/slides/theme/.DS_Store
similarity index 100%
rename from 07_tools_for_commissioning/slides/theme/.DS_Store
rename to 04_loading_and_debugging/slides/theme/.DS_Store
diff --git a/07_tools_for_commissioning/slides/theme/siemens.svg b/04_loading_and_debugging/slides/theme/siemens.svg
similarity index 100%
rename from 07_tools_for_commissioning/slides/theme/siemens.svg
rename to 04_loading_and_debugging/slides/theme/siemens.svg
diff --git a/07_tools_for_commissioning/slides/theme/simatic-ax.css b/04_loading_and_debugging/slides/theme/simatic-ax.css
similarity index 100%
rename from 07_tools_for_commissioning/slides/theme/simatic-ax.css
rename to 04_loading_and_debugging/slides/theme/simatic-ax.css
diff --git a/04_introduction_to_st/.gitignore b/05_introduction_to_st/.gitignore
similarity index 100%
rename from 04_introduction_to_st/.gitignore
rename to 05_introduction_to_st/.gitignore
diff --git a/04_introduction_to_st/.tours/additional_information.tour b/05_introduction_to_st/.tours/additional_information.tour
similarity index 100%
rename from 04_introduction_to_st/.tours/additional_information.tour
rename to 05_introduction_to_st/.tours/additional_information.tour
diff --git a/04_introduction_to_st/.tours/learning_path_st.tour b/05_introduction_to_st/.tours/learning_path_st.tour
similarity index 100%
rename from 04_introduction_to_st/.tours/learning_path_st.tour
rename to 05_introduction_to_st/.tours/learning_path_st.tour
diff --git a/04_introduction_to_st/.tours/monitoring.PNG b/05_introduction_to_st/.tours/monitoring.PNG
similarity index 100%
rename from 04_introduction_to_st/.tours/monitoring.PNG
rename to 05_introduction_to_st/.tours/monitoring.PNG
diff --git a/04_introduction_to_st/.vscode/extensions.json b/05_introduction_to_st/.vscode/extensions.json
similarity index 100%
rename from 04_introduction_to_st/.vscode/extensions.json
rename to 05_introduction_to_st/.vscode/extensions.json
diff --git a/04_introduction_to_st/.vscode/launch.json b/05_introduction_to_st/.vscode/launch.json
similarity index 100%
rename from 04_introduction_to_st/.vscode/launch.json
rename to 05_introduction_to_st/.vscode/launch.json
diff --git a/04_introduction_to_st/apax-lock.json b/05_introduction_to_st/apax-lock.json
similarity index 100%
rename from 04_introduction_to_st/apax-lock.json
rename to 05_introduction_to_st/apax-lock.json
diff --git a/04_introduction_to_st/apax.yml b/05_introduction_to_st/apax.yml
similarity index 92%
rename from 04_introduction_to_st/apax.yml
rename to 05_introduction_to_st/apax.yml
index 6096cb3..27ec710 100644
--- a/04_introduction_to_st/apax.yml
+++ b/05_introduction_to_st/apax.yml
@@ -7,6 +7,6 @@ variables:
APAX_BUILD_ARGS:
- "--debug" # Generate debug information for target "1500"
devDependencies:
- "@ax/sdk": 2311.0.1
+ "@ax/sdk": ^2405.0.0
scripts:
present: reveal-md ./slides/slides.md --theme ./slides/theme/simatic-ax.css --watch
diff --git a/04_introduction_to_st/exercises/1_implement_valve/README.md b/05_introduction_to_st/exercises/1_implement_valve/README.md
similarity index 100%
rename from 04_introduction_to_st/exercises/1_implement_valve/README.md
rename to 05_introduction_to_st/exercises/1_implement_valve/README.md
diff --git a/04_introduction_to_st/exercises/1_implement_valve/apax-lock.json b/05_introduction_to_st/exercises/1_implement_valve/apax-lock.json
similarity index 100%
rename from 04_introduction_to_st/exercises/1_implement_valve/apax-lock.json
rename to 05_introduction_to_st/exercises/1_implement_valve/apax-lock.json
diff --git a/04_introduction_to_st/exercises/1_implement_valve/apax.yml b/05_introduction_to_st/exercises/1_implement_valve/apax.yml
similarity index 100%
rename from 04_introduction_to_st/exercises/1_implement_valve/apax.yml
rename to 05_introduction_to_st/exercises/1_implement_valve/apax.yml
diff --git a/04_introduction_to_st/exercises/1_implement_valve/img/Valve.png b/05_introduction_to_st/exercises/1_implement_valve/img/Valve.png
similarity index 100%
rename from 04_introduction_to_st/exercises/1_implement_valve/img/Valve.png
rename to 05_introduction_to_st/exercises/1_implement_valve/img/Valve.png
diff --git a/04_introduction_to_st/exercises/1_implement_valve/img/ValveBehav.png b/05_introduction_to_st/exercises/1_implement_valve/img/ValveBehav.png
similarity index 100%
rename from 04_introduction_to_st/exercises/1_implement_valve/img/ValveBehav.png
rename to 05_introduction_to_st/exercises/1_implement_valve/img/ValveBehav.png
diff --git a/04_introduction_to_st/exercises/1_implement_valve/src/configuration.st b/05_introduction_to_st/exercises/1_implement_valve/src/configuration.st
similarity index 100%
rename from 04_introduction_to_st/exercises/1_implement_valve/src/configuration.st
rename to 05_introduction_to_st/exercises/1_implement_valve/src/configuration.st
diff --git a/04_introduction_to_st/exercises/1_implement_valve/src/program.st b/05_introduction_to_st/exercises/1_implement_valve/src/program.st
similarity index 100%
rename from 04_introduction_to_st/exercises/1_implement_valve/src/program.st
rename to 05_introduction_to_st/exercises/1_implement_valve/src/program.st
diff --git a/04_introduction_to_st/exercises/5_solution_exercise_4/.vscode/launch.json b/05_introduction_to_st/exercises/2_implement_tank/.vscode/launch.json
similarity index 100%
rename from 04_introduction_to_st/exercises/5_solution_exercise_4/.vscode/launch.json
rename to 05_introduction_to_st/exercises/2_implement_tank/.vscode/launch.json
diff --git a/04_introduction_to_st/exercises/2_implement_tank/README.md b/05_introduction_to_st/exercises/2_implement_tank/README.md
similarity index 100%
rename from 04_introduction_to_st/exercises/2_implement_tank/README.md
rename to 05_introduction_to_st/exercises/2_implement_tank/README.md
diff --git a/04_introduction_to_st/exercises/2_implement_tank/apax-lock.json b/05_introduction_to_st/exercises/2_implement_tank/apax-lock.json
similarity index 100%
rename from 04_introduction_to_st/exercises/2_implement_tank/apax-lock.json
rename to 05_introduction_to_st/exercises/2_implement_tank/apax-lock.json
diff --git a/04_introduction_to_st/exercises/2_implement_tank/apax.yml b/05_introduction_to_st/exercises/2_implement_tank/apax.yml
similarity index 100%
rename from 04_introduction_to_st/exercises/2_implement_tank/apax.yml
rename to 05_introduction_to_st/exercises/2_implement_tank/apax.yml
diff --git a/04_introduction_to_st/exercises/2_implement_tank/img/Tank.png b/05_introduction_to_st/exercises/2_implement_tank/img/Tank.png
similarity index 100%
rename from 04_introduction_to_st/exercises/2_implement_tank/img/Tank.png
rename to 05_introduction_to_st/exercises/2_implement_tank/img/Tank.png
diff --git a/04_introduction_to_st/exercises/2_implement_tank/img/TankBehav.png b/05_introduction_to_st/exercises/2_implement_tank/img/TankBehav.png
similarity index 100%
rename from 04_introduction_to_st/exercises/2_implement_tank/img/TankBehav.png
rename to 05_introduction_to_st/exercises/2_implement_tank/img/TankBehav.png
diff --git a/04_introduction_to_st/exercises/2_implement_tank/src/configuration.st b/05_introduction_to_st/exercises/2_implement_tank/src/configuration.st
similarity index 100%
rename from 04_introduction_to_st/exercises/2_implement_tank/src/configuration.st
rename to 05_introduction_to_st/exercises/2_implement_tank/src/configuration.st
diff --git a/04_introduction_to_st/exercises/2_implement_tank/src/fluidProgram.st b/05_introduction_to_st/exercises/2_implement_tank/src/fluidProgram.st
similarity index 100%
rename from 04_introduction_to_st/exercises/2_implement_tank/src/fluidProgram.st
rename to 05_introduction_to_st/exercises/2_implement_tank/src/fluidProgram.st
diff --git a/04_introduction_to_st/exercises/3_extend_tank_functionality/src/valve.st b/05_introduction_to_st/exercises/2_implement_tank/src/valve.st
similarity index 100%
rename from 04_introduction_to_st/exercises/3_extend_tank_functionality/src/valve.st
rename to 05_introduction_to_st/exercises/2_implement_tank/src/valve.st
diff --git a/04_introduction_to_st/exercises/2_implement_tank/watchTable.mon b/05_introduction_to_st/exercises/2_implement_tank/watchTable.mon
similarity index 100%
rename from 04_introduction_to_st/exercises/2_implement_tank/watchTable.mon
rename to 05_introduction_to_st/exercises/2_implement_tank/watchTable.mon
diff --git a/04_introduction_to_st/exercises/4_timer_for_tank/.vscode/launch.json b/05_introduction_to_st/exercises/3_extend_tank_functionality/.vscode/launch.json
similarity index 100%
rename from 04_introduction_to_st/exercises/4_timer_for_tank/.vscode/launch.json
rename to 05_introduction_to_st/exercises/3_extend_tank_functionality/.vscode/launch.json
diff --git a/04_introduction_to_st/exercises/3_extend_tank_functionality/README.md b/05_introduction_to_st/exercises/3_extend_tank_functionality/README.md
similarity index 100%
rename from 04_introduction_to_st/exercises/3_extend_tank_functionality/README.md
rename to 05_introduction_to_st/exercises/3_extend_tank_functionality/README.md
diff --git a/04_introduction_to_st/exercises/3_extend_tank_functionality/apax-lock.json b/05_introduction_to_st/exercises/3_extend_tank_functionality/apax-lock.json
similarity index 100%
rename from 04_introduction_to_st/exercises/3_extend_tank_functionality/apax-lock.json
rename to 05_introduction_to_st/exercises/3_extend_tank_functionality/apax-lock.json
diff --git a/04_introduction_to_st/exercises/3_extend_tank_functionality/apax.yml b/05_introduction_to_st/exercises/3_extend_tank_functionality/apax.yml
similarity index 100%
rename from 04_introduction_to_st/exercises/3_extend_tank_functionality/apax.yml
rename to 05_introduction_to_st/exercises/3_extend_tank_functionality/apax.yml
diff --git a/04_introduction_to_st/exercises/3_extend_tank_functionality/img/TankBehav.png b/05_introduction_to_st/exercises/3_extend_tank_functionality/img/TankBehav.png
similarity index 100%
rename from 04_introduction_to_st/exercises/3_extend_tank_functionality/img/TankBehav.png
rename to 05_introduction_to_st/exercises/3_extend_tank_functionality/img/TankBehav.png
diff --git a/04_introduction_to_st/exercises/3_extend_tank_functionality/img/TankBehavState.png b/05_introduction_to_st/exercises/3_extend_tank_functionality/img/TankBehavState.png
similarity index 100%
rename from 04_introduction_to_st/exercises/3_extend_tank_functionality/img/TankBehavState.png
rename to 05_introduction_to_st/exercises/3_extend_tank_functionality/img/TankBehavState.png
diff --git a/04_introduction_to_st/exercises/4_timer_for_tank/img/TankModify.png b/05_introduction_to_st/exercises/3_extend_tank_functionality/img/TankModify.png
similarity index 100%
rename from 04_introduction_to_st/exercises/4_timer_for_tank/img/TankModify.png
rename to 05_introduction_to_st/exercises/3_extend_tank_functionality/img/TankModify.png
diff --git a/04_introduction_to_st/exercises/3_extend_tank_functionality/src/configuration.st b/05_introduction_to_st/exercises/3_extend_tank_functionality/src/configuration.st
similarity index 100%
rename from 04_introduction_to_st/exercises/3_extend_tank_functionality/src/configuration.st
rename to 05_introduction_to_st/exercises/3_extend_tank_functionality/src/configuration.st
diff --git a/04_introduction_to_st/exercises/3_extend_tank_functionality/src/fluidProgram.st b/05_introduction_to_st/exercises/3_extend_tank_functionality/src/fluidProgram.st
similarity index 100%
rename from 04_introduction_to_st/exercises/3_extend_tank_functionality/src/fluidProgram.st
rename to 05_introduction_to_st/exercises/3_extend_tank_functionality/src/fluidProgram.st
diff --git a/04_introduction_to_st/exercises/3_extend_tank_functionality/src/tank.st b/05_introduction_to_st/exercises/3_extend_tank_functionality/src/tank.st
similarity index 100%
rename from 04_introduction_to_st/exercises/3_extend_tank_functionality/src/tank.st
rename to 05_introduction_to_st/exercises/3_extend_tank_functionality/src/tank.st
diff --git a/04_introduction_to_st/exercises/2_implement_tank/src/valve.st b/05_introduction_to_st/exercises/3_extend_tank_functionality/src/valve.st
similarity index 100%
rename from 04_introduction_to_st/exercises/2_implement_tank/src/valve.st
rename to 05_introduction_to_st/exercises/3_extend_tank_functionality/src/valve.st
diff --git a/04_introduction_to_st/exercises/4_timer_for_tank/watchTable.mon b/05_introduction_to_st/exercises/3_extend_tank_functionality/watchTable.mon
similarity index 100%
rename from 04_introduction_to_st/exercises/4_timer_for_tank/watchTable.mon
rename to 05_introduction_to_st/exercises/3_extend_tank_functionality/watchTable.mon
diff --git a/04_introduction_to_st/exercises/3_extend_tank_functionality/.vscode/launch.json b/05_introduction_to_st/exercises/4_timer_for_tank/.vscode/launch.json
similarity index 100%
rename from 04_introduction_to_st/exercises/3_extend_tank_functionality/.vscode/launch.json
rename to 05_introduction_to_st/exercises/4_timer_for_tank/.vscode/launch.json
diff --git a/04_introduction_to_st/exercises/4_timer_for_tank/README.md b/05_introduction_to_st/exercises/4_timer_for_tank/README.md
similarity index 100%
rename from 04_introduction_to_st/exercises/4_timer_for_tank/README.md
rename to 05_introduction_to_st/exercises/4_timer_for_tank/README.md
diff --git a/04_introduction_to_st/exercises/4_timer_for_tank/apax-lock.json b/05_introduction_to_st/exercises/4_timer_for_tank/apax-lock.json
similarity index 100%
rename from 04_introduction_to_st/exercises/4_timer_for_tank/apax-lock.json
rename to 05_introduction_to_st/exercises/4_timer_for_tank/apax-lock.json
diff --git a/04_introduction_to_st/exercises/4_timer_for_tank/apax.yml b/05_introduction_to_st/exercises/4_timer_for_tank/apax.yml
similarity index 100%
rename from 04_introduction_to_st/exercises/4_timer_for_tank/apax.yml
rename to 05_introduction_to_st/exercises/4_timer_for_tank/apax.yml
diff --git a/04_introduction_to_st/exercises/3_extend_tank_functionality/img/TankModify.png b/05_introduction_to_st/exercises/4_timer_for_tank/img/TankModify.png
similarity index 100%
rename from 04_introduction_to_st/exercises/3_extend_tank_functionality/img/TankModify.png
rename to 05_introduction_to_st/exercises/4_timer_for_tank/img/TankModify.png
diff --git a/04_introduction_to_st/exercises/4_timer_for_tank/img/ValveFbClosedBehav.png b/05_introduction_to_st/exercises/4_timer_for_tank/img/ValveFbClosedBehav.png
similarity index 100%
rename from 04_introduction_to_st/exercises/4_timer_for_tank/img/ValveFbClosedBehav.png
rename to 05_introduction_to_st/exercises/4_timer_for_tank/img/ValveFbClosedBehav.png
diff --git a/04_introduction_to_st/exercises/5_solution_exercise_4/src/configuration.st b/05_introduction_to_st/exercises/4_timer_for_tank/src/configuration.st
similarity index 100%
rename from 04_introduction_to_st/exercises/5_solution_exercise_4/src/configuration.st
rename to 05_introduction_to_st/exercises/4_timer_for_tank/src/configuration.st
diff --git a/04_introduction_to_st/exercises/5_solution_exercise_4/src/fluidProgram.st b/05_introduction_to_st/exercises/4_timer_for_tank/src/fluidProgram.st
similarity index 100%
rename from 04_introduction_to_st/exercises/5_solution_exercise_4/src/fluidProgram.st
rename to 05_introduction_to_st/exercises/4_timer_for_tank/src/fluidProgram.st
diff --git a/04_introduction_to_st/exercises/4_timer_for_tank/src/tank.st b/05_introduction_to_st/exercises/4_timer_for_tank/src/tank.st
similarity index 100%
rename from 04_introduction_to_st/exercises/4_timer_for_tank/src/tank.st
rename to 05_introduction_to_st/exercises/4_timer_for_tank/src/tank.st
diff --git a/04_introduction_to_st/exercises/5_solution_exercise_4/src/types.st b/05_introduction_to_st/exercises/4_timer_for_tank/src/types.st
similarity index 100%
rename from 04_introduction_to_st/exercises/5_solution_exercise_4/src/types.st
rename to 05_introduction_to_st/exercises/4_timer_for_tank/src/types.st
diff --git a/04_introduction_to_st/exercises/5_solution_exercise_4/src/valve.st b/05_introduction_to_st/exercises/4_timer_for_tank/src/valve.st
similarity index 100%
rename from 04_introduction_to_st/exercises/5_solution_exercise_4/src/valve.st
rename to 05_introduction_to_st/exercises/4_timer_for_tank/src/valve.st
diff --git a/04_introduction_to_st/exercises/3_extend_tank_functionality/watchTable.mon b/05_introduction_to_st/exercises/4_timer_for_tank/watchTable.mon
similarity index 100%
rename from 04_introduction_to_st/exercises/3_extend_tank_functionality/watchTable.mon
rename to 05_introduction_to_st/exercises/4_timer_for_tank/watchTable.mon
diff --git a/04_introduction_to_st/exercises/2_implement_tank/.vscode/launch.json b/05_introduction_to_st/exercises/5_solution_exercise_4/.vscode/launch.json
similarity index 100%
rename from 04_introduction_to_st/exercises/2_implement_tank/.vscode/launch.json
rename to 05_introduction_to_st/exercises/5_solution_exercise_4/.vscode/launch.json
diff --git a/04_introduction_to_st/exercises/5_solution_exercise_4/apax-lock.json b/05_introduction_to_st/exercises/5_solution_exercise_4/apax-lock.json
similarity index 100%
rename from 04_introduction_to_st/exercises/5_solution_exercise_4/apax-lock.json
rename to 05_introduction_to_st/exercises/5_solution_exercise_4/apax-lock.json
diff --git a/04_introduction_to_st/exercises/5_solution_exercise_4/apax.yml b/05_introduction_to_st/exercises/5_solution_exercise_4/apax.yml
similarity index 100%
rename from 04_introduction_to_st/exercises/5_solution_exercise_4/apax.yml
rename to 05_introduction_to_st/exercises/5_solution_exercise_4/apax.yml
diff --git a/04_introduction_to_st/exercises/4_timer_for_tank/src/configuration.st b/05_introduction_to_st/exercises/5_solution_exercise_4/src/configuration.st
similarity index 100%
rename from 04_introduction_to_st/exercises/4_timer_for_tank/src/configuration.st
rename to 05_introduction_to_st/exercises/5_solution_exercise_4/src/configuration.st
diff --git a/04_introduction_to_st/exercises/4_timer_for_tank/src/fluidProgram.st b/05_introduction_to_st/exercises/5_solution_exercise_4/src/fluidProgram.st
similarity index 100%
rename from 04_introduction_to_st/exercises/4_timer_for_tank/src/fluidProgram.st
rename to 05_introduction_to_st/exercises/5_solution_exercise_4/src/fluidProgram.st
diff --git a/04_introduction_to_st/exercises/5_solution_exercise_4/src/tank.st b/05_introduction_to_st/exercises/5_solution_exercise_4/src/tank.st
similarity index 100%
rename from 04_introduction_to_st/exercises/5_solution_exercise_4/src/tank.st
rename to 05_introduction_to_st/exercises/5_solution_exercise_4/src/tank.st
diff --git a/04_introduction_to_st/exercises/4_timer_for_tank/src/types.st b/05_introduction_to_st/exercises/5_solution_exercise_4/src/types.st
similarity index 100%
rename from 04_introduction_to_st/exercises/4_timer_for_tank/src/types.st
rename to 05_introduction_to_st/exercises/5_solution_exercise_4/src/types.st
diff --git a/04_introduction_to_st/exercises/4_timer_for_tank/src/valve.st b/05_introduction_to_st/exercises/5_solution_exercise_4/src/valve.st
similarity index 100%
rename from 04_introduction_to_st/exercises/4_timer_for_tank/src/valve.st
rename to 05_introduction_to_st/exercises/5_solution_exercise_4/src/valve.st
diff --git a/04_introduction_to_st/exercises/5_solution_exercise_4/watchTable.mon b/05_introduction_to_st/exercises/5_solution_exercise_4/watchTable.mon
similarity index 100%
rename from 04_introduction_to_st/exercises/5_solution_exercise_4/watchTable.mon
rename to 05_introduction_to_st/exercises/5_solution_exercise_4/watchTable.mon
diff --git a/04_introduction_to_st/slides/slides.md b/05_introduction_to_st/slides/slides.md
similarity index 98%
rename from 04_introduction_to_st/slides/slides.md
rename to 05_introduction_to_st/slides/slides.md
index 21c2935..558cb48 100644
--- a/04_introduction_to_st/slides/slides.md
+++ b/05_introduction_to_st/slides/slides.md
@@ -13,13 +13,14 @@ mouseWheel: true,
| 00 | Introduction to the workshop |
| 01 | Introduction to AX Code IDE |
| 02 | Get started with your first AX Project |
-| 03 | Loading and Debugging |
-| **04** | **Introduction to ST Programming** |
-| 05 | OOP Elements of ST |
-| 06 | Unit Testing |
-| 07 | Tools for commissioning |
-| 08 | Package management |
-| 09 | Versioning and Continuous Integration |
+| 03 | Hardware Configuration |
+| 04 | Loading and Debugging |
+| **05** | **Introduction to ST Programming** |
+| 06 | OOP Elements of ST |
+| 07 | Unit Testing |
+| 08 | Tools for commissioning |
+| 09 | Package management |
+
---
diff --git a/06_unit_testing/slides/theme/siemens.svg b/05_introduction_to_st/slides/theme/siemens.svg
similarity index 100%
rename from 06_unit_testing/slides/theme/siemens.svg
rename to 05_introduction_to_st/slides/theme/siemens.svg
diff --git a/08_package_management/slides/theme/simatic-ax.css b/05_introduction_to_st/slides/theme/simatic-ax.css
similarity index 100%
rename from 08_package_management/slides/theme/simatic-ax.css
rename to 05_introduction_to_st/slides/theme/simatic-ax.css
diff --git a/04_introduction_to_st/src/ExampleProgram.st b/05_introduction_to_st/src/ExampleProgram.st
similarity index 100%
rename from 04_introduction_to_st/src/ExampleProgram.st
rename to 05_introduction_to_st/src/ExampleProgram.st
diff --git a/04_introduction_to_st/src/Namespace/NamespaceExample.st b/05_introduction_to_st/src/Namespace/NamespaceExample.st
similarity index 100%
rename from 04_introduction_to_st/src/Namespace/NamespaceExample.st
rename to 05_introduction_to_st/src/Namespace/NamespaceExample.st
diff --git a/04_introduction_to_st/src/Namespace/UsageOfNameSpace.st b/05_introduction_to_st/src/Namespace/UsageOfNameSpace.st
similarity index 100%
rename from 04_introduction_to_st/src/Namespace/UsageOfNameSpace.st
rename to 05_introduction_to_st/src/Namespace/UsageOfNameSpace.st
diff --git a/04_introduction_to_st/src/TankFb.st b/05_introduction_to_st/src/TankFb.st
similarity index 100%
rename from 04_introduction_to_st/src/TankFb.st
rename to 05_introduction_to_st/src/TankFb.st
diff --git a/04_introduction_to_st/src/Valve.st b/05_introduction_to_st/src/Valve.st
similarity index 100%
rename from 04_introduction_to_st/src/Valve.st
rename to 05_introduction_to_st/src/Valve.st
diff --git a/04_introduction_to_st/src/configuration.st b/05_introduction_to_st/src/configuration.st
similarity index 100%
rename from 04_introduction_to_st/src/configuration.st
rename to 05_introduction_to_st/src/configuration.st
diff --git a/05_oop_in_st/.gitignore b/06_oop_in_st/.gitignore
similarity index 100%
rename from 05_oop_in_st/.gitignore
rename to 06_oop_in_st/.gitignore
diff --git a/05_oop_in_st/apax.yml b/06_oop_in_st/apax.yml
similarity index 100%
rename from 05_oop_in_st/apax.yml
rename to 06_oop_in_st/apax.yml
diff --git a/05_oop_in_st/exercises/0_basic_valve_class/.gitignore b/06_oop_in_st/exercises/0_basic_valve_class/.gitignore
similarity index 100%
rename from 05_oop_in_st/exercises/0_basic_valve_class/.gitignore
rename to 06_oop_in_st/exercises/0_basic_valve_class/.gitignore
diff --git a/05_oop_in_st/exercises/0_basic_valve_class/.vscode/launch.json b/06_oop_in_st/exercises/0_basic_valve_class/.vscode/launch.json
similarity index 100%
rename from 05_oop_in_st/exercises/0_basic_valve_class/.vscode/launch.json
rename to 06_oop_in_st/exercises/0_basic_valve_class/.vscode/launch.json
diff --git a/05_oop_in_st/exercises/0_basic_valve_class/README.md b/06_oop_in_st/exercises/0_basic_valve_class/README.md
similarity index 100%
rename from 05_oop_in_st/exercises/0_basic_valve_class/README.md
rename to 06_oop_in_st/exercises/0_basic_valve_class/README.md
diff --git a/05_oop_in_st/exercises/solution/apax.yml b/06_oop_in_st/exercises/0_basic_valve_class/apax.yml
similarity index 100%
rename from 05_oop_in_st/exercises/solution/apax.yml
rename to 06_oop_in_st/exercises/0_basic_valve_class/apax.yml
diff --git a/05_oop_in_st/exercises/0_basic_valve_class/src/Tank.st b/06_oop_in_st/exercises/0_basic_valve_class/src/Tank.st
similarity index 100%
rename from 05_oop_in_st/exercises/0_basic_valve_class/src/Tank.st
rename to 06_oop_in_st/exercises/0_basic_valve_class/src/Tank.st
diff --git a/05_oop_in_st/exercises/0_basic_valve_class/src/TankBase.st b/06_oop_in_st/exercises/0_basic_valve_class/src/TankBase.st
similarity index 100%
rename from 05_oop_in_st/exercises/0_basic_valve_class/src/TankBase.st
rename to 06_oop_in_st/exercises/0_basic_valve_class/src/TankBase.st
diff --git a/05_oop_in_st/exercises/0_basic_valve_class/src/Valve.st b/06_oop_in_st/exercises/0_basic_valve_class/src/Valve.st
similarity index 100%
rename from 05_oop_in_st/exercises/0_basic_valve_class/src/Valve.st
rename to 06_oop_in_st/exercises/0_basic_valve_class/src/Valve.st
diff --git a/05_oop_in_st/exercises/0_basic_valve_class/src/ValveBase.st b/06_oop_in_st/exercises/0_basic_valve_class/src/ValveBase.st
similarity index 100%
rename from 05_oop_in_st/exercises/0_basic_valve_class/src/ValveBase.st
rename to 06_oop_in_st/exercises/0_basic_valve_class/src/ValveBase.st
diff --git a/05_oop_in_st/exercises/solution/src/ValveStates.st b/06_oop_in_st/exercises/0_basic_valve_class/src/ValveStates.st
similarity index 100%
rename from 05_oop_in_st/exercises/solution/src/ValveStates.st
rename to 06_oop_in_st/exercises/0_basic_valve_class/src/ValveStates.st
diff --git a/05_oop_in_st/exercises/0_basic_valve_class/test/test.st b/06_oop_in_st/exercises/0_basic_valve_class/test/test.st
similarity index 100%
rename from 05_oop_in_st/exercises/0_basic_valve_class/test/test.st
rename to 06_oop_in_st/exercises/0_basic_valve_class/test/test.st
diff --git a/05_oop_in_st/exercises/1_interfaces/README.md b/06_oop_in_st/exercises/1_interfaces/README.md
similarity index 100%
rename from 05_oop_in_st/exercises/1_interfaces/README.md
rename to 06_oop_in_st/exercises/1_interfaces/README.md
diff --git a/05_oop_in_st/exercises/3_calculator_current_volume/apax.yml b/06_oop_in_st/exercises/1_interfaces/apax.yml
similarity index 100%
rename from 05_oop_in_st/exercises/3_calculator_current_volume/apax.yml
rename to 06_oop_in_st/exercises/1_interfaces/apax.yml
diff --git a/05_oop_in_st/exercises/1_interfaces/src/ItfTank.st b/06_oop_in_st/exercises/1_interfaces/src/ItfTank.st
similarity index 100%
rename from 05_oop_in_st/exercises/1_interfaces/src/ItfTank.st
rename to 06_oop_in_st/exercises/1_interfaces/src/ItfTank.st
diff --git a/05_oop_in_st/exercises/1_interfaces/src/ItfValve.st b/06_oop_in_st/exercises/1_interfaces/src/ItfValve.st
similarity index 100%
rename from 05_oop_in_st/exercises/1_interfaces/src/ItfValve.st
rename to 06_oop_in_st/exercises/1_interfaces/src/ItfValve.st
diff --git a/05_oop_in_st/exercises/1_interfaces/src/TankBase.st b/06_oop_in_st/exercises/1_interfaces/src/TankBase.st
similarity index 100%
rename from 05_oop_in_st/exercises/1_interfaces/src/TankBase.st
rename to 06_oop_in_st/exercises/1_interfaces/src/TankBase.st
diff --git a/05_oop_in_st/exercises/1_interfaces/src/ValveBase.st b/06_oop_in_st/exercises/1_interfaces/src/ValveBase.st
similarity index 100%
rename from 05_oop_in_st/exercises/1_interfaces/src/ValveBase.st
rename to 06_oop_in_st/exercises/1_interfaces/src/ValveBase.st
diff --git a/05_oop_in_st/exercises/4_inheritance_complex_valve/src/ValveStates.st b/06_oop_in_st/exercises/1_interfaces/src/ValveStates.st
similarity index 100%
rename from 05_oop_in_st/exercises/4_inheritance_complex_valve/src/ValveStates.st
rename to 06_oop_in_st/exercises/1_interfaces/src/ValveStates.st
diff --git a/05_oop_in_st/exercises/3_calculator_current_volume/README.md b/06_oop_in_st/exercises/3_calculator_current_volume/README.md
similarity index 100%
rename from 05_oop_in_st/exercises/3_calculator_current_volume/README.md
rename to 06_oop_in_st/exercises/3_calculator_current_volume/README.md
diff --git a/05_oop_in_st/exercises/1_interfaces/apax.yml b/06_oop_in_st/exercises/3_calculator_current_volume/apax.yml
similarity index 100%
rename from 05_oop_in_st/exercises/1_interfaces/apax.yml
rename to 06_oop_in_st/exercises/3_calculator_current_volume/apax.yml
diff --git a/05_oop_in_st/exercises/4_inheritance_complex_valve/src/ItfTank.st b/06_oop_in_st/exercises/3_calculator_current_volume/src/ItfTank.st
similarity index 100%
rename from 05_oop_in_st/exercises/4_inheritance_complex_valve/src/ItfTank.st
rename to 06_oop_in_st/exercises/3_calculator_current_volume/src/ItfTank.st
diff --git a/05_oop_in_st/exercises/4_inheritance_complex_valve/src/ItfValve.st b/06_oop_in_st/exercises/3_calculator_current_volume/src/ItfValve.st
similarity index 100%
rename from 05_oop_in_st/exercises/4_inheritance_complex_valve/src/ItfValve.st
rename to 06_oop_in_st/exercises/3_calculator_current_volume/src/ItfValve.st
diff --git a/05_oop_in_st/exercises/4_inheritance_complex_valve/src/TankBase.st b/06_oop_in_st/exercises/3_calculator_current_volume/src/TankBase.st
similarity index 100%
rename from 05_oop_in_st/exercises/4_inheritance_complex_valve/src/TankBase.st
rename to 06_oop_in_st/exercises/3_calculator_current_volume/src/TankBase.st
diff --git a/05_oop_in_st/exercises/4_inheritance_complex_valve/src/ValveBase.st b/06_oop_in_st/exercises/3_calculator_current_volume/src/ValveBase.st
similarity index 100%
rename from 05_oop_in_st/exercises/4_inheritance_complex_valve/src/ValveBase.st
rename to 06_oop_in_st/exercises/3_calculator_current_volume/src/ValveBase.st
diff --git a/05_oop_in_st/exercises/3_calculator_current_volume/src/ValveStates.st b/06_oop_in_st/exercises/3_calculator_current_volume/src/ValveStates.st
similarity index 100%
rename from 05_oop_in_st/exercises/3_calculator_current_volume/src/ValveStates.st
rename to 06_oop_in_st/exercises/3_calculator_current_volume/src/ValveStates.st
diff --git a/05_oop_in_st/exercises/4_inheritance_complex_valve/README.md b/06_oop_in_st/exercises/4_inheritance_complex_valve/README.md
similarity index 100%
rename from 05_oop_in_st/exercises/4_inheritance_complex_valve/README.md
rename to 06_oop_in_st/exercises/4_inheritance_complex_valve/README.md
diff --git a/05_oop_in_st/exercises/4_inheritance_complex_valve/apax.yml b/06_oop_in_st/exercises/4_inheritance_complex_valve/apax.yml
similarity index 100%
rename from 05_oop_in_st/exercises/4_inheritance_complex_valve/apax.yml
rename to 06_oop_in_st/exercises/4_inheritance_complex_valve/apax.yml
diff --git a/05_oop_in_st/exercises/3_calculator_current_volume/src/ItfTank.st b/06_oop_in_st/exercises/4_inheritance_complex_valve/src/ItfTank.st
similarity index 100%
rename from 05_oop_in_st/exercises/3_calculator_current_volume/src/ItfTank.st
rename to 06_oop_in_st/exercises/4_inheritance_complex_valve/src/ItfTank.st
diff --git a/05_oop_in_st/exercises/3_calculator_current_volume/src/ItfValve.st b/06_oop_in_st/exercises/4_inheritance_complex_valve/src/ItfValve.st
similarity index 100%
rename from 05_oop_in_st/exercises/3_calculator_current_volume/src/ItfValve.st
rename to 06_oop_in_st/exercises/4_inheritance_complex_valve/src/ItfValve.st
diff --git a/05_oop_in_st/exercises/3_calculator_current_volume/src/TankBase.st b/06_oop_in_st/exercises/4_inheritance_complex_valve/src/TankBase.st
similarity index 100%
rename from 05_oop_in_st/exercises/3_calculator_current_volume/src/TankBase.st
rename to 06_oop_in_st/exercises/4_inheritance_complex_valve/src/TankBase.st
diff --git a/05_oop_in_st/exercises/solution/src/TankStates.st b/06_oop_in_st/exercises/4_inheritance_complex_valve/src/TankStates.st
similarity index 100%
rename from 05_oop_in_st/exercises/solution/src/TankStates.st
rename to 06_oop_in_st/exercises/4_inheritance_complex_valve/src/TankStates.st
diff --git a/05_oop_in_st/exercises/4_inheritance_complex_valve/src/TankWithVolume.st b/06_oop_in_st/exercises/4_inheritance_complex_valve/src/TankWithVolume.st
similarity index 100%
rename from 05_oop_in_st/exercises/4_inheritance_complex_valve/src/TankWithVolume.st
rename to 06_oop_in_st/exercises/4_inheritance_complex_valve/src/TankWithVolume.st
diff --git a/05_oop_in_st/exercises/3_calculator_current_volume/src/ValveBase.st b/06_oop_in_st/exercises/4_inheritance_complex_valve/src/ValveBase.st
similarity index 100%
rename from 05_oop_in_st/exercises/3_calculator_current_volume/src/ValveBase.st
rename to 06_oop_in_st/exercises/4_inheritance_complex_valve/src/ValveBase.st
diff --git a/05_oop_in_st/exercises/1_interfaces/src/ValveStates.st b/06_oop_in_st/exercises/4_inheritance_complex_valve/src/ValveStates.st
similarity index 100%
rename from 05_oop_in_st/exercises/1_interfaces/src/ValveStates.st
rename to 06_oop_in_st/exercises/4_inheritance_complex_valve/src/ValveStates.st
diff --git a/05_oop_in_st/exercises/4_inheritance_complex_valve/src/configuration.st b/06_oop_in_st/exercises/4_inheritance_complex_valve/src/configuration.st
similarity index 100%
rename from 05_oop_in_st/exercises/4_inheritance_complex_valve/src/configuration.st
rename to 06_oop_in_st/exercises/4_inheritance_complex_valve/src/configuration.st
diff --git a/05_oop_in_st/exercises/4_inheritance_complex_valve/src/program.st b/06_oop_in_st/exercises/4_inheritance_complex_valve/src/program.st
similarity index 100%
rename from 05_oop_in_st/exercises/4_inheritance_complex_valve/src/program.st
rename to 06_oop_in_st/exercises/4_inheritance_complex_valve/src/program.st
diff --git a/05_oop_in_st/exercises/solution/README.md b/06_oop_in_st/exercises/solution/README.md
similarity index 100%
rename from 05_oop_in_st/exercises/solution/README.md
rename to 06_oop_in_st/exercises/solution/README.md
diff --git a/05_oop_in_st/exercises/0_basic_valve_class/apax.yml b/06_oop_in_st/exercises/solution/apax.yml
similarity index 100%
rename from 05_oop_in_st/exercises/0_basic_valve_class/apax.yml
rename to 06_oop_in_st/exercises/solution/apax.yml
diff --git a/05_oop_in_st/exercises/solution/src/CalculatorWithRegulation.st b/06_oop_in_st/exercises/solution/src/CalculatorWithRegulation.st
similarity index 100%
rename from 05_oop_in_st/exercises/solution/src/CalculatorWithRegulation.st
rename to 06_oop_in_st/exercises/solution/src/CalculatorWithRegulation.st
diff --git a/05_oop_in_st/exercises/solution/src/ITank.st b/06_oop_in_st/exercises/solution/src/ITank.st
similarity index 100%
rename from 05_oop_in_st/exercises/solution/src/ITank.st
rename to 06_oop_in_st/exercises/solution/src/ITank.st
diff --git a/05_oop_in_st/exercises/solution/src/IValve.st b/06_oop_in_st/exercises/solution/src/IValve.st
similarity index 100%
rename from 05_oop_in_st/exercises/solution/src/IValve.st
rename to 06_oop_in_st/exercises/solution/src/IValve.st
diff --git a/05_oop_in_st/exercises/4_inheritance_complex_valve/src/TankStates.st b/06_oop_in_st/exercises/solution/src/TankStates.st
similarity index 100%
rename from 05_oop_in_st/exercises/4_inheritance_complex_valve/src/TankStates.st
rename to 06_oop_in_st/exercises/solution/src/TankStates.st
diff --git a/05_oop_in_st/exercises/solution/src/TankWithShape.st b/06_oop_in_st/exercises/solution/src/TankWithShape.st
similarity index 100%
rename from 05_oop_in_st/exercises/solution/src/TankWithShape.st
rename to 06_oop_in_st/exercises/solution/src/TankWithShape.st
diff --git a/05_oop_in_st/exercises/solution/src/TankWithVolume.st b/06_oop_in_st/exercises/solution/src/TankWithVolume.st
similarity index 100%
rename from 05_oop_in_st/exercises/solution/src/TankWithVolume.st
rename to 06_oop_in_st/exercises/solution/src/TankWithVolume.st
diff --git a/05_oop_in_st/exercises/0_basic_valve_class/src/ValveStates.st b/06_oop_in_st/exercises/solution/src/ValveStates.st
similarity index 100%
rename from 05_oop_in_st/exercises/0_basic_valve_class/src/ValveStates.st
rename to 06_oop_in_st/exercises/solution/src/ValveStates.st
diff --git a/05_oop_in_st/exercises/solution/src/basicValve.st b/06_oop_in_st/exercises/solution/src/basicValve.st
similarity index 100%
rename from 05_oop_in_st/exercises/solution/src/basicValve.st
rename to 06_oop_in_st/exercises/solution/src/basicValve.st
diff --git a/05_oop_in_st/exercises/solution/src/complexValve.st b/06_oop_in_st/exercises/solution/src/complexValve.st
similarity index 100%
rename from 05_oop_in_st/exercises/solution/src/complexValve.st
rename to 06_oop_in_st/exercises/solution/src/complexValve.st
diff --git a/05_oop_in_st/exercises/solution/src/configuration.st b/06_oop_in_st/exercises/solution/src/configuration.st
similarity index 100%
rename from 05_oop_in_st/exercises/solution/src/configuration.st
rename to 06_oop_in_st/exercises/solution/src/configuration.st
diff --git a/05_oop_in_st/new.md b/06_oop_in_st/new.md
similarity index 100%
rename from 05_oop_in_st/new.md
rename to 06_oop_in_st/new.md
diff --git a/05_oop_in_st/slides/img/valvescheme.png b/06_oop_in_st/slides/img/valvescheme.png
similarity index 100%
rename from 05_oop_in_st/slides/img/valvescheme.png
rename to 06_oop_in_st/slides/img/valvescheme.png
diff --git a/05_oop_in_st/slides/img/valveuml.svg b/06_oop_in_st/slides/img/valveuml.svg
similarity index 100%
rename from 05_oop_in_st/slides/img/valveuml.svg
rename to 06_oop_in_st/slides/img/valveuml.svg
diff --git a/05_oop_in_st/slides/new_structure.md b/06_oop_in_st/slides/new_structure.md
similarity index 100%
rename from 05_oop_in_st/slides/new_structure.md
rename to 06_oop_in_st/slides/new_structure.md
diff --git a/05_oop_in_st/slides/reveal-md.json b/06_oop_in_st/slides/reveal-md.json
similarity index 100%
rename from 05_oop_in_st/slides/reveal-md.json
rename to 06_oop_in_st/slides/reveal-md.json
diff --git a/05_oop_in_st/slides/slides.md b/06_oop_in_st/slides/slides.md
similarity index 99%
rename from 05_oop_in_st/slides/slides.md
rename to 06_oop_in_st/slides/slides.md
index 3def469..8d477f7 100644
--- a/05_oop_in_st/slides/slides.md
+++ b/06_oop_in_st/slides/slides.md
@@ -17,12 +17,14 @@ mermaid:
| 00 | Introduction to the workshop |
| 01 | Introduction to AX Code IDE |
| 02 | Get started with your first AX Project |
-| 03 | Introduction to ST Programming |
-| 04 | Loading and Debugging |
-| **05** | **OOP Elements of ST** |
-| 06 | Unit Testing |
-| 07 | Tools for commissioning |
-| 08 | Package management |
+| 03 | Hardware Configuration |
+| 04 | Introduction to ST Programming |
+| 05 | Loading and Debugging |
+| **06** | **OOP Elements of ST** |
+| 07 | Unit Testing |
+| 08 | Tools for commissioning |
+| 09 | Package management |
+
---
diff --git a/06_unit_testing/slides/theme/.DS_Store b/06_oop_in_st/slides/theme/.DS_Store
similarity index 100%
rename from 06_unit_testing/slides/theme/.DS_Store
rename to 06_oop_in_st/slides/theme/.DS_Store
diff --git a/05_oop_in_st/slides/theme/siemens.css b/06_oop_in_st/slides/theme/siemens.css
similarity index 100%
rename from 05_oop_in_st/slides/theme/siemens.css
rename to 06_oop_in_st/slides/theme/siemens.css
diff --git a/05_oop_in_st/slides/theme/siemens.svg b/06_oop_in_st/slides/theme/siemens.svg
similarity index 100%
rename from 05_oop_in_st/slides/theme/siemens.svg
rename to 06_oop_in_st/slides/theme/siemens.svg
diff --git a/05_oop_in_st/slides/theme/simatic-ax.css b/06_oop_in_st/slides/theme/simatic-ax.css
similarity index 100%
rename from 05_oop_in_st/slides/theme/simatic-ax.css
rename to 06_oop_in_st/slides/theme/simatic-ax.css
diff --git a/07_tools_for_commissioning/apax.yml b/07_unit_testing/apax.yml
similarity index 100%
rename from 07_tools_for_commissioning/apax.yml
rename to 07_unit_testing/apax.yml
diff --git a/06_unit_testing/exercises/1_starting_tests/README.md b/07_unit_testing/exercises/1_starting_tests/README.md
similarity index 100%
rename from 06_unit_testing/exercises/1_starting_tests/README.md
rename to 07_unit_testing/exercises/1_starting_tests/README.md
diff --git a/06_unit_testing/exercises/1_starting_tests/apax-lock.json b/07_unit_testing/exercises/1_starting_tests/apax-lock.json
similarity index 100%
rename from 06_unit_testing/exercises/1_starting_tests/apax-lock.json
rename to 07_unit_testing/exercises/1_starting_tests/apax-lock.json
diff --git a/06_unit_testing/exercises/1_starting_tests/apax.yml b/07_unit_testing/exercises/1_starting_tests/apax.yml
similarity index 100%
rename from 06_unit_testing/exercises/1_starting_tests/apax.yml
rename to 07_unit_testing/exercises/1_starting_tests/apax.yml
diff --git a/06_unit_testing/exercises/1_starting_tests/src/NumberIsEven.st b/07_unit_testing/exercises/1_starting_tests/src/NumberIsEven.st
similarity index 100%
rename from 06_unit_testing/exercises/1_starting_tests/src/NumberIsEven.st
rename to 07_unit_testing/exercises/1_starting_tests/src/NumberIsEven.st
diff --git a/06_unit_testing/exercises/3_parametrized_test/test/test.st b/07_unit_testing/exercises/1_starting_tests/test/test.st
similarity index 100%
rename from 06_unit_testing/exercises/3_parametrized_test/test/test.st
rename to 07_unit_testing/exercises/1_starting_tests/test/test.st
diff --git a/06_unit_testing/exercises/2_testing_classes/README.md b/07_unit_testing/exercises/2_testing_classes/README.md
similarity index 100%
rename from 06_unit_testing/exercises/2_testing_classes/README.md
rename to 07_unit_testing/exercises/2_testing_classes/README.md
diff --git a/06_unit_testing/exercises/2_testing_classes/apax-lock.json b/07_unit_testing/exercises/2_testing_classes/apax-lock.json
similarity index 100%
rename from 06_unit_testing/exercises/2_testing_classes/apax-lock.json
rename to 07_unit_testing/exercises/2_testing_classes/apax-lock.json
diff --git a/06_unit_testing/exercises/2_testing_classes/apax.yml b/07_unit_testing/exercises/2_testing_classes/apax.yml
similarity index 100%
rename from 06_unit_testing/exercises/2_testing_classes/apax.yml
rename to 07_unit_testing/exercises/2_testing_classes/apax.yml
diff --git a/06_unit_testing/exercises/2_testing_classes/src/SimpleCounter.st b/07_unit_testing/exercises/2_testing_classes/src/SimpleCounter.st
similarity index 100%
rename from 06_unit_testing/exercises/2_testing_classes/src/SimpleCounter.st
rename to 07_unit_testing/exercises/2_testing_classes/src/SimpleCounter.st
diff --git a/06_unit_testing/exercises/2_testing_classes/test/test.st b/07_unit_testing/exercises/2_testing_classes/test/test.st
similarity index 100%
rename from 06_unit_testing/exercises/2_testing_classes/test/test.st
rename to 07_unit_testing/exercises/2_testing_classes/test/test.st
diff --git a/06_unit_testing/exercises/3_parametrized_test/README.md b/07_unit_testing/exercises/3_parametrized_test/README.md
similarity index 100%
rename from 06_unit_testing/exercises/3_parametrized_test/README.md
rename to 07_unit_testing/exercises/3_parametrized_test/README.md
diff --git a/06_unit_testing/exercises/3_parametrized_test/apax-lock.json b/07_unit_testing/exercises/3_parametrized_test/apax-lock.json
similarity index 100%
rename from 06_unit_testing/exercises/3_parametrized_test/apax-lock.json
rename to 07_unit_testing/exercises/3_parametrized_test/apax-lock.json
diff --git a/06_unit_testing/exercises/3_parametrized_test/apax.yml b/07_unit_testing/exercises/3_parametrized_test/apax.yml
similarity index 100%
rename from 06_unit_testing/exercises/3_parametrized_test/apax.yml
rename to 07_unit_testing/exercises/3_parametrized_test/apax.yml
diff --git a/06_unit_testing/exercises/3_parametrized_test/src/SimpleCounter.st b/07_unit_testing/exercises/3_parametrized_test/src/SimpleCounter.st
similarity index 100%
rename from 06_unit_testing/exercises/3_parametrized_test/src/SimpleCounter.st
rename to 07_unit_testing/exercises/3_parametrized_test/src/SimpleCounter.st
diff --git a/06_unit_testing/exercises/1_starting_tests/test/test.st b/07_unit_testing/exercises/3_parametrized_test/test/test.st
similarity index 100%
rename from 06_unit_testing/exercises/1_starting_tests/test/test.st
rename to 07_unit_testing/exercises/3_parametrized_test/test/test.st
diff --git a/06_unit_testing/exercises/solutions/1_starting_tests_solution/test.st b/07_unit_testing/exercises/solutions/1_starting_tests_solution/test.st
similarity index 100%
rename from 06_unit_testing/exercises/solutions/1_starting_tests_solution/test.st
rename to 07_unit_testing/exercises/solutions/1_starting_tests_solution/test.st
diff --git a/06_unit_testing/exercises/solutions/2_testing_classes_solution/test.st b/07_unit_testing/exercises/solutions/2_testing_classes_solution/test.st
similarity index 100%
rename from 06_unit_testing/exercises/solutions/2_testing_classes_solution/test.st
rename to 07_unit_testing/exercises/solutions/2_testing_classes_solution/test.st
diff --git a/06_unit_testing/exercises/solutions/3_parametrized_test_solution/test.st b/07_unit_testing/exercises/solutions/3_parametrized_test_solution/test.st
similarity index 100%
rename from 06_unit_testing/exercises/solutions/3_parametrized_test_solution/test.st
rename to 07_unit_testing/exercises/solutions/3_parametrized_test_solution/test.st
diff --git a/06_unit_testing/slides/img/Target.png b/07_unit_testing/slides/img/Target.png
similarity index 100%
rename from 06_unit_testing/slides/img/Target.png
rename to 07_unit_testing/slides/img/Target.png
diff --git a/06_unit_testing/slides/img/TestExplorer.png b/07_unit_testing/slides/img/TestExplorer.png
similarity index 100%
rename from 06_unit_testing/slides/img/TestExplorer.png
rename to 07_unit_testing/slides/img/TestExplorer.png
diff --git a/06_unit_testing/slides/img/apaxyml.png b/07_unit_testing/slides/img/apaxyml.png
similarity index 100%
rename from 06_unit_testing/slides/img/apaxyml.png
rename to 07_unit_testing/slides/img/apaxyml.png
diff --git a/06_unit_testing/slides/img/debugging.png b/07_unit_testing/slides/img/debugging.png
similarity index 100%
rename from 06_unit_testing/slides/img/debugging.png
rename to 07_unit_testing/slides/img/debugging.png
diff --git a/06_unit_testing/slides/img/ui_buttons.png b/07_unit_testing/slides/img/ui_buttons.png
similarity index 100%
rename from 06_unit_testing/slides/img/ui_buttons.png
rename to 07_unit_testing/slides/img/ui_buttons.png
diff --git a/06_unit_testing/slides/slides.md b/07_unit_testing/slides/slides.md
similarity index 98%
rename from 06_unit_testing/slides/slides.md
rename to 07_unit_testing/slides/slides.md
index 6ee4fbd..8191c21 100644
--- a/06_unit_testing/slides/slides.md
+++ b/07_unit_testing/slides/slides.md
@@ -15,12 +15,13 @@ mouseWheel: true,
| 00 | Introduction to the workshop |
| 01 | Introduction to AX Code IDE |
| 02 | Get started with your first AX Project |
-| 03 | Introduction to ST Programming |
-| 04 | Loading and Debugging |
-| 05 | OOP Elements of ST |
-| **06** | **Unit Testing** |
-| 07 | Tools for commissioning |
-| 08 | Package management |
+| 03 | Hardware Configuration |
+| 04 | Introduction to ST Programming |
+| 05 | Loading and Debugging |
+| 06 | OOP Elements of ST |
+| **07** | **Unit Testing** |
+| 08 | Tools for commissioning |
+| 09 | Package management |
---
diff --git a/05_oop_in_st/slides/theme/.DS_Store b/07_unit_testing/slides/theme/.DS_Store
similarity index 100%
rename from 05_oop_in_st/slides/theme/.DS_Store
rename to 07_unit_testing/slides/theme/.DS_Store
diff --git a/06_unit_testing/slides/theme/siemens.css b/07_unit_testing/slides/theme/siemens.css
similarity index 100%
rename from 06_unit_testing/slides/theme/siemens.css
rename to 07_unit_testing/slides/theme/siemens.css
diff --git a/04_introduction_to_st/slides/theme/siemens.svg b/07_unit_testing/slides/theme/siemens.svg
similarity index 100%
rename from 04_introduction_to_st/slides/theme/siemens.svg
rename to 07_unit_testing/slides/theme/siemens.svg
diff --git a/06_unit_testing/slides/theme/simatic-ax.css b/07_unit_testing/slides/theme/simatic-ax.css
similarity index 100%
rename from 06_unit_testing/slides/theme/simatic-ax.css
rename to 07_unit_testing/slides/theme/simatic-ax.css
diff --git a/06_unit_testing/apax.yml b/08_tools_for_commissioning/apax.yml
similarity index 100%
rename from 06_unit_testing/apax.yml
rename to 08_tools_for_commissioning/apax.yml
diff --git a/03_loading_and_debugging/exercises/0_first_exercise/README.md b/08_tools_for_commissioning/exercises/0_first_exercise/README.md
similarity index 100%
rename from 03_loading_and_debugging/exercises/0_first_exercise/README.md
rename to 08_tools_for_commissioning/exercises/0_first_exercise/README.md
diff --git a/03_loading_and_debugging/exercises/0_first_exercise/apax.yml b/08_tools_for_commissioning/exercises/0_first_exercise/apax.yml
similarity index 100%
rename from 03_loading_and_debugging/exercises/0_first_exercise/apax.yml
rename to 08_tools_for_commissioning/exercises/0_first_exercise/apax.yml
diff --git a/07_tools_for_commissioning/slides/img/DiagBuffPanelWeb.png b/08_tools_for_commissioning/slides/img/DiagBuffPanelWeb.png
similarity index 100%
rename from 07_tools_for_commissioning/slides/img/DiagBuffPanelWeb.png
rename to 08_tools_for_commissioning/slides/img/DiagBuffPanelWeb.png
diff --git a/07_tools_for_commissioning/slides/img/PerformanceInfo.png b/08_tools_for_commissioning/slides/img/PerformanceInfo.png
similarity index 100%
rename from 07_tools_for_commissioning/slides/img/PerformanceInfo.png
rename to 08_tools_for_commissioning/slides/img/PerformanceInfo.png
diff --git a/07_tools_for_commissioning/slides/img/PlcOnlineHub.png b/08_tools_for_commissioning/slides/img/PlcOnlineHub.png
similarity index 100%
rename from 07_tools_for_commissioning/slides/img/PlcOnlineHub.png
rename to 08_tools_for_commissioning/slides/img/PlcOnlineHub.png
diff --git a/07_tools_for_commissioning/slides/img/plc-browser.gif b/08_tools_for_commissioning/slides/img/plc-browser.gif
similarity index 100%
rename from 07_tools_for_commissioning/slides/img/plc-browser.gif
rename to 08_tools_for_commissioning/slides/img/plc-browser.gif
diff --git a/07_tools_for_commissioning/slides/slides.md b/08_tools_for_commissioning/slides/slides.md
similarity index 97%
rename from 07_tools_for_commissioning/slides/slides.md
rename to 08_tools_for_commissioning/slides/slides.md
index f9cd100..7cce4b2 100644
--- a/07_tools_for_commissioning/slides/slides.md
+++ b/08_tools_for_commissioning/slides/slides.md
@@ -13,12 +13,13 @@ mouseWheel: true,
| 00 | Introduction to the workshop |
| 01 | Introduction to AX Code IDE |
| 02 | Get started with your first AX Project |
-| 03 | Loading and Debugging |
-| 04 | Introduction to ST Programming |
-| 05 | OOP Elements of ST |
-| 06 | Unit Testing |
-| **07** | **Tools for commissioning** |
-| 08 | Package management |
+| 03 | Hardware Configuration |
+| 04 | Loading and Debugging |
+| 05 | Introduction to ST Programming |
+| 06 | OOP Elements of ST |
+| 07 | Unit Testing |
+| **08** | **Tools for commissioning** |
+| 09 | Package management |
---
diff --git a/04_introduction_to_st/slides/theme/.DS_Store b/08_tools_for_commissioning/slides/theme/.DS_Store
similarity index 100%
rename from 04_introduction_to_st/slides/theme/.DS_Store
rename to 08_tools_for_commissioning/slides/theme/.DS_Store
diff --git a/03_loading_and_debugging/slides/theme/siemens.svg b/08_tools_for_commissioning/slides/theme/siemens.svg
similarity index 100%
rename from 03_loading_and_debugging/slides/theme/siemens.svg
rename to 08_tools_for_commissioning/slides/theme/siemens.svg
diff --git a/03_loading_and_debugging/slides/theme/simatic-ax.css b/08_tools_for_commissioning/slides/theme/simatic-ax.css
similarity index 100%
rename from 03_loading_and_debugging/slides/theme/simatic-ax.css
rename to 08_tools_for_commissioning/slides/theme/simatic-ax.css
diff --git a/03_loading_and_debugging/apax.yml b/09_package_management/apax.yml
similarity index 100%
rename from 03_loading_and_debugging/apax.yml
rename to 09_package_management/apax.yml
diff --git a/08_package_management/exercises/1_creating_and_testing_a_library/README.md b/09_package_management/exercises/1_creating_and_testing_a_library/README.md
similarity index 100%
rename from 08_package_management/exercises/1_creating_and_testing_a_library/README.md
rename to 09_package_management/exercises/1_creating_and_testing_a_library/README.md
diff --git a/08_package_management/exercises/2_publishing_a_library/README.md b/09_package_management/exercises/2_publishing_a_library/README.md
similarity index 100%
rename from 08_package_management/exercises/2_publishing_a_library/README.md
rename to 09_package_management/exercises/2_publishing_a_library/README.md
diff --git a/08_package_management/exercises/2_publishing_a_library/solution.md b/09_package_management/exercises/2_publishing_a_library/solution.md
similarity index 100%
rename from 08_package_management/exercises/2_publishing_a_library/solution.md
rename to 09_package_management/exercises/2_publishing_a_library/solution.md
diff --git a/08_package_management/exercises/3_consuming_a_library/README.md b/09_package_management/exercises/3_consuming_a_library/README.md
similarity index 100%
rename from 08_package_management/exercises/3_consuming_a_library/README.md
rename to 09_package_management/exercises/3_consuming_a_library/README.md
diff --git a/08_package_management/exercises/3_consuming_a_library/solution.md b/09_package_management/exercises/3_consuming_a_library/solution.md
similarity index 100%
rename from 08_package_management/exercises/3_consuming_a_library/solution.md
rename to 09_package_management/exercises/3_consuming_a_library/solution.md
diff --git a/08_package_management/slides/img/box.png b/09_package_management/slides/img/box.png
similarity index 100%
rename from 08_package_management/slides/img/box.png
rename to 09_package_management/slides/img/box.png
diff --git a/08_package_management/slides/img/cake.jpg b/09_package_management/slides/img/cake.jpg
similarity index 100%
rename from 08_package_management/slides/img/cake.jpg
rename to 09_package_management/slides/img/cake.jpg
diff --git a/08_package_management/slides/img/create_lib_project.PNG b/09_package_management/slides/img/create_lib_project.PNG
similarity index 100%
rename from 08_package_management/slides/img/create_lib_project.PNG
rename to 09_package_management/slides/img/create_lib_project.PNG
diff --git a/08_package_management/slides/img/key.jpg b/09_package_management/slides/img/key.jpg
similarity index 100%
rename from 08_package_management/slides/img/key.jpg
rename to 09_package_management/slides/img/key.jpg
diff --git a/08_package_management/slides/img/library.jpg b/09_package_management/slides/img/library.jpg
similarity index 100%
rename from 08_package_management/slides/img/library.jpg
rename to 09_package_management/slides/img/library.jpg
diff --git a/08_package_management/slides/img/target.png b/09_package_management/slides/img/target.png
similarity index 100%
rename from 08_package_management/slides/img/target.png
rename to 09_package_management/slides/img/target.png
diff --git a/08_package_management/slides/slides.md b/09_package_management/slides/slides.md
similarity index 98%
rename from 08_package_management/slides/slides.md
rename to 09_package_management/slides/slides.md
index e0a07b1..5a46c9b 100644
--- a/08_package_management/slides/slides.md
+++ b/09_package_management/slides/slides.md
@@ -15,13 +15,13 @@ mouseWheel: true,
| 00 | Introduction to the workshop |
| 01 | Introduction to AX Code IDE |
| 02 | Get started with your first AX Project |
-| 03 | Loading and Debugging |
-| 04 | Introduction to ST Programming |
-| 05 | OOP Elements of ST |
-| 06 | Unit Testing |
-| 07 | Tools for commissioning |
-| **08** | **Package management** |
-
+| 03 | Hardware Configuration |
+| 04 | Loading and Debugging |
+| 05 | Introduction to ST Programming |
+| 06 | OOP Elements of ST |
+| 07 | Unit Testing |
+| 08 | Tools for commissioning |
+| **09** | **Package management** |
---
diff --git a/03_loading_and_debugging/slides/theme/.DS_Store b/09_package_management/slides/theme/.DS_Store
similarity index 100%
rename from 03_loading_and_debugging/slides/theme/.DS_Store
rename to 09_package_management/slides/theme/.DS_Store
diff --git a/09_package_management/slides/theme/siemens.svg b/09_package_management/slides/theme/siemens.svg
new file mode 100644
index 0000000..765e8d4
--- /dev/null
+++ b/09_package_management/slides/theme/siemens.svg
@@ -0,0 +1,43 @@
+
+
+
+
diff --git a/04_introduction_to_st/slides/theme/simatic-ax.css b/09_package_management/slides/theme/simatic-ax.css
similarity index 100%
rename from 04_introduction_to_st/slides/theme/simatic-ax.css
rename to 09_package_management/slides/theme/simatic-ax.css