An Introduction to PLC programming

A PLC or Programmable Logic Controller is an electronic or computer device used for industrial control systems; using types of software, the PLC runs a program that manages inputs and logically turns outputs on/off to obtain the desired control. This article will cover the general structure of a PLC program.

PLC programming
PLC programming

Instructions and programs

An instruction or job order is formed by two main parts: operation and function. The function is the complement of the operation and is divided into symbol and parameter. The operation determines the CPU’s job or the kind of instruction that it must execute, and the function determines the address. The address, in turn, indicates where the CPU should execute the instruction of elements such as counters, timers, I/O, and internal marks. Basic examples of instructions are:

LD: (4C) Loads the line

LDN: (42) Negation of the operation LD

AND: (41) AND logic

ANDN: (44) Negation of the operation AND

OR: (4F) OR logic

To write a program, other kinds of instructions called service instructions are required. These are used to elaborate and analyze the program, among other things.

Program Execution

When the PLC is set in RUN mode, the PLC takes a snapshot and the analog and digital inputs values are saved in a memory table, the CPU executes the program contained in the user memory from the address 000 to the last one, the resulting values from the logic instructions and operations go to the output memories and written in the output modules, then the PLC restarts the process and check for faults; this is called the scan cycle format. Most of PLCs follow the positive logic convention: True=Logic 1 = Input energized, False=Logic 0=Input not energized.

We can distinguish between the following programming structures according to the way the CPU executes or runs the program:

  • Linear execution, where the cycle is run line-by-line. The instructions contained in the memory are read sequentially until the end of the program and the resulting values are written in the output memories.
  • Execution with a conditional jump, where the program can alter the sequence based on a condition. If the condition is true, the program jumps to the line determined; then the program continues the normal sequence. This allows the possibility of reducing the execution time of the cycle.
  • Execution with subroutines, where there is more than one sequence with the same instructions. It is easier to write the subroutine once and load or call it anytime it is required.

Programming Languages

Each manufacturer determines the unique characteristics of their equipment and the programming language that they use to provide the programmer with an easy tool and environment to solve industrial logic problems. In general, programming languages are textual, graphical, or both. Textual languages use instruction lists and structured text while graphics languages and graphic methods use networks of contacts or blocks that represent a logical or arithmetic expression.

  • Ladder language or KOP.

Ladder language and contact diagrams use a network of relays or contacts, like an electrical circuit that represents a logical expression, which makes it easier to understand and work. The system is based on opening and closing the relays to give the system the ON/OFF control it requires for automation and manufacturing processes.

  • Boolean or AWL

It is possible to implement complex algorithms and operations in AWL since it is a machine level language an offers more flexibility and freedom of programming.  These expressions are based in Boolean or algebraic logic and instruction lists, for example:

LD: Loads an open contact or line

LD NOT: Loads a closed contact or line

AND (Y): Open series contact

OR (O): Open parallel contact

AND NOT: Close series contact

OR NOT: Close parallel contact

OUT: Output relay

MEM: Intern relay or memory

TMR: Timer

CNT: Counter

Program Elements Assignment

It is important to assign the proper names to the elements of the program in such a way that  helps us to maintain order and structure and does not incur mistakes or repetitions. We can elaborate a table with the description of each element. For example, inputs should be named as IN1, IN2, IN3, etc; outputs should be named OUT1, OUT2, OUT3, etc; timers should be named: TIM1, TIM2, TIM3, etc; counters should be named CNT1, CNT2, CNT3, etc; and memories should be named MEM1, MEM2, MEM3, etc.

Considerations before starting programming:

  • Programs are made from left to right and from up to down.
  • The number of contacts that we can assign from the beginning of the main line until the output is unlimited.
  • It is preferable to write a clear circuit with a higher number of contacts rather than a complicated program, even if it contains a lower number of contacts.
  • We can not connect an output directly to the main line, as this would put a closed contact between the two.
  • The number of open or closed contacts that we can use in a program is unlimited.
  • The number of outputs is fixed, but the contacts associated with those outputs are unlimited.
  • Although memories are not external outputs, they work in a similar way and are used as auxiliary relays.

Most PLCs are protected against power outage, so they do not lose their state; there are also other PLCs with more special functions like the change of time bases for timers.


For more information or to purchase a PLC unit, go to

Manufacturing Automation: Integrating the Future

From looms to robots, humanity is in constant pursuit of ways to enhance lives with machines.

Though the term “automation” was coined in the automotive manufacturing industry back in the 1940’s, it has become applicable to nearly every sector of the global business economy. Its definition is too-often misconstrued as the replacement of human workers with machines, though in actuality automation refers to the integration of machines into a self-governing system. As automation becomes more prevalent, human workers are challenged to assimilate their robot counterparts and expand their skillsets into realms beyond what has ever been required in their chosen professions. At the same time, businesses across the global manufacturing sector must thoughtfully adopt automation in a manner which creates maximum value for their organizations.

From Mechanization to Automation

Jacquard Loom
Jacquard Loom – Image credit: Northampton Silk Project

According to Mikell P. Groover, author of “Automation, Production Systems, and Computer-Integrated Manufacturing”, automation grew from mechanization, which is the replacement of human or animal power with mechanical power. While humans have always possessed a propensity for fashioning tools to enhance their work, mechanization is traceable to the days of the first Industrial Revolution, which began in the late 1700’s. Back then, the invention of the steam engine kicked off a series of discoveries including the use of feedback in the establishment of automated control systems, as well as the first programmable machine, the Jacquard loom.

Considering the predecessor to today’s digital computer, the Jacquard loom revolutionized textile manufacturing with its use of pre-made punch cards to control complex weaving patterns, automating a production process that was once almost entirely people-driven. In addition to the introduction of automated control, the Jacquard loom represented a turning point in the human-machine interaction, as the worker’s role elevated from hands-on operation to encompass more planning and oversight of the loom’s work.

