Finding the Right Methodology for Control System Programming
Nowadays, there are many models of car available. At first glance, they seem to be very different from one another in their design, purpose and size, price, and color. In fact, they are all very similar, as almost all of them are based on an internal combustion engine.
If a driver finds himself stranded and in need of repair, he can easily find a mechanic, since the basic knowledge for repairs is common and transferable across models. It is common because each element within the engine and its surrounding systems is modular, and repairs to each module can be made independently.
Picking a Methodology
Consistent methodology within complex systems is all around us. And finding a methodology for developing and programming software for PLCs shouldn’t be an exception. The automotive example above is representative of how Object Oriented Design can be applied to software for industrial control systems.
Object Oriented Design is a concept that allows programmers to plan code for a better programming flow. It includes, among others, the following advantages:
- Breaking down complexity into small, manageable pieces. One of the main difficulties in writing and maintaining a large piece of software is the complexity, which increases exponentially, to a level that the human brain can hardly perceive.
- Modular design. Enables grouping pieces of equipment with common functionality to objects that have a logical meaning, even if they don’t represent any physical piece of equipment.
- Reuse of tested components. The creation of modules leads to another advantage—ease of reuse that saves time and increases reliability.
- Abstraction, separation of interface, and implementation and encapsulation. Three important principles of software engineering that are well implemented in Object Oriented Design. They basically mean that the car modules mentioned above can contain a lot of functionality and complexity inside, but will remain simple from the outside, exposing only the necessary for operating them. Additionally, by using a well-defined interface and communicating with the module only through this interface, you can be quite sure that no harm can be done to the internal functionality.
Object Oriented Design has conquered much of the software development world because it provides a consistent framework of planning that allows software designers to design and deploy software that accomplishes three key goals:
- It performs the tasks and functions require
- If fulfills all its requirements
- It is structured for robustness and ease of change when necessary
Sticking to a Methodology
Any methodology is only as good as the commitment to stick to it once chosen. There are several advantages with Object Oriented Design that make the discipline of staying the course worth the effort. First, it is consistent with common software engineering principles. Secondly, it usually makes sense to think in this manner when starting a project from a P&ID drawing. Thirdly, and most importantly, Object Oriented Design will answer most of the challenges required by complex industrial control systems. This last point is reinforced through its modularity and ability for reuse. It gives control engineers the flexibility to react and respond to changes within a system due to upgrades and modification while remaining within a common framework that responds in familiar way.
With a proven methodology—and a commitment to stick to that methodology—process and control engineers can implement complex systems for industrial automation that are reliable, repeatable and safe. And changes can be made incrementally throughout the life of a system, regardless of which programmer is working on the internal modules that drive the whole.
At WonderLogix, we chose Object Oriented Design as the basis of our development platform. Its graphical interface inherently guides you to implement the methodology, and makes adherence easy and painless. Other platform benefits include 100% automated documentation and 50% faster time-to-market.