Progress in Java-based Control
Prototype industrial applications are described that show the power of object-oriented methods for control system development. The Java platform provides the technology base for the development of object-based control systems to support advanced manufacturing. Jini, a Java application, allows automatic device registration in support of computer networks for distributed control.
Contents
Introduction
Features of Java technology
Java networks for distributed control
Industrial Java
Summary and conclusions
References
Introduction
Since Java technology was introduced in 1995, there have been tremendous changes in control technology and in the business environment surrounding manufacturing. The relentless drive toward electronic business and supply-chain operations is placing increasing performance demands on both manufacturing plants and the control systems that support them. In addition, information technology is becoming indistinguishable from control technology as the world of control joins the world of computing. Indeed, in a planet driving toward general societal automation, process control has broadened its domain to include interfaces where information technology connects to a physical world of devices. New Java technologies such as Jini make connecting such devices increasingly easier.
With the convergence of control and computing, the more rapid time-scales of information technology are becoming dominant. The time to obsolescence for the control and automation infrastructure is becoming progressively shorter. The cause of antiquated control systems is not that they wear out, but that they fail to adapt to the changing technological and business environment around them, and thus, are no longer able to provide the required control functionality. The new merger of control and computing, however, provides a powerful set of technologies to extend and replace existing control technologies. One of the most powerful of these is the Java object-oriented platform. The vision of software objects is now some twenty years old, and Java technology is the effective industrial implementation of that vision. The vision is based on a deceptively simple idea: in operation, computing systems perform certain actions on certain objects.
To be more specific, a software object is a self-describing entity that defines itself in terms of data, methods or behavior, and an interface. The interface defines the interactions with other objects or the real world. The software object is encapsulated: that is, all that is needed is inside the object. When the object comes to life, it has a state. Java objects have introspection and reflection; they can check each other's methods. Finally, Java objects have inheritance and can add to the basic object while keeping the same methods and interface. In what follows, we will explore some of the consequences of software objects, particularly their self-describing nature.
The payoff for control engineering of object-oriented software using the Java platform is powerful, flexible, adaptive, intelligent distributed control systems. Such distributed control systems are built on federated networks of computing devices ranging from embedded controllers to large servers. These Java-based control systems can encapsulate or wrap existing control systems and provide the new capabilities required for supply-chain manufacturing. Applications to supply-chains and mass-customization will be illustrated by the examples given below.
Back to top
Features of Java technology
Fundamentally, the Java programming language is an implementation of object-oriented programming (OOP). Among the goals of object-oriented programming are more efficient software development, reusability of modules, and easier software maintenance. All of these criteria are of interest to software engineers developing control systems. Java technology was developed to eliminate the shortcomings of earlier OOP methodologies and to extend its benefits to new applications areas. Over the last five years a number of control system developers using Java technology have reported considerable advantages over development in C and C++.
Taking full advantage of experiences in C++, the developers of Java eliminated certain well-known troublesome features. Java has no pointer architecture, no overloading of operators, no direct access to memory, no multiple inheritance, and no extended constructors. In terms of added features, Java provides exception handling, automatic garbage collection, multithreading, and validation of field accesses and non-initialized variables. Further, Java has built in features for web access and a strong security model.
The secret to Java's universal deployment is a dual-tiered architecture that includes the Java Virtual Machine (JVM) which sits between the Java platform and the operating system, and the Java classes or applications programming interfaces (API's), which provide the interface between Java and the applications. The Java classes cover a wide range of functions and capabilities ranging from database connectivity to security and server management.
Furthermore, Java is portable and interpreted. The Java source code is compiled by the Java compiler into a pseudo-code representation called byte code, the Java Byte Code (JBC). The JBC is a semi-compiled, architectural-neutral representation of the application code. These byte codes are interpreted by a Java virtual machine (JVM) or, if a just-in-time compiler is used, compiled directly to machine code, as the application runs.
Java byte codes can be run on any architecture for which JVM is available. The virtual machine encapsulates all the platform-specific services, including user interface, file system operations, and networking. Converting an existing control infrastructure to one based on Java technology often requires the development of Java encapsulation or wrapping layers for legacy control systems. The platform independence of Java and the use of the JVM are key to the development of these generalized interfaces.
In summary, Java technology is an application development platform which provides a portable, secure, simplified object-oriented language and run-time environment. It has been designed to operate in a distributed environment based on web and Internet technologies. Java operates in a server-based mode, downloading applications to clients on demand. As a result of all these software advances, Java is helping to solve many of the challenges found in industrial automation. By providing cross-platform software implementation processes, code reusability, network integration, visualization and rapid development process, Java is rapidly becoming the technology of choice for the development of new control systems. Java objects are clearly reusable, and new class libraries specific to control engineering are constantly being added.
As a concrete example of the power of Java technology for control, consider measurement objects, which represent a considerable advance over simple transfer of data. A measurement object is self-describing. Thus, a temperature-measurement object will contain not only the value of the temperature measured, but also such information as time and date, the sensor used, calibration state, the device to which it is attached, and the physical processes performed by the device. When this temperature-measurement object is found anywhere in the network, it is immediately useful either for control action or for data mining.
Back to top
Java networks for distributed control
Networks of computers are common architectures for distributed control systems. Prior to the introduction of the Java platform, however, the development, deployment, and operation of such networks presented a wide and diverse set of software problems. Essentially, the network was managed in terms of individual machines and devices, or perhaps sub-networks. With a Java-based network and the power of Java objects, the distributed control system can be administered in a more unified manner, and powerful new control functionality can be added to the network as a whole.
One of the new Java applications available for control is Jini, which provides the infrastructure for self-registration of devices and computers. In a Java-based network, Jini provides an explicit protocol which allows devices to boot and join the network. Jini also contains a lookup service. Once connected to the network and powered up, Jini devices begin the protocol and register with the lookup service. Registration identifies properties and any services the device wishes to offer others in the network. With registration complete, the device is available to other computers in the network. Jini relies on the self-describing power of Java objects.
With Jini-based devices, installation, configuration, and removal of devices is simplified. Removal of a device from a conventional network can be problematic in that system maps and configuration files must be updated. Hence, old references to the device may remain on the network, and considerable rebooting of machines may be required to clear all such references. With Jini a device is simply removed from registration.
Smart devices based on Java technology and operating in Jini environment have other advantages. Such smart devices can communicate directly without the use of an intermediate computer or programmable logic controller. For example, a temperature sensor could detect an excessive reading and send a cooling signal directly to an actuator. In this example, a microprocessor-based controller unit is attached to the sensor. This controller unit may be a system on a chip and may use a Java-based CPU. The controller then communicates to a Java-based network to register itself to provide status and other control information. Use of such concepts can greatly simplify device networks.
The Java programming environment fundamentally changes the assumptions that have governed the building of distributed control systems. On making the assumption that all the computational entities residing on the system are written in Java, a networked control system with the following features results: The Java virtual machine (JVM) forms a homogeneous platform providing a portable format for all applications running as Java byte code. Since all the cooperating software entities are written in the same language, Java, these elements share the same object framework. The security built into the Java platform provides a level of safety to any machines hosting the application. Thus, code may be imported from sources unknown to a machine and run with confidence that the application will not harm the machine.
Control system users benefit from the Java platform by having access to all parts of the distributed system in a straightforward fashion. Control engineers gain access to computational resources and control sub-systems in a natural way without recourse to machine-specific, non-portable conventions.
Back to top
Industrial Java
As a concrete example of a Java-based control system, we now consider prototypes of manufacturing systems for mass-customization. In conjunction with the engineering firm Cyberonix, several industrial Java prototypes were constructed and used in continuing demonstrations. These include a coffee-brewing system, a custom sorting system for food product mixtures, and a remote-controlled traffic signaling system. All of these Java-based systems had both physical and software components.
Coffee-brewing system: The coffee brewing system had functional requirements to receive an order for a custom blend of coffee, either over the Internet or from an external consumer device. The physical system included four silos of coffee beans, blending controls, a transport system, and two commercial coffee brewers.
Food-sorting system: The food-sorting system is able to identify selected products by feature or color from a conveyor line. It accepts orders for a specific quantity of a specific type of food product. Sensors identify items being sorted and route them to various destinations.
Remote traffic signaling system: Traffic and hazard signaling systems in industrial installations often would benefit by remote access from field personnel. In this application, Personal digital assistants (PDAs) with remote-access capability are used to control such devices from distances up to a few kilometers.
Java-based control software: The Java-based software used in these industrial applications included a generalized control environment of Java objects providing a control bus. Other control functions were soft PLCs, I/O interfaces, and a human machine interface. In addition, the Java-based control system easily allows interfaces to remote personal digital assistants for a variety of functions including order entry and operator access.
In all the examples listed above the primary element of the control system was a Java-based controller running on a Unix workstation. This master controller provided the functionality of logic controllers in addition to a richer set of control options, an operator interface, and data transfer capability to higher-level control systems. In addition the master controller provided a software host to standard PLC's so that they could serve as elements of the control system as required.
Back to top
Summary and conclusions
In this paper, we have identified some of the consequences for control engineering of the merger of control and computing into an object-based environment. The potential of self-describing objects for control are only beginning to be explored. Measurement-objects, maintenance objects, and other specialized entities will add significant capability to factory and enterprise control systems. The self-describing objects of Jini provide powerful new capabilities to distributed control systems. As demonstrated by the Java-based industrial prototypes discussed above, the coming age of manufacturing for mass customization will require the full power of Java technologies.
Back to top
References
[1] R.W. Atherton, "Moving Java to the Factory," IEEE Spectrum, vol. 35, pp. 18-23, 1998.
[2] Gary Cornell, C. S. Horstman, Core Java, SunSoft Press-Prentice-Hall, Upper Saddle River, N.J., 1996.
[3] B. Meyer, Object-oriented Software Construction, Prentice Hall, New York, 1988.
[4] S.G. Belovich, "The Perils of Bad Software," Industrial Computing, April, 1999.
[5] www.sun.com
[6] www.ergotech.com
[7] www.tridium.com
[8] www.auspiceinc.com
[9] www.gensym.com
Back to top
About the author
Robert W. Atherton is Worldwide Manager of Process Control for Sun Microsystems, Inc., 901 San Antonio Road, Palo Alto, CA 94304.
This article is provided courtesy of the ISA - the Instrumentation, Systems and Automation Society.
Back to top