The image to the left is a model of the Jacquard loom, on which you can see the punch cards hung in preparation for feeding into the top of the machine.

Progress in Automation Technology

During the 20th century, several technological developments drove the progress of automation technology across the spectrum of global industries:

  • The invention of the digital computer – Namely, the Electronic Numerical Integrator and Computer (ENIAC) in 1946, and the Universal Automated Computer in 1951.
  • Advances in data storage capability – Rapidly advancing from punch cards, modern-day storage consists of magnetic and optical forms of media whose capacities are dense yet rapidly readable.
  • Improvements in programming methods – Modern programming languages constantly evolve to allow for greater logic capabilities while becoming more accessible through simplicity and ease of use.
  • Development of enhanced feedback sensors – Essential to automatic feedback control systems, sensors make possible industrial tasks such as quality inspection and robot guidance.
  • Evolution of advanced mathematical theory of control systems – This theory includes negative feedback control, adaptive control, and artificial intelligence (AI).

As the above advances came to fruition, the global manufacturing industry underwent two additional industrial revolutions that, while less well-known as the first, were just as impactful. These are described by Bill Pollock, President and CEO of Optimation Technology Inc., as having occurred in the early and latter parts of the 20th century. The second industrial revolution was ushered in by the marriage of electricity with the assembly line, and the third took place as computers became common fixtures on factory floors.

Efficiency of Machine Technology
Efficiency of Machine Technology – Image credit: AIA

Industry 4.0

Industry 4.0 is the popular term for the fourth industrial revolution, a time of technological disruption the manufacturing industry is currently undergoing. It is marked by the growing use of robotics, adoption of 3D printing capabilities, virtual reality’s leap from gaming rooms to factory floors, and the introduction of the Industrial Internet of Things (IIoT). The IIoT, also known as the Industrial Internet, consists of interconnected devices that monitor, collect, exchange, analyze, and deliver data for the purpose of driving business decisions.

According to Pollock, Industry 4.0 is defined by:

  • Interoperability – connection of machines, devices, sensors, and humans through the IIoT
  • Information transparency – a collection of vast amounts of data from the manufacturing process
  • Technical assistance from AI – shifting the role of humans from operators to problem solvers
  • Decentralized decisions – autonomous systems capable of operating without human intervention

The growing use of automation is a binding thread throughout the fabric of Industry 4.0, as executives and workers in the manufacturing sector determine how to deploy and integrate automated systems in accordance with the above four principles.

The Future of Automation in Manufacturing

Findings in a report by McKinsey, a global research firm, reveal that “manufacturing is second, among industry sectors, only to accommodation and food services in terms of automation potential”. With this potential comes pressure to adopt automation as rapidly as possible, for the sake of remaining competitive in the era of Industry 4.0. Based on their research, McKinsey recommends company executives take into account three fundamental perspectives when deciding where and how much to automate:

1) what automation is currently making possible

2) likely possibilities as the technology evolves

3) factors besides technical feasibility

Adapting and enhancing the human workforce is key to realizing the full, long-term potential of manufacturing automation. Just as the Jacquard loom allowed a person to elevate their role above handling a shuttle and lifting threads into place, automation is poised to revolutionize the very definition of what it means to be employed in the manufacturing sector. McKinsey states, “Particularly in the highest-paid occupations, machines can augment human capabilities to a high degree and amplify the value of expertise by freeing employees to focus on work of higher value.” To support this optimistic assessment, companies must commit to managing near-constant change with a focus on fostering a culture of inclusiveness, and by providing training to help employees keep up with constantly changing technologies.

Though industrial revolutions are considered times of disruption, one need not view Industry 4.0 as a threat to the global workforce. A look back at our history reveals that technological enhancements, from steam engines to automated weaving machines to computer-controlled manufacturing systems, have not only enhanced the state of the global industry, but also the lives of humanity at large.

Data Analytics: Hindsight to Foresight

In an increasingly connected world, consumers, businesses, and governments are presented with unprecedented access to data. What they do with that data depends on the questions they wish to ask and the technological capabilities available to produce answers. As the ability to generate insights from data evolves at an increasingly rapid pace, both technology and humans will grow smarter and more empowered.

It Starts with Big Data

For any study, confidence in the outcomes and conclusions is directly tied to the size and quality of the dataset. Thanks to increasing worldwide digitization and Internet-connectedness, nearly every person on the planet creates mountains of data ripe for study. Entities on the receiving end of these large swaths of data find themselves in possession of a rich, albeit unwieldy, source of market insights.

The definition of this “Big Data” evolves as the digital landscape transforms. Think of it not as a thing, but as a concept. In that context, Big Data encompasses all of the information created and flung into the Digital Universe, which humans are free to access, consume, and organize in order to make sense of our world. Consumers, businesses, and governments are the primary beneficiaries of Big Data.

Big Data may seem amorphous and confounding, but Charles McLellan of ZDNet gives it shape with four basic traits:

  • Large volume (at scale)
  • A variety of forms (content types)
  • Arrival at high velocity (streaming)
  • Variable veracity (sometimes untrustworthy)
The Four V's of Big Data
The Four V’s of Big Data – Credit to

Big Data, by its very nature, is too vast and complex for traditional data-processing applications to handle, and it continues to be a driver of software and hardware innovation. Organizations receiving Big Data face challenges including capture, storage, transfer, security, and processing. While channels of Big Data include everything from social media websites to health care records to point of sale transactions, one of the fastest growing contributors is the Internet of Things (IoT).

Enter the Internet of Things

The term “Internet of Things” was coined by technology pioneer Kevin Ashton in 1999. One of the first applications of the IoT was tracking the locations of expensive equipment through radio-frequency identification (RFID) tags. Nowadays, the IoT has expanded to connect everyday objects such as automobiles, kitchen appliances, baby monitors, and even light bulbs to the Internet. Gartner, a worldwide research, and advisory company, predicts that 20.4 billion IoT devices will be in use by 2020.

