Today is...
Wednesday, May 23, 2018
Welcome to, the global online
community of automation professionals.
Featured Video...
Featured Video
A demonstration of EtherCAT control of linear motors using the CTC EtherCAT master.
Our Advertisers
Help keep our servers running...
Patronize our advertisers!
Visit our Post Archive
PLCs: Siemens AWL vs. KOP
advantages/disadvantages of AWL over KOP or FUP
By Engelbert Rodriguez on 16 April, 2010 - 4:31 am

Good evening,

I'd like to ask for help in Siemens PLC Programming, most of all I'd like to know the advantages / disadvantages of AWL over KOP or FUP. Apart from the typical issue about "easy to programming" what is the real advantage of AWL? can you suggest some site or documentation?

Thanks in Advance


By david mertens on 19 April, 2010 - 3:27 am

KOP/LAD and FUP/FCB are simple languages structured to offer the programmer an easy environment in which to solve basic logic problems. While experienced programmers can do amizing things with KOP/FUP there are a lot of algorithms that can not or only barely be solved. Complex logistical problems or control algorithms are near to impossible to implement in KOP/FUP as these languages don't offer all functionality of the S7 CPU. AWL/STL on the other hand is a machine level language (comparable to assembler in PC's) for the S7 CPU's. This allows the programmer to solve any type of problem but also puts the burden of programming structure, memory allocation on the programmer. In AWL complex pointer operations are possible but small errors may have large consequences. To avoid running into problems here, SCL a higher level programming language has been developed similar to the pascal language for PC's. This takes away some of the risks and complexity of AWL while still offering most of the freedom of programming to create complex algorithms.

When troubleshooting some PLC-program I may think "what a muddler who wrote this crap", only to find the muddler was me!

It's always a good thing to bear in mind that someone someday may need to read and understand the concept of what you create in your program. For example it should be easy to analyze and read status.

As a personal rule I use graphical representation FUP/FCB (or KOP/LAD) for bit logic (Boolean operations) and timer functions. Everything else is better done as instruction list (AWL/STL). Although Step 7 supports graphical representations of all instructions, it's not a good idea. It takes up huge space in representation or and print report and it generates lots of unnecessary code.

After 22 years of Siemens programming, I still use pure AWL (STL): fast coding, easy copy/paste, flexibility in doing any task, easy source/compile operations.

I also use SCL for extensive data management (e.g. multidimensional arrays of typed structures).

I reject any Simatic graphic language, but that's a personal choice. As a quick hint, you should use the language you feel more comfortable with; anyway nothing beats the productivity of AWL + SCL.

Can I integrate SQL or access database to S7 program?