Siemens S7 1200 Plc Programming Examples
siemens s7 1200 plc programming examples are essential resources for automation
engineers and industrial programmers seeking to understand the practical application of
this versatile control system. The Siemens S7-1200 series is renowned for its flexibility,
scalability, and integration capabilities, making it a popular choice in various automation
projects. To harness its full potential, developers often rely on concrete programming
examples that demonstrate how to implement specific control tasks, troubleshoot issues,
and optimize system performance. In this comprehensive guide, we will explore several
practical Siemens S7-1200 PLC programming examples, providing step-by-step
explanations, relevant code snippets, and best practices to enhance your understanding
and skills.
Understanding the Siemens S7-1200 PLC Architecture
Before diving into programming examples, it's important to understand the core
architecture of the Siemens S7-1200 PLC. This series features a modular design with
various CPUs, communication modules, and I/O modules that can be customized based on
application requirements.
Key Components of S7-1200
CPU Modules: The central processing unit that executes programs and manages
communications.
I/O Modules: Digital and analog modules for interfacing with sensors and
actuators.
Communication Modules: Interfaces such as PROFINET and Ethernet for network
connectivity.
Power Supply Modules: Provide necessary power to the system components.
Setting Up the Programming Environment
To program the S7-1200, Siemens provides the TIA Portal (Totally Integrated Automation
Portal). This integrated development environment simplifies configuration, programming,
and diagnostics.
Steps to Prepare Your Environment
Install the latest version of TIA Portal from Siemens' official website.1.
Create a new project and add your S7-1200 CPU to the project tree.2.
Configure hardware and network settings according to your system setup.3.
2
Develop your program using ladder logic, function blocks, or structured text.4.
Basic Programming Examples for Siemens S7-1200
Let's explore several fundamental programming tasks to build a solid foundation in
S7-1200 PLC programming.
Example 1: Turning On a Motor with a Push Button (Latching Circuit)
This example demonstrates how to control a motor using a start button, stop button, and
a latch to keep the motor running.
Logic Description
- When the start button is pressed, the motor turns on. - The motor remains on even after
releasing the start button until the stop button is pressed. - The latch is achieved using a
seal-in contact.
Implementation Steps
Define input variables for Start (I0.0) and Stop (I0.1) buttons.
Define an output variable for Motor (Q0.0).
Use a latch (seal-in) circuit in ladder logic.
Sample Ladder Logic
```ladder | Start Button (I0.0) |---| |---+------------------( )---| Q0.0 (Motor On) | | | Stop Button
(I0.1) |---|/|---+ | | | | Motor (Q0.0) |------------------------+ ``` Note: In TIA Portal, this can be
implemented using contact and coil instructions with set/reset functions.
Example 2: Controlling a Digital Output Based on a Sensor
Suppose you want to turn on an indicator lamp when a proximity sensor detects an object.
Logic Components
- Input from proximity sensor (I1.0) - Output to indicator lamp (Q1.0)
Implementation
- Use a simple contact for the sensor input. - Connect it directly to the output coil
controlling the lamp.
3
Sample Code Snippet (Structured Text)
```structured-text IF I1_0 = TRUE THEN Q1_0 := TRUE; // Turn on indicator lamp ELSE
Q1_0 := FALSE; // Turn off indicator lamp END_IF; ```
Advanced Programming Examples
Beyond basics, mastering advanced control techniques enhances efficiency and
functionality.
Example 3: Implementing a Timer-Based Delay
Timers are crucial for controlling process delays, such as waiting periods or timed
operations.
Use Case
- Turn on a conveyor belt for 10 seconds after a start button is pressed.
Implementation Steps
- Use an TON (On-Delay Timer) instruction. - Start the timer when the start button is
pressed. - Turn off the conveyor after the timer elapses.
Sample Ladder Logic
```ladder | Start Button (I0.0) |---| |------------------------(TON T1, PT:=T10s) | | T1.Q (Timer
Done) |---------------------+------------------(Q0.0) ``` Note: In TIA Portal, create a Timer1
instance and set the preset time to 10 seconds.
Example 4: Implementing a Safety Interlock
Safety is paramount in automation. This example shows how to prevent a machine from
starting if safety conditions are not met.
Logic Elements
- Safety switch input (I2.0) - Start button (I0.0) - Machine output (Q0.0)
Implementation
- Combine safety switch and start button conditions using logical AND.
4
Sample Code (Structured Text)
```structured-text IF (I2_0 = TRUE) AND (I0_0 = TRUE) THEN Q0_0 := TRUE; // Start
machine ELSE Q0_0 := FALSE; // Stop machine END_IF; ```
Best Practices for Siemens S7-1200 Programming
To develop reliable and maintainable control programs, consider these best practices:
Use descriptive variable names: Clear naming conventions improve readability.
Comment extensively: Document logic for future troubleshooting and updates.
Modularize code: Break programs into function blocks for reusability.
Test incrementally: Validate each part of your program before integrating.
Implement safety features: Include emergency stop, safety interlocks, and fault
detection.
Troubleshooting Common Issues
Even experienced programmers encounter challenges. Here are common issues and
solutions:
Unexpected outputs: Verify wiring and input status, check for logical errors.1.
Communication failures: Ensure network settings are correct and cables are2.
intact.
Timer or counter not resetting: Confirm proper reset conditions and variable3.
states.
Program not compiling: Check syntax, variable declarations, and library4.
dependencies.
Conclusion
Mastering Siemens S7-1200 PLC programming involves understanding both foundational
and advanced control concepts. Through practical programming examples such as motor
control, sensor interfacing, timed operations, and safety interlocks, users can develop
robust automation solutions. Continual learning, adherence to best practices, and
systematic troubleshooting are key to becoming proficient in S7-1200 programming.
Whether you are designing simple control systems or complex automation architectures,
these examples serve as valuable references to accelerate your development process and
ensure reliable operation. For further learning, explore Siemens' official documentation,
online tutorials, and community forums dedicated to PLC programming. With hands-on
experience and a solid understanding of these examples, you'll be well-equipped to tackle
diverse automation challenges using the Siemens S7-1200 series.
QuestionAnswer
5
What are some common
programming examples for
Siemens S7-1200 PLCs?
Common programming examples include ladder logic for
motor control, conveyor belt automation, temperature
control systems, alarm handling, and basic sequencing
processes. These examples help users understand core
functionalities and develop custom solutions.
How can I implement a
basic motor start/stop
control using Siemens
S7-1200 PLC?
You can implement a motor start/stop control by creating
ladder logic with pushbutton inputs (start and stop), a seal-
in circuit for maintaining motor operation, and output coils
controlling the motor relay. Using Siemens TIA Portal, you
can configure these elements easily within your program.
Are there sample projects
available for learning
Siemens S7-1200 PLC
programming?
Yes, Siemens provides sample projects and tutorials within
the TIA Portal software, covering various applications such
as motor control, process automation, and data logging.
These samples serve as practical references for beginners
and advanced users.
What are the best
practices for writing
efficient Siemens S7-1200
PLC programs?
Best practices include modular programming for easy
maintenance, using descriptive tags and comments,
optimizing scan times by minimizing unnecessary logic,
and leveraging Siemens' programming blocks like FBs and
FCs. Proper documentation and simulation before
deployment are also crucial.
How do I troubleshoot and
debug Siemens S7-1200
PLC programs effectively?
Troubleshooting can be done using Siemens TIA Portal's
online monitoring tools, such as watch tables, breakpoints,
and live data logging. Checking hardware diagnostics,
verifying input/output statuses, and reviewing program
logic step-by-step also help identify issues efficiently.
Siemens S7-1200 PLC Programming Examples serve as an essential resource for
automation professionals and engineers seeking to understand, implement, and optimize
their control systems. The Siemens S7-1200 series is renowned for its versatility,
scalability, and robust performance in industrial automation environments. Whether
you're a beginner or an experienced programmer, exploring practical programming
examples can significantly accelerate your learning curve and help you develop reliable
control solutions. In this comprehensive review, we will delve into various programming
scenarios, best practices, and the features that make the Siemens S7-1200 PLC a
preferred choice for modern automation projects. ---
Introduction to Siemens S7-1200 PLC
The Siemens S7-1200 PLC is a compact, modular programmable logic controller designed
for small to medium-sized automation tasks. It integrates seamlessly with Siemens’
Totally Integrated Automation (TIA) Portal), allowing for streamlined programming,
configuration, and diagnostics. The S7-1200 series supports a broad range of
communication protocols, onboard I/O modules, and advanced features like motion
control and safety functionalities, making it a versatile platform for various applications.
Siemens S7 1200 Plc Programming Examples
6
Key features include: - Integrated Ethernet communication - Modular design with
expandable I/O - Support for programming languages such as Ladder Logic, Function
Block Diagram, and Structured Text - Built-in web server for remote diagnostics -
Compatibility with Siemens TIA Portal for programming and diagnostics ---
Getting Started with S7-1200 Programming
Before diving into complex examples, understanding the basics of programming in TIA
Portal and the structure of S7-1200 projects is crucial. The typical workflow involves
creating a new project, configuring hardware, setting up communication, and then
developing your logic using one of the IEC 61131-3 programming languages. Initial steps:
- Hardware configuration in TIA Portal - Creating tags and variables - Developing logic
diagrams - Downloading the program to the PLC - Monitoring and troubleshooting Now,
let's explore specific programming examples that demonstrate common automation tasks.
---
Basic On/Off Control Example
Objective
Implement a simple start/stop control for a motor using push buttons and indicator lights.
Implementation Details
- Inputs: - Start button (I0.0) - Stop button (I0.1) - Outputs: - Motor run indicator (Q0.0) -
Logic: - Use a latch (seal-in) circuit to keep the motor running after pressing start until
stop is pressed.
Sample Logic in Ladder Diagram
``` | Start Button (I0.0) | Stop Button (I0.1) | Motor Output (Q0.0) | ---------------------------------
---------------------------- | | | | | | | | | | | | | | | | | | | | | | |---[ ]---[ ]---+---[ ]---+---( )---| | I0.0 |
Motor | Q0.0 | | Start | Coil | Motor | | | | | |---[ ]--------------+ | | I0.1 Stop | | | ``` Features &
Pros: - Simple and easy to understand - Demonstrates fundamental seal-in circuit - Easy to
implement in Ladder Logic Cons: - Limited to basic control; lacks safety interlocks or fault
detection - Not suitable for complex logic ---
Counter and Timer Examples
Counting Items on a Conveyor Belt
Objective: Count the number of items passing a sensor and stop the process after
reaching a preset count. Implementation: - Inputs: - Sensor (I0.2) - Start button (I0.0) -
Siemens S7 1200 Plc Programming Examples
7
Outputs: - Conveyor motor (Q0.1) - Data: - Counter variable (Counter1) Logic: - Use a CTU
(Count Up) instruction to increment the counter each time the sensor detects an item. -
Use a comparison to stop the conveyor after the counter reaches a limit. Sample
Pseudocode: ``` IF sensor detects item AND conveyor is running THEN Increment
Counter1 END_IF IF Counter1 >= preset_value THEN Stop conveyor motor END_IF ```
Features & Pros: - Useful for production counting - Demonstrates use of counters and
comparison instructions - Modular and adaptable for different counts Cons: - Needs proper
debounce for sensor signals - Limited to simple counting tasks ---
Delay Timer for Filling Process
Objective: Fill a tank with a delay (e.g., wait for a certain time before opening a valve).
Implementation: - Inputs: - Fill request (I0.3) - Outputs: - Valve control (Q0.2) - Timer: -
TON (On delay timer) Logic: - When fill request is active, start timer. - After timer elapses,
open valve. Sample Logic: ``` IF Fill_Request (I0.3) THEN TON (Fill_Timer, T30s) IF
Fill_Timer.Q THEN Q0.2 := TRUE; // Open valve END_IF ELSE Q0.2 := FALSE; // Close valve
Reset Timer END_IF ``` Features & Pros: - Automates timed delays - Easy to implement
with TIA Portal - Widely applicable in process control Cons: - Timer inaccuracies if not
configured properly - Not suitable for real-time critical timing ---
Advanced Control: PID Loop Implementation
Objective
Maintain a specific temperature or level using a PID controller.
Implementation Details
- Inputs: - Process variable (e.g., temperature sensor) - Outputs: - Control element (e.g.,
heater power, valve opening) Sample Structure: - Use the PID function block in TIA Portal.
- Configure parameters: Setpoint, PV (Process Variable), PID gains. Sample Logic in
Structured Text: ```pascal // Declare PID variables VAR TempSetpoint : REAL := 100.0; //
Desired temperature PV_Temperature : REAL; // Read from sensor PID_Controller : PID_FB;
// PID Function Block Control_Output : REAL; END_VAR // Read sensor value
PV_Temperature := ReadTemperatureSensor(); // Configure PID PID_Controller.P := 2.0; //
Proportional gain PID_Controller.I := 0.5; // Integral gain PID_Controller.D := 0.1; //
Derivative gain PID_Controller.SetPoint := TempSetpoint; PID_Controller.PV :=
PV_Temperature; // Execute PID PID_Controller(); Control_Output := PID_Controller.Q; //
Use Control_Output to adjust heater power AdjustHeater(Control_Output); ``` Features &
Pros: - Precise control of analog variables - Integrated in TIA Portal - Supports auto-tuning
Cons: - Requires tuning for optimal performance - More complex to implement and
Siemens S7 1200 Plc Programming Examples
8
troubleshoot ---
Communication and Data Exchange Examples
Modbus TCP Communication
Objective: Exchange data between Siemens S7-1200 and a remote device or HMI.
Implementation: - Configure Ethernet port - Use TIA Portal’s communication blocks - Map
variables to Modbus registers Sample Use Case: - Read sensor data from an external
device - Send control commands remotely Features & Pros: - Facilitates remote
monitoring and control - Compatible with many devices and protocols Cons: -
Configuration complexity - Network security considerations ---
Using OPC UA Server
Objective: Provide data to higher-level SCADA systems. Implementation: - Enable OPC UA
server in S7-1200 - Define data blocks and variables - Configure client access Features &
Pros: - Standardized data exchange - Secure and scalable - Integrates well with modern
SCADA systems Cons: - Additional setup required - Potential licensing considerations ---
Safety and Fault Handling Examples
Emergency Stop Circuit
Objective: Implement a fail-safe emergency stop. Implementation: - Use a dedicated
safety input - Interlock safety outputs - Use Siemens safety modules for critical
applications Features & Pros: - Enhances safety compliance - Protects personnel and
equipment Cons: - Increased hardware costs - Additional programming complexity ---
Best Practices and Tips for S7-1200 Programming
- Modular Programming: Break logic into manageable blocks for easier maintenance. -
Comment Extensively: Use comments to document logic for future troubleshooting. - Test
in Simulation: Use TIA Portal’s simulation features to validate logic before deployment. -
Implement Error Handling: Use status bits and diagnostic functions to handle faults
gracefully. - Optimize Scan Time: Keep scan cycles short for real-time responsiveness. -
Secure Communications: Use encryption and authentication for networked applications. ---
Conclusion
The Siemens S7-1200 PLC provides a flexible and powerful platform for a wide range of
automation tasks. Exploring programming examples—from simple control circuits to
advanced PID loops and communication
Siemens S7 1200 Plc Programming Examples
9
Siemens S7-1200, PLC programming, TIA Portal, ladder logic, automation examples, PLC
code, S7-1200 tutorials, Siemens PLC projects, programmable logic controller, industrial
automation