EasyManuals Logo

Siemens Simatic S7 Series System Manual

Siemens Simatic S7 Series
726 pages
To Next Page IconTo Next Page
To Next Page IconTo Next Page
To Previous Page IconTo Previous Page
To Previous Page IconTo Previous Page
Page #286 background imageLoading...
Page #286 background image
Program instructions
7.10 Interrupt
S7-200 SMART
286 System Manual, 09/2015, A5E03822230-AC
Calling subroutines from interrupt routines
You can call four nesting levels of subroutines from an interrupt routine. The accumulators
and the logic stack are shared between an interrupt routine and the four nesting levels of
subroutines called from the interrupt routine
Sharing data between the main program and the interrupt routines
You can share data between the main program and one or more interrupt routines. Because
it is not possible to predict when the CPU might generate an interrupt, it is desirable to limit
the number of variables that are used by both the interrupt routine and elsewhere in the
program. Problems with the consistency of shared data can result due to the actions of
interrupt routines when the execution of instructions in your main program is interrupted by
interrupt events. Use the interrupt block "variable table" (block call interface table) to ensure
that your interrupt routine uses only the temporary memory and does not overwrite data used
somewhere else in your program.
Ensuring access for a single shared variable
For an STL program that is sharing a single variable: If the shared data is a single byte,
word, or double word variable and your program is written in STL, then correct shared
access can be ensured by storing the intermediate values from operations on shared
data only in non-shared memory locations or accumulators.
For a LAD program that is sharing a single variable: If the shared data is a single byte,
word, or double word variable and your program is written in LAD, then correct shared
access can be ensured by establishing the convention that access to shared memory
locations be made using only Move instructions (MOVB, MOVW, MOVD, MOVR). While
many LAD instructions are composed of interruptible sequences of STL instructions,
these Move instructions are composed of a single STL instruction whose execution
cannot be affected by interrupt events.
Ensuring access for multiple shared variables
For an STL or LAD program that is sharing multiple variables: If the shared data is
composed of a number of related bytes, words, or double words, then the interrupt
disable/enable instructions (DISI and ENI) can be used to control interrupt routine execution.
At the point in your main program where operations on shared memory locations are to
begin, disable the interrupts. Once all actions affecting the shared locations are complete, re-
enable the interrupts. During the time that interrupts are disabled, interrupt routines cannot
be executed and therefore cannot access shared memory locations; however, this approach
can result in delayed response to interrupt events.

Table of Contents

Other manuals for Siemens Simatic S7 Series

Questions and Answers:

Question and Answer IconNeed help?

Do you have a question about the Siemens Simatic S7 Series and is the answer not in the manual?

Siemens Simatic S7 Series Specifications

General IconGeneral
CPUVaries by model (e.g., S7-300, S7-400, S7-1200, S7-1500)
Communication InterfacesPROFIBUS, PROFINET, Ethernet, MPI
ProgrammingTIA Portal, STEP 7
Programming LanguagesLAD, FBD, STL, SCL, GRAPH
I/O ModulesDigital, Analog, Specialty modules available
Operating Temperature0°C to 60°C (standard models)
MountingDIN rail mounting
Operating Voltage24V DC or 120/230V AC (varies by model)
Protection ClassIP20 (standard models)
MemoryVaries depending on the S7 model. Includes work memory (RAM) for program execution, load memory (EEPROM or Flash) for program storage, and system memory for operating system functions. Memory sizes range from kilobytes to megabytes.

Related product manuals