Number of IoT Units installed
Number of IoT Units installed – Credit to

According to Steve Ranger, UK editor-in-chief of ZDNet, “The IoT generates vast amounts of data: from sensors attached to machine parts or environmental sensors, or the words we shout at our smart speakers. That means the IoT is a significant driver of big data projects because it allows companies to create vast data sets and analyze them.” Access to such granular information about the lives of a company’s products has potential to shape future functionality and drive innovation. It also raises questions about privacy, security, and just what data is necessary to collect.

Data Reporting Progresses into Data Analytics

One way to make sense of collected data is via Data Reporting (DR). Well-designed reports include tables, visualization features, and customization capabilities. They can be pre-created by software developers, or assembled on demand by end-users. DR captures history, allowing humans a broad view into the past from the perspectives contained within an ever-growing ocean of Big Data.

As Big Data evolves, so do the means of deriving value from it. Beyond reporting, Data Analytics (DA) involves generating insights from sets of data. This concept is often referred to as Big Data Analytics (BDA), but can also be shortened to DA. Like the Big Data that feeds it, DA is a complex concept that is evolving as quickly as software and human capabilities can push it forward. While DR is a tool focused primarily on informing us about the past, DA is the art and science of using data to help organizations create a desired future.

George Anadiotis, an IT consultant writing for ZDNet, provides the below graphic from Gartner to summarize DA’s predicted evolution:

Gartner Analytics Maturity Model
Gartner Analytics Maturity Model – Credit to

As DA’s application progresses from descriptive to prescriptive, humans will partner with Artificial Intelligence (AI) to more accurately and quickly derive actionable information from Big Data. Machine Learning (ML), a branch of AI that deals with the automation of analytical model building, can independently adapt to the variables inherent in Big Data while applying complex mathematical calculations that produce reliable, valid results at speed. Doug Henschen, an analyst at Constellation Research, tells us to “Expect a steady drumbeat of announcements throughout 2018 and beyond about ML applied to tasks including cleaning and combining data, discovering new data, and suggesting new combinations of data that could, in turn, uncover important insights.”

The graphic below illustrates how DA is becoming more accessible to the average business user, as AI technology evolves to assist.

Self-Service Analytics Evolution
Self-Service Analytics Evolution – Credit to

Investment in Artificial Intelligence

Today, deriving meaning from DA is primarily the realm of Data Science and Analytics (DSA) professionals, but thanks to the emergence of AI-driven software tools, business users are becoming capable of generating actionable information through DA. Though an exciting advancement, investment in exploring the full potential of AI is slow to build.

In January of this year, Constellation Research, a technology advisory firm, published a study for which they surveyed C-level executives within their subscriber base, to examine AI adoption across 12 business sectors primarily located in the United States. For the purposes of this study, they define AI as “the culmination of technologies including deep learning, neural networks, natural language processing (NLP) and big data/predictive analytics to produce software that is self-improving and automatic and also emulates human intelligence”.

Constellation found that while 70% of respondents said their organizations currently use AI technology, 92% reported company-wide budgets of $5 million or less. This indicates that up until this year, AI projects have been modestly funded and limited in scope. The survey gives us a peek into their plans for growth by indicating 60% of companies expect to increase investment in AI development by more than 50% compared to last year.

The study also identified three ways in which responding businesses develop AI:

  • 56% are creating applications with data science teams, utilizing open source frameworks
  • 52% are creating applications using ML and deep learning services based in the cloud
  • 42% are Integrating packaged applications with AI capabilities

These efforts are mostly for the benefit of consumer-facing departments and IT, as enterprises seek to prove the return on investment (ROI) of AI before applying it to back-office functions. This ties back to the DA trend of using AI technology to assist end-users. Software suites touting ease of generating actionable insights are emerging most noticeably in the areas of commerce, customer service, sales, and marketing.

Human Talent Remains in High Demand

As mentioned in the previous section, DSA professionals are still very much in demand despite projections about the capabilities of AI with regard to DA. According to research published by IBM and reported by Forbes contributor Louis Columbus, the DSA jobs market is expected to grow 15% by 2020. The Finance and Insurance industries provide the richest market for DSA jobs, accounting for 19% of all reported openings.

The Data Science/Analytics Landscape
The Data Science/Analytics Landscape – Credit to

While the demand for experienced, educated individuals is growing out of proportion to supply. Future productivity and the ability of companies to realize go-to-market strategies are at risk for disruption if human talent cannot keep up with the pace of DA advancement. IBM reports the most challenging skills to recruit for are ML, Big Data, and data science.

Constellation Research warns, “Rising demand for talent with AI proficiency coupled with a preference to recruit new talent could culminate in a talent war as more AI projects come online.” To help close the DSA skills gap, IBM formed a research partnership with Burning Glass Technologies, a labor market data firm, and the Business-Higher Education Forum (BHEF), for the purpose of sharing data-driven insights between higher education and industry. Their work is ongoing.

Future Opportunities

The ability to leverage Big Data will be critical to surviving and thriving in the digital revolution. As DA continues to evolve and enhance our understanding of the past, present, and future, organizations will face challenges that push the limits of human and technological capability. In overcoming these challenges, the global marketplace and society at large will grow smarter.

To sum up, here are four areas of opportunity as we endeavor to create a desired future:

Big Data
The Digital Universe, which is all digital data created, replicated and consumed in a single year, will swell to 44 trillion gigabytes in 2020, up from 4.4 trillion gigabytes in 2013. Entities wishing to mine Big Data for meaningful information will need to become better at targeting what data is useful, extracting and storing the mass in a secure manner, manipulating it with greater accuracy and speed, and providing actionable insights directly to business users.

Privacy Considerations
Trade-offs in security and privacy will be part of life in a more connected, data-driven world. Implications range from individuals’ protected health information to business’ proprietary information, to cyberwarfare. Humans will be challenged to find the right balance between divulging personal information and their desire to take advantage of Big Data-powered applications and services. Organizations will bear the burden of protecting the private data they collect and using it ethically.

