On-line tutorials, manuals for Siemens S7 Docs


Thread Starter

William Sturm

I have a job prospect that may require some Siemens PLC programming. Does anyone know of any good source of on-line tutorials, manuals. I found some videos and brochures on their web site, but not as much as I had hoped. I didn't see any manuals at all.

Bill Sturm
Useful information is buried somewhere deep in the Siemens web site. Digging it out probably takes as much research and effort as understanding their PLCs does.

Try this link. It worked for me, but there is no guaranty that it will work for anyone else. This should take you to a page which lists the manuals. Set the "entry type" to "Manuals". You should get about 15 pages of manuals listed. You'll have to go through them and figure out which ones you want. You will also want to poke around in the tree menu on the left side of the page.


One problem that you will have is that there is no single thing which can be described as a "Siemens PLC". Siemens has sold a number of products under the "Siemens" brand, some of them designed and made by themselves, and some from other companies.

1) The S5 family. These are obsolete, but there are a lot of them still around.

2) The Siemens-TI family. Again, these are obsolete, but there are lots still around.

3) Koyo (Automation Direct) family. Siemens use to sell some of these as "Siemens" PLCs.

4) The S7-300/400 family. These are descended from the S5 family and fill their mid to high market segment.

5) The S7-200 family. The programming model more closely resembles the re-branded Koyo "Siemens" PLCs (with a conversion to IEC addressing) than it does their other PLCs. These fill the low range market segment. This is a very conventional PLC, which anyone can understand right away.

6) The S7-1200 family. This seems to be a cross between the S7-200 and the S7-300 together with some new things of its own. The hardware design seems to be intended to fill the same market as the S7-200, but I think they've lost the simplicity and ease of use of the S7-200.

The S5 manuals are quite good. The S7-200 manual is excellent possibly the best that I've ever seen). The S7-1200 manual is adequate.

There doesn't appear to be any manual for the S7-300/400. Instead there are individual PDFs covering different topics which you have to hunt around for to try to piece together how this PLC family works. The information all seems to be there somewhere, but for any particular model what you want might be spread between a dozen or more different PDFs with nothing to tell you which ones you need.

So, when you say you want information on "Siemens PLCs", the first thing you need to figure out is what sort of Siemens PLC. If the S7-300/400 is what you are looking for, then I think the best advice I could give you is to first read a manual for one of the S5 PLCs (the S5-95U would be a good choice) to get an overview of the basic concepts. After that, then look for the various bits and pieces for the S7-300/400 to see how that differs from the S5. The concepts are similar, but the implementation differs in a number of important respects.
Hi, You can download pretty much of their manuals. what are you looking for? do you have any PLC programming knowledge?


William Sturm

Thanks for all of the links, a few look more interesting than what I found on their basic support page. I did find some videos that give a nice overview. Here is a link, it was very hard to find:


I have programmed PLC's for many years, mostly A-B and Koyo (Automation Direct...) I do not know specifically which PLC they are using, but I do know that they design high end equipment with a lot of motion, some for the automotive industry. They mentioned A-B and Siemens. I would guess they are using the S7-300/400 family. That is where I will focus until I find out more specifics. It is nice to know that the S5 manuals might be a good reference.

I did tell them that I only have a general idea of a Siemens PLC and have never actually used one. Luckily, I have other skills that they are interested in also. I know enough about Siemens to know that I cannot reasonably bluff my way through by saying I can program any PLC :) I just want to to be able to talk intelligently about Siemens PLC's when I meet with them.

Thanks to all,
Bill Sturm
If they are designing high end equipment with a lot of motion for the automotive industry and they are using Siemens PLCs, then they are using S7-300 and S7-400 PLCs. The S7-300 range will probably cover everything they do, so they may not use the S7-400 at all. The S7-400 is basically just the S7-300 in a larger package.

As an overview of the S7-300/400 (and S5) PLC architecture:

1) Program logic is organised in "blocks" (subroutines) of different types. Each block is named using a 2 character prefix plus a numeric extension (e.g. OB1, FB23, etc.).

2) OB blocks (organisation blocks) are the highest level. When the PLC starts scanning, it starts with OB1. Remember "OB1". Certain other OB blocks are used for special purposes, such as your logic for start-up, errors, time based execution, etc. OB names and functions are all predefined, but you have to create them before you can use them. OB1 should normally just contain a series of calls to other blocks (subroutines).

2) FB blocks (function blocks) are subroutines which take parameters. You create as many of these as you need. This is where most of your logic will reside in an S7-300/400. For an S5, FBs are normally only used where you need to pass parameters. In the S7-300/400 (but not the S5) these can have local variables (variables that don't exist outside the scope of the FB).

3) FC blocks (function call blocks). These exist in the S7-300/400 (they don't exist in the S5 though). These also accept parameters. They are intended for logic which performs a simple operation (e.g. a calculation) and passes back the result. It is a subtle difference from the FB, mainly related to what people expect them to be used for.

4) DB blocks (data blocks). These hold data as 16 bit words. They analogous to integer files on an AB PLC-5 or SLC-500. You can create as many as needed (up to whatever the limit is for that PLC). You normally use these for storing word data associated with a particular FB. You have to select ("call") a DB before you can address it. An S5 PLC can only address 1 DB at a time. An S7-300/400 FB can address 2 at a time, provided that 1 of them is an "instance" DB which is associated with that FB in the configuration. The "instance DB" is where the local data is stored.

