TM213TRE.425-EnG Automation Runtime V4250
TM213TRE.425-EnG Automation Runtime V4250
Automation Runtime
Prerequisites and requirements
Training modules TM210 Working with Automation Studio
Software Automation Studio 4.2.5
Automation Runtime 4.25
Hardware X20 controller
Table of contents
1 Introduction........................................................................................................................................... 4
1.1 Learning objectives................................................................................................................. 4
1.2 Symbols and safety notices....................................................................................................5
2 Automation Runtime.............................................................................................................................6
2.1 Automation Runtime structure................................................................................................ 8
2.2 Automation Runtime diagnostics capability.......................................................................... 10
2.3 Connectivity and access & security......................................................................................11
3 Installation and startup.......................................................................................................................13
3.1 Changing and updating Automation Runtime.......................................................................14
3.2 Configuration ID and partitioning.......................................................................................... 15
3.3 Online and offline installation................................................................................................16
4 Memory management........................................................................................................................ 18
4.1 Logical partitioning of the Flash memory..............................................................................18
4.2 Used RAM.............................................................................................................................19
4.3 Tools for determining memory information........................................................................... 20
4.4 Global and local variables.................................................................................................... 22
5 Runtime performance.........................................................................................................................28
5.1 Starting Automation Runtime................................................................................................ 28
5.2 Program initialization.............................................................................................................34
5.3 Execution of cyclical programs............................................................................................. 35
5.4 Cycle time and tolerance...................................................................................................... 39
5.5 Settings when transferring programs....................................................................................43
6 I/O handling........................................................................................................................................ 45
6.1 Handling I/O images............................................................................................................. 46
6.2 I/O configuration and I/O assignment................................................................................... 51
6.3 Error handling for I/O modules............................................................................................. 53
7 Summary............................................................................................................................................ 55
1 Introduction
The real-time operating system Automation Runtime is an integral component of Automation Studio.
Automation Runtime provides services for freely configuring and troubleshooting the target system and
for executing programs.
In addition, Automation Runtime features a modular structure, configurability and the ability to quickly
execute applications repeatedly within a precise time frame. This makes it possible to achieve optimal
product quantities while guaranteeing quality and precision at runtime.
Figure 1: Automation Runtime: A software platform for the entire B&R product range
This training module will provide a general overview of Automation Runtime and its features.
This training module uses selected examples illustrating typical applications to help you learn how to
configure Automation Runtime for your own application in Automation Studio.
You will learn what demands are placed on a real-time operating system in the field of automa-
tion.
You will learn about the features and functionalities available in Automation Runtime.
You will get an overview of integrated server and client functions and diagnostic options.
You will learn how a uniform runtime system can benefit integrated automation solutions.
You will learn how memory management, variable scope and remanent variables are handled
in Automation Runtime.
You will learn about the startup and runtime behavior of B&R controllers.
You will learn how Automation Runtime I/O management works.
You will learn about the interrelationships involved in multitasking.
You will learn about Automation Runtime's configuration options.
Unless otherwise specified, the descriptions of symbols and safety notices listed in "TM210 Working
with Automation Studio" apply.
2 Automation Runtime
The fundamental idea of integrated automation and the free scalability of automation solutions results in
challenges for the configuration tool as well as the runtime system it's based on.
Figure 2: Automation Studio: one engineering tool for the machine's entire lifecycle
It allows application programs to access I/O systems, interfaces, fieldbuses, networks and storage de-
vices. Comprehensive configuration options for timing as well as client and server applications allow the
flexibility that is required by a modern control system.
Automation Runtime provides the user with a deterministic, hardware-independent, multitasking tool for
creating applications. It manages hardware and software resources and offers complete diagnostics.
The IEC library functions in Automation Runtime make programming faster and easier while helping to
avoid errors.
Automation Runtime can run on many different hardware platforms. For X20 controllers, Power Panels
and Automation PCs, PC-based hardware platforms are used.
Figure 10: Open CPU and Ethernet configuration via the shortcut menu
Communication \ OPC UA
Libraries / Communication / AsOpcUac
All target systems launch Automation Runtime and load the Automation Studio project from flash mem-
ory. Depending on the device, the target system has a CompactFlash, CFast card or integrated flash
memory as a data storage medium.
The exception with PC-based target systems is Automation Runtime for Windows (ARwin). In
this case, Automation Runtime is installed the first time using a special setup tool.
Project management
Workspace \ Upgrades
Changing runtime version
Diagnostics and service \ Service tool \ Runtime Utility Center \ Creating a list / data medium
\ Generating an installation package
Before project installation, the settings for the configuration ID and the partitioning of the flash memory
should be checked in the project. The settings are called via the shortcut menu for the CPU.
Figure 16: Open the CPU configuration; settings for configuration ID and partitioning
Configuration ID
With Automation Runtime 4.25 and later, a unique configuration ID is assigned to each configuration in
the Automation Studio project. The configuration ID serves as a unique identifier of the project and is
preset to "<AS Project name>_<Configuration name>". The assignment of a unique configuration ID is
necessary. This allows the system to differentiate between an update transfer (same ID) or initial transfer
(different ID) during project installation.
Partitioning
The flash memory of a controller is organized as a file system. Depending on the selected partition option,
a distinction is made between the normal and secure file system. For the normal file system, a partition
is created in the flash memory, on which Automation Runtime and the user data are saved.
For the secure file system on the other hand, Automation Runtime and the application are stored on
different partitions. The partition sizes for Automation Runtime and the application are calculated auto-
matically.
A user partition can be added to the normal and secure file system. On this partition, the user can save
e.g. recipe data at runtime. The memory size is manually determined for the user partition.
It is possible to transfer Automation Runtime over an online connection. In order to do this, the online
interface must be configured correctly and be in the right mode. ("Starting Automation Runtime" on page
28). Alternatively, offline installation and the remote install structure are available for transferring the
Automation Studio project including Automation Runtime.
Establishing a connection
A connection to the controller is established using the "Browse for target system" feature in Automation
Studio. This function searches the network for B&R controllers. The connection settings of the controllers
can be temporarily changed in the search dialog box.
Programming \ Building and transferring projects \ Establishing a connection to the target sys-
tem \ Ethernet connections \ Browse for targets
Online installation
Automation Runtime can be transferred or project installation performed once the connection has been
established.
Programming \ Building and transferring projects \ Online services \ Transfer Automation Run-
time \ Transferring to SGx target systems \ Installing via an online connection
Project management \ Project installation
Offline installation
During offline installation, Automation Studio generates the required installation media, which is subse-
quently connected with the target system and specifies its entire configuration.
Project management \ Project installation \ Operation \Transfer dialog box \ Offline installation
With a remote installation, the user has to define the number and size of partitions. The project
installation, on the other hand, calculates the partition sizes itself. There may therefore be dif-
ferences between the calculated partition sizes and the sizes assigned by the user. This results
in an initial transfer being performed.
4) Select options for online and offline transfer for the selected target system
Notes on this are offered in the respective data sheet under section "Programming the system flash".
5) Perform installation
4 Memory management
Memory on an Automation Runtime target system is divided into RAM and ROM.
Parts of these areas are used exclusively by Automation Runtime at runtime; the rest is available for
the application.
During the build process for Automation Runtime, an Automation Studio project generates modules that
can be executed. These are transferred to the flash memory during project installation. CompactFlash,
CFast and integrated flash memory are used as storage mediums.
Figure 19: Partitioning configuration for the flash memory in the CPU configuration
DRAM
During startup, Automation Runtime, all configurations and the tasks are copied into DRAM and executed
there. This is necessary because access to the DRAM is quicker than flash memory.
In DRAM, a task also requires the configured local or global variable memory. Initialization of this memory
is carried out automatically.
Information about the service interval of the backup battery and instructions regarding changing
it are documented in the data sheet of the respective CPU.
Automation Studio unites many diagnostic tools that, among other things, provide information about the
system state. Diagnostic tools for calculating memory information will be introduced below.
Online info
Selecting <Online> / <Info> from the main menu
shows general information about the amount of
available memory. This option is not available for
all target systems. In the online info, you can al-
so read and set the status of the backup battery
as well as the current time and date on the con-
troller. The change of time and date are logged in
the "System" Logger module.
Library functions
Using function block MEMxInfo() from library AsHW, the free memory on the target system can be cal-
culated in the application.
For example, you get direct access to the file system on the flash memory with the FileIO and MpFile
libraries.
Programming \ Libraries
Configuration, system \ AsHW
Data access and data storage \ FileIO
Figure 24: The "System" Logger module displays the change of time and date.
3) Check which tasks were loaded on the target system with System Diagnostics Manager
4) Check which tasks were loaded on the target system with online software comparison
Variables are symbolic programming elements whose structure and size is determined by their data
type. During the build, a memory location is assigned to the variables by the compiler.
A variable's scope and properties determine its behavior during startup and runtime.
Declare four variables named "udCnt", "udValue", "udStartValue" and "udEndValue" of data type UDINT.
Create a loop in the cyclic section of the program. This loop will be explained and used in later exercises.
3) After saving the "Loop.var" file, the variables in the program "LoopCyclic.st" can be used.
PROGRAM _CYCLIC
FOR udCnt := udStartValue TO udEndValue DO
udValue := udValue + 1;
END_FOR
END_PROGRAM
The Watch window for both instances of the "Loop" program can be opened by selecting it from
the shortcut menu in the software configuration or in the Logical View. A selection dialog box
appears when the Watch window is opened via the Logical View with regard to which instance
the Watch window should be opened.
The Watch window can also be opened by pressing the key combination <CTRL + W>.
All variables are added in the Watch window for tasks "Loop" and "Loop1". Both tasks only
have local variables. Changing the variables in the Watch monitor has no effect on the other
respective instance of the "Loop" program.
Figure 27: Variable monitor for the "loop" and "loop1" tasks
Variables that are included in the variable file but not used in the program are not available
on the target system.
A corresponding warning is output during the build process.
Warning 424: Variable <variable name> is declared but not being used in the current configu-
ration.
Global variables are displayed at the top level of the Logical View. They can be used throughout the
entire Automation Studio project. They can be used in every program.
Variables that were declared within a package are package-global variables. These are only visible within
the respective package and all subordinate packages.
Global variables should only be used if it is necessary to exchange data between several pro-
grams. Another alternative is to connect local variables in different programs together using
variable mapping.
Exercise: Create a global variable named "gMain" and use it in the "Loop" program
Enter a new variable in the global variable declaration "Global.var" with the name "gMain" and data type
UDINT.
This variable should be incremented cyclically in the "Loop" program.
gMain := gMain + 1;
3) Once the "Global.var" file has been saved, the variable in "LoopCyclic.st" can be used in the pro-
gram.
If the variable "gMain" is added in the Watch window for tasks "Loop" and "Loop1", the value
change in both tasks is visible.
During startup, all variables which haven't been given an initial value are automatically initialized with
the value "0". An initialization value can be specified in the variable declaration in the "value" column.
Initialization via the variable declaration replaces, for example, the following program lines in the initial-
ization subroutine "LoopInit.st":
PROGRAM _INIT
udEndValue := 1000;
END_PROGRAM
2) Set the value for the "udEndValue" variable in the "Value" column.
In the variable monitor for the "Loop" and "Loop1" tasks, variable "udEndValue" is initialized
with the value 1000. During runtime, this value can be changed to any other value.
Constants are variables whose values never change while the program is running. They are implemented
in the programming instead of fixed numerical values. This makes programs easier to read and maintain.
2) Set the value in the "Value" column for the "gMain" variable.
An error message appears during the build, because there is write access to "gMain".
Write access to constants in programs is not permitted. In order for the program to operate
without error, the "gMain" variable must not be defined as a constant.
LoopCyclic.st (Ln: 19, Col: 8) : Error 1138: Cannot write to variable 'gMain'.
It makes more sense to initialize the variable "udStartValue" as a constant with the value "0".
This variable is defined as read-only in the program.
The cross-reference list is used to determine read and write access of variables in programs.
A cross-reference list is generated by selecting <Project> / <Create cross-reference> from
the main menu.
5 Runtime performance
This section describes the runtime behavior of the application on the target system. Startup behavior,
program initialization as well as the cyclic program process are explained.
Automation Runtime boots when the target system is switched on. The following tasks are executed
before execution of the cyclic programs.
Hardware check
Check if hardware firmware upgrade is required
Checking the BR modules
BR modules copied from ROM to DRAM
Retain variables copied to DRAM
Variable memory set to initialization value
Execution of initialization subroutine
Activation of cyclic programs
If no errors occur during the boot phase, the target system starts in RUN mode.
Clearing memory
Fatal system error
Node number switch to "FF", mode selector switch to "DIAG", reset
button
DIAGNOSTICS
Division by zero
PageFault
Cycle time violation
Missing hardware modules
SERVICE CPU halted by Automation Studio
No errors
RUN
1 A requirement for this is that the implemented system has Automation Runtime by default. PC-based sys-
tems don't have Automation Runtime by default. In this case, a connection to the target system can't be
established. Offline installation must be performed.
2 Depending on the device used, the node selector switches, the mode selector switch or the reset button
are used for setting the operating mode. The description can be found in the respective user's manual.
During startup of the controller, the intermediate steps will be followed. These states are also indicated
in the Automation Studio status bar. These phases are usually very short.
The phases before the RUN state (STARTUP, FIRMWARE, INIT) are indicated by a blinking
green R/E LED on the X20 system.
Warm restart
A restart (warm restart) is triggered by the following actions:
PowerON after power failure
Pressing the reset button
Changing a system configuration and transferring it to the target system
Performing a warm restart with Automation Studio
Performing a warm restart with SYSreset() function
The restart behavior after a reset or power failure is configured in Automation Studio.
Retain variables keep their values after a warm restart.
Cold restart
A cold restart is triggered by the following actions:
Restarting after exchanging a CompactFlash card
See offline installation and initial transfer description
Restarting after clearing UserROM
Pressing the reset button
Performing a cold restart with Automation Studio
Performing a cold restart with SYSreset() function
Restarting if the backup battery for the SRAM is defective
The restart behavior after a reset or power failure is configured in Automation Studio.
During a cold restart, retain variables with the value "0" or the initial value from the variable
declaration are reinstalled. Permanent variables retain their original value.
Power-on handling
SYSROM and USERROM are located on the CompactFlash, CFast card or internal flash memory when
power is not on. The remanent variables (RETAIN) and the USERRAM are located on the battery-backed
RAM.
Real-time operating system \ Method of operation \ Module / Data security \ Power-on handling
Power-off handling
Many B&R target systems are equipped with a power failure logic. This allows the system to enter a
defined state in the event of a power failure. The following tasks are performed in event of a power failure:
Access to data objects located in USERRAM is locked.
The remanent variables (RETAIN) are copied into the battery-backed SRAM.
Real-time operating system \ Method of operation \ Module / Data security \ Power-off handling
All boot phases are run through during startup of the target system. In order for the values of process
variables to be retained after a warm restart, they must be stored in the remanent memory. During
startup, the data is automatically restored.
Retain variables
In order to store variables in nonvolatile (remanent) memory, the following requirements must be met
on the target system and in the variable declaration:
Target system with battery-backed RAM - see data sheet
Configure the variable by enabling the "Retain" option
Different target systems have varying amounts of remanent memory available. Information
about the size and availability can be found in the respective data sheet or in the Automation
Help.
Alternatively, data that is only read or written once when the program is started or when a change is made
can be stored on the flash memory. To this end there are the function blocks of the MpRecipe library.
Permanent variables
In order for retain variables to be retained after a cold restart, they must be added to the permanent
variables in the Configuration View (CPU.per).
Examples of data to be stored permanently:
Operating time counters
All data that isn't written to a flash memory but must also be retained after a cold restart.
It is the responsibility of the user to manage the values of variables in the permanent memory.
If the state of permanent variables are not based on a proper foundation, this can result in
undesired program behavior. This is especially important to remember when replacing the CPU
or backup battery.
Functions that must be called several times must be called in the cyclic section of the program.
Real-time operating system \ Target systems \ SG4 \ Runtime performance \ Starting initializa-
tion subroutines
A task is executed cyclically in the time defined by its task class i.e. its cycle time.
Up to eight task classes with a configurable cycle time are provided to help optimize a task for its particular
requirements. Every task class contains tasks with the same cycle time, priority and tolerance.
In this example, the task class #4 contains three tasks. A cycle time
of 100 ms is configured.
Not all tasks need to run within the same task class. Control
tasks that must be executed quickly should be assigned to
a task class with a smaller cycle time. For slower process-
es, a task class with a correspondingly higher cycle time
is selected.
Ignoring the time it takes to execute the tasks, the program sequence would look like this:
Cyclic #4
100 ms
This means that the tasks in this task class are executed every 100 milliseconds. In order to do that, the
sum of the execution time of the assigned programs can't exceed the configured cycle time.
Real-time operating system \ Target systems \ SG4 \ Runtime performance \ Start of cyclic tasks
If the "Loop" task is moved from task class #4 to task class #1, it will
be executed every 10 milliseconds.
The "Loop" task is now executed every 10 ms. The tasks "LampTest" and "Loop1" in task class #4 are
executed every 100 milliseconds, as before.
Cyclic #1
10 ms
100ms
Cyclic #4
100 ms
n + 50ms + 100ms + 150ms + 200ms
Start of multitasking
The "Loop" program is executed 10 times as frequently as "Loop1". As a result, the value of
the "udValue" variable is increased more often by this factor.
During operation, Automation Runtime performs other system tasks in addition to the execution of tasks.
They provide the user with useful functions. For example, a constant module verification process is
performed and online communication is available.
The speed at which these tasks are executed can vary depending on processor performance.
The time when no Automation Runtime or user tasks are being executed is referred to as idle time.
Automation Runtime uses this idle time, for example, for the following tasks:
Online communication
Visual Components application
Access to the file system
Cyclic #1
10 ms
Cyclic #4
100 ms
Idle
The basic task class for the idle time is established in the CPU con-
figuration. The configured idle time of the system is provided in the
context of this task class.
The Profiler can be used to determine the idle time. The System
Diagnostics Manager can also be used to display the average sys-
tem load.
Not all task classes are started simultaneously after the multitasking system has been started.
The starting point is always half of the task class cycle time.
This means, for example, that the 100 ms task class will be started after 50 ms. Distributing the start
time of all task classes makes better use of processor performance and allows, for example, output jitter
to be kept to a minimum.
Real-time operating system \ Target systems \ SG4 \ Runtime performance \ Start of cyclic tasks
Task class priority makes it possible for a task of higher priority to interrupt a task of priority task class
that takes longer.
Using the Watch window, the limit of the variable "udiEndValue" can be changed in such a way in tasks
"Loop" and "Loop1" that the task "Loop1" is interrupted exactly two times by the task "Loop".
The schematic diagram shows how the timing can look in this case. In order to be complete and promote
better understanding, the image was updated with the timing of task class #3.
Figure 51: Multitasking with task class #1, #3 and #4; Task class #4 is interrupted by task class #1
For task class #4, a consistent I/O input image is available over the entire execution time. That's
why the tasks in this task class are not influenced by the interruption.
Each task class has a predefined cycle time. All of the tasks in a
task class must be executed within this cycle time.
The cycle time of a task class is defined when a project is created
and can be changed by the user later depending on requirements.
If the sum of the runtimes of the tasks in a task class exceeds the
configured cycle time, a cycle time violation occurs. A configurable
tolerance delays the cycle time violation.
The cycle time and tolerance can be configured in the properties of
the task class. Open the Properties window from the shortcut menu
for the task class.
If the configured cycle time of a task class is exceeded, the start of the next cycle is moved
backwards by the set tolerance. This can lead to problems in the timing of the application. This
behavior is avoided by setting the tolerance to the value "0".
Figure 53: Display of the CPU load in the System Diagnostics Manager
Automation Runtime monitors the timing when executing the task classes. A cycle time violation is trig-
gered if the execution time of the tasks exceeds the configured cycle time. If a cycle time violation is
detected, the target system starts up in SERVICE mode.
In this example, the cycle time violation is the result of changing values in the Watch window. When
a cycle time violation occurs, all values in the Watch window are "frozen" and initialized with 0 after
restarting in SERVICE mode.
Use the Logger to analyze why the system rebooted in SERVICE mode.
The Logger window can be opened by selecting <Open> / <Logger> from the main menu or using the
keyboard shortcut <CTRL> + <L>.
In the image, a cycle time violation in task class #1 was entered as the cause of error.
Figure 55: Analyze the cause of the error in the Logger: Cycle time violation in task class #1
The cause of the cycle time violation can be determined using the Profiler. Exercises for this
are included in training manual TM223 Automation Studio Diagnostics.
When the target system is restarted either by turning the power OFF/ON, or by performing
a warm restart or reset it boots in RUN mode.
Exercise: Increase the value of the "udEndValue" variable until a cycle time violation occurs
The goal of this exercise is to raise the "udEndValue" variable in the "Loop" program incrementally until a
cycle time violation occurs. The target system is restarted. The controller starts in SERVICE mode. Next
an analysis with the Logger has to be performed.
A program is added from the Logical View into the software config-
uration in the exception task class.
Tasks that are executed as quickly as possible but with a low priority should be executed in task class #8.
If possible, this is called every 10 ms, but can be interrupted by any higher priority task class. The
configured tolerance determines that task class #8 must be executed to completion at least once every
30 seconds.
Tasks that should be assigned to task class #8:
File access from application program
Complex, non-time-critical calculations
Retain PV values
This setting defines whether the values of process variables are retained over the installation procedure
for existing tasks and tasks updated by the transfer.
Consistent installation
All task classes are halted during installation. This guarantees the consistency of all tasks that run on
the target system.
User directory
If a user partition has been defined, user data is copied to the user partition via this option.
Project management \ Project installation \ Operation \ Settings \ Settings during the transfer
Figure 60: Settings for preserving the values of process variables; the execution of init/exit programs is prevented
6 I/O handling
A central function of a controller is to transport input and output states deterministically and as quickly
as possible from and to I/O terminals in the application.
Automation Runtime I/O Management is designed to meet the highest requirements for response times
and configurability.
The I/O scheduler transfers the input image from the I/O terminal before the beginning of the task class
and the output image at the end of the task in a task class.
The image shows the basic sequence of I/O handling in Automation Runtime. The I/O scheduler makes
a consistent input image available to the task class. This is indicated with the green arrow. At the end
of the last task in the task class, the output data is transferred to the I/O scheduler. This is indicated
with the red arrows.
I/O scheduler
Cyclic #1
10 ms
n + 10ms + 20ms + 30ms + 40ms
Start of multitasking
Figure 61: I/O scheduler: Provide input image; write the output image at the end of the execution time of the tasks.
In the I/O mapping, process variables are connected with I/O module channels. The I/O scheduler is
controlled by the I/O mapping.
The I/O scheduler provides a consistent I/O image for the execution of all tasks in a task class and starts
the task class at the exactly configured time. This ensures that the inputs at the beginning of the task
class and the outputs at the end of the task class are transferred.
Each task class uses a separate I/O image. The input states remain consistent during the entire
task runtime.
The I/O cycle time configured in the properties is used as the basis
for copying I/O data to the I/O image. This means that the inputs are
provided as an I/O image and the output image is described in the
set X2X cycle time.
The graphic shows that an input image is provided every 2 milliseconds. For the application, this means
that the input data is not older than the configured cycle time when the task class starts; the output data
will be written after this time has passed at the latest.
I/O image
The graphic shows that the I/O scheduler is called twice as often as the I/O image is updated.
I/O image
I/O
scheduler
Figure 67: Reading the input image; Calling the I/O scheduler
The cycle time of the fieldbus can be used as a system timer in the
timing configuration. By default, the fieldbus cycle time is applied in
a 1:1 ratio for the I/O scheduler. I/O cycle and I/O scheduler now
work synchronously in the set ratio.
By using the fieldbus timer as a system timer and multiplying the cycle time by a factor of 1, the I/O
scheduler is called with the configured I/O cycle time.
I/O image
I/O
scheduler
As is established in the I/O mapping, the I/O data from the input image is assigned to the configured
process variables.
For the tasks of a task class, this results in the following when the I/O scheduler is called in a cycle time
of 2 milliseconds:
Task class #1
The I/O scheduler starts task class #1 every 10 ms and provides it with the input image for the assigned
variables (green arrow).
At the end of the tasks in task class #1, the variables of the assigned outputs are written to the output
image (red arrow).
I/O scheduler
Cyclic #1
10 ms
n + 10ms + 20ms + 30ms + 40ms
Start of multitasking
Task class #4
The I/O scheduler starts task class #4 at the time, n+50 ms, n+150 ms and provides it with the input
image for the assigned variables (green arrow).
At the end of the tasks in task class #4, the variables of the assigned outputs are written to the output
image (red arrow).
I/O scheduler
Cyclic #1
10 ms
Cyclic #4
100 ms
n + 50ms + 60ms + 70ms + 80ms
Start of multitasking
6.1.1 Startup
Booting the controller transfers the I/O configuration to the I/O modules and initializes the interfaces and
fieldbus devices. This occurs even before the programs are initialized. This ensures that valid I/O data
can be accessed in the initialization subroutine.
The following image displays the relationship between the I/O configuration and the I/O mapping.
The I/O configuration is transferred to the module when the controller boots up or when a configured I/
O module is recognized.
In cyclic operation, the input data is provided as a memory block and distributed by the I/O mapping to
the configured process variables. In order to write the output data, the process variables are collected
and transferred as a memory block to the I/O system.
There are configuration options available for the task classes for the chronological handling of I/O images.
The standard case is the immediate writing of the outputs when ending the last task in the task class.
This causes jitter on the outputs when the task runtime fluctuates.
I/O scheduler
Cyclic #1
10 ms
n + 10ms + 20ms + 30ms + 40ms
Start of multitasking
Figure 73: Outputs are transferred immediately to the I/O system after the task has ended.
The graphic shows the effect of the delay of the output image at the end of the cycle.
I/O scheduler
Cyclic #1
10 ms
n + 10ms + 20ms + 30ms + 40ms
Start of multitasking
The I/O configuration is opened via the shortcut menu for the desired I/O module. The configuration op-
tions of an I/O module are documented in the respective data sheet under section "Register description".
The I/O mapping defines which data from the I/O image is assigned to a process variable.
Each variable in a .var file that is used in a program can be assigned to a channel of an I/O module,
regardless of its scope.
The I/O mapping is opened via the shortcut menu for an I/O module.
For global variables, the channel can be assigned a task class in which the data of the I/O
image should be transferred.
If "Automatic" is set and the project built, Automation Studio will automatically determine the
fastest task class where the variable is being used.
Monitoring enabled
When the module monitoring by Automation Runtime is enabled, the following states will cause a restart
in SERVICE mode:
The module defined for a slot is not present (or not connected).
The module physically connected in a slot doesn't match the module actually configured for the
slot.
The module is not addressed anymore during operation by the I/O system.
If a missing, incorrectly configured or incorrectly inserted I/O module is recognized on startup or during
runtime, then this is logged in the "System" Logger file.
The slot of the module can be identified using the ASCII data in the Logger entry. "IF6.ST3"
means that the "ST3" module on the IF6 interface, which is the X2X interface in this case, was
disconnected. This is the third slot on that bus. The CPU interface names can be viewed in the
Physical View as well as in the data sheet of the CPU being used.
Monitoring disabled
When module monitoring is disabled, the I/O module can be monitored from the application by variable
mapping on the "ModuleOK" channel. Missing or incorrectly inserted modules don't cause a reboot in
SERVICE mode. Only the value of the "ModuleOk" channel becomes "FALSE". The monitoring of the
modules is therefore the responsibility of the application.
Real-time operating system \ Target systems \ SG4 \ I/O management \ Method of operation
\ Error handling
7 Summary
The operating system provides an interface between the application and the hardware while ensuring
consistent management of the resources on the respective target system.
Multitasking in Automation Runtime makes it possible to design an application with a modular struc-
ture. The arrangement of the application in tasks grouped into task classes enables optimal usage of
resources. The timing of the application can be configured by adapting the multitasking system to the
user's unique requirements.
Tasks that should be executed quickly and frequently run in a faster task class, while other important
tasks that are less time critical are executed in low-priority task classes.
This makes it possible to achieve an optimal configuration to maximize the performance of the application
and machine while using existing resources efficiently.
Figure 81: Automation Runtime: A software platform for the entire B&R product range
The platform-independent configurable interfaces as well as client and server protocols make Automation
Runtime a powerful operating system. The openness of the system makes it possible to directly integrate
devices from other manufacturers, establish connections to OPC UA clients and servers and implement
the required IT safety mechanisms.
The state of Automation Runtime is always transparent thanks to several diagnostic tools and software
libraries. This helps with commissioning and the implementation of individual application requirements.
The Automation Academy provides targeted training courses for our customers as well as our own employees.
At the Automation Academy, you'll develop the skills you need in no time!
Our seminars make it possible for you to improve your knowledge in the field of automation engineering.
Once completed, you will be in a position to implement efficient automation solutions using B&R technology. This will make
it possible for you to secure a decisive competitive edge by allowing you and your company to react faster to constantly
changing market demands.
SEM410 Integrated motion control* If you don't happen to find a seminar on our website that suits your
SEM441 Motion control: Electronic gears and cams** needs, keep in mind that we also offer customized seminars that we
SEM480 Hydraulics** can set up in coordination with your sales representatives:
SEM1110 Axis groups and path-controlled movements** SEM099 Individual training day
TM400 Introduction to Motion Control TM280 Condition Monitoring for Vibration Measurement
TM410 Working with Integrated Motion Control TM480 The Basics of Hydraulics
TM440 Motion Control: Basic Functions TM481 Valve-based Hydraulic Drives
TM441 Motion control: Electronic gears and cams TM482 Hydraulic Servo Pump Drives
TM1110 Integrated Motion Control (Axis Groups) TM490 Printing Machine Technology
TM1111 Integrated Motion Control (Path Controlled Movements)
TM450 Motion Control Concept and Configuration In addition to the printed version, our training modules are also avail-
TM460 Initial Commissioning of Motors able on our website for download as electronic documents (login re-
quired):
TM500 Introduction to Integrated Safety
TM510 Working with SafeDESIGNER Visit our website for more information:
TM540 Integrated Safe Motion Control www.br-automation.com/academy