Enhanced Machine Controller
Glossary


Enhanced Machine Controller
The NIST program focused on developing and validating the TEAM APIs in real-world applications.

TEAM APIs
Application programming interfaces to open-architecture controllers, developed jointly with the Department of Energy and NIST.

NML
The Neutral Manufacturing Language. This is a term from the Next Generation Controller (NGC) program, and refers in this case to the command, status, and world model information that flows between modules in a controller.

Modularity
The ability of controls suppliers, users, and system integrators to purchase and replace components of the controller without unduly affecting the rest of the controller. For example, this means the ability to replace hardware boards and peripheral devices such as disks or RAM with equivalent products from another source. The key to being able to do this is a definition of the modules which make up a controller, their functionality, their interfaces, and the basic controller infrastructure (bus, CPU chipset, operating system, etc.) which support them. The first three are addressed by the APIs; the infrastructure definition is necessarily a choice made by the system integrators.

Portability
The ease with which a module can be made to run in a controller based on another platform. Portability normally refers to software source code, which should be easily compilable to run on a variety of CPUs and operating systems. Standards such as ANSI C and POSIX, or de facto standards such as Microsoft Windows*, are required to serve as a reference to which programmers adhere.

Scalability
Like portability, scalability refers to the ease with which a module can be made to run in a controller based on another platform, but unlike portability, scalability is an attribute of the controller architecture, not the implementation of the module. Scalability means that a controller based on the architecture may be implemented equally easily by systems integrators entirely in software on a fast processor, as a distributed multi-processor bus system, or in a standalone PC. Scalability of the architecture gives system integrators the ability to build controllers around their customer's needs and budget, and gives customers the freedom to "scale up" to a higher-performance implementation when their needs and budgets increase.

Interoperability
The ability of two or more components to exchange information and use the information that has been exchanged. For example, a trajectory planner which coordinates the motion of several axes must be interoperable with the servo control modules which control the individual axes. This implies an interface that vendors of these products must support so that the expectations of one on the other are met.

Extensibility
The ability of intelligent users and third parties to incrementally add functionality to a module without replacing it completely. For example, an extensible plan interpreter would allow users to add statements to the planning language (such as a new G code, for example). An extensible trajectory generator would allow this G code to be executed, while an extensible discrete input/output module would allow the easy addition of a new actuator or sensor.

* No approval or endorsement of any commercial product by the National Institute of Standards and Technology is intended or implied. Certain commercial equipment, instruments, or materials are identified in this report in order to facilitate understanding. Such identification does not imply recommendation or endorsement by the National Institute of Standards and Technology, nor does it imply that the materials or equipment identified are necessarily the best available for the purpose.