Reflecting on PLC Training at NAIT: Earning my credentials of PLC Ladder Logic Programming and PLC Advanced Programming.

TAGS: electronics; automation; industrial; PLC; Allen Bradley MicroLogix, CompactLogix, ControlLogix; Ladder; Function Block; Sequential Function Diagram; Structured Text

Why I Did This

One of the possible careers paths I wanted to branch into was Automation. I had previous history with industrial operations, so using industrial automation controls (dubbed Operational Technology) and using PLC (programmable logic controllers) systems; but less familiar with the programming side of it (I only 'heard' of Ladder logic and function block programming).
NAIT offered courses in PLC programming, and I wanted to learn more about it. I took the PLC Ladder Logic Programming and PLC Advanced Programming courses where I learned to program in the different IEC 61131-3 languages (Ladder Logic, Function Block Diagram, Structured Text, Sequential Function Chart, but not Instruction List as lots of companies consider it too archaic). I also learned to program Allen Bradley MicroLogix 1100 controllers using RSLogix 500 software; and then CompactLogix 1769-L24ER controllers and 1756-L71 ControlLogix Logix5571 controllers using Studio 5000 Logix Designer.
We also did some short programming/training on a microsystems SCADAPack32 remote terminal unit (RTU) when we were learning of different communications protocol/methods, but these were slower systems so the training was minimally covered.

Our training was with using Allen Bradley's PLCs (MicroLogix, CompactLogix, ControlLogix); very popular industrial PLCs.

Course Highlights

- We learned about the general components of a PLC like the power unit, the CPU card, communication cards (like Ethernet), and the various I/O cards like Digital Inputs, Digital Outputs, Analog Inputs, and Analog Outputs.
- We learned to connect with PLCs using the RSLinx software, which allows our editor (RSLogix 500 and Studio 5000) to connect via IP address to an available PLC set.
- We learned to connect with virtual plant software FactoryIO which can utlize our PLCs to act as virtual plants with sensors and actuators, so we can virtually test our PLC programming with realtime response.
- We developed in the Ladder logic language with extensive understanding of the scan cycle (gather inputs, scan from top to botom rungs for states, set outputs) and fundamental components (like tag making, contacts, coils, latches, comparators, timers, counters, subroutines, etc.).
- We developed with more advanced components like the Oneshot, bitwise Move, and Forced bits for troubleshooting, and online live editing/updating.
- We also delved into the status, error, and performance aspects where you can view the fault/error codes and how to reset them, and the scan performance times.
- Advancing from the RSLogix 500 to Studio 5000 (much better and can do more than just Ladder), we learned of fundamental PLC components in the Function Block Diagram, Seuqential Function Chart, and Structured Text languages.
- Beyond virtual FactoryIO scenarios, we practiced with physical PLC trainer setups (with physical buttons, switches, dials, LEDs, and value monitors).
- This extended to inter-PLC communications (and SCADA and communication understandings like Modbus, Ethernet) with programs that incorporated messaging and Sender/Receiver tags.
- The communication teachings included using terminal 'pings' and free Wireshark software to capture network communication.
- Overall, I learned immensely about PLC programming and the industrial automation field, and I'm excited to see where I can apply this knowledge in the future.

Our initial training was to remotely control some MicroLogix 1100 PLCs using RSLinx, which would then actuate virtual plant equipment hosted on FactoryIO (virtual plant software). We would use RSLogix 500 to made Ladder programs to control the PLCs and virtual scenes.

Here we experienced 'oneshot' controlling (ONS) that would do a calculation only once if the red light turned one. We also exeperience online live editing of programming (the 'e' and 'r' seen near the rung numbering) which allowed us to change the PLC program without shutdown and reuploading.

We also learned about monitoring and resetting fault/error detections, forcing bits (manual overriding of states; seen with the yellow box "Forces Enabled"), and checking PLC performance through scan cycle times (not shown, but you can see the "Scan Times" tab).

On later lessons we switched to Studio 5000 Logix Designer which was much more user friendly at programming compared to the 500 (aside from now being able to use languages other than Ladder).

Aside from virtual FactoryIO sensors and actuators, NAIT also had physical PLC trainers for every workstation (with a variety of digital and analog, inputs and outputs).

A Studio 5000 program written in the very popular Function Block Diagram language. Using our station's PLC trainer, we could assign alarm states to the LED outputs (plain-on and blinking states), and dial inputs to scaled values. In this program, I take the analog dial input from my PLC trainer and scale it to a value between 0 and 300, sending it to a LT_97 message variable/tag; I also recieve a different LT_99 message tag from my teacher's PLC which feeds into comparison blocks of less than (LES), limit-within (LIM), and greater-than (GRT) along with setpoint variables to determine alarm states (low, high, high-high). The low alarm turns on a specific light, while the high alarm turns on another light, and the high-high alarm blinks the 'high' light (using two Timer blocks).
Our teacher's PLC messages us the values of: the alarm setpoints, the LT_99 value, and commands to reset a counter (utilized through an Equal block going to a reset pin); while we send to our teacher messages of: our dial 0-300 output, our alarm states, and a count of the alarms (using a Counter block).

We were shown how to setup Ethernet links to other PLCs in our local network (through IP addresses and Ethernet/IP protocol), and then assigning variables/tags messages corresponding to those other PLCs. We learned of the passive messaging style of producer and consumer tags (seen in the above 2 photos), but also of explicit messaging though messaging functions blocks.

We touched on Schneider's SCADAPack 32 remote terminal unit (RTU) and the development software 'Workbench'. We didn't explore much from it as it was much slower to program with than compared to the AB's PLCs. It did have the ability to program in the different IEC languages.

References

My credentials - PLC Ladder Logic Programming: https://learner.mycreds.ca/r/badges/public/assertion/Ah438rwyQ1KCgOqEc_TvhA
My credentials - PLC Advanced Programming: https://learner.mycreds.ca/r/badges/public/assertion/g2EbFvyxTTmRWccQ12INSw
NAIT course: https://www.nait.ca/coned/programmable-logic-controller

Home Page

Let's go to the start page.

Featured Articles

Let's see what I've experienced lately.

Archived Articles

Let's see ALL of what I've experienced.