How do we test and debug our PLC code?
In our previous articles, we dived into PLC systems, how they work, and how we can program them to carry out tasks. Now let’s find out how we can test and debug this programming to make sure everything runs correctly.
PLC start-up
Before we turn on our PLC system, we need to carry out some start-up and checking procedures.
![, How do we test and debug our PLC code?](https://ilearnengineering.com/wp-content/uploads/2024/06/AD_4nXdu0BhPk4CQ_V00DphqrlRl_I8Syfbd4GdhHzTdeaBUc4yXiJidGh2_WrpJp9hIx1DfXfWK4Yd8-G1Ag4gKwJtdgRkepe6SMtJKrIRrtZsuhMH0dp83F2SsOlWHjY-fWgFPClO9sCSy9M3qxaRlIqQF76fvkeyEVLP97ClXvnvYLBr8yU9Uw.png)
These procedures are:
- PLC pre-start up procedures – a visual check that we should carry out before the system is switched on. It can prevent electric shocks from loose wiring or incorrect connections causing problems. Each PLC will have its own set of steps to go through
- Static input wiring check – we need to perform this with power applied to the controller and input devices. It will verify that each input device is connected to the right input terminal and that they are working properly.
- Static output wiring check – now we apply power to the controller and output devices. This check will verify that each output device is connected correctly and functioning as they should.
- Control program review – this is a final review of the control program, and should be done before loading the program into memory. It verifies that the final hardcopy of the program is error free, or at least meets the original design documents.
- Dynamic system checkout – this will verify the logic of the control program. It makes sure the outputs operate correctly. It’s worth noting that this step assumes the previous 4 steps have been carried out.
![, How do we test and debug our PLC code?](https://ilearnengineering.com/wp-content/uploads/2024/06/AD_4nXdQsmU0qDYrFEd6V6TH0biUrEI6FAioXjIoluumIpgIRGaR1-D3DobN1qvVNFq4Adf2AcyOvMv26SZh0lDzJHUDw2NukD5DgLEKQeQgBBKfWptWJzZqccjtr-d-QsV0_vDg6Zw0zFhUFnBCIgm66o1bTX2keyEVLP97ClXvnvYLBr8yU9Uw.png)
Preventative Maintenance
We can also carry out preventive maintenance of PLC systems. It only includes a few basic procedures, but will greatly reduce the failure rate of system components. It should be scheduled alongside regular machine or equipment maintenance so things are down for a minimum amount of time. The harsher the environment the PLC system is in, the more frequently we should carry out this maintenance.
This preventative maintenance includes things such as:
- cleaning or replacing filters installed to ensure air circulation.
- Preventing dust and dirt build up on the PLC’s components.
- Checking the connections to the I/O modules to ensure everything has good connections.
- Making sure heavy, noise-generating equipment isn’t too close to the PLC.
- Keeping any unnecessary items away from the PLC equipment.
- Install a vibration detector where necessary to monitor high levels of vibration that could lead to loosened connections.
Debugging
Imagine we’re programming a PLC we’re not used to. All of the functions, tools and syntax are new and different to what we normally use. We’ll normally find errors showing up as we go through getting used to this new PLC. So, how can we debug and correct these errors?
![, How do we test and debug our PLC code?](https://ilearnengineering.com/wp-content/uploads/2024/06/AD_4nXeAimysLd0id3l8k2IBVlJvpbtTCh1xmGgaaFVBxb35jYYDk-T3yUX3PHFxNNydbYhrNbtPiE-bQ6c1RpUF9mKyXYfuLMk19guxpwhIysQaCyhtA_1Q1M-JGBzg4APR-t1ZU7wlPUV8KBVPtdXlwAGJopJkeyEVLP97ClXvnvYLBr8yU9Uw.png)
Compile as you go
This allows us to identify errors as we go. It can also help us build up our expertise on the new system more quickly. We should compile or build the program often, then decipher the error messages and fix the issues.
![, How do we test and debug our PLC code?](https://ilearnengineering.com/wp-content/uploads/2024/06/AD_4nXc_KD9_h1gw24lGlCM83HEtmkL7U9DQWWVYmtafSCk7lJqrUXMCilvdOGvobKoQQhrtvsKehZphrKQeaPIsj1jfLCsW89XIWXYStX8Z0O57aUUqXLL84jKhGGut3uDmXyBdQ5-U_M4OPuG_lM9OhByOb_YukeyEVLP97ClXvnvYLBr8yU9Uw.png)
Check the messages
Checking and decoding the error messages correctly relies on the environment. We should see if there are root cause messages affecting other error conditions. For example, in CODESYS, if we address the errors at the top of the list, this can often solve other errors lower in the list.
Check the help files and any example programs available
Some environments have a manual or help section. Being familiar with the contents of these can help when a problem comes up. It’s also a good reference to have an example program. It can show us how to go about putting in a read operation that’s performed over a communications network or a simple CASE structure sequence. Often, a vendor can provide some example code and programs.
Test the suspect function separately
This will pick up if we are using a function incorrectly. We can break down the function, what’s input to it and if any of them are incorrect. Ideally, the compiler will tell us what is wrong but this isn’t always the case.
Comment out sections of code and check if the error persists
If we comment out sections of code and compile systematically, we can see which section might be the root cause. We can keep doing this until we find the exact place the error is stemming from, and fix it more easily.
Build a go to resource list
Documenting findings somewhere searchable, will save us time if we get the same types of error again. It also can help colleagues if they come across the same issue.
Interested in our courses?
You can read more about our selection of accredited online electrical and electronic engineering courses here.
Check out individual courses pages below:
Diploma in Electrical and Electronic Engineering
Higher International Certificate in Electrical and Electronic Engineering
Diploma in Electrical Technology
Diploma in Renewable Energy (Electrical)
Higher International Diploma in Electrical and Electronic Engineering
Alternatively, you can view all our online engineering courses here.
Recent Posts
Kirchhoff’s current and voltage laws
Kirchhoff’s current and voltage laws In our last article, we looked at the principles and operation of a d.c motor. In this article, we’re going to investigate Kirchoff’s current and voltage laws, as well as how to apply them to engineering problems. Kirchoff’s law of current Kirchoff’s law of current states that the algebraic sum […]
What are the principles of operation of a DC electric motor?
What are the principles of operation of a DC electric motor? In our last article, we looked at the electrical parameters in series and parallel electrical circuits. In this article, we’re going to dive into the principles of operation of a DC electric motor. The motor effect When a current-carrying conductor is placed on a […]
What are the electrical parameters in series and parallel electrical networks?
What are the electrical parameters in series and parallel electrical networks? In our last article, we looked at the principles of operation of electrical cells. In this article we’re going to move on to the electrical parameters in both series and parallel electrical networks. When we have circuits with more than one resistor, we need […]