Divide and conquer
B&R's new Automation Studio 4 brings machine manufacturers three decisive advantages: maximum quality despite increasing product complexity, reduced engineering costs and faster time to market. Complex projects can be developed in parallel by perfectly coordinated teams. Hard-earned expertise and successful functions can be preserved in modular software, allowing them to be leveraged over and over again. This is how B&R helps its customers meet and exceed their development goals with time to spare.
B&R first introduced Automation Studio in 1992 as an integrated development tool that broke down the barriers between the various disciplines involved in developing an automation solution. Whether it's process control, HMI and operation, drives and motors or safety technology – the programs that make up a B&R automation solution are created from start to finish in a single uniform development environment.
Market demands placed on machines and systems have undergone some changes in the mean time. Today's machines must provide complex functionality tailored to each user's specific needs. At the same time, they must have the flexibility and wealth of options to adapt quickly and effectively when the user's needs change, and they must be open enough to be integrated into an overall system. What is more, they must do all this with the price and stability of a large scale series-produced machine, be produced and commissioned rapidly and, of course, adhere to all applicable standards and specifications. Last but not least, buyers want to be able to react to changes in demand by adding to or modifying the solution itself, or by making their own modifications to the software.
Mastering product complexity
In order to respond to the increasing complexity of today's products without throwing schedules and budgets to the wind, machine builders have discovered the advantages of standardization and modularization. They develop standard parts and components to perform specific functions and combine them as needed into a complete machine or system using well-defined connections. In many design offices, projects are split up between specialists in the various engineering disciplines.
"What has long been standard practice in mechanical engineering should be just as easy to apply to software engineering," says Dr. Hans Egermeier, business manager of B&R's Automation Software business unit. "The same practices have already saturated the field of IT, but machine manufacturers stubbornly cling to the same methods they've been using since the earliest days of PLC programming. They turn software development of complex mechatronic systems into a herculean task." One reason for this is the widespread and persistent misconception that production lines represent strictly sequential processes – despite the clear trend toward increasing complexity and parallel operations taking place throughout machines and systems.
The lines separating the fields of PLC, CNC, robotics, intelligent axis control, HMI and communication are becoming increasingly blurred. If a software solution is going to rise to the challenge of increasing complexity to manage entire machines and intricate algorithms without becoming unwieldy or inefficient, a modular structure is absolutely essential. In the same way that mechanical engineers use standard parts and components, a modular software structure is created using libraries of standardized functions, processes and control algorithms.
Keeping large programs manageable
The idea of compartmentalizing specific programs as function blocks grouped in libraries and then simply referencing them in the main program has been around for some time, and programmers have thoroughly adopted this technique. Existing versions of Automation Studio also already provide fully integrated support for object-oriented programming in C++. This approach to programming allows the developer to select from a structure of program classes, which serve as functional containers for the smallest function-specific programs. Assigning values turns them into program objects that can be assembled like building blocks or nested within one another.
"Object-oriented programming is the key to software modularization," explains Wolfgang Portugaller, chief system architect at B&R. "It helps us maintain clear organization throughout large programs, which makes them more maintenance-friendly over the long term." Yet, despite the potential for creating large hierarchical chains of objects, the building blocks you're working with are still on a very small scale. With all the advantages of object-oriented programming, in the end developers still need to consolidate all the constituent parts of an overall solution so they can be compiled, tested and commissioned for use on a machine or system.
One of the key new features of Automation Studio 4 is a higher order of modularity based on autonomous application modules. The size of an application module can vary depending on whether it represents a single function, a machine component or an entire machine module. Internally, they contain a hierarchy of function blocks, entire programs or various combinations of the two.
Efficient distribution of development tasks
In addition to making it easier to model software after a modular machine design, application modules are the perfect tool for encapsulating development tasks and distributing them to multiple developers. Since there is no need for these developers to be in the same building, you then have the freedom to use an external service provider or let the customer program certain parts of the solution. This allows function-specific programs to be assigned to the appropriate specialists or massive tasks to be split up among multiple developers.
The result is a significant acceleration in software development. With all teams adhering to clearly specified interfaces, these application modules can be developed simultaneously and tested individually in a simulated environment as soon as each is ready. What's more, Automation Studio 4 comes equipped with a whole slew of preprogrammed libraries and function modules ready to be integrated in a project, for example to control a drive axis.
Data is exchanged between application modules via mapped process variables, a mechanism that has already proven to be extremely reliable and efficient. There is no need to define global variables externally, since the application module contains a definition of which other modules have access to which areas of its own address space. This means developers don't have to think of everything right from the beginning, and instead gives them the freedom to define the interfaces for data exchange as they go.
Application modules are compiled individually. This allows them to be rolled out for testing and successive commissioning as they're ready and needed, which makes troubleshooting both easier and faster. What these otherwise autonomous components have in common is a software and hardware configuration from which they draw information about the runtime environment where they will eventually need to operate. Changes made during the prototype phase or in the event of later expansions are implemented within clearly delineated parts of the overall system, minimizing the risk of quick changes affecting quality. The time and cost of recertification after changes are made is also substantially reduced, since only the modules directly affected by the change need to be verified.
Successive upgrades to individual modules
This brings up a further possibility for increasing the efficiency of software development. Where the traditional approach has been to develop an entire machine generation in one fell swoop, it is now possible to release an upgraded version of an individual component on its own. This evens out the load on the development team and relieves the pressure associated with notoriously tight completion deadlines.
"This tends to have a very positive effect on software quality," assures Portugaller. "Fully developed application modules can easily be reused in other projects, which saves time that can be invested in more extensive testing, in turn cutting commissioning times." This is not merely a matter of sustainable and efficient development – above all, it is clearly in the best interest of the customer.