Automation engineers are a deeply multidisciplinary bunch. Just think of the history of automation: some of the earliest machines were turbines powered by water, which were then augmented by steam engine technology during the Industrial Revolution, which would eventually be revolutionized with electric motors. Still today, all of those disciplines — mechanical, electrical, motion, and programming — are necessary for success and survival in automation.
Software engineers, on the other hand, are sorcerers of the digital realms — combining their knowledge of programming, algorithms, data structures, and networking to drive innovation and solve intricate problems via computing. Today, their expertise is more crucial than ever as software permeates every aspect of our lives.
Led by a new generation of engineers and platforms, automation engineering and software engineering are beginning to converge. And much like mechanics, electricity, and programmability revolutionized industry in earlier eras… unifying software and automation will revolutionize ours.
Why the Divide?
This is one of those ideas that feels totally obvious in retrospect. Automation and software technology are more entwined than many folks acknowledge today… so why hasn’t this convergence come sooner?
Because of their cultures and distinct histories, these two disciplines have persistently misunderstood each other. After all, most programming in automation does not look like software engineering — it looks like ladder logic. This makes sense, because current automation programming practices emerged by adding programmability to the application of physical relay switches in machine controls. PLC programmers build and maintain the industrial world as we know it today, but by and large, they aren’t acquainted with the practices of the broader software engineering discipline.
Likewise, the potential of software engineering in the field of industrial automation has often been underestimated or overlooked. Software engineers have been at the forefront of digital transformations in areas such as ERP, cloud computing, and data management… but while these advancements have transformed business operations, they don’t come close to impacting machine thinking in most production equipment itself.
When you think about how some of these machines have been running since before software even existed, it's easy to see how the divide has persisted. It’s taken a new generation of engineers with roots in digital code platforms to integrate the two.
A Revolutionary Convergence
As a result, the boundaries between engineering disciplines are blurring. As an early adopter of software in machines, Loupe has long been touting the application of these tools and technologies to the world of industrial automation and robotics — not just at the enterprise level, but in the heart of the machines themselves, right on the plant floor.
And we’re not alone: a new generation of engineers already operate at the intersection of automation and software. That means…
- Managing, coordinating, and merging code changes from many simultaneous contributors using formal source control via git
- Validating and deploying code before mechanics arrive with extensive simulation tools
- Testing and deploying frequent changes and updates to code to fleets of machines via automated tools
- And more
The possibilities these techniques introduce are almost too many to number: Like making updates to entire lines of machines without being onsite. Or using digital twin technology to precisely test systems so they operate correctly when first assembled. Or leveraging previously unrelated tools like Unreal Engine (designed for video game developers) and adapting them to the automation space.
The Rise of Automation Software Engineers
This convergence isn’t a theoretical exercise; it’s happening now at the cutting edge of automation.
Now, even the biggest machine builders like B&R and Beckhoff have been releasing products built on the methodology of Automation Software Engineering, allowing for networked code-based controls. While there’s still lots to explore and many unknowns, we’re on the cusp of revolution — and a new breed of professionals is emerging at the forefront.
Whatever platform you use, if you consider your controls programming work to be software engineering, you’re probably an Automation Software Engineer.
It’s not automation engineer OR software engineer, anymore. We can be both. We can do both. We are Automation Software Engineers.
(And if you’re one, too: You’ll find a community of peers here).