Training Curriculum: TIA Portal Module 004
Training Curriculum: TIA Portal Module 004
139
TIA Portal Module 004
Table of contents
1 Goal................................................................................................................................................. 141
2 Prerequisite...................................................................................................................................... 141
3 Required hardware and software..................................................................................................... 141
4 Theory.............................................................................................................................................. 142
4.1 Operating system and application program..............................................................................142
4.2 Organization blocks.................................................................................................................. 142
4.3 Process image and cyclic program processing........................................................................144
4.4 Functions.................................................................................................................................. 145
4.5 Function blocks and instance data blocks................................................................................145
4.6 Global data blocks.................................................................................................................... 146
4.7 Library-compatible code blocks................................................................................................ 147
4.8 Programming languages.......................................................................................................... 148
5 Task................................................................................................................................................. 149
6 Planning........................................................................................................................................... 149
6.1 EMERGENCY STOP................................................................................................................ 149
6.2 Manual mode – Conveyor motor in manual mode....................................................................149
7 Structured step-by-step instructions................................................................................................. 150
7.1 Retrieve an existing project...................................................................................................... 150
7.2 Create a new tag table............................................................................................................. 151
7.3 Create new tags within a tag table............................................................................................153
7.4 Import "Tag_table_sorting_station"........................................................................................... 154
7.5 Create function FC1 "MOTOR_MANUAL" for the conveyor motor in manual mode.................156
7.6 Define the interface of function FC1 "MOTOR_MANUAL".......................................................157
7.7 Program FC1: MOTOR_MANUAL............................................................................................ 159
7.8 Program organization block OB1 – Control of the forward belt tracking in manual mode.........165
7.9 Program organization block OB1 – Control of the backward belt tracking in manual mode.....170
7.10 Save and compile the program................................................................................................. 171
7.11 Download the program............................................................................................................. 172
7.12 Monitor program blocks............................................................................................................ 173
8 Checklist.......................................................................................................................................... 176
140
TIA Portal Module 004
BASICS OF FC PROGRAMMING
1 Goal
In this chapter, you will get to know the basic elements of a control program – the
organization blocks (OBs), functions (FCs), function blocks (FBs) and data blocks
(DBs). In addition, you will be introduced to library-compatible function und function block
programming. You will get to know the Function Block Diagram (FBD) programming
language and use it to program a function (FC1) and an organization block (OB1).
2 Prerequisite
This chapter builds on the hardware configuration of SIMATIC S7 CPU1516F-3 PN/DP.
However, other hardware configurations that have digital input and output cards can be used.
2 SIMATIC STEP 7
Professional (TIA
1 Engineering station
Portal) as of V13
4 Ethernet connection
Control panel
3 SIMATIC S7-1500 controller
141
TIA Portal Module 004
4 Theory
4.1 Operating system and application program
Every controller (CPU) contains an operating system, which organizes all functions and
processes of the CPU that are not associated with a specific control task. The tasks of the
operating system include the following:
Performing a warm restart
Updating the process image of the inputs and outputs
Cyclically calling the user program
Detecting interrupts and calling interrupt OBs
Detecting and handling errors
Managing memory areas
The operating system is an integral component of the CPU and comes pre-installed.
The user program contains all functions that are necessary for executing your specific
automation task. The tasks of the user program include the following:
Checking the basic requirements for a warm restart using startup OBs
Processing of process data, i.e. activation of output signals as a function of the input
signal states
Reaction to interrupts and interrupt inputs
Error handling during normal program execution
142
TIA Portal Module 004
Figure
1: Start events in the operating system and OB call
When a start event occurs, the following reactions are possible:
If an OB has been assigned to the event, this event triggers the execution of the assigned
OB. If the priority of the assigned OB is greater than the priority of the OB that is currently
being executed, it is executed immediately (interrupt). If not, the assigned OB waits until
the higher-priority OB has been completely executed.
If an OB is not assigned to the event, the default system reaction is performed.
Table 1 gives a couple of examples of start events for a SIMATIC S7-1500, their possible OB
number(s) and the default system reaction in the event the organization block is not present in
the controller.
143
TIA Portal Module 004
PIQ
Last instruction
Note: The time the CPU needs for this sequence is called cycle time. This depends, in turn,
on the number and type of instructions and the processor performance of the controller.
144
TIA Portal Module 004
4.4 Functions
Functions (FCs) are logic blocks without memory. They have no data memory in which
values of block parameters can be stored. Therefore, all interface parameters must be
connected when a function is called. To store data permanently, global data blocks must be
created beforehand.
A function contains a program that is executed whenever the function is called from another
code block.
Functions can be used, for example, for the following purposes:
Math functions – that return a result dependent on input values.
Technological functions – such as individual controls with binary logic operations.
A function can also be called several times at different points within a program.
Organization block
Main [OB1]
145
TIA Portal Module 004
Function blocks are always executed when called from another code block. A function block
can also be called several times at different points within a program. This facilitates the
programming of frequently recurring complex functions.
A call of a function block is referred to as an instance. Each instance of a function block is
assigned a memory area that contains the data that the function block uses. This memory is
made available by data blocks created automatically by the software.
It is also possible to provide memory for multiple instances in one data block in the form of a
multi-instance. The maximum size of instance data blocks varies depending on the CPU. The
tags declared in the function block determine the structure of the instance data block.
Figure 4: Function block and instance with call from organization block Main [OB1]
146
TIA Portal Module 004
Function_10
Global DB
Access for all blocks
(DB_Global)
Function_11
147
TIA Portal Module 004
148
TIA Portal Module 004
You can thus use simple instructions, for example, to control binary outputs, evaluate edges
and execute jump functions in the program.
Program elements such as IEC timers and IEC counters provide complex instructions.
The empty box serves as a placeholder in which you can select the required instruction.
Enable input EN (enable)/ Enable output ENO (enable output) mechanism:
An instruction without EN/ENO mechanism is executed independent of the signal state at
the box inputs.
Instructions with EN/ENO mechanism are only executed if enable input "EN input has
signal state "1". When the box is processed correctly, enable output "ENO" has signal
state "1". As soon as an error occurs during the processing, the "ENO" enable output is
reset. If enable input EN is not connected, the box is always executed.
5 Task
The following functions of the sorting station process description will be planned, programmed
and tested in this chapter:
Manual mode – Conveyor motor in manual mode
6 Planning
The programming of all functions in OB1 is not recommended for reasons of clarity and
reusability. The majority of the program code will therefore be moved into functions (FCs) and
function blocks (FBs). The decision on which functions are be moved to FCs and which is to
run in OB 1 is planned below.
Output
149
TIA Portal Module 004
The next step is to select the target directory where the retrieved project will be stored.
Confirm your selection with "OK". ( Target directory OK)
150
TIA Portal Module 004
151
TIA Portal Module 004
152
TIA Portal Module 004
Change the address to %Q0.0 (Q 0.0) by entering this directly or by clicking the drop-
down arrow to open the Addressing menu, changing the operand identifier to Q and
confirming with Enter or by clicking the check mark. ( %I0.0 Operand identifier Q
)
Enter the "Conveyor motor M1 forwards fixed speed" comment for the tag.
153
TIA Portal Module 004
Add a new Q2 tag in line 2. TIA Portal has automatically assigned the same data type as
in line 1 and has incremented the address by 1 to %Q0.1 (Q0.1). Enter the comment
"Conveyor motor M1 backwards fixed speed".
Select the desired symbol table (e.g. in .xlsx format) and confirm the selection with
"Open".
( SCE_EN_020-100_Tag_table_sorting_station… Open)
When the import is finished, you will see a confirmation window and have an opportunity
to view the log file for the import. Click OK.
154
TIA Portal Module 004
You can see that some addresses have been highlighted in orange. These are duplicate
addresses and the names of the associated tags have been numbered automatically to
avoid confusion.
Delete the duplicate tags by selecting the lines and pressing the Del key on your
keyboard or by selecting "Delete" in the shortcut menu.
You now have a complete symbol table of the digital inputs and outputs in front of you.
Save your project under the name 032-100_FCProgramming.
155
TIA Portal Module 004
Rename your new block to: "MOTOR_MANUAL", set the language to FBD and keep
automatic assignment of the number. Select the "Add new and open" check box. You are
then taken automatically to your created function block in the project view.Click "Add".
156
TIA Portal Module 004
You can find the interface description of your function in the upper section of your
programming view.
157
TIA Portal Module 004
A binary output signal is needed for controlling the conveyor motor. For this reason, we
first create local output tag #Conveyor_motor_manual_mode of the "Bool" type. Enter
comment "Control of the conveyor motor in manual mode" for the parameter.
Add parameter #Manual_mode_active as the input interface under Input and confirm the
entry with the Enter key or by exiting the entry field. Data type "Bool" is assigned
automatically. This will be retained. Next, enter the associated comment "Manual mode
activated".
158
TIA Portal Module 004
For purposes of program documentation, assign the block title, a block comment and a
helpful network title for Network 1.
( Block title: Motor control in manual mode Network 1: Control of the conveyor motor
in manual mode)
You can see a list of instructions you can use in the program on the right side of your
programming window. Under Basic instructions Bit logic operations, find function –
[=] (Assignment) and use a drag-and-drop operation to move it to Network 1 (green line
appears, mouse pointer with + symbol).
159
TIA Portal Module 004
( Conveyor_motor_manual_mode)
160
TIA Portal Module 004
( Manual_mode_active)
The input of the assignment block will also be logically combined with other parameters
by an AND logic operation. To do this, first click the input of the block to which
#Manual_mode_active is already connected, so that the input line has a blue background.
161
TIA Portal Module 004
Click the icon in your logic toolbar to insert an AND logic operation between the
#Manual_mode_active tag and your assignment block.
Double-click the second input of the & logic operation <??.?> and enter the letter "P" in
the field that appears in order to see a list of available tags starting with "P".Click the
#Pushbutton_manual_mode tag and apply with Enter.
Note: When assigning tags in this way, there is a risk of a mix-up with the global tags from the
tag table. The previously presented procedure using drag and drop from the interface
description should therefore be used preferentially.
162
TIA Portal Module 004
To ensure that the output can only be controlled when the enable conditions are met and
the safety shutoff is not active, the #Enable_OK and #Safety_shutoff_active input tags
are logically combined with the AND logic operation. To do this, click twice on the yellow
Add input tags #Enable_OK and #Safety_shutoff_active to your newly created inputs of
the AND block.
clicking .
163
TIA Portal Module 004
Under "General" in the properties of the block, you can change the "Language" to LAD
(Ladder Logic) (Properties General Language: LAD)
164
TIA Portal Module 004
165
TIA Portal Module 004
Assign Network 1 the name "Control conveyor tracking forward in manual/jog mode"
Use drag-and-drop to move your "MOTOR_MANUAL [FC1]" function onto the green line
in Network 1.
166
TIA Portal Module 004
A block with the interface you defined and connections EN and ENO are inserted in
Network 1.
To insert an AND before input parameter "Enable_OK", select this input and insert the
167
TIA Portal Module 004
Click the yellow star of the AND block to add another input ( ).
To connect the block to the global tags from "Tag_table_sorting_station", we have two
options:
Either select the "Tag_table_sorting_station" in the project tree and use drag-and-drop to
move the desired global tag from the Details view to the interface of FC1
( Tag_table_sorting_station Details view. -SO2 Manual_mode_active)
168
TIA Portal Module 004
Or, enter the starting letters (e.g. "-S") of the desired global tag for <??.?> and select the
global input tag "-S0" (%I0.2) from the displayed list ( Manual_mode_active -S
-S0).
Insert the other input tags "-S3", "-K0", "-B1", "-S4" and "-A1" and insert output tag "-Q1"
(%Q0.0) at output "Conveyor_motor_manual_mode".
Negate the querying of input tags "-S0", "-S4" and "-A1" by selecting them and clicking
169
TIA Portal Module 004
Connect your function as shown here. You obtain the following result in the FBD
(Function Block Diagram) programming language.
170
TIA Portal Module 004
The result in the LAD (Ladder Logic) programming language has the following
appearance.
click the "Program blocks" folder and select the icon for compiling in the menu
( Program blocks ).
171
TIA Portal Module 004
The "Info", "Compile" area shows which blocks were successfully compiled.
( ).
172
TIA Portal Module 004
Note: The monitoring here is signal-related and controller-dependent. The signal states at the
terminals are indicated with TRUE or FALSE.
173
TIA Portal Module 004
The "MOTOR_MANUAL" [FC1] function called in the "Main [OB1]" organization block can
be selected directly for "Open and monitor" after right-clicking ( "MOTOR_MANUAL"
[FC1] Open and monitor).
174
TIA Portal Module 004
the call environment can be selected using the icon ( Call environment
OK)
175
TIA Portal Module 004
8 Checklist
No. Description Completed
176