Artificial Intelligence
AI’s tremendous potential must overcome human distrust, scarcity of qualified workforce talent, and shaky support from budgetary and IT infrastructure perspectives. Building employee trust in smart systems will hinge on effective change management and restructuring of business practices. Further, the trust of AI by society at large will require transparency and communication of benefits relative to risks.

Talent Acquisition
As the technologies supporting and advancing DA become more sophisticated, so will the need for higher skill levels in human workers. Aggressive recruitment efforts and a focus on developing AI in-house are indications that organizations are attempting to head off the looming talent war. Through ever-evolving training programs and reskilling of their workforces, firms can help employees keep pace with the rapid evolution of AI.

Survey Finds Rapid Global Adoption of Robotic Process Automation

Deloitte, a private UK company made up of a collection of international firms, has released the results of their 2017 Global Robotics Survey, for which they surveyed 400 professionals representing a panorama of industries across the globe. The aim of this third annual call for responses was to gather information about the growing trend of implementing Robotic Process Automation (RPA). Their findings are predictive of a fast approaching, permanent change in the world’s business landscape, as corporations continue to invest in RPA and work through the struggles of scale.

RPA technology
RPA technology


Robotic Process Automation (RPA) is a type of technology that is becoming rapidly prevalent in global industries. This type of technology is designed to free human workers from repetitive tasks. Though the term is often used interchangeably with words like “robotics”, “robots” or “bots”, it specifically refers to software robots, not those that perform physical tasks. RPA technology uses business logic and structured inputs to run simple rules-based processes through software applications, with results that are quicker, unremitting, and more accurate than what human workers can produce.

Leslie Willcocks, of the London School of Economics’ Department of Management, further defines RPA by separating it into four so-called “streams” or sub-types:

  • Specialized software for custom processes within departments, e.g. macros
  • Scraping software that collects and synthesizes data from screens or the web
  • A Software Development Kit (SDK) that allows a business to create robots for its own processes
  • Enterprise-level software that is scalable, secure, and flexible across a spectrum of businesses

RPA’s Global Prevalence

As reported in Deloitte’s survey findings, 53% of global respondents are in various stages of implementing and using RPA, while an additional 19% have plans to start using the technology within the next two years. For 64% of those using RPA, its deployment is an enterprise-wide initiative; only one year ago, that number was 15%. Of those same organizations, 78% plan expanded investment in RPA over the next three years. If these trends continue through the next five years, use of RPA is predicted to be so widespread as to have achieved “near-universal adoption”, to use Deloitte’s phrasing.

Uses for RPA

While currently gaining a foothold in the realms of finance and customer service, the potential applications of RPA are vast. According to a whitepaper published by RPA vendor thoughtonomy, entitled “Robotic Process Automation: 6 Real World Use Cases”, the technology has shown value in the following six areas:

  • IT & infrastructure support
  • Data migration and management
  • Back office administration
  • Digital and online initiatives
  • Connecting process islands
  • Customer service and support desk

Common themes among the above include ample repetitive tasks, the need for accuracy, cruciality of compliance, and the customer experience. Removing the need for humans to complete repetitive manual tasks will free them up to use their higher-order skills to focus on innovation, and add more value. Competitive advantage is the intended product.

Workforce Impacts

According to a report released by Forrester Research, dramatic changes to the global workforce are rapidly materializing, driven by the impacts of RPA. Deloitte’s findings corroborate these assertions. Survey respondents who have already implemented and made efforts to scale RPA believe that 52% of full-time employee capacity could be taken on by robots. In doing so, employees are relieved of stressful and oftentimes mind-numbing tasks, freed to focus on more fulfilling, intelligent work.

Naturally, fears about workforce reductions persist. But as Leslie Willcocks asserts, “The evidence is that it’s not whole jobs that will be lost but parts of jobs, and you can reassemble work into different types of jobs.” Effective change management is key. In addition to looking at RPA as an opportunity to reduce costs, businesses will be forced to find ways to elevate the quality of the jobs they offer to remain competitive for talent. Still, they will be challenged to overcome Forrester Research’s prediction that approximately 9% of the global workforce will have their livelihood threatened by RPA software.

Measurable Business Benefits

RPA’s impacts, though currently limited in their reporting, are largely positive. 85% of those surveyed by Deloitte said that RPA exceeded their expectations for improvement in the areas of accuracy, speed, flexibility, and compliance. 86% of those surveyed indicated high levels of satisfaction with improvements to productivity. Financially speaking, 61% were happy with the level of cost reduction brought about by RPA usage.

Development of analytics capabilities, a known valuable feature of RPA, will continue to inform internal process improvement and cost reduction initiatives. 17% of survey respondents classified expansion of analytics as a top initiative for the coming year, up from 6% last year. Additionally, one can infer that the noticeable absence of bottom-line impacts reporting will be addressed as these organizations’ analytical capabilities are expanded in the coming years.

Scaling Roadblocks

Despite this positive light, the numbers indicate that only 3% of those who responded to Deloitte’s survey has managed to scale the technology to over 50 robots. This and other information in the report supports recommendations for a path forward:

Secure Needed Buy-in
Planning, configuration, and deployment of RPA requires time, during which business requirements and interacting technologies can change. In addition, IT groups may have difficulty prioritizing RPA over more pressing issues: only 31% of survey respondents said IT was supportive of the RPA implementation. Forming a committee of stakeholders that includes members from all affected business and operational units, IT personnel, and managers and team leaders, will help ensure leadership buy-in and funding allocations are secured.

Understand Processes and overcome complexity
RPA operates within strict rules, but if the processes that govern those rules are ill-defined or overly complex, those issues will be magnified in the robots created in service of them. Complexity is costly and disruptive, but humans possess the flexibility and cognitive abilities to compensate, often implementing exceptions to rules for the sake of keeping the work flowing. Robots, not so much. Implementing RPA presents organizations with an opportunity to understand and re-think their processes and re-design them to be leaner and more agile.

