[Answer] How Should You Get Started Learning PLC Programming?
![[Answer] How Should You Get Started Learning PLC Programming?](/_next/image?url=https%3A%2F%2Flxunzzzdnokdqhipbmdf.supabase.co%2Fstorage%2Fv1%2Fobject%2Fpublic%2Fmedia%2Fcovers%2Fplc-bf91e8aa.png&w=3840&q=75)
[Answer] How Should You Get Started Learning PLC Programming?
[Answer] How Should You Get Started Learning PLC Programming?
To learn PLCs well, it’s best to have at least some foundation in secondary wiring/control circuits; otherwise, there’s really nowhere to begin. You also need to learn from practice—doing and learning at the same time. Third, you need to develop programming concepts and ways of thinking. That is the overall learning approach. In practical terms, I think the process can be broken down into the following steps.
-
As preparatory study, you need knowledge of secondary (control) circuit principles, including the basic principles of relay control circuits, the ability to read and draw common control schematics, and ideally some real experience with wiring and commissioning. This is not something you can fully master just by reading books, but it is still helpful to find a book on low-voltage electrical control circuits or similar topics and study while practicing. Build a solid foundation and understand basic concepts such as relays, counters, and timers. After all, PLCs were originally designed to replace and simplify relay circuits.
-
In terms of hardware investment, I personally recommend buying an entry-level PLC for practice. I think the cost is worth it. Having actual hardware makes both understanding and practice much more intuitive. In terms of cost-performance and ease of getting started, Siemens small PLCs have long held an irreplaceable position in the industrial market. Under current conditions, the S7-200 Smart or S7-1200 are both good starting points, and of the two I would recommend the S7-1200 more. One reason is that both the S7-1200 and the more advanced S7-1500 use the same TIA platform. Another is that the TIA platform is clearly Siemens’ main software platform for the future. (That said, be mentally prepared before installing TIA—it can make even a decently configured computer run painfully slowly.) The S7-200 is still widely used, but it has clearly fallen behind the times.
-
For the basics, among popular textbooks, Liao Changchu’s books are probably the most widely used and the easiest to follow. It just so happens that he mainly teaches Siemens PLCs as well. (I’m not sure whether he has a book specifically for the 1200 series, but I would guess he does. At the very least, his books on the 200 and 300 series are quite good.) You should understand the basic structure of a PLC, but don’t get too hung up on it—just learn enough for now. You will have plenty of time to deepen that understanding later in real applications. What you must master thoroughly is ladder logic (LAD), including how to draw and think in ladder diagrams, and basic concepts such as coils, nodes, counters, timers, shift instructions, comparisons, calculations, rising edges, and falling edges. If possible, it is also best to learn about other programming languages and representations, such as STL or FBD. These are not flashy but useless tricks. On the contrary, they can deepen your understanding of PLCs, make certain functions faster and easier to implement, and complement higher-level textual programming very well.
-
In terms of learning methods, the ideal situation is to find a mentor who is willing to guide you through real projects. Most PLC textbooks on the market only teach the basics and do not cover real project cases at all. If you ever get the chance—which is admittedly rare—to read some truly well-written PLC programs, it will help a lot with your programming habits and your design thinking. If not, then you need to make the most of the limited practical examples in textbooks, such as running lights, traffic lights, conveyor lines, and similar experimental cases. Wire them up yourself, write the program, and debug it. If you can independently make these functions work, and then combine them with some sensors to implement analog input and output functions, then your foundation is basically in place.
-
At a somewhat higher level, there are two parts to improving your PLC skills: program organization and function implementation. On the program organization side, you should try to understand the roles of blocks such as FB, FC, and DB, and learn the meaning and use of system OBs. Try organizing your program into blocks and reducing repeated work through calls and reuse, so the program becomes clearer and easier to read. This is the foundation for improving your programming level and managing larger programs. On the function-implementation side, it is very important to learn some common programming patterns—for example, sequential transition structures, PID control, stepper motor control, and the principles and implementation methods behind these functions, as well as the use of built-in technology modules in the system. If possible, try writing your own PID control or motion-control function without relying on the built-in system blocks. This is often the dividing line between being merely experienced and becoming truly advanced. I know many engineers who get stuck right at this stage and hit a technical bottleneck. There are many reasons for that. One reason is that ordinary projects often do not require many advanced functions. But in my opinion, the main reason is that if you learn only from the PLC angle, then at a certain point your technical ceiling is determined largely by your perspective and underlying concepts. Since we are talking about learning PLCs, it is worth sharing my thoughts on how to break through that dividing line.
-
Crossing that dividing line. If the entry point of PLC learning is grounded in hardware relay circuits, then the path toward becoming highly skilled is closely tied to software engineering. Although PLCs originated as an abstraction of relay circuits, once that abstraction was completed, PLC programming also became a software engineering task. What engineers do when writing PLC programs is, in essence, a form of software design, and fundamentally it still cannot be separated from the guidance of software engineering principles. The problem is that most people doing PLC programming are engineers, not professionally trained software engineers, so they often find it difficult to improve at the level of cognition and methodology. Concepts implemented by blocks like FC, FB, and DB are in fact closely related to important software engineering ideas such as the separation of logic and data, and the independence of models and instances. Many encapsulated technology blocks are also already written based on object-oriented ways of thinking. Therefore, it is important to master the basic ideas and methods of software engineering. If possible, learn a high-level programming language instead of getting tangled up in configuration software, HMI software, and so-called scripting. Those tools are designed for engineers, but their value for raising your overall understanding and technical level is quite limited. In that sense, mastering a high-level language is the real foundation. Personally, I lean toward Python, because life is short and Python is wonderfully efficient. But in terms of ease of entry and quick visible results, I would still recommend starting with C#.
-
Other supplementary skills and knowledge. Besides software engineering, if you really want to become a PLC expert, I can hardly imagine a greater challenge than designing your own PLC. That would include integrated circuit design and embedded system software design. You would need a foundation in electronic circuits and PCB design, the ability to build a working embedded system, and at the same time a PC-side compiler capable of converting ladder logic into a language that the PLC’s embedded processor can understand. The disciplines and technical content involved here, in my opinion, represent one of the most complete expressions of an automation engineer’s technical ability. If you can reach this stage, then I think you can truly be called a PLC expert.
Having written this much, I suddenly had a thought: if one day I were to write a book about PLCs, maybe I could call it How to Build Your Own PLC: The Road from Beginner to PLC Expert. But of course, that would be a different topic entirely.
![[Thought] Many viruses you’ve probably never heard of also contain DNA, such as iridoviruses](/_next/image?url=https%3A%2F%2Flxunzzzdnokdqhipbmdf.supabase.co%2Fstorage%2Fv1%2Fobject%2Fpublic%2Fmedia%2Fcovers%2Fdna-39161584.png&w=3840&q=75)
![[Answer] What did you do on the night you checked your Gaokao score?](/_next/image?url=https%3A%2F%2Flxunzzzdnokdqhipbmdf.supabase.co%2Fstorage%2Fv1%2Fobject%2Fpublic%2Fmedia%2Fcovers%2F-e4a8ec38.png&w=3840&q=75)
![[Answer] How Can You Score 130+ on the Gaokao Math Exam?](/_next/image?url=https%3A%2F%2Flxunzzzdnokdqhipbmdf.supabase.co%2Fstorage%2Fv1%2Fobject%2Fpublic%2Fmedia%2Fcovers%2F130-157dba52.png&w=3840&q=75)