Abstract
Java has become a very popular alternative to C++ in a number of application areas. The same properties of Java that make it attractive for use in WWW applets or enterprise computing - portability, more rational syntax than C++, modern features included in the specification, automatic memory management, no pointers - naturally suggest its use for direct control of mechanical systems. Java is already used for many embedded applications and is clearly of value for high and mid-level control system software. Its applicability for lower level control functionality as well is tested here in a mechanical system control context.Two popular environments are tested: Windows-2000 and QNX. The problem of software generation of a pulse-width modulated (PWM) signal is used for the testing. Software-based PWM is very sensitive to timing errors so is a simple, but effective test. An environment that implements a task/state model for control of complex mechanical systems is used as the base for development of the test program. The resulting programs provide control multitasking but are single-threaded internally so do not depend on the threading model or mechanisms used by the Java virtual machine (JVM). They achieve real-time performance through the stylistic restriction to all non-blocking code.The result shows that while Java can be very effectively used for prototyping or instruction, it does not yet provide the predicability needed for reliable direct control of mechanical systems. Direct control is defined such that Java is used for all aspects of control, except for those functions that need native methods. Behavior in QNX is more predictable than in Windows-2000, but even Windows-2000, not designed or marketed as a real time operating system, can be used effectively for initial prototyping and debugging. There are current efforts underway to define real time extensions to Java, but their effectiveness is yet to be tested. Thus, Java is certainly useful for higher level functions of mechanical control systems, but further development is needed to make it fully usable for low-level (sub-millisecond) control of mechanical systems.
Talk to us
Join us for a 30 min session where you can share your feedback and ask us any queries you have
Disclaimer: All third-party content on this website/platform is and will remain the property of their respective owners and is provided on "as is" basis without any warranties, express or implied. Use of third-party content does not indicate any affiliation, sponsorship with or endorsement by them. Any references to third-party content is to identify the corresponding services and shall be considered fair use under The CopyrightLaw.