| |
Control and State Logic
Commands and data requests from the DMIS Part 2 interfaces are handled by this logic,
which routes the request data to methods on the internal objects. This code also manages
state information about sensor selection, probe compensation, and operating status; and
provides general synchronization for multi-carriage (multi-threaded) operation.
Modular Controller Interface
Because CMM motion controllers are designed to perform similar operations (move and measure),
most accept a generally similar set of commands and parameters. The command syntax, as well
as the communication protocol, can vary widely from controller to controller. The Modular
Controller interface creates a common structure - in essense a mini, internal API - capable
of supporting many types of 3 to 6 axis controllers. Multiple instances of possibly dissimilar
controllers are supported for multi-carriage operation.
DME Control Code
This developer-supplied equipment control code is unique to each company's DOT equipment
implementation. This code is called via the Modular Controller Interface, and handles all
communications with the DME controller - whether by serial port, ISA/PCI bus, TCP/IP sockets,
or other hardware configuration. In addition, this module can control other parts of the
inspection hardware if they are not handled by the controller - such as wrist motion
control via the serial port, tool changers, etc.
Driver Classes
The three most common ways to interface to a controller are serial comm, TCP/IP sockets,
and vendor-supplied device driver or DLL. The DOT Equipment plug-in contains basic drivers
that can be used to send and receive text command strings to serial and TCP/IP devices;
and this model can be readily extended to support other communication protocols as well.
Data Compensation Algorithms
Sensor data compensation is handled in the equipment plug-in, as required by DMIS Part 2.
Support Library
A library of helper classes, smart pointers, and macros is also included, to simplify
managing DMIS Part 2 data, and to increase portability. Math classes supply vector arithmetic,
matrix transformations, and other common operations. This library is also used in the
application husk and math plug-ins.
|
|