Software Engineering
for Controls
The core value of control systems lies in their algorithms, logic, code, and parameters — essentially,
the software. This software serves as a cornerstone in industrial plant design, often having a life span
of several decades.
At Roumtech, we provide tailored software frameworks to meet the specific needs of control system software. These frameworks typically enable:
- Intuitive, requirement-driven high-level design and development
- Methodical and streamlined implementation
- Rapid and seamless debugging, unit testing, and integration testing
- Comprehensive verification against requirements, performance validation, and robustness assessment
Additionally, our frameworks benefit from:
- Pre- and post-processing toolchains designed to execute extensive simulations and synthesize results in a fully automated manner. This automation of design simulations frees engineers from repetitive, low-value execution tasks, allowing more time for high-value activities such as planning, analysis, and decision-making
- A cutting-edge, organic, and modularized versioning system
- Dedicated databases for parametric values, effectively managing the complexity of various product configurations and generations
Case studies
Problem statement:
A baseline control software system (system “A”) is designed to fulfil power curve and loads requirements (requirements “A”), which allow entering the market at a certain time.
Over time, loads-based requirements become more elaborate (requirements “B”). System “A” hence grows into system “B” to keep up with the market. The growth of the software system from “A” to “B” is performed focusing on speed, neglecting design coherency and long term maintainability. Requirements “B” are still met, creating the illusion that the system is on an effective track.
Then market raises the bar again, when grid norms and availability-related needs merge into a completely new set of requirements (requirements “C”). At that point System “B” shows its weakness: because of the accumulated dis-organic complexity, further changes to system “B” produce uncontrollable unwanted effects. System “B” cannot grow anymore and hence cannot keep up with the market.
Solution provided:
The desired functionalities of system “B”, to achieve the certified loads and power curve, are identified by means of reverse engineering, as documentation has not been kept up to pace with code. A new comprehensive software architecture is designed to incorporate past and future features in an organic fashion, and it is documented from the highest abstraction level. Meanwhile a thoroughly defined design philosophy is adopted to guarantee sustainability of future growth.
System “C” is hence born, according to the new architecture and philosophy. System “C” is proven to reproduce all expected behaviours of system “B”, without the unwanted ones, hence maintaining the effectiveness of the already certified loads and power curve. Changes to comply with grid norms and achieve the needed availability (requirements “C”) are also implemented on system “C”. From this point on, growth pace can be restored, and as long as the design philosophy and architecture are respected, there will be no blocking points in future development. The rigorous application of the software modularisation principle in the new design philosophy also improves team spirit and collaboration during parallel development, because conflicts in reintegration of branched code onto the trunk are virtually eliminated.
Problem statement:
The customer’s control staff is distributed among different projects, each employing its own software development framework. This decentralized approach leads to duplicated efforts, with each project team starting from scratch for every new project, meeting and solving the same challenges each time.
Valuable lessons learned are not systematically shared among teams. Furthermore, the existence of multiple library instances complicates matters, as teams struggle to identify and maintain optimal solutions.
Solution provided:
To address these challenges, we have introduced a comprehensive new development framework. It merges the expertise of Roumtech with the specific requirements, processes, and practices of each project team. Libraries are consolidated and centralized, enhancing knowledge sharing and eliminating redundancies. The resulting framework has been quickly adopted as the standard across all project teams, facilitating collaboration and reducing redundant work.