Traditionally, PLCs have been used in industry to map inputs (sensors) to outputs (actuators) based on the software developed for the application.
Some of the reasons behind using PLCs are the following:
- It can run 24/7, non-stop.
- Robustness to harsh conditions like vibrations, temperature or electromagnetic radiation.
- Real-time behavior.
- Ease of programming (e.g. ladder language) allows maintenance people to understand, debug and modify the program to solve some of the issues that might occur during production.
- Unfortunately, the SIEMENS & company monopoly.
I believe this can be enough for simple behaviors, like the control of simple, sequential industrial processes or devices. However, for more complicated applications like any kind of robot used in industry, there are a lot of cons:
- There’s a specific IDE for each brand.
- OOP is barely used in PLCs.
- Code is probably saved in a binary file, preventing any kind of version control and all its benefits.
- There are no common standards to be used.
- There are no such things like automatic documentation, testing, formatting, community resources…
- Basically, it lacks everything we take for granted in software engineering.
With all that in mind, I’d like to know how or even if it is possible to substitute a PLC with any other hardware that can use ROS 2. Ideally, I’d like a device:
- That can be reliable for industrial applications.
- Where ROS 2 is used for software development.
If you think this is not possible yet, or worse, that getting rid of PLCs is a bad idea, I’d appreciate if you could explain your reasons as well.
Hope I’m not asking for a dream. Software development in PLCs really sucks, and using it to power your robots is probably a serious disadvantage against your competitors.