THESE 5 SKILLS ARE REQUIRED OF EVERY PLC PROGRAMMER
Whenever I pick up a new programming language, I frequently find myself wondering, "What can I actually accomplish with this and what else can I learn?" This primarily pertains to computer programming languages, but when I first started, PLC programming was similar to that. For PLC programmers to develop to an intermediate level, there are five abilities that they need to possess. I will go into depth on each of these five talents in this post. You are familiar with counters, timers, and perhaps even data movement. See what else we can learn right now!
1.Know How To Properly Map I/O
The best course of action when dealing with physical I/O is to always utilize your physical I/O outside of control applications. To connect your I/O to memory bits, create either one or two subroutines. Create as many rungs as you need I/O by using a straightforward contact connected to a coil.
Although it can be a little laborious, doing this will end up saving you money. Depending on the state your sensor needs to read for the application, the coils can either be XIO or XIC. In addition, while replacing, what happens if you don't have a typically open sensor and substitute a normally closed one? Simple. Your program will change the contact when you make that one change, and it will take effect immediately.
Even if a controller contains an instruction that will accomplish this for you, I advise against using it. The visualization of the rungs can aid in problem-solving and troubleshooting.
2.Learn Multiple Languages
IEC 61131-3 specifies a number of PLC programming languages; in fact, PLCGurus.NET wrote an article that covers all of the languages in the standard in some detail. Despite the fact that ladder logic is the most used programming language, you will almost certainly encounter others throughout your PLC career.
Additionally, function block diagrams are frequently used, and reading one is not too difficult. Similar to digital logic gates are FBD. If you can comprehend the inputs and outputs, the block does the necessary operations to produce an output that may then be connected to another input through a chain.
The final language I'll discuss is structured text, which I'm seeing used more and more. You'll frequently hear "structured text" or "ST" while working with Allen Bradley, whereas "structured control language" or "SCL" is used when dealing with Siemens. They have certain similarities, even if they are not the same.
These two languages act as a bridge between computer programmes and PLC programmes. SCL is comparable to Pascal, whereas ST resembles other coding languages. Because of their strength and capacity for complicated processing, these languages are becoming increasingly prevalent. When working with arrays, the FOR and WHILE loops are helpful, and code may be shortened up by using ST rather than ladder when looping. I frequently use SCL for lookup tables and sorting algorithms.
Remember that any language will occasionally have advantages and disadvantages. Not all languages are advantageous in all circumstances. I've found that ladder works well for most control schemes, but having various languages in your toolbox might be helpful if you want to try a more involved solution.
3.Acquire Networking and Communication Skills
There are an increasing number of ways to communicate and receive data in the modern world. PLCs frequently need to link to other devices for controls and diagnostics. The right connections must be formed and a common networking protocol must be developed for the two to communicate. As long as the two devices are speaking the same language, most communications are reasonably simple to integrate in a system.
Modbus RTU is one of the oldest protocols and a need for all control specialists. Since Modbus has been in use for more than 30 years, a vast number of devices are compatible with it. Even as networking technology advances, Modbus is still in use all across the world today. I've used Modbus in various situations, and it has always been helpful to me. Modbus TCP/IP is essentially the same thing as Modbus RTU in terms of data, but it is wrapped in a TCP protocol. Modbus RTU is serial communication.
Ethernet/IP and Profinet (Siemens) are additional protocols that are utilized often (Allen Bradley). It is not essential to go into great depth with these protocols, even if it is beneficial to grasp the inner workings of each of them. You will be in good hands as long as you understand how to use these protocols in your controllers, establish communications with other devices, and send messages back and forth. Exploring Modbus's finer points is something I really encourage since it will help you comprehend and appreciate communications much better because you will know exactly what information is being delivered over the wire.
4.Learn PID and Process Control
Ethernet/IP and Profinet (Siemens) are additional protocols that are utilized often (Allen Bradley). It is not essential to go into great depth with these protocols, even if it is beneficial to grasp the inner workings of each of them. You will be in good hands as long as you understand how to use these protocols in your controllers, establish communications with other devices, and send messages back and forth. Exploring Modbus's finer points is something I really encourage since it will help you comprehend and appreciate communications much better because you will know exactly what information is being delivered over the wire.
The majority of controllers use PID loops, which are essentially the same since they include numerous adjustable variables like Kp, Ki, Kd, bias, and sampling time. For the purpose of creating a good, responsive loop without overshoot, each of these concepts is essential.
A PID loop is an algorithm that, without getting into too much detail, attempts to increase or decrease an analogue output to a point where a process variable is at a specific setpoint. PID loops have several uses, including as heating an oven, creating pressure with a pump, maintaining the level of water in a tank, or even controlling a servo to spin the shaft to the desired setpoint while compensating for momentum to prevent overshooting. The loop accounts for process disruptions and makes adjustments by modifying the output.
I suggest reading this post here if you want to understand more about PID loops and their specifics. Don't forget to view the comprehensive YouTube series created by PLCGurus.NET as well. Fred does a great job of explaining how to use Studio 5000, Studio 5000 Emulate, and FactoryTalk View Studio to model, forecast, and optimise the dynamic response of a closed-loop process. What a fantastic series! To get you started, here is the first video in that collection
5.Understand Indirect Addressing and Arrays
Knowing the value of indirect addressing is one of many abilities that will make you stand out as a programmer. I previously explained that many PLCs have several languages that can provide your code flexibility. Ladder logic is the primary use of indirect addressing, but when combined with it, the number of applications that may be employed in a ladder-only environment rapidly grows. I'll try my best to describe how indirect addressing functions in a PLC as an added bonus to this essay.
Let's start with the tried-and-true illustration of starting up many motors sequentially with a time delay in between them to prevent your panel from exploding from the inrush current. For four or maybe five motors, you might have many rungs with the exact same logic on them. What transpires, though, if you need to switch on 12 or even 32 lights simultaneously? Your closest buddy is indirect addressing, and it only takes about three lines of code to do the work. This is how it functions.
Another illustration. Take an address, please. As an example for the RSLogix500's older AB type processors, let's say B3:0/0. A "pointer" must be added to this URL in order to make it dynamic. Brackets are used in this process. New address will be B3:0/[N7:0]. What is the value of the pointer is additional data that we require. Let's begin at 0 for simplicity. The scan cycle examines the address B3:0/[0] or B3:0/0 and evaluates the logic when it reads the rung with the indirect address.
Comments
Post a Comment