The central issue with anything that is programmable is the programming itself. Regardless of whether the system is open source or proprietary, the key to successful control applications is to correctly program the design intent. Capturing the full intent at the start of a project is impossible, especially if the project has not been done before. There is always some degree of ‘discovery’ along the way.
At the level of creating a programming language, there is a dichotomy at work. It is possible to create languages that are narrowly defined to solve a category of problems. This is the case in programming ladder logic. Alternatively it is possible to create a language sufficiently broad to solve all problems, regardless of complexity. With complexity comes a bigger learning curve and ambiguity. Thus, a given control system solution can be programmed in a variety of ways.
Some of the larger control vendors have created integrated software environments where several program languages co-exist in the same shell. A Basic or C-code subroutine can exist as a module within a ladder or state machine program. Time will tell if this is the wave of the future or a transitional step to something else.
Tools such as flowcharting are important to the success of new software efforts. By documenting with flowcharts at the beginning of a project, it is possible to capture more of the design intent and anticipate programming issues instead of constantly running into surprises as the project unfolds.
One benefit of proprietary solutions is that mature suppliers have expert programmers who can help users to work out the details of a control solution. Open-source programming may have a community of users who are part of the ecosystem …
… so they can offer advice, but there is no obligation for support.
Robust operating systems and ever-declining hardware cost make control system hardware relatively transparent. Many vendors support Linux platforms making it feasible to run control software on almost any processor. There are CNC programs running on Linux with Raspberry Pi processor boards, so anything is possible. This new range of options often makes an open source solution more economical.
A common concern in proprietary software is the updating of software products in order to add new features. Revision control is a major concern in manufacturing environments. New revision rollouts don’t automatically constitute a basis for upgrade. Users must do a lot of testing to validate new versions before implementing them in existing systems.
All of that said, proprietary software is generally easier to use where there is a specific class of problems that are addressed, such as ladder logic. As long as the control problem falls within the boundaries of that software, things should be pretty smooth. If the application requires a lot of custom algorithms that cannot be programmed in known languages, an open-source solution is probably more suitable.