Adopt an enterprise-wide scope
64% of respondents currently using RPA report having an enterprise-wide or strategic approach to its implementation. This means breaking out of functional silos and evaluating RPA’s benefits across the board. A more global mindset is valuable to building quality, scalable architecture for the new digital workforce, and can help avoid the pitfalls of scope creep and rework.

Change Management and transformation

Whether partnering with an outside firm or undertaking the endeavor solely in-house, implementing RPA requires a change in mindset for the entire institution. Understanding the lasting impacts of RPA on the humans who will interact with it, and forming a communication and training plan to help them adapt, is imperative. Through that process, there is an opportunity to influence prevailing attitudes toward how RPA will reshape how the business operates. Rather than treat RPA implementation like an experiment, embrace it as a means for growing leaner, and for improving quality of life on the job.

RPA - Software robot
RPA – a Software robot

RPA’s Future

With titans like Deutsche Bank, AT&T, Ernst & Young, Vanguard, Walgreens, Walmart, Anthem, and American Express Global Business Travel already using RPA, it’s safe to say the technology is poised for the level of global adoption Deloitte predicts. Adoption, however, only is the first step. There remain vast opportunities for companies to learn how to effectively deploy and integrate robots throughout the enterprise, and how to help humans embrace a beneficial technology that apparently still draws a fair amount of skepticism. The organizations that figure out the formula will enjoy a significant competitive advantage

Changing the Firmware Version of a Compact Logix Controller

This tutorial is designed to walk you step by step through the process of changing the firmware version your Compact Logix Controller is running. This process is often necessary when replacing an older controller and have an existing program. This tutorial assumes that you have already set up your communications, either through Ethernet, Serial, and Modbus, or some other means. It is also assumed that you already possess the program that you would like to download to the controller that you are working with. If you need assistance with either of these please see the other tutorials.

As seen below, we are online with the controller and are attempting to download a program to our L32E Controller. However, an error flag is present as the major revision of the controller (16.2), which doesn’t match that of the offline test program (17.XX). The major rev number you are working with is what is important; the rev minor portion will be the “.XX” of the rev number.

Download Program to L32E Controller - Error
Download Program to L32E Controller – Error Message

In order to update the firmware, you will need to ensure that it is downloaded to your laptop or workstation. These downloads are available via the Rockwell Automation Product Compatibility and Download Center located here. The easiest way to find the appropriate firmware is to search by the processor model you are working with; in this tutorial, we will be using the L32E, as shown in the search bar. You will be prompted to choose which version and revision you would like to download and then you can select the download option on the bottom right, as shown below.

Select Version/Revision - Select Download Option
Select Version/Revision – Select Download Option

On the next screen, after selecting “Downloads”, check the box that says “Firmware Only” and then click “Downloads” again.

Selected Downloads - Firmware Only
Selected Downloads – Firmware Only

This will take you to the download cart, at which point you may click “Download Now”.

Download Cart - Click Download Now
Download Cart – Click Download Now

From here, simply follow the prompts to reach the selected firmware downloaded and loaded onto your computer. I recommend using the “Managed Download” option as it ensures that the file is located in the correct file for use by RS5000 and Studio 5000. Once downloaded, go ahead and open the setup file to install the firmware. Once the firmware is installed, return to RS5000 and select “Update Firmware”. You should then see the screen that is pictured below; click on “Update”.

Firmware installed - Return to RS5000 - Select Update Firmware
Firmware installed – Return to RS5000 – Select Update Firmware

Carefully read through the warnings shown below, since the loss of communication or power at this point could potentially result in the controller being bricked and unusable. If you have been experiencing power or communication issues, it is recommended to move the processor to a more stable location before performing this upgrade.

Firmware Update Warnings
Firmware Update Warnings

This upgrade process should take a few minutes. Your status screen should look similar to the one shown below.

Firmware Update Process Screen
Firmware Update Process Screen

Once the firmware download is complete, you will be prompted to download your program into the controller.

Download Prompt - Firmware Download Complete

Download Prompt – Firmware Download CompleteYou have now successfully changed the firmware of the controller to match your program and downloaded the program to the controller and the controller is ready to be put back into service.

To learn more or to purchase a Compact Logix Controller, please visit DO Supply, Inc.

Uploading and Downloading an RS5000 (.ACD) File to and from a Compact Logix Processor

This tutorial is designed to walk you step by step through the process of uploading an existing RS5000 (.ACD) file from an existing Compact Logix PLC and downloading it to a new PLC. This tutorial assumes that the current PLC is somewhat serviceable and has not lost the program. If the PLC no longer works, you may have an SD card installed that contains the needed file. If the existing PLC is completely dysfunctional and there is no SD card or SD card slot, the program file may be backed up somewhere safe; if not, the last resort would be to reach out to the manufacturer or integrator to procure a copy.

First, I will give you some background context to help understand what this file is and what it does: the RS5000 file is the “logic” that controls how a machine works. It is typically written in a ladder or function block form, but Allen Bradley allows for higher level programming to be completed as well.  It is often referred to as an ACD file, in reference to the “.ACD” file extension, and is created by RS5000 or Studio 5000; it can be transferred from one PLC to another, as long as the firmware and model are compatible.

Let’s Begin.

If we are going to upload the current program from the PLC that will be replaced, we must first establish a communication link between our Laptop and the PLC via RSLinx. If you need help setting this up, see our previous tutorials. Once communication is setup correctly, your PLC should be visible like the one pictured below. (1)

Communications set-up PLC via RSLinx
Communications set-up PLC via RSLinx

It is also important to note that the key switch should be turned to the right (PROG) in order to ensure that communication may take place. (2)

PLC switch to allow communication
PLC switch to allow communication

