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.

07/01/2005


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.


Author Information

Dennis Brandl, dbrandl@brlconsulting.com , is the president of BR&L Consulting, a consulting firm focusing on manufacturing IT solutions, based in Cary, N.C.




No comments
The Engineers' Choice Awards highlight some of the best new control, instrumentation and automation products as chosen by...
The System Integrator Giants program lists the top 100 system integrators among companies listed in CFE Media's Global System Integrator Database.
The Engineering Leaders Under 40 program identifies and gives recognition to young engineers who...
This eGuide illustrates solutions, applications and benefits of machine vision systems.
Learn how to increase device reliability in harsh environments and decrease unplanned system downtime.
This eGuide contains a series of articles and videos that considers theoretical and practical; immediate needs and a look into the future.
Sensor-to-cloud interoperability; PID and digital control efficiency; Alarm management system design; Automotive industry advances
Make Big Data and Industrial Internet of Things work for you, 2017 Engineers' Choice Finalists, Avoid control design pitfalls, Managing IIoT processes
Engineering Leaders Under 40; System integration improving packaging operation; Process sensing; PID velocity; Cybersecurity and functional safety
This article collection contains several articles on the Industrial Internet of Things (IIoT) and how it is transforming manufacturing.

Find and connect with the most suitable service provider for your unique application. Start searching the Global System Integrator Database Now!

SCADA at the junction, Managing risk through maintenance, Moving at the speed of data
Flexible offshore fire protection; Big Data's impact on operations; Bridging the skills gap; Identifying security risks
The digital oilfield: Utilizing Big Data can yield big savings; Virtualization a real solution; Tracking SIS performance
click me