How .Net Promotes Modularity

The Microsoft .Net Framework and other Web-based technologies are helping automation vendors construct their IDEs from pre-engineered modules that fit together according to standard frameworks.

At Phoenix Contact (www.phoenixcontact.com), software engineers have begun combining the pre-engineered and tested modules in their company’s Automation Framework and developing tailored interfaces for the needs of the user.

“We’re trying to get away from creating different tools for every application and skill level,” explains Jeff Pinegar, controls product manager at Phoenix Contact USA.

To do this, automation vendors are borrowing programming tools and techniques pioneered by business and consumer applications of information technology. “The Web has had a lot of influence on user interfaces,” explains Jesse Bajwa, software engineering manager at Phoenix Contact’s development center in Ann Arbor, Mich. Among these influences has been the way in which Microsoft’s Windows Presentation Foundation has promoted separating the user interface from the logic providing the features.

The result has been a modular, service-oriented architecture. “If your software architecture is well thought out, you can combine the components in different ways,” says Bajwa. “Instead of building monolithic applications, we can build custom applications that are more flexible and easier to deploy.”

One manifestation of this ability is that software engineers can build two IDEs from the same modules, but tailor their interfaces differently to fit the users’ skill at programming control logic. At the high end, such an interface would permit an experienced programmer to write control logic as IEC 61131-compliant function blocks in Visual Studio with C# and store the programs in a library for use on a real-time operating system. For a novice, the programming interface might contain pictures representing electrician-friendly function blocks that the user can click on and drag onto a programming pallet.

Despite the differences, the modules underneath the interfaces would be the same in both instances—and so would the compiler that would generate the executable code. “The compiler would generate the same intermediate language, and the code would run on the same runtime engine,” Pinegar says.

>> Read Automation World's complete coverage, "How Development Environments Simplify PLC Programming".

Companies in this article
More in Control