5) The S5 also has PB (program blocks) and SB (sequence blocks). These are just subroutines that don't accept parameters. In an S5 program, most of your logic would be in PBs. There are no PBs or SBs in the S7-300/400 (this role is filled by the FB there). An S5 FB is equivalent to an S7-300/400 FC.

6) Counters and timers count (and time) down from the preset to zero. The "done" bit is simply the counter or timer address used in a boolean context (just like with a Koyo).

7) Addressing works as follows. "I" addresses are inputs (e.g. "I12.7"). "Q" addresses are outputs (e.g. "Q4.1"). "M" addresses are bits used as general purpose flags (e.g. "M23.5"). "C" is for counters (e.g. "C5"). "T" is for timers (e.g. "T99"). All of these are global addresses. Data block (DB) addressing is more complex, so I will just suggest that you read up on it. "L" addresses are "local" addresses in S7-300/400 FBs, which are stored in the "instance" DB which belongs to that FB (if you created one). "L" addresses only exist within the scope of the FB they are associated with, so the same "L" address name can exist in different FBs without conflicting with each other. It is good programming practise to use local addresses where it is possible to do so.

8) I, Q, and M addresses can be addressed as bit, byte, word, and double word by using different address prefixes. E.g. "M1.0", "MB1", "MW2", etc. You are accessing the same memory locations in case. Each memory type is just an array of bytes, and you are selecting a byte offset and word size with the address prefix. That means you can read the same memory location in different ways. DB addressing is completely different, and I won't attempt to cover it here. However, DB addresses are rarely accessed as anything other than words. "L" addresses can be bit, byte, word, and double word, but their memory location is automatically allocated for you.

9) You are going to have to learn IL (also called "statement list"). There are a lot of complex things which you simply can't do in ladder on a Siemens PLC. In addition to that, some people just prefer to write even the simple things in IL because *they* understand it (and they don't care about what happens after they are done with it).

10) The programming software for the S5 is called "Step-5". This has to be one of the top contenders for the "worst PLC programming software ever" prize. This was originally designed to run on CP/M (which tells you how old it is), and was then ported to run on MS-DOS, and then later on MS Windows XP.

11) The programming software for the S7-300/400 is called "Step-7". It is totally different from Step-5, and is actually not too bad. I think it is a bit too complicated though for what it needs to do (you could say the same about most things from Siemens though).

12) The remote I/O module network protocol is "Profibus-DP" (sometimes just called "DP"). There are (or were) other types of Profibus, but DP is all you are likely to ever see. The Ethernet equivalent is Profinet, but it doesn't seem to get used much. Siemens has a special version of Profibus called "MPI" which they use for their programming interface, and also to connect their small HMI panels to the programming port on their PLCs.

13) You might want to flip through the Siemens catalogue web pages to look at their I/O modules. If the company you are talking to is using the Siemens motion control cards, these will be "FM" modules. I have some experience with their multi-axis motion control card, and I was not impressed. A stand alone motion controller that was networked to the PLC would probably be a much better solution for anything complex.

14) Indirect addressing in Siemens PLCs can be mind bogglingly complex (depending on what you are trying to do) and I won't even attempt to describe it. However, it can be done.

15) It can take several times as much memory to do something with a Siemens S7-300/400 PLC than it does to do the equivalent with many other PLCs. That means that what seems to be a "large" memory size in a Siemens PLC may actually be equivalent to a much smaller memory size in another brand.

If you understand the above, you have a good overview of "Siemens PLCs".

William Sturm

Thanks Michael,

That is a really great overview. I have also been looking at the A-B ControlLogix PLC's. I've seen those more but not used them either. It seems that the ControlLogix is a lot closer to the Siemens S7 style of programming than the older A-B platforms. All this structure is OK with me, because I have always tried to structure my PLC logic anyways. I program in C and Basic also and I try to program PLC's the same way. It used to be hard to do, but now it might be expected. I'm sure it is possible to write some very well organized programs in S7.

One time I had a chance to see some actual Siemens logic, the programmer was basically programming it like an old school PLC, I think all of the logic was in OB1. He was trying to tell me it was no different than any other PLC. I wonder how many people do that. Same issue for ControlLogix too, I suspect.

From what I have Googled, I think the company uses a PC based motion system of some sort. The PLC is probably more for safety and integration, not so much for motion. That is fine with me, I have always done motion in a similar fashion.

I'll know a lot more tomorrow...

Thanks again,
Bill Sturm

William Sturm

I had my interview this morning and it went very well. As it turns out, their HR person led me astray and they do not use PLC's. They do use PC based motion systems and plan to use mostly Siemens or Fanuc CNC's in the future. They are also looking more for a hardware engineer than software. All this is fine with me, it was just not what I was expecting. It is still beneficial to have some knowledge of Siemens PLC's.

Bill Sturm