Programmable logic controller
A PLC (Programmable logic controller) or programmable controller is a small industrial computer used to control how/when machines work.
A PLC (Programmable logic controller) or programmable controller is a small industrial computer used to control how/when machines work.
[1]
[6]
[6] Applications can be for systems with minimal or no manual controls, like on/off control or sophisticated systems based on calculation and sequences. Before PLCs, banks of relays (Fig [6]) were used, each controlling dedicated input/output based on physical wires, some controlling each other to form larger controllers.
E.g. Via 1 AND gate, if 2 inputs (relays) energize, does the output relay energize
Main PLC types are:
Fixed/Compact PLC
All components (CPU, power supply, I/O) are built into 1 unit.
Example: Siemens LOGO!, Allen-Bradley MicroLogix.
Modular PLC
Components are separate modules (CPU, I/O, comms) mounted on a rack.
Easy to expand and customize.
Example: Siemens S7-300, Allen-Bradley ControlLogix.
Rack-Mounted PLC
A larger modular system where each module plugs into a chassis (rack).
Suited for complex, large-scale automation.
Soft PLC
PLC functions are done by software on a PC instead of dedicated hardware.
Distributed PLC
Multiple PLCs connected over a network, handling control tasks across different locations.
Want me to also break down brands/models with examples for each type?
The SIMATIC S7-300 (S7300) is a modular, mid-range PLC made by Siemens, often used in industries for various automation tasks.
A common PLC series by major manufacturers are:
Siemens’ PLCs are branded as “SIMATIC”:
S7-200
S7-300
S7-400
S7-1200
S7-1500
Allen-Bradley (Rockwell Automation):
MicroLogix (1000, 1100, 1200, 1400, 1500)
CompactLogix
ControlLogix
Mitsubishi electric:
FX Series (FX1S, FX1N, FX3U, etc.)
L Series
Q Series
iQ-R Series
Omron:
CP Series
CJ Series
CS/CJ2 Series
NX Series
Schneider Electric:
Modicon M221, M241, M251
Modicon Quantum
Modicon Premium
If you want, I can make a quick comparison table of these series with their typical applications and sizes. Do you want me to do that?
Its key features are:
Modular design: Includes a range of components like CPU modules, power supplies, digital/analog I/O modules, communication modules, and function modules (e.g., for counting or motion control).(botworksautomation.com, spsdirekt.com, allaboutplcs.com)
Space-Efficient & Fanless: Compact and reliable, suitable for control cabinets.(KM AUTOMATION, botworksautomation.com)
Communication Flexibility: Supports protocols like PROFIBUS, PROFINET, CAN, and others—via dedicated modules—enabling integration in complex networks.(allaboutplcs.com)
Scalable Performance: Available in different CPU power tiers (standard, compact, fail-safe, technology-specific)—expandable over time.(e-motionsupply.com, spsdirekt.com)
Advanced Diagnostics: Built-in diagnostic features help reduce downtime.(KM AUTOMATION, indmall.in)
Usual usages:
Used in manufacturing, packaging, textiles, water treatment, chemical/pharmaceutical industries—handling both general machine control and complex automation.(plc-siemens.com, KM AUTOMATION, indmall.in)
Lifecycle Notes:
Launched in 1995, the S7-300 series has been very successful and is still widely used globally.(botworksautomation.com, Wikipedia)
Siemens is phasing it out, with support expected until around 2033.(Wikipedia, botworksautomation.com)
Many practitioners on forums note that although it's officially “end-of-life,” it remains in active use—especially in legacy systems—and skills learned on it transfer well to newer models.(Reddit)
“Siemens has officially declared 'end-of-life' for the S7-300 but there are like a million of them in the field still working fine… you aren’t wasting your time by using one.”(Reddit)
Comparison to Newer Models:
S7-1500 is the modern successor, offering better diagnostics, onboard display, faster performance, and ease of integration via TIA Portal.(realpars.com)
Yet, if working with existing systems or training, S7-300 remains relevant and practical.(realpars.com, Reddit)
STEP 7 is Siemens’ software used to program and configure their PLCs (mainly the S7-300, S7-400, and older S7-1200/1500 before TIA Portal).
STEP 7 allows us to:
Write PLC programs (ladder logic, function block diagram, statement list).
Configure hardware (CPU, I/O modules, communication).
Monitor and troubleshoot PLC operations.
Download/upload programs to/from the PLC.
It runs on Windows and was later integrated into TIA Portal (Totally Integrated Automation), which is Siemens’ newer all-in-one platform.
other STEP 7 variants are:
STEP 5 → Old software for Siemens S5 PLCs (now obsolete).
STEP 7 MicroWIN → For Siemens S7-200 PLCs.
STEP 7 Basic / Professional → Editions for S7-300/400/1200/1500.
STEP 7 in TIA Portal → The modern version integrated into Siemens’ TIA Portal platform.
A user program
[1] It consists of logic blocks and data blocks.
Logic blocks are blocks with a code section like organization blocks, function blocks, or functions.
[5] Organization blocks (OBs) form the interface between the operating system and the user program. Different organization blocks have different functions.
To make an LAD user program for a S7 CPU, we select the OBs needed for a specific automation task. Most basic task need:
Startup (OB100, OB101)
Scan cycle (OB1)
Error handling (OB80 to OB87, OB121, OB122), if you do not want your
CPU to switch to STOP if an error occurs.
There are also organization blocks available to handle interrupts in the CPU or other interrupts from the process.
[5] We can program all organization block as a structured program by creating functions (FCs) and function blocks (FBs) and calling them in the code section. As the blocks are called, we supply the data needed for declared parameters.
A function block (FB) is a logic block with “memory”. This memory takes the form of instance data blocks assigned to the FB. The instance DBs store all the actual parameters and static data relating to the function block.
A function (FC) is a logic block without “memory”, in other words without associated instance DBs. After an FC has been processed, the output parameters contain the calculated function values. Once the function has been called, the user decides how the actual parameters are used and stored.
The operating system makes the following data available:
Peripheral I/Os
Process image input/output
Bit memory
Timers
Counters
[5] You can also define your own data:
We can define shared data in data blocks. This data is accessible to the entire user program.
We can define static variables. These are only valid in the function block within which they are defined. Every time an FB is called, an instance data block is specified which includes all parameters and the static data. In the case of multiple instances, the instance and static data are incorporated in the instance data block.
We can define temporary data when you create logic blocks. This data only needs stack memory during the actual processing of the block. Data blocks store the data of the user program. There are 2 data block types: shared data blocks and instance data blocks.
Shared DBs can be accessed by all the blocks in the program. Instance data blocks are assigned to a function block and contain not only the data of the function block but also the data of any defined many instances. Thus, we should only access an instance data block in connection with its own specific function block.
[1] Wikipedia
[3] All About PLC's
[4] Ladder Logic (LAD) for S7-300 and S7-400 Programming - Cache Industry Siemens (PDF)
[4.1] saved file (Discord)
[5] Ladder Logic (LAD) for S7-300 and S7-400 Programming - Brescianet (PDF), this file appears to be different version of the Cache Industry Siemens', althought similar
[5.1] saved file (Discord)
[6] Programable Logic Controller Basics Explained - automation - The Engineering Mindset (Youtube)