Ada95 Runs Realtime
Command & Control System
on Windows OS & Pentium
Ann S. Brandon
One of the promises of Ada is portability. Yet managers of legacy code in Fortran, SmallTalk, or Ada often assume that changing a system’s hardware means entirely redesigning the software in a new buzzword language. If they decide to revamp the current programs in the original language, they assume the cost will be such that they might as well have been rewritten the software from scratch.
In software manager George Holt’s experience, porting Ada code to the latest architectures is not only reasonable technologically and financially, but can be done rapidly. This is true even when the latest technology is the humble PC loaded with the operating system and software that everyone uses. His team’s work resulted in the first tactical command and control weapon being run on a PC.
Now president of AdaRose, Inc.,
Holt was a software manager for Mei Technology Corp. when the US Army asked that the Paladin Howitzer Artillery Vehicle be upgraded. In a matter of months his team put together a working prototype for PM Paladin at Picatinny Arsenal, NJ. They proved to the many skeptics among the Army's software managers that they could port the Ada83 code from a proprietary OS to Ada95 running on a PC’s Pentium processor under Microsoft Windows NT.
The Paladin is an Army Artillery System mounted on a tracked vehicle (many civilians mistake it for a tank with a huge cannon). It fires 155mm (about 6.2 inch diameter) shells to a range of 30 kilometers. It has onboard navigational and automatic fire control systems, a four-man crew, and weighs approximately 62,000 lbs with a cruising range of 186 miles.
The Paladin can operate independently. From on the move, it can receive a fire mission, compute firing data, select and take up its firing position, automatically unlock and point its cannon, fire and move out--all with no external technical assistance. Paladin is capable of firing up to four rounds per minute. The Paladin features increased survivability characteristics such as day/night operability, nuclear, biological, and chemical protection with climate control and secure voice and digital communications.
The Paladin/FAASV is an ammunition resupply vehicle fielded with the Paladin that contains many artillery rounds and is capable of fast-feeding ammunition to the vehicle.
The display unit is menu driven with ASCII text. The operator uses no keyboard, but instead has a numerical keypad for entering numbers, and up and down and right and left arrow keys with which to step through the menus. Soft keys are situated below the display and their function changes according to the menu. The menu system allows entry of important info such as target coordinates and allows the operator to elevate the gun to a certain position to make it easier to load ammo into the cannon; he presses another key for aligning to the target. One-third of the way up the cannon’s barrel sits an extremely accurate inertial navigation unit that tracks where the gun is in space (x,y,z coordinates). This positional data is fed to the software to align to the gun before firing. The Nav Unit uses a three-ring laser gyro and is produced by Honeywell.
The previous and current Ada software controls the Paladin’s automatic firing control system functions, such as interactions with a number of hardware components; an inertial navigation unit with GPS that feeds into the software; command, control, and communications; digital and voice radio links to a command center; targeting info through digital means like the internet; commands to fire on a specific target; computing ballistic solutions; auto positioning the gun in elevation, and azimuth for aiming on the target.
All the major functions are contained in 225,000 lines of Ada, counted as carriage returns with no comments. The main kernal input/output (KIO) driver that acts as interface between the hardware and software is written in C.
Originally in Ada83 with a significant amount of assembler language, the code interacted with three separate computers connected on a 1553 communication bus. The heart of the new system is an Intel-based automatic fire control computer that replaced the three line replaceable computer units while maintaining existing user interface, operational procedures, and tactical functionality. The conversion to Ada95 was “pretty straight forward though not automatic,“ according to Holt in a recent interview. “It involved a lot of manual smoothing and adding more functionality,“ which pumped up the project by an extra 25,000 Ada lines.
Luckily, some software engineers on the project had been experts at assembler and were proficient in Ada95. The assembler was hardware oriented, and those components were no longer operational, but the functionality had to be maintained. “You needed the speed then but today you don’t,” Holt explained. “Processors are powerful and cheap now and we really exploited their capabilities.”
The port to the Pentium processor and NT OS created a unique situation, being the first time a tactical weapon system ran on a PC platform. The obstacles proved to be more from a lack of confidence, by many, in the power of the newest off-the-shelf architectures. Windows NT is obviously not a realtime OS (RTOS), which most weapons systems require, and therefore, the logic continued, the engineers would not be able to multi-task in real-time. Holt’s team convinced the government that it did not need an RTOS because of the Pentium’s speed, which for this particular weapon system multitasks in real-time.
The Mei Technology Corp engineers had to produce a proof of concept first to see if the modified software could run on NT. Within a few months after receiving the go-ahead, the engineers mounted the Paladin vehicle with the prototype software, hooked it up to the system, and ran a mission through a laptop with the converted code. After this proof-of-concept, the engineers, teamed with HW Vendors and Army Engineers from Picatinny Arsenal, developed and fielded the new system in less than two years.
Once awarded the contract, the team kept their approach to acquisitions, using commercial off-the-shelf technologies and open-system architecture designs, in accordance with DoD reform initiatives. As a result, the M109A6 Paladin now has a fire control computer with superior speed, expandability, and logistics supportability. All of these features were realized while saving $27.5 million in production costs and reducing the computers’ lifecycle costs by 75 percent. These savings were realized by leveraging several key industrial-based technologies such as using a Pentium processor, the Ada programming language, and Windows NT, and combining them to meet the rigors of the military environment.
The engineers, many of whom now work for AdaRose in its Lexington, Mass., headquarters, played a major role in this revolutionary rehosting of an Army command and control system. The Paladin Automatic Fire Control System software was the first weapons system to be ported to an open architecture Pentium based computer running on Windows NT. The engineers’ performance in creating this first was key in contributing to the Defense Standardization Program Outstanding Performance Award that was subsequently awarded for the milestone effort. Holt and the team’s Technical Director, Ken Curry, accepted the award for Mei Technology.
Use of the Ada programming language and strong modular programming techniques allowed the team to rehost the legacy Ada software from the three-box distributed system to the new, one-box platform. Once coupled with the use of a Pentium processor and Windows NT, the team, in turn, exported the new software to similar U.S. military equipment, with minimal development costs.
Holt says that their work with Ada went well. Part of the software engineers’ success came from using an Aonix Active Ada compiler and the ClearCase configuration management system, as well as their knowledge of Ada. While not everyone they hired was an Ada programmer, most had experience in Pascal or C. “Converting from another language to Ada is not as hard as teaching someone who has never programmed before,” Holt said. “Just like a good mechanic can work on a Mercedes Benz or a Chevrolet, so a good programmer can work in Ada or C.”
He says that programmers must be careful when using existing design documents. “Very often, in the military world your design documents may not be telling you what the code’s doing. With legacy software any changes to the code may not have been reflected in the existing design documentation. However, a good programmer can look at Ada code and get an excellent feel for what the code is doing.”
“To keep future engineers informed of the software changes, the Paladin team early in the project took the propriety software, analyzed each module, and redid all of the headers to provide more precise and up-to-date information. When programmers keep the headers up-to-date it provides a better understanding of the existing design documents, and a much easier path to bring these documents up to date. This leads to good fielding and lifecycle maintenance.”
It also leads to making the next port to future everyday architecture even easier.
# # #
For more information, see AdaRose
Ann S. Brandon
Communications Director, ARA