Once the communication link setup, we can begin by opening either RS5000 or Studio 5000, depending on the firmware of the processor being worked with. If you start with the wrong program, the correct one will typically open when you attempt to upload. Once the program is open, look for the “Communications” drop-down menu in the top bar shown below. (3)

Operate software RS5000 or Studio 5000 - Communications dropdown menu
Operate software RS5000 or Studio 5000 – Communications drop-down menu

Click “Communications”, and then click “Who’s Active”. This will take you to the screen below, where each of the running drivers in RSLinx is visible. (4)

Communications - Who's Active - RSLinx
Communications – Who’s Active – RSLinx

I am currently connected to my plc via the serial port, so expanding the “AB_DF1” driver tree will allow me to see the Compact Logix L32E processor I am working with. As you can see below, once I have selected a valid processor, the “Upload” button becomes enabled.  If I had a program open the download button would be active as well. Once you have selected the correct option, click “Upload”. (5)

Select valid processor - Upload
Select valid processor – Upload

This will bring you to the screen shown here. If you have the ACD file on the computer you are working with, the file may be recognized and allow you to write over it with the same name. I like to use the same name as before, but add a letter “U” to the end, to designate that it was an upload. If the file doesn’t exist, give the file a name that makes sense and include the date. My file name for this example is “test_df1”. (6)

Name uploaded file
Name uploaded file

You now have successfully uploaded the program from the old PLC. These steps could be skipped if you already had a good working ACD file; now we can download it to the new PLC that you have installed. Please see our tutorials regarding setting up communications via BootP, Serial, or USB in case you need help establishing communications.

Now that we have a program to work with, click on the “Communications” and “Who’s Active” tabs. This will allow you to select an active “Download” button; go ahead and click it. (7)

Communications - Who's Active - Download
Communications – Who’s Active – Download

An obligatory warning screen will pop up; just click download again. It should be assumed that the machinery you are working with has been properly deemed safe and clear of people or product. (8)

Warning screen - click Download
Warning screen – click Download

Once the download is complete you will be able to install the PLC back into service. In order to function properly, the key or switch on this PLC must be moved from its Program mode back to its Remote Run or Run positions.


For more information or to purchase the parts mentioned in this tutorial, click here!

Using an Onboard Serial Port, USB to Serial Adapter, and NULL cable to set an IP Address

This tutorial is designed to walk you step by step through the process of setting an IP device to a Static IP Address; this step is necessary in order to successfully set up PLC communications

There are multiple ways to accomplish this task. For this particular example, we will be setting the address of a Compact Logix L32 Processor, utilizing an onboard serial port, a USB to Serial Adapter, and a NULL cable. This same procedure can be used to set the address of PanelViews and other devices with integrated serial ports.

First, plug in the USB to serial adapter and allow the drivers to install. Depending on the version of windows that is being run, a notification should pop up informing you of what COM Port the device is running on. This is important to know when using the RSLinx to establish communication with the PLC. If the notification did not provide the COM Port number, follow these steps to find it: Control Panel>All Control Panel Items>Device Manager>Ports, as shown below. As shown, the adapter in this example is assigned COM Port 18.

Finding a COM Port number to establish PLC communication
Finding a COM Port number to establish PLC communication

The next step is to establish an RS-232 connection between the computer/laptop and the device for which we are setting an IP address. Plug the Serial Cable adapter into the PLC with which you wish to proceed. Two pieces of equipment are necessary for this, namely a serial cable and a null adapter.

Next, open up RSLinx and select “Configure Drivers”. This option is located under the communication tab highlighted in the corner of the image below.

RSLinx Communication Tab - Configure Drivers
RSLinx Communication Tab – Configure Drivers

Under “Available Driver Types” select “RS-232 DF1 devices”, as shown in the image below, then click “Add New”. The name that you pick for the driver is unimportant; the driver in our example will be called “AB_DF1-1”.

Available Driver Types - RS-232 DF1 devices - Add New
Available Driver Types – RS-232 DF1 devices – Add New

On this next screen you will need to change the COM port that is currently being used, replacing it with the COM port that we looked up earlier. For this example, the adapter is plugged into COM18. Use the drop-down menu shown below to select the appropriate COM port. You will also need to select the device type that you are working with. In this example, we are working with a LOGIX 5550/COMPACT LOGIX type.

Change COM Port - Select Device Type
Change COM Port – Select Device Type

The next step is to utilize the auto-configure tool to establish communication with the PLC. Simply click “Auto-Configure” and an “Auto Configuration Successful!” message should appear, as shown below.

Auto-Configure - Auto Configuration Successful!
Auto-Configure – Auto Configuration Successful!

The PLC now shows up in RSLINX under the AB_DF1 tree, labeled node 0 on the right.

RSLINX - AB_DF1 - Node 0
RSLINX – AB_DF1 – Node 0

We will use RSLINX to set the IP Address of the integrated Ethernet port of our processor. First, we must expand out the tree so that it looks similar to the one shown below.

Expand Tree to set IP Address
Expand Tree to set IP Address

Now ‘right click’ on the Ethernet Port and select “device configuration”. This will bring us to the screen shown below, where we can set the IP Address and Subnet mask to our desired parameters. It is also very important to change the “Network Configuration Type” from “Dynamic” to “Static”. Once this is complete, the IP Address on your device has successfully been set, using the serial port of your processor.

Set IP Address and Subnet Mask - Change Network Configuration Type
Set IP Address and Subnet Mask – Change Network Configuration Type


For more information or to find a product, go to DO Supply’s product site.

Setting an IP Address on Compact Logix L32E

Setting an IP Address via BOOTP

This tutorial is designed to walk you step by step through the process of setting an IP device to a Static IP Address; this step is necessary when setting up PLC communications. This tutorial can be applied to many devices that utilize either BOOTP or DHCP servers. For this particular example, we will be setting the address of a Compact Logix L32 Processor. This same procedure may also be used to set the addresses of Drives, Remote I/O, PanelViews and so on.

