Improve control system programming
When we think about control system programming for PLCs, DCSs, and HMIs, we often tend to focus on the "control system" side, but it's important to remember that control system programming is programming. Most control system programming uses highly specialized languages, such as ladder logic, sequential function charts, process flow diagrams, and function block diagrams.
When we think about control system programming for PLCs, DCSs, and HMIs, we often tend to focus on the "control system" side, but it's important to remember that control system programming is programming. Most control system programming uses highly specialized languages, such as ladder logic, sequential function charts, process flow diagrams, and function block diagrams. Despite the graphical nature of these languages, they are computer languages, and the creation of the diagrams is a programming function. Usually the programming is not performed by programmers or software engineers but by chemical, industrial, electrical, or mechanical engineers or industrial technicians that have picked up programming though professional classes or after-graduation school work. However, just because typical control system programmers are not software engineers does not mean they cannot use software engineering methods to define, monitor, evaluate, and improve their work.
The difference between organizations with well-defined and managed processes and those without is immense. Every year there are reports that, on average, only 30% of business IT projects finish on time and on budget. We regularly see major news reports about IT failures, such as the FBI write-off of its $170 million, four-year development of a virtual case file system. Average errors per thousand lines of code and average lines of code per day, two common measures of programming productivity, vary by factors of over 100 between the best and the worst organizations.
Organizations with well-defined and managed processes usually come within +/- 20% of estimated project time and effort, those without well defined and managed processes often miss their times and costs by more than 100%.
An important question for control system programmers is "how good are we?" And more specifically, how well do we stack up against the average and against the best in class? Fortunately, there is a generally recognized standard measure of software capability—the Software Engineering Institute's (SEI) Capability and Maturity Model (CMM). The first version was released in 1991 as a way for software companies to compare practices and processes against the best in class. The latest incarnation is called the Capability and Maturity Model Integration (CMMI) ( www.sei.cmu.edu/cmmi/ ), and it has been developed for software engineering, system engineering, integrated product and process development, and supplier sourcing.
The CMMI model comes in two flavors, staged and continuous. The continuous model focuses on organizational elements, such as project management, support, and engineering, and is generally appropriate for large organizations. The staged model focuses on the activities at each level and is generally appropriate for smaller organizations.
CMMI defines five levels of organizational maturity: 1. initial, 2. managed, 3. defined, 4. quantitatively managed, and 5. optimized. Each level defines activities and artifacts (documents, systems, and training) normally associated with execution at the level. Each level includes all tasks and artifacts of the lower level and evolves from the lower level. As an organization matures in its ability to develop, deliver, and maintain software, it should naturally increase its maturity level. However, you cannot jump levels, despite the attempt at many companies. Organizations at Level 1 often have spectacular successes and failures but can't repeat their successes. Organizations at Level 5 are on time and on budget for even the hardest of tasks; those involved know their problem spaces and how to develop solutions using continuous improvement methods.
Next month's column will describe each level. Read this column at www.controleng.com/archive , July 2005, for related reading.
Dennis Brandl, email@example.com , is the president of BR&L Consulting, a consulting firm focusing on manufacturing IT solutions, based in Cary, N.C.