Programming Controllers for Improved Profit
Pressure is mounting. The machine has to be commissioned soon, or else the company stands to lose a lot of money. The project has "hit the fan," and everyone is looking at the control engineer to get it running. The project manager used up half the allotted time negotiating requirements and specifications.
Pressure is mounting. The machine has to be commissioned soon, or else the company stands to lose a lot of money. The project has ''hit the fan,'' and everyone is looking at the control engineer to get it running. The project manager used up half the allotted time negotiating requirements and specifications. Changes in mechanical design necessitated addition of I/O devices. The specified controller no longer will do the job. And guess who's at the bottom of the food chain?
Does all this sound familiar? It doesn't matter if the project is for a machine builder OEM, discrete manufacturing end-user, a batch or process plant, or some embedded control product, the situation is the same. It's too late to solve the problem at the end of the project. With all the pressure, errors are sure to be made. Debug and troubleshooting will eat inordinate amounts of time. Management will be screaming.
The solution is to think about the project ahead of time. Review the functional specs; model machine or process behavior; define as many I/O devices as possible; generate code; and simulate, then target the controller. If all this is done up front, then last minute changes can be minimized and handled, and debug and commissioning will be enhanced.
Nat Frampton, president of integrator Real Time Development Corp. (Slidell, LA), says, ''With the addition of more functions to discrete control, like integration of motion and vision, it is important that the developer maintain a single thought process. That's one of the benefits provided by integrated development environments (IDEs) in new control programming packages. Rather than being a slave to tools, tools become a slave to the developer's thought process.
''That influence is seen within all the major automation vendors,'' he continues, ''though some are doing a better job than others in building new tools from scratch. Important features include auto discovery of I/O devices, symbolic tags, and ability to write the program without a need to define target hardware until later in the project. Now it is easier to extend systems. This is especially good since we are doing much more complex systems than ever.''
Omron Electronics' integrated development environment offers the same look andcharacteristics with all tools acting similarly across its product line.
Bob Nelson, Siemens Energy & Automation's (Alpharetta, GA), product marketing manager adds, ''Our engineering approach is project driven, rather than target driven. We throw around the term 'universal development environment' to define an approach for managing an entire project: logic for PLC, network environment, peer communication, connections to I/O devices, and integration to HMI and business systems. Within the soft-control environment, we offer a way to take existing or new applications written in C or C++, and link into a function block that can be used just like any other function block. This is an ideal way to integrate different environments.''
Bruce Fuller, GE Fanuc Automation's (Charlottesville, VA) control and design buffer manager, discusses the thinking behind development of its Machine Edition program. ''Seven years ago, it was difficult pulling together control and other things like operator interface, motion, etc. Now we try to make it easier by getting it into one environment with shared tags.
''Maybe an OEM has three machine sizes, but wants to use the same development tools and engine. We want to make sure the customer can build an application of target hardware, and then leverage it to another as the application changes. Symbolic programming and handling variables that have been around for some time in PC-based control, but was often 'kludged' in PLCs. Now it's all about combining this in a new-generation controller, so a developer needn't worry about memory allocation, and has the ability to do arrays and structures. It'll give developers the ability to use Microsoft Visual Basic for parts of a program, C++ for power users, and, with IEC 61131 coming on strong, perhaps structured text for math.''
Open source aids integration
One example of this is an open source project initiated by IBM and adopted by many companies-for example Eclipse ( www.eclipse.org ). It is defined as an open-source, universal tools integration platform. It supports multiple languages (Java, C/C++, Cobol, and more), multiple tool suppliers, and multiple platforms. The platform's powerful element lies in its support for plug-ins, that is, programs from various suppliers, supporting specialized tools that can be added to the platform painlessly.
Paralleling the direction automation control is heading, an Eclipse white paper states, ''Next generation computing technology will integrate smart connected devices with Web services currently deployed or in development. In this environment, smart devices that are aware of their environments and in control of their surroundings, through sensors and actuators, will become omniscient assistants that make everyday tasks easier. This environment demands the collaboration of computing technology specialists.'' Eclipse has been designed to enhance that collaboration and integration.
Rockwell Automation's RSLogix 5000 development environment shows how four languages can co-exist in one program. These languages are Sequential function chart, Function block diagram, Ladder diagram, Structured text.
Sebastien Marineau, platform developer for QNX Software (Kanata, ON, Canada), reports the company assumed leadership for the C development toolkit for Eclipse last year. With the release of its Momentics development suite (see description in sidebar), the company is realizing a goal to provide a C/C++ foundation plug-in for Eclipse.
Mr. Marineau explains the benefit of Eclipse. ''When you buy tools from more than one vendor, you want them to integrate well. Vendors, on the other hand, don't want to do all the integration work either. With this platform, if you want to use QNX and IBM's WebSphere for Java, and then want to add something like Clearcase from Rational, you just plug in and use them. It gives a consistent user interface for all tools.''
Marc Erikson, Eclipse's communications manager, adds, ''The kind of projects that will propel the embedded space in the future will be end-to-end, where developers will need to interface their code to others involved. Even Oracle is realizing that middleware needs to integrate with the lower level, and has joined the organization.''
John Hogg, embedded evangelist at Rational Software (Cupertino, CA and Lexington, MA), doesn't hold anything back when he contends, ''Model-driven development is the future. You can watch your executable run, see structuring information, control architecture over time, see relationships among components, plus increase flexibility and enhance reusability. We build on state-model descriptions of the process in terms of the Unified Modeling Language (UML).''
While Rational's Rose could be considered an embedded control programming tool, automation integrators, like Mr. Frampton, use it in combination with more traditional tools like ladder diagram, depending on project requirements.
Ron Bliss, Logix/NetLinx marketing manager for Rockwell Automation (Mayfield Heights, OH), explains that RSLogix 5000 was designed to eliminate common bottlenecks in the programming process. In addition to problems already discussed, he mentions others, such as translating descriptions and comments across multiple programs; address reassignments when duplicating application code; and debugging after multiple programmers mistakenly used the same memory address for different functions. Tools used here include tag aliases, multiple data scopes, built-in and user-defined structures, arrays, and application import/export capabilities.
State chart diagrams, shown here from Telelogic Tau Studio, enable developers to visualize the system before generating the code.
Dave Quebbemann, industrial automation marketing manager at Omron Electronics (Schaumburg, IL), sees common interfaces among various software development packages as a boost for productivity. ''Our development packages for programming, HMI, and motion all look and act the same, plus they have a common database. Utilities, troubleshooting, and debugging are likewise all handled the same. A programmer does not need to relearn how to use each application.''
When evaluating different development environments for hardware/software integration capabilities, National Instruments' (Austin, TX) LabView RT product manager, Jenifer Dieterle, warns, ''Integrating with I/O devices is more than just sampling data at the hardware pins and transferring data into software. Tight integration enables engineers to precisely time signal acquisition and synchronize with software calculations to achieve better overall system performance.''
Many control engineers program machinery in IEC61131 languages. Schneider Electric's (North Andover, MA) software product manager, Wolfgang Langer, point to a powerful tool in function-block diagram. ''Derived function blocks (DFB) enable programmers to wrap sections of function block code into a package and reuse the code again and again. A DFB looks like a normal function block with input and output pins, but it's easier to manage because code is seen in a simplified manner.''
Telelogic's (Irvine, CA) Matthew Graney, director of technical marketing, advises, ''Think of a program in terms of problems and requirements. Using graphical notation like UML as a programming language, model the system to verify behavior, and then generate code to the target. Our tools include a requirements-management program that shows which parts of the code solve each requirement and which requirements are still not covered.''
OSE Systems' (Pleasanton, CA) product manager, Mike Christofferson, notes that simulation tools are among the biggest sellers for the company. In particular, its tools can emulate an entire distributed CPU environment on a desktop, simulating communications among target CPUs. Also available are system-level debugging, including the ability to look for memory leaks, check CPU utilization, and others.
With all these new tools for integrating components, managing projects, collaboration, and modeling and simulation of systems, control engineers should have more ways to avoid the horror described at the beginning of this article and get those projects done in a more timely manner.
-Control Engineering Staff
Comments? E-mail MHoske@cfemedia.com
Critical tools for Java-controlled applications
Java tools for embedded control applications have matured, giving control engineers ability to take advantage of Java's strengths, such as support for downloading new applications on the fly and for dynamically reallocating memory in response to changing workload requirements.
To use Java for control applications, you need special tools to properly configure the virtual machine (VM). One example, the PERC shell, is designed to assure dynamic real-time requirements for mission-critical Java components. With this, developers can determine workload limits and properly configure the workload to ensure that all activities meet their timing constraints.
For a given workload, the PERC shell determines how much CPU time is consumed at each priority level. For example, in response to an ''info'' query, the shell reports the VM has been running for 42,333 timer ticks, and details that priority-three, -five, and -six threads consumed 2,845, 3,380, and 430 time ticks respectively. By dividing the CPU time spent at each priority level by the total execution time, developers can calculate total utilization to be 15.7%. Assuming that high-frequency tasks have been assigned higher priority, rate-monotonic analysis assures that real-time tasks will meet their deadlines, as long as the total utilization is less than 69%. Thus, the PERC shell assures the system can accept additional real-time workloads, totaling up to 53% of the CPU capacity.
The PERC shell tool is also invaluable in diagnosing performance issues that arise in the field. Support engineers use standard Internet protocols and the PERC shell to remotely connect to deployed equipment, enabling them to isolate and correct performance bottlenecks, transient work overloads, and configuration errors.
-Kelvin Nilsen, cto, NewMonics (Lisle, IL),
Graphical system analysis tool for developers
QNX Software Systems has released a graphical system analysis tool for its Momentics development suite. This Eclipse-based tool analyzes how all components in a complex real time system interact.
Developers can pinpoint software faults, timing conflicts, and other problems. A visualization component displays information, so problems can be seen more quickly. It can display information, such as kernel calls, hardware interrupts, threat states, messages, and scheduling activities.
It is nonintrusive, allowing it to be used on live production systems with minimal system impact.