If I say that we are living in “Programming World”, then this will not be wrong. Programmers are playing major role in the technological advancements, and making our lives easy.
Those devices which have CPU (Central Processing Unit), microprocessors, microcontrollers, and some specific types of controllers are basically programmable. The processing unit performs different kind of tasks by handling the data which is present in different locations of memory after receiving single / multiple commands from the user.
Programming is everywhere; it was in first computer and in very old video game. Programming is now in mobiles, computers, video games, in all kind of software, in viruses and in anti-viruses, in latest devices / toys / robots, and in those devices which are performing different types of control functions. Programming is in the factories for controlling the process, and we use programmable logic controllers “PLC” for this purpose. We do PLC programming according to the process requirement in factories. We load / install the main program in memory of the “PLC” which “in the operational environment” stepwise executes the command lines of the main program and controls / performs different processes in various sections of the factory.
We can see programmable devices in airplanes, fighter jets, tanks, ships, submarines, satellites, missiles, and in almost all latest defense equipment. That’s why we are living in “Programming World”.
According to the heading of article, I will first explain “How You can be the Best Computer Programmer” then after that I will explain “How You can be the Best PLC Programmer”. Read complete article for becoming “All-Rounder Programmer”.
Computer programming includes machine level programming or low level programming, medium level programming, and high level programming.
Machine language and Assembly language are examples of low level programming language. C & C++ programming languages are medium level programming languages. Different web designing languages which we are using currently are examples of high level programming languages. Major programming languages which we are using these days are Python, Java Script, Java, C++, C, Objective C, SQL, and PHP. Different programmers use different programming platforms according to the nature of job.
If you want to become a best Computer Programmer then you can achieve your target in a stepwise manner. Don’t try to jump or think for a shortcut. Programming is a full time job and need deep concentration.
First of all develop your interest in programming languages, and then think which area of programming is more interesting for you.
Is web designing more attractive for you? Do you like Video Games programming? Are you interested in the improvement of Operating Systems? Do you want to develop good Antivirus software? Are you taking more interest in computer hardware, and micro processing? Do you like low level programming? Do you like Data Management?
You need to decide your area of interest. After that, improve your logical thinking and programming skills in any specific programming language or languages, according to your interest.
There are different kinds of programming according to the task. Some programming concepts are easy, and some programming concepts are difficult to understand. For becoming best programmer, don’t think anything difficult, and overcome your difficulties by proper understanding of different programming concepts. This requires your time, proper attention, and your interest in the subject.
Anybody who wants to become a good Computer Programmer should try to understand computer hardware first.
Focus on CPU’s addressing for executing different commands, and practically execute different codes after understanding them. After that, try to improve already written code, you can consider various aspects by keeping overall code and its execution in your mind. You will observe improvement in your logical thinking for further development of codes with the passage of time.
Good Programmer always enjoys his achievement, which further helps him in improving his skills. After performing different kinds of programming projects, he considers himself a better programmer, but the people around him consider him one of the best computer programmers of his field. So, try to improve the quality of your programming, and deliver the projects on time, if you want a name and fame in the field of Programming.
The Concepts of C & C++ Programming languages play important role in the field of programming. Try to improve your concepts of C language and C++ language, which will help you in coming future. C language is old language but “C” concepts are important for any good computer student. Further, you can improve object oriented programming by understanding different codes written in C++ language. The latest version of C++ Software / Compiler is more user friendly as compared to the earlier version of C++.
Focus more on “Computer Algorithms”, if you want to be the best in programming field. One can improve the Python, Java, and C++, etc., and can learn any other programming language also, but for becoming the best programmer, knowledge of computer algorithms and logical thinking are very much necessary.
Learning the coding procedure of any language is compulsory for programming in that language. One should know the syntax, semantics and vocabulary of any language for writing the code in that language. “Practice makes a man perfect”, and more practice will be required for gripping any new programming language.
Analytical approach and problem solving nature are actually required for designing different Computer Algorithms. Improve the analytical approach, and try to focus on the problem, so that you can get some solution for the problem.
Pls. note the below points for improving the Computer Algorithms,
- Practice the already designed / developed Computer Algorithms.
- Try to understand these Algorithms properly.
- Think some new tasks for computer and try to develop new Algorithms for new tasks.
- Check the result by properly coding in any specific computer language.
- You can write your Computer Algorithm in simple steps, you can write it in “Pseudo Code” by using semi programming language, and you can make flow charts also, but your designed Computer Algorithm will be considered accurate only, if it will be giving the right / required result after coding properly in a program by using any specific computer programming language.
- Debugging is necessary for removing syntax errors and semantic (Logic) errors.
- You can debug your program by using different debugging features which are available in the Software / Language Editor. You can check your code line by line, and you can observe whether the code lines are performing the same function as intended.
- You can debug fast by inserting Break Points in your program. Some debuggers provide “run to cursor” option for fast debugging. Stepping feature is also available in some debuggers.
- Debugging of Program is very much necessary for the beginners. Best Programmers always debug their Program, but their speed of debugging is usually “Very Fast”.
Think more on Computer Algorithms, write logical program in any programming language, practice more and more; this will improve the quality of your programming.
Big software developing companies ask difficult Computer Algorithms in the interviews, by this way they actually check the skill level of the applicants. These firms check the track record and overall successful projects of the applicants. Their engineers also check the ability of problem solving, and the time consumed in solving the given problem. Coding in any specific language is important also, but the big software developing companies give priority to that programmer who is extraordinary, and also quickly develops a right Computer Algorithm according to the case requirement.
Learning new programming language is not a problem for outstanding programmers.
You can think in a computer style also for improving your computer programming logic. Before taking a cup of tea you can think and command yourself,
Start. If tea cup is hot “Don’t touch the tea cup second time and wait for three minutes for touching the cup again” Else “Take a tea cup in the right hand and wait for five seconds, smell tea cup, and make sure if it is actually a tea”. If it is a tea, then continue with tea until the End, Else “Leave the tea cup on the table” and Call “Tea boy” for providing tea with the Message “I said for the tea, this is not a tea”. End.
So, you can write a code for yourself also by logical thinking, and you can order yourself for the execution of code whenever you face a similar situation. This is the base of programming, in the same way; we are doing programming for the computer, for carrying out different tasks, by using various programming languages.
So, Love your Laptop and always charge its battery. Take interest in programming and program the Daily Routine also. Improve your Computer Algorithms and think logically always. Grip the Python, C++, and Java, and make this your new Script. You will become the “Best Programmer”, one day.
Now I will explain how one can become the best PLC Programmer? Understanding the PLC hardware, factory environment, and the given task requirement is necessary for becoming a good PLC programmer. First of all pls. note that there is a big difference between computer programming and PLC programming. We cannot take any risk for a single “wrong & illogical” command execution in PLC programming because it can be very much damaging for the process and for the system parts and overall machinery also. The single wrong & illogical command execution or testing of any code / program is not allowed in the operational factory environment. There are different procedures / rules for testing the PLC program, and we follow these procedures / rules for testing the PLC program, before the “Final Execution” of the PLC program. I will explain PLC program testing procedures in this article also.
PLC system includes CPU module, Communication modules, Power Supply modules, and I/O modules. PLC Racks are also available in the Control Rooms for mounting different modules. In PLC setup the Inputs & Outputs are physically existing, PLC program plays a key role in controlling / executing the different real world tasks in the factory. If any software programmer wants to become a PLC programmer then first of all he has to get training on Electrical Technology. He needs training for control operations of Electrical / Electronic devices in the factory environment; he needs to understand the different device operations for further implementing the PLC program. Learning any PLC programming language is also necessary for writing the code in that specific programming language. There are different programming procedures / language formats available for programming the PLC.
Any programmer can do programming by using “ladder logic”, “FBD”, and “Statement List”. Every PLC brand has its own programming software / editor. Different features are available in different programming software / editors. For example, “Siemens” PLC has its own programming format, and “Honeywell / Other Brands” use their own programming format. (Those who know PLC programming and practically know how to implement “ladder logic” can learn any programming format of any PLC brand.)
Inputs for the PLC include Push Buttons, Switches, Sensors, and Transmitters. Outputs include the actuators; PLC operates different kinds of valves, pumps, and motors generally.
Every PLC supports specific number of Inputs and Outputs. Some PLCs support more I/O loops, and some PLCs support less I/O loops. This depends on the total “I/O Limit” of any PLC. I/O modules of PLCs are extendable in “Modular PLC”. “Compact PLC” is designed in the form of a single case which has different PLC modules inside the case; I/O capabilities are predefined by the manufacturer, and any user can utilize “Compact PLC” by checking the overall requirement. Some manufacturers provide external I/O extension up to the certain limit in “Compact PLC”, and this kind of PLC little bit resembles a “Modular PLC” also.
Inputs are connected to the PLC via Input modules, and the outputs are connected to the PLC via output modules. PLC junction box in any remote area includes Input and Output modules. This PLC junction box is further connected to the Main PLC, (CPU module). There are two types of Inputs, Digital Inputs and Analogue Inputs (DI, AI), and there are two types of Outputs also, Digital Outputs and Analogue Outputs (DO, AO). Generally, “DIs | DOs | AIs | AOs” of any area are further connected to the “DI | DO | AI | AO” cards / modules respectively. These cards / modules are located inside the sub panel, and this sub panel is also available in the same remote area.
There are different sub panels located in different remote areas. These sub panels (having I/O cards | modules) provide their overall Data information (Via Communication modules) to the main panel PLC (CPU module). (Siemens also uses special Profibus cable for overall communication purpose). CPU module (by its main PLC program), actually controls and assists in performing the various factory processes.
Different PLCs have different hardware setups in the factories but all these PLCs perform same work, and that is, “Controlling different processes of the factory, and performing different tasks, according to the main PLC program”.
Computers located in main control room display the different areas of factory in predefined style. By GUI, the operator can control / perform different tasks manually also. The operator monitors the overall area, system, and the process flow on the computer. Only qualified operators can sit in main control room for operating these operator consoles / computers. These operator consoles / computers can be located in different areas of the factory for monitoring purpose, and for performing different tasks manually or automatically. In any specific area of the factory, the computer operator gets access / control, which is area specified basically. In case any device / equipment malfunctions or doesn’t work, then the operator will see its status on the operator console, and will call the concerned technician for the fault rectification.
All Inputs and Outputs have a unique address in the PLC program. All Inputs and Outputs of the PLC are connected to the different I/O slots of the PLC with the specific and unique physical address.
Wiring should be done properly by following cable book. PLC Design Engineers provide the cable book on site for the PLC job implementation. Use cables 3G1, 3G1.5, 3G2.5, 4G1, 4G1.5, etc., according to the cable book / job requirement. Every I/O module has Power module and the Communication module, so all these I/O modules will be connected by “Power & Communication” cables. Pull and lay down all the Control, Power, and Communication Cables by following PLC documents / cable books. Avoid overlapping of Power and communication cables on the cable tray, and follow all the Electrical Standards. Install Main panel, sub panel, I/O modules, other modules, and all the Inputs and Outputs by following the given designs / diagrams, and consult with Senior Engineers if you face any problem.
PLC programming is very much related to the field automation and that’s why one should know about field automation also for becoming best PLC programmer. Try to understand more processes of different factories, and concentrate on overall PLC programming by considering different sections of any factory.
Inputs and Outputs have specific symbols in the PLC program, practice those symbols, and write already implemented ladder logic programs. Develop your interest in PLC programming, because this will help you in writing better programs in the future. Understand the function of different kinds of relays and timers, and further improve your relays and timers associated logic for writing a good program.
Closely monitor normally open contacts and normally close contacts in already written program, and then further think that why were different relays, timers, and counters used in that program? What are the actual process requirements? How different valves, motors, and pumps are operating by the execution of the PLC program? What are the logical reasons behind using these devices, and how these devices are being controlled and monitored by using the PLC program? How different Inputs and Outputs are affecting the single / multiple Outputs. Try to understand different steps of the PLC program in stepwise manner. PLC program also executes in a stepwise manner.
If you think deeply, then you will become able to write the PLC program in your own style. Although, you will not be able to implement your program in the operational factory environment, yet by following this you can improve your PLC programming logic, and good logical thinking is required actually for becoming a good PLC programmer.
We use PLC Simulators and Emulators for testing the PLC program. We use SIMATIC S7-PLCSIM Advanced “Automation / PLC Software”, for testing the PLC program of STEP 7 Siemens. We do virtual commissioning, and we use virtual controllers for testing our actual PLC program. This helps us in writing accurate codes for our real and actual PLC.
We transfer our PLC program in the CPU of virtual PLC and check the program lines step by step. We change the status of Inputs and check their effects on Outputs in the Simulator. Different PLC Simulators provide different types of displays and functions. So, by using “Simulators and Emulators” we can check the logic of our PLC program, and we can make changing in the original PLC program after finding any wrong step in the PLC program.
Testing of PLC program in the Simulator is very much necessary; a wrong PLC program can damage different devices and the equipment of factory. Any section of factory can catch fire also in case of the short circuit. That’s why PLC programming and electrical wiring need proper attention.
Make logical and accurate PLC program before its real time execution in the factory. So, always test your program in the Simulator, if PLC program is 100% accurate and safe then further implement this program “step by step” in the factory after loading the PLC program in real CPU module of actual PLC system.
The most important thing is the testing and commissioning of the PLC program, and the PLC program should be according to the overall process requirement. Before handing over the PLC and automation system to the operators and Process Department, the PLC programmers and the Engineers check everything and finally make revised documents. These revised documents are necessary for troubleshooting the problems in the operational factory. During the live testing and commissioning of the PLC program, first of all, we check the designed system and the overall hardware of PLC. We check the wire types and wiring of different Inputs, Outputs, and modules once again by following the design documents and cable books. Were Inputs and Outputs connected properly in their specific I/O modules? In case of any mistake in the designing of PLC system, we rectify the problem because we cannot continue with mistakes.
We set Outputs in the test mode during checking the actual PLC system, and different Outputs and actuators should meet the PLC program requirements. Check the pneumatic and hydraulic supplies of different Outputs and actuators before physically operating these devices. Focus on the safety also during the checking of Outputs and actuators. Pneumatic and hydraulic supplies should be working properly before operating the Output devices in the “Test Mode”.
For operating Controller in “Test Mode” we load 100% accurate, safe and pretested PLC program in the CPU module, we then switch the controller to Test Mode. By this way, we debug, check, and execute the PLC program while keeping all the Outputs practically disabled during the procedure. We can manually operate different Inputs for checking various Rungs of the PLC program and the status of different Outputs. Outputs will not operate physically but Output LEDs will illuminate in different Output modules.
Observe that the correct Output LEDs should illuminate according to the PLC program and wiring, during the testing of any Rung of the PLC program. You can monitor any specific Output Rung on your Programming Device also; it depends on what strategy you are adopting for checking each Rung. But always operate the controller in “Test Mode” after checking the functionality of overall PLC hardware.
Check the Inputs by observing LED lights on Input Modules, LED lights will illuminate in closed contact condition, these LED lights will not illuminate in open contact condition of the Inputs. If any specific LED light fails to illuminate during Input testing then there is some problem. May be your Input device (Push Button, sensor, or any other input) is defective or damaged, this may be because of wrong PLC wiring, or may be your Input device is not getting the required power. So, checking all the Inputs, Outputs, and PLC hardware is necessary for rectifying all the defects. And, this is required for safe PLC operation.
Test different PLC program parts and observe the results, these results should be according to the PLC program, and process requirement. You can use “Force Start” function available in different PLC controllers for physically operating any Output. “Force Start” any Output, that valve/pump/motor/device will operate physically on the site and the respective LED will illuminate on the Output module. If any other device operates, then check the PLC logic and wiring for trouble shooting the problem. Also perform the static Input & Output wiring checks / tests, before the PLC startup; this should be done after physically checking the overall PLC hardware.
We do commissioning in a stepwise manner for detecting the faults, and we troubleshoot these faults on the spot. After checking overall PLC hardware and performing different tests, we operate PLC controller in “Single Step Mode”. PLC program in the “Single Step Mode” executes “line by line”. Fault detection becomes easy by operating the controller in Single Step Mode. Follow the safe procedure and ensure overall system safety.
So, you can be the best PLC Programmer if you know the PLC system, its programming, handling, and the implementation according to the factory or process requirement.
If you prefer logical thinking, then Programming will become very easy for you.
By: ( J.S )