First, locate the Ethernet or MAC address of the PLC or device. This is located under the left end cap of the PLC, as shown below. This sticker or may be difficult to locate; however, it will always be of the same format. Each sticker unique to the device and cannot be changed.

PLC Ethernet Address
PLC Ethernet Address

The next step is to establish a network connection between the operator’s computer or laptop and the device for which an IP address must be set. It is important to note that typically a router is necessary to facilitate proper communication unless the Ethernet device itself has a routing capability. Some of Rockwell Automation’s newer processor features this. If using a router is not an option, a crossover cable can be used instead.

Once the network is complete, the IP address of the computer being used must be set to a static address. The simple process is outlined below.

The first step is to locate the network icon in the lower right of the computer screen, and ‘right click’ on it; after selecting “Open Network and Sharing”, this screen should appear:

Network Icon - Open Network and Sharing
Network Icon – Open Network and Sharing

Select “Change Adapter Settings” on the above screen. This option is located on the top left side menu and will take you to the next screen, although yours may look slightly different, due to differences in the adapter installments.

Change Adapter Settings - Local Area Connection
Change Adapter Settings – Local Area Connection

In the above screen, locate the adapter that will be used to communicate to the device. In this case, I will select the adapter labeled “Local Area Connection” and ‘double click’ on it.  This will bring you to the screen shown below.

Local Area Connection - Properties
Local Area Connection – Properties

Select the “properties” option to pull up the screen shown below.

Properties - Internet Protocol Version 4
Properties – Internet Protocol Version 4

The connection we need to edit is the “Internet Protocol Version 4 (TCP/IPv4)” option. Once this item is highlighted, click the “Properties” options. This is where we will set the IP address of the adapter. In this case, the address number is This address must match the subnet of the device address that is being set. For example, if the device has an address of, this adapter’s IP address must be the same number. Once this step is complete we can finally open the program that is required to set the address of the PLC.

Set IP Address
Set IP Address

The Program being used for this demo is the Rockwell BootP Commissioning Tool. There are many other products, such as Wireshark, that will accomplish the same goal. Once this program is running, all of the devices on this network that are running BootP or DHCP servers will be visible via their MAC Addresses as shown below.

MAC Addresses - Rockwell BootP Commissioning Tool
MAC Addresses – Rockwell BootP Commissioning Tool

The MAC address of our PLC is the second in this list, the first being the router. Currently, this PLC does not have an IP assigned to it, as seen on the left. ‘Double click’ the MAC Address ending in “:91” to move to the below screen, where we will enter the IP address that is being assigned.  For this example, I will enter the number Keep in mind that and .255 are invalid addresses.

MAC Address - Enter IP Address
MAC Address – Enter IP Address

Once selected we can now click “Disable BootP/DHCP”, which will set the address of the PLC or device. This tool will give us feedback at the bottom of the window, confirming that the command was successful. 

Ethernet Address - Command Successful
Ethernet Address – Command Successful

To check the work, simply open the Command Prompt, type “PING”, and hit ‘enter’. You should receive 4 replies from the PLC, as shown below. This completes the process; you can now go online with a processor via Ethernet.

Process Complete - Go Online
Process Complete – Go Online

For more information or to purchase this part, see DO Supply.

Uploading and Downloading a Runtime File on PanelView Plus

This tutorial is designed to walk you step by step through the process of uploading your existing runtime file from your existing HMI and then downloading it to a replacement HMI.

This tutorial assumes that your current HMI is serviceable. If the touchscreen no longer works, a mouse may get you into the menus necessary to copy the existing runtime file. If the existing HMI is completely dysfunctional, check to see if it already has an SD card or USB drive installed. Hopefully ,the latest revision of your runtime file is stored there. You may also have this file stored in a safe place. Your last resort would be to reach out to the manufacturer or integrator to procure a copy.

First, some background to help understand what this file is and what it does. The runtime file contains all the information for your PanelView device to communicate with the PLC(s) along with the graphical interface of the HMI. It is often referred to as a MER file in reference to the .MER file extension. It is created by the FactoryTalk View software and it can be transferred from one PanelView device to another as long as the versions and models are compatible.

Let’s begin.

We start by installing an SD card or USB drive into either the side or back of the PanelView device that we want to replace. As shown in the picture on the left, these particular versions have an external memory that is accessible from the left side of the HMI.

PanelView Plus SD and USB ports
PanelView Plus SD and USB Ports

Once we have the external memory installed, we will need to transfer the existing .MER file from the PanelView device to the storage device. We will do this by accessing the “Terminal Settings” highlighted in the picture below.

FactoryTalk View ME - select Terminal Settings
FactoryTalk View ME – Select Terminal Settings

Once in the terminal settings, we need to select “File Management” and then press “Enter”.

FactoryTalk View ME - Terminal Settings - File Management
FactoryTalk View ME – Terminal Settings – File Management

Now select “Copy Files” and press “Enter”. Next, now we select “Copy Applications” and press “Enter”.

FactoryTalk View ME - Copy Applications
FactoryTalk View ME – Copy Applications

Once on this screen, we will be able to select the application that we want to copy and where we want to copy it from and to. In this case we will want to select internal storage. We will want the find the filename that we want to load on the new PanelView device. Typically, each file will be dated, and the most recent date will be what you need. You can also copy all the files one at a time to be safe. Once the file you want to highlight is copied, press the button that says “Destination”.

FactoryTalk View ME - Copy File to Destination
FactoryTalk View ME – Copy File to Destination

This takes you to this screen, where you can choose to copy the file to the external storage. Once selected, press “Copy” and you are done. At this point you can uninstall this device and install the new device. Keep in mind that you will have to set up communication on the new device as the first step, but otherwise the copying of your .MER file is just as we completed above.

Reloading Panelview Runtime File - Install New Device
Reloading Panelview Runtime File – Install New Device

Are you looking to replace your PanelView Plus? Click here to view our selection. If you need to repair your PanelView Plus, we can help with that too! Learn more about Do Supply’s repair services on our Repairs page.  Find this post helpful or have any further questions? Please comment below.

How To Test a DeviceNet 1794-ADN

1794-ADN Wiring Diagram
1794-ADN Wiring Diagram

In this example, we will connect the 1794-ADN to one end of the cable, the 1784-U2DN adapter in the middle and the 1747-SDN scanner at the other end of the cable. Before beginning, ensure that you are using the current end-of-line resistors (85 to 150 Ohms) on this DeviceNet cable. We use a SLC 5 processor and RSLogix500 software.

Configuring the SLC with a scanner

Prior to anything else, place the SLC keyswitch in Remote Program mode and configure the SLC and SDN module through Linx and RSLogix500, then establish Linx connection through RS232-DF1 devices driver. Start RSLogix 500 and open a new program for the SLC; open the I/O configuration in the project tree and click “Read I/O Config” from both of the following pop-ups. This should detect the SDN module and display it on the IO configuration list. You should not need to use “ADV Config” from this window. Close this window and download to the SLC.

Set the ADN node address to 01 using the addressing buttons on the front of the ADN.

Set the U2DN cable to node 3 by putting the first address dial at 0 and the second address dial at 3. The valid addresses are from 0 to 63. Set the data rate to AUTO. Connect the 1784-U2DN adapter to the PC’s USB and to the DeviceNet cable. Linx will then automatically create a new branch in the network tree listed as “AB_VBP-1, 1789-A17/A Virtual Chassis”. You will be able to see the devices on the DeviceNet network through the network tree in Linx, if you are using RSLinx classic. You should see the SDN (node 16?), the ADN (node 01) and the U2DN (node 3).

DeviceNet Network Tree
DeviceNet Network Tree

Start RSNetworx for DeviceNet. At the top menu bar, select “Network”, then “Online”. In the network tree, open the AB_VBP branch and drill down to “A, DeviceNet”. Select it and click “OK”.

A prompt will appear, advising you to download/upload data.

RSNetworx Configuration Prompt
RSNetworx Configuration Prompt

Click “OK” for RSNetWorx to scan; once it finds all 3 devices, it will display them in the “Graph” tab.

Configuring the ADN

To clear/reset the ADN’s configuration before testing, go to the DeviceNet network graph in RS NetWorx and right click on the SDN; go to properties, select the scanlist tab, and move the ADN from the scanlist to the available devices list. Then download the new configuration to the SDN. Now right click on the ADN and go to properties, click on the transactions tab, select “Clear/Reset Memory & Upload” and then click the “Execute” button. The ADN should now be cleared and reset with the modules.

1794-ADN RSNetWorxs Transactions Tab
1794-ADN RSNetWorxs Transactions Tab

Right-click on the ADN module and select “Properties” and then Choose the “Upload” button. If you have module mismatches from previous configurations, you will be prompted to resolve the mismatch. In this case, just click the “Actual” button to configure it for its current arrangement with one 1794 OB16 in slot 2 (position 1) of the FlexIO chassis.

Resolve Module Mismatch Prompt
Resolve Module Mismatch Prompt

You should now see the ADN with the module on the FlexIO “chassis”. The 1794 FlexIO module should be displayed with its part number, in this case, OB16.

1794-ADN RSNetWorxs Module Configuration Tab
1794-ADN RSNetWorxs Module Configuration Tab

Click “Apply”; when prompted by the pop-up, click “Yes” to download the configuration to the ADN to configure the device. This process is likely to glitch and may have to be repeated. Be sure to keep the SLC in its remote program mode while doing this.

Configuring the Scanner

Right-click on the SDN, then go to “properties” and select the “Module” tab.

1747-SDN Module Tab
1747-SDN Module Tab
Upload 1747-SDN Scanner Configuration
Upload 1747-SDN Scanner Configuration

You will be prompted to either upload or download. Select upload to receive the current scanner configuration. The ADN should appear under the “Available devices”, where it can be selected and moved to the “Scanlist”, using the arrow buttons. Use the Edit I/O parameters to set correct input-output sizes. In this case, input size and output size are both 2 bytes. If the ADN is configured first, the I/O sizes should be mapped automatically; however, if the I/O sizes are wrong, click Edit I/O Parameters and then click the “Restore I/O sizes” button and the I/O sizes should resize the FlexIO chassis arrangement indicated by the ADN’s configuration. Select “Download to scanner” to download the scanlist back to the scanner. If the I/O sizes are wrong, the SDN scanner will give a code 77. In general, the ADN in DeviceNet should be configured first, so that the scanner automatically sets the I/O sizes.

Under the SDN properties, under the “Input” and “Output” tabs, word 0 will be read only, and word 1 etc. will be input/output from the ADN. ADN input/output sizes vary depending on series.

The SDN should display it’s node address in the display continuously as long as there are no other codes to display. (I think the default is 16.) If you are in Rem Prog mode or if the module is idle, it will flash an 80 and the node number. In run mode, the SDN should have two solid green lights and all Status and Power lights on the ADN should also be solid green (may depend on series).

The SLC’s output word 0, is the “SDN’s command register”. Put the SDN in run mode by setting bit 0, in output word 0, to 1. Without this, the SDN will not run. Word 1, bits 0 through 15 will output on/off states to the OB16 in the FlexIO chassis.

In this picture, 3 bits for the output module (word 1) and the enable bit (word 0) are on.

SDN in Run Mode - Data File Output
SDN in Run Mode – Data File Output

To clear the ADN’s configuration after testing, go to the DeviceNet network graph in RS NetWorx and right click on the SDN, got to properties, then select the scanlist tab and move the ADN from the scanlist to the available devices list. Download the new configuration to the SDN. Now right click on the ADN and go to “properties”, “modules configuration” and remove the OB16 from the module list on the right. Then click on the transactions tab, select “Clear/Reset Memory & Upload” and then click the “Execute” button. The ADN should now be at the default setting.