You are on page 1of 92

Programmer’s guide

H-1000-5057-10-C

UCC universal CMM controller

EXTENDED WARRANTY
Now available for this product.
Contact your vendor.
www.renishaw.com/ew
© 2000 - 2006 Renishaw plc. All rights reserved.

Renishaw® is a registered trademark of Renishaw plc.

This document may not be copied or reproduced in whole or in


part, or transferred to any other media or language, by any means,
without the prior written permission of Renishaw.

The publication of material within this document does not imply


freedom from the patent rights of Renishaw plc.

Disclaimer

RENISHAW HAS MADE CONSIDERABLE EFFORTS TO ENSURE


THE CONTENT OF THIS DOCUMENT IS CORRECT AT THE
DATE OF PUBLICATION BUT MAKES NO WARRANTIES OR
REPRESENTATIONS REGARDING THE CONTENT. RENISHAW
EXCLUDES LIABILITY, HOWSOEVER ARISING, FOR ANY
INACCURACIES IN THIS DOCUMENT.

Trademarks

RENISHAW® and the probe emblem used in the RENISHAW logo


are registered trademarks of Renishaw plc in the UK and other
countries.

apply innovation is a trademark of Renishaw plc.

All brand names and product names used in this document are
trade names, service marks, trademarks, or registered trademarks
of their respective owners.

Renishaw part no: H-1000-5057-10-C

Issued: 06 2008
UCC
Universal CMM controller

Programmer’s guide
2 Care of equipment

Care of equipment
Renishaw probes and associated systems are precision tools used for obtaining precise measurements
and must therefore be treated with care.

Changes to Renishaw products


Renishaw reserves the right to improve, change or modify its hardware or software without incurring any
obligations to make changes to Renishaw equipment previously sold.

Warranty
Renishaw plc warrants its equipment for a limited period (as set out in our Standard Terms and Conditions
of Sale) provided that it is installed exactly as defined in associated Renishaw documentation.

Prior consent must be obtained from Renishaw if non-Renishaw equipment (e.g. interfaces and/or cabling)
is to be used or substituted. Failure to comply with this will invalidate the Renishaw warranty.

Claims under warranty must be made from authorised service centres only, which may be advised by the
supplier or distributor.

Trademarks
Windows 98, Windows ME, Windows XP, Windows 2000 and Windows NT are registered tradenames of
the Microsoft Corporation.

IBM is the tradename of the International Business Machines Inc

All trademarks and tradenames are acknowledged.


References and associated documents 3

References and associated documents


It is recommended that the following documentation is referenced to when installing the UCC.

Renishaw documents
Documentation supplied on Renishaw UCC software CD.

Document number Title

H-1000-5057 UCC controller programmer’s guide


H-1000-5058 RENICIS user’s guide
H-1000-5220 UCC daughtercard installation guide
H-1000-5230 UCC COM classes user’s guide
H-1000-5222 UCC command set
H-1000-5227 UCC servo tuning user’s guide
4 General overview

Contents

1 General overview................................................................................................................................ 8

1.1 Introduction to the UCC controller ............................................................................................ 8


1.1.1 Purpose..................................................................................................................... 8
1.1.2 Data transfer and control .......................................................................................... 9

1.2 How to use the programmer’s guide ........................................................................................ 9

1.3 Communication with the controller ........................................................................................... 9

1.4 Specialised controller features ............................................................................................... 10


1.4.1 CMM measuring accuracy enhancement ............................................................... 10
1.4.2 Measurement co-ordinate systems......................................................................... 10
1.4.3 Digitising and scanning abilities .............................................................................. 11
1.4.4 Data filtering............................................................................................................ 11
1.4.5 Interfacing to other system components ................................................................. 11

2 Command features and the Renishaw COM classes....................................................................... 12

2.1 Using the COM classes - C++ MFC Sample "UCCDevFE" ................................................... 12

2.2 The Link COM Class .............................................................................................................. 13


2.2.1 The getLock() and releaseLock() methods ............................................................. 13
2.2.2 The resync state and resyncing the link.................................................................. 14

2.3 Errors returned by Renishaw COM classes ........................................................................... 15

2.4 General UCC command use .................................................................................................. 15


2.4.1 Protocol................................................................................................................... 16
2.4.2 Position reporting .................................................................................................... 16
2.4.3 Units of measurement............................................................................................. 17
2.4.4 Status reporting in ‘Read Position’ commands ....................................................... 17
2.4.5 Timing and data rates ............................................................................................. 20

3 Initialising the CMM and controller ................................................................................................... 21

3.1 Controller start up, summary .................................................................................................. 21

3.2 Machine parameter initialising................................................................................................ 21


3.2.1 Positional tolerance................................................................................................. 23
3.2.2 Servo filter parameters............................................................................................ 23
3.2.3 Error map ................................................................................................................ 23
3.2.4 Squareness errors .................................................................................................. 24
3.2.5 Z column compensation.......................................................................................... 24

4 Datum setting and probe calibration................................................................................................. 25

4.1 Machine datum setting, summary .......................................................................................... 25


4.1.1 Datum setting from first switch-on........................................................................... 25
General overview 5

4.1.2 Adjusting the absolute datum position .................................................................... 27


4.1.3 Adjusting the master datum position....................................................................... 27
4.1.4 Setting the absolute and master datum points ....................................................... 27

4.2 Creating and using part co-ordinate systems......................................................................... 30


4.2.1 Moving the part datum point ................................................................................... 30
4.2.2 Re-orienting the part co-ordinate system................................................................ 30
4.2.3 Returning to the master datum and co-ordinate system......................................... 30

4.3 Analogue probe calibration .................................................................................................... 31


4.3.1 Probe and stylus qualification ................................................................................. 31

4.4 Changing probe type .............................................................................................................. 33


4.4.1 How to use probe recognition ................................................................................. 33
4.4.2 Probe changed status bit ........................................................................................ 34
4.4.3 Probe type .............................................................................................................. 34
4.4.4 Use of PICS probe power off .................................................................................. 34
4.4.5 Probe Damping....................................................................................................... 35
4.4.6 Use of ‘undetermined’ probe type........................................................................... 35
4.4.7 Use of enter probe type with probe recognition ...................................................... 36

5 Normal CMM operations................................................................................................................... 37

5.1 Measuring a point on a surface.............................................................................................. 37


5.1.1 Touch-trigger probe ................................................................................................ 37
5.1.2 Analogue probe ...................................................................................................... 37
5.1.3 Taking points under joystick control........................................................................ 38
5.1.4 Data collection during back-off ............................................................................... 38

5.2 Servo engagement................................................................................................................. 39

5.3 Servo disengagement ............................................................................................................ 40

5.4 Moving the CMM .................................................................................................................... 40


5.4.1 The blended move command ................................................................................. 40
5.4.2 The enter velocity command................................................................................... 41

5.5 Limits of travel ........................................................................................................................ 41


5.5.1 Limit switches ......................................................................................................... 41
5.5.2 Read head limits ..................................................................................................... 41
5.5.3 Soft limits ................................................................................................................ 42

5.6 Motor overdrive (stall) detection............................................................................................. 42

5.7 Overspeed detection .............................................................................................................. 42

5.8 Stopping the CMM ................................................................................................................. 43

5.9 Servo controls ........................................................................................................................ 43

5.10 Joystick operation .................................................................................................................. 43

6 Scanning........................................................................................................................................... 44
6 General overview

6.1 Digitising overview.................................................................................................................. 44

6.2 Scanning overview ................................................................................................................. 44

6.3 Measurement data buffering .................................................................................................. 45

6.4 Filtering of data....................................................................................................................... 45

6.5 Loss of contact with the scanned surface .............................................................................. 46

6.6 Scanning an empty region...................................................................................................... 47

6.7 2D scanning procedure .......................................................................................................... 47

6.8 2D scanning with parabolic filtering........................................................................................ 48

6.9 3D scanning procedure .......................................................................................................... 48

6.10 3D scan speed ‘learning’ function .......................................................................................... 49

6.11 Checking the quantity of digitised data................................................................................... 50

7 Controller states ............................................................................................................................... 51

7.1 Controller states ..................................................................................................................... 51


7.1.1 Controller state transition diagram .......................................................................... 52

8 CMM error correction........................................................................................................................ 53

8.1 Error mapping......................................................................................................................... 53


8.1.1 Co-ordinate system definition ................................................................................. 53
8.1.2 Types of error map.................................................................................................. 54
8.1.3 The CMM’s working volume.................................................................................... 54
8.1.4 Mapped correction operation .................................................................................. 56
8.1.5 Range ..................................................................................................................... 57
8.1.6 Error map source .................................................................................................... 57
8.1.7 Squareness............................................................................................................. 58
8.1.8 Enabling the error correction processes ................................................................. 58

8.2 Thermal effect compensation ................................................................................................. 61


8.2.1 Thermal compensation commands......................................................................... 61
8.2.2 Configuring thermal compensation ......................................................................... 62

8.3 Error mapping and thermal compensation ............................................................................. 64


8.3.1 Thermal effect model .............................................................................................. 64
8.3.2 Data collection methods and recommendations ..................................................... 65

9 Probe head control ........................................................................................................................... 66

9.1 Probe head control ................................................................................................................. 66


9.1.1 Overview ................................................................................................................. 66

10 Communicating with peripheral devices ........................................................................................... 67

10.1 Autochanger control ............................................................................................................... 67

10.2 PICS bus device connections and signals ............................................................................. 67


General overview 7

10.3 User ports on the controller.................................................................................................... 67

10.4 Joystick unit............................................................................................................................ 67

10.5 PHS........................................................................................................................................ 68

10.6 Rotary table ............................................................................................................................ 70

10.7 Dual Y Drive ........................................................................................................................... 71

10.8 SPA2 ...................................................................................................................................... 71

11 Link monitor ...................................................................................................................................... 72

11.1 Link monitor explained ........................................................................................................... 72


11.1.1 Overview................................................................................................................. 72
11.1.2 Options menu item.................................................................................................. 72
11.1.3 Logging menu item ................................................................................................. 73
11.1.4 Help ........................................................................................................................ 73
11.1.5 Icons ....................................................................................................................... 74
11.1.6 Buttons.................................................................................................................... 74

11.2 Link data capture using the link monitor application .............................................................. 75

11.3 Decoding link data explained ................................................................................................. 76


11.3.1 Overview................................................................................................................. 76
11.3.2 Main menu bar........................................................................................................ 76
11.3.3 Status byte decoder menu bar................................................................................ 78
11.3.4 Status hunter menu bar .......................................................................................... 78
11.3.5 Status searcher menu bar ...................................................................................... 79
11.3.6 Link log display screen ........................................................................................... 79
11.3.7 Command selector display screen.......................................................................... 80
11.3.8 Link command display screen ................................................................................ 81
11.3.9 UCC command options selection ........................................................................... 82

11.4 Link data de-code using the link decode application.............................................................. 82

12 COM modules................................................................................................................................... 83

13 Link failure ........................................................................................................................................ 84

14 Front panel LED patterns ................................................................................................................. 85

15 Appendix 1 - Revision history ........................................................................................................... 87


8 General overview

1 General overview
The purpose of this chapter is to describe the basic purpose and functions of the UCC CMM controller. For
more detailed information please refer to the appropriate chapters in this manual.

1.1 Introduction to the UCC controller


The Renishaw UCC controller is designed to link the hardware of a co-ordinate measuring machine
(CMM) to the CMM’s host computer. The controller can provide services to the component parts of a CMM
system as follows:

a. Read-heads (digital phase/quadrature)

b. Probes (touch-trigger and 3D analogue, etc.)

c. Probe head controllers (PHC10, PHC1050, PHS).

d. Limit switches, emergency stop and other status monitoring switches

e. Analogue signals to servo amplifiers to control the CMM motors

f. A joystick unit (including the Renishaw MCU)

g. User definable analogue and digital I/O

h. Renishaw SPA1 and SPA2 power amplifiers

i. Rotary table

j. Dual Y drive

The user achieves the desired actions by issuing commands to the controller. A high speed bi-directional
link (either Ethernet for UCC2 or optical cable for UCC1) connects the CMM host computer to the
controller.

A range of plug-in daughtercards extends the functionality of the controller by incorporating many
subsystems which would normally require external discrete equipment. This improves system integration
and reduces cost and complexity.

1.1.1 Purpose

The purpose of the UCC controller is to permit control of a CMM from front-end software. The controller
provides the control signals to the CMM/probe system necessary to give the required response (e.g. to
position to a given target with given motion parameters or to scan a given surface, etc.). It contains the
logic circuitry which, together with the supplied software, is necessary to control the CMM from the
computer.
General overview 9

1.1.2 Data transfer and control

The controller will receive instructions from the host computer, and pass information back in the form of
measurement results and status information. It also manages peripheral devices and integrates the
probing/scanning and CMM’s drive systems to give an optimised measuring system, in terms of cost,
reliability, speed of response, accuracy and reduced wiring complexity. The controller will accept from the
CMM the necessary feedback (e.g. scale signals, probe deflections) and status information (e.g. limit
switches etc.) required to implement the response.

1.2 How to use the programmer’s guide


The programmer’s guide gives information on the use of the commands and gives illustrations of the
execution of common CMM processes.

It is recommended that this document is read in conjunction with the UCC command set document
(Renishaw part number H-1000-5222), the UCC COM classes user’s guide (Renishaw part number
H-1000-5230) and the help file ,config.chm, found on the UCC SW installation CD.

Where applicable, flow diagrams are included to assist the applications programmer. These are supplied
as examples of possible methods but users should adapt them to suit the actual system being designed.
Particular attention needs to be paid to error trapping and exception handling, which are not shown in
detail in these examples.

Ancillary CMM devices such as probes, probe heads, joystick units, etc. which interface with the UCC
have further programming information in their own installation guides, where appropriate.

Throughout this document command numbers are shown in parentheses after the command name.

1.3 Communication with the controller


Renishaw has prepared a library of COM modules to assist in creating applications using the UCC
controller. The UCC command set (Renishaw part number H-1000-5222) and the UCC COM classes
user's guide (Renishaw part number H-1000-5230) contain details of the link drivers and their application.

Using the Renishaw COM classes vastly simplifies the front end implementation of UCC, for example a
basic calling sequence to get the UCC up and going and ready for motion is as follows:-

Configuration.ConnectToUCC(. . ., IniFilePath, . . ., . . .)

Configuration.ConfigureForMotion()

Home.PerformHome()

Configuration.ConfigureForMetrology()

(where Configuration and Home are Renishaw UCC COM classes)


10 General overview

The system is now configured, the configuration COM class reading from the machine configuration file for
all parameters that describe the CMM being connected to. This machine configuration file is key to the
operation of the UCC (see chapter 3.1 for more details), it is created by the Renishaw commissioning
software (Renicis) and contains data that describes the system, from type of peripherals connected
(e.g PH10, rotary table etc) through to the servo control parameters. Each UCC/CMM connection has to
have a corresponding machine configuration file, front ends should have a means of selection of the
machine configuration file.

It is possible to poll to get position and status Information or to start the DRO COM object to be sent
regular events containing position and status information.

Move and calibration COM classes have been created to further aide the developer. See the UCC COM
classes user’s guide (Renishaw part number H-1000-5230) for more information.

1.4 Specialised controller features

1.4.1 CMM measuring accuracy enhancement

The controller determines the co-ordinates of the CMM’s probe’s tip from the signals provided from each
of the CMMs measuring axes transducers. ‘Error correction’ and ‘squareness correction’ for that particular
location, on that particular CMM, can be applied to the co-ordinates before returning the data to the host
computer.

This error correction information, which is downloaded to the controller by the host computer during the
controller initialisation, effectively describes the corrections that have to be made to the raw machine and
probe position data before the processed data is passed on to the host computer.

1.4.2 Measurement co-ordinate systems

A part co-ordinate system may be created by the user, generally by measuring the component. This may
be downloaded to the controller which will then accept commands and return data in this system.

The part co-ordinate system is defined by three orthogonal orientation vectors and datum locations and
may be rotated or translated relative to the CMM's basic co-ordinate system by user commands.
General overview 11

1.4.3 Digitising and scanning abilities

The controller has built-in algorithms which are used to control a CMM while digitising or scanning a
surface.

For digitising there are 3 modes. The probe path can follow the object surface in the part XY (part) plane
(a ‘2D scan ‘), around an XY plane following Z height (a 2 ½ D scan’), or in any plane ( a ‘3D scan ‘).

For scanning there are also 4 modes. First, cylinder scan, will measure points on a bore or boss with the
capability to move in a helix by moving in Z. This scan can adapt to surface curvature and position
changes. The second, gasket scan, is where a scan can be completed following a known XY profile, using
defined arcs and points, adapting to Z height variations. The third, grid scan, is where a scan boundary is
defined as a series of points in the XY plane. The scan will then calculate a path of straight lines with a
defined stepover, these lines will fill the area adapting to Z height variations. The fourth, centre find, is
where the probe can be positioned above an artefact (cone, etc) that it is desired to find the centre of, the
probe will then search in a vector direction to find a small angle between the defined vector and the vector
direction. For further details on these scans refer to section 6.2

Data is collected continuously and passed to the host computer as the scan progresses. Loss of contact
with the surface causes an automatic recovery process and rescanning of the problem area.

These operations require the use of a 3D analogue probe (e.g. SP600, SP25, SP80 or optical probe).

The digitising and scanning functions can be enabled using the Renishaw license key manager.

1.4.4 Data filtering

A patented ‘chordal tolerance’ data filtering algorithm can be used to remove redundant information. This
filtering reduces the volume of data returned to the host computer, thereby speeding up the scan data
transfer and reducing the volume of data to be post-processed.

A ‘real time data filter’ is also available within the UCC and can be implemented to the 2D scan and other
scanning functions.

1.4.5 Interfacing to other system components


The UCC has facilities to interface to equipment such as Renishaw probes, probe heads, stylus changers,
etc. thus reducing system mechanical complexity, wiring and cost. The controller program includes
commands for use with such equipment and gives a level of system integration not possible when using
discrete devices.
12 Command features and the Renishaw COM classes

2 Command features and the Renishaw COM classes


The purpose of this chapter is to describe the general features of the controller commands used by the
host computer. All the commands are implemented as COM classes, there are also higher level COM
classes that implement tasks and processes that require the sending of many commands. For example
many of the commands used to configure the system now no longer need be called by the front end SW
directly, Renishaw have implemented a configuration COM class that performs all necessary system set
up and configuration.

The COM classes are all described in detail in the UCC COM classes user’s guide (Renishaw part number
H-1000-5230).

As part of CD Release 6.0 (and later) a C++ MFC sample program is present on the CD, this application is
known as UCCDevFE.

2.1 Using the COM classes - C++ MFC Sample "UCCDevFE"


This sample code implements a simple front end that utilises the Renishaw COM classes. Currently it
contains samples of:-

• Connecting to the UCC

• Configuring the UCC ready for motion

• Homing

• Configuring the UCC ready for metrology

• Displaying a DRO and using the DRO com class

• Joystick enabling and disabling

• Monitoring the UCC during non DNC control capturing joystick requests and data points

• Engaging and disengaging of the CMM servo motors

• PH10 control

• Calibration of analogue probes

• Performing positioning and touch moves

• Performing scan cycles, with relevant polling where required

• Aborting out of COM classes (with logic to ensure current COM class being performed is aborted)

• Accessing data from the machine configuration files (the proper way)

• Manual probe changing


Command features and the Renishaw COM classes 13

It is written such that both the polling and event handling architectures of the Renishaw COM classes have
been implemented. Switching between the two has been achieved at compile time via the pre-processor
variable "EVENTS".

It is programmed using C++ and MFC (more specifically the event handling implementation has used
MFC).

2.2 The Link COM Class


Commands are sent to the UCC via the link COM class, UCC_link. For any front end this class is key,
typically the front end will create just one instance of this class and will pass this into our other COM
classes, be they at the command level or at higher process levels (e.g. configuration, homing, moves and
probe calibration). Also, typically, this is all the front end has to do with this class except using the get and
release Lock methods (to police concurrency on the link).

The link traffic can be monitored and decoded from outside the front end application (see chapter 11). One
debugging/diagnostic tool available to Front End developers is the ability to add strings to the log file
which can then be viewed later using the Link Monitor decoder. To write a string it is necessary to call the
"WriteToLog( BSTR string)" method of the Link Class.

2.2.1 The getLock() and releaseLock() methods

Because there is only one link to the UCC but possibly many threads all trying to talk down this link at the
same time it is necessary to carefully police concurrency. This is achieved by use of the getLock() and
releaseLock() methods. By using these methods it is possible for a thread to lock the link and hence
ensure that only it can communicate to the UCC at that time. At the lowest level the commands COM
classes all call getLock() and releaseLock() as part of their process, they assume that the calling thread
has sorted out locking/releasing of the Lock. A call to getLock() will succeed if the calling thread already
has the link locked. If the command can not get the lock (because another thread has already got it
locked) it will report and error (0x80000009, Link fatal error - locked by another process or thread). The
low level Commands COM Classes are all in process and hence run in the same thread as their caller and
will hence typically be able to lock the link.

The front end should lock the link when it is performing a process that is waiting for a specific response
from the UCC. If the link is not locked during such processes then there is a chance that another thread
could "pinch" the response. So locking the link is required during scanning for example, when not only is
the UCC being polled to report probed data but it is also being polled awaiting the action complete and
success statuses. Once the process is complete it is advisable to release the lock to allow other threads to
get access to the UCC.

The Renishaw COM classes that start worker threads to perform their main processing (i.e. home, move,
UCC_PH10Commands and probe calibration) all require the lock to be free (released) prior to being
called, one of the first tasks they perform is to lock the link. They all release the link once they have
completed. Things to note here are that it is important to NOT access the link class (and hence UCC) from
within an event handler for one of these classes.
14 Command features and the Renishaw COM classes

2.2.2 The resync state and resyncing the link

A rare occurrence is where the synchronisation between UCC and host PC is lost. This can occur if for
example a byte is lost on the link. Iin such circumstance the UCC or host PC could timeout waiting for the
byte that never arrives or maybe the byte received isn’t as expected (in the case of the ACK byte that is
part of every UCC command response). In any case, the UCC will timeout after a period (definable in the
machine configuration file but defaulted to 10 seconds) and will expect to see a specific sequence of bytes
from the Host, these bytes meaning that resynchronisation is required. These bytes are those found when
command 'Resync Controller (351)' is sent.

On timeout the reported error from the Renishaw COM class will be one of the following:-

Error (hexadecimal) Description


0x80000004 Link time-out
0x81000003 Commands communication time-out
0x81000004 Loss of comms. Synchronisation

Once in Resync State the UCC will set its front panel error LED to be continuously illuminated until
resynchronisation has occurred.

Typically this error is not encountered. Most probably it will be encountered during development of a front
end or possibly if a PC is switched OFF/ON with a booted and downloaded UCC1. Resynchronisation is
relatively easy, the options are to send the 'Resync Controller command (351)' after ensuring that the link
class is flushed of any remaining response bytes (by repeatedly calling readBytes() until no further
response is seen and then Reset() on the link classes interface). Another solution, the recommended
solution, is to call the ConnectUCC() method on the configuration COM class with the same parameters
as initially set (ensure the E_AUTO_DOWNLOAD is set as the EdownloadAction enum parameter).

Once resync is complete it should be noted that depending on what was being sent when the loss of sync
happened the controller could be in an unexpected state (e.g. if the loss of sync happened during sending
back the response to a scan command then the UCC may have gone ahead and started scanning whilst
the front end assumed that the command had been lost and hence scanning had not started). Similarly,
probed data points may be lost if the loss of synchronisation occurs during reading position and status. It
is therefore necessary for the front end to handle resynchronisation errors with care, ensuring a consistent
state is returned to prior to restarting any program, it may be necessary for example to send an abort
command and restart any scanning after successfully resyncing the UCC.

NOTE: The time-out period of the host PC must be greater than that of the controller for correct operation.
The controller time-out period can be adjusted from the machine configuration file (key =
ControllerTimeout in the [Machine Description] section) and the user application should set a value for the
host PC which is approximately 1 second longer.
Command features and the Renishaw COM classes 15

2.3 Errors returned by Renishaw COM classes


All the Renishaw UCC related COM classes report errors by means of the GetLastError() property. This
returns a unique code relating to the error and the COM class that raised the error.

The error codes are defined in comUCC_error.h, which is part of the SDK.

To help with error reporting Renishaw have introduced the UCC_error COM class that converts this error
code into a BSTR. The BSTRs are defined in an error file that takes on an ini file format. The master error
file, comUCC_error.ini, contains all the error messages in English. It also contains a list of alternative
language files. These files can be created as required, translating the messages from English to the
alternative language. Any error code that hasn’t got a corresponding message in the currently selected
error file will default to using the message defined in the master file. Front ends can select which language
they require by selecting the alternative language file from an enumeration, accessed via the COM class,
of the list found in the master file.

For further details please refer to the UCC COM classes user’s guide (Renishaw part number
H-1000-5230) for more information.

2.4 General UCC command use


The majority of the commands perform immediate information transfer to and from the controller such as
setting a parameter value or requesting the current position. Other commands start a controller process,
e.g. ‘3D scan command (299)’.

Those commands which start a process require a finite time to execute. During this time the host computer
can monitor the progress of the command by repeatedly requesting the CMM status using ‘Read position
and status command’ or more preferably the UCC_axis_position and status COM class and its Update()
method (this class performs decoding of status bytes and bits that would otherwise have to be done by the
Front End, it is also key to using other Renishaw COM classes). The status information returned with the
position data will show if the command has been completed successfully or if an error has occurred. See
section 2.4.4 for the status flag assignments.

Some processes that take time have been wrapped up into Renishaw COM classes. These COM classes
perform the necessary polling of the UCC. These classes all have the same basic architecture that allows
them to be polled or alternatively they will send back (fire) events to the FE, giving events such as their
status and any probed data they have captured. Currently, Renishaw produce’s COM classes that perform
X, Y, Z, D, E, W and A, B moves, homing of all axis and analogue probe calibration. These classes work
by creating a worker thread so that their processing needn't halt the FE's thread of execution. It is worth
pointing out though that while these classes are running communication to the UCC by the front end is not
possible, to ensure this the link COM class has implemented a locking mechanism. It is still possible for
the FE to get position and status data as long as they use the update() and read property methods of the
UCC_axis_position_and_status Class because this is the same class (and the same instance) that is used
by the Renishaw COM classes and this class deals with the concurrency in a way that is transparent to the
caller. Refer to the Ucc COM classes uer’s guide (Renishaw part number H-1000-5230) for more
information on these classes.

Some processes that take time have not yet been wrapped up in a Renishaw COM class, such processes
are those of 2D Scan, 3D Scan, 21/2D Scan etc. With these commands it is still necessary for the front
end to poll the UCC, collecting data and reacting accordingly to status bytes.
16 Command features and the Renishaw COM classes

The controller does not store commands so that a command will be ignored if it is sent to the controller
while a previous command is still being processed.

While most commands can be sent at any time, a few commands require that the controller is in a certain
state before use. An example of this restriction is that the user cannot change the CMM’s major movement
parameters while the machine is actually in motion. Any such restrictions are listed for each command in
the UCC command set (Renishaw part number H-1000-5222).

Before sending such commands the host computer should check that the controller is in a suitable ‘state
number’, as described section 7.1

All communications between the host computer and the UCC controller is from the CMM’s host computer
to the link to the controller as serial data.

2.4.1 Protocol

Every communication is started by the host computer. The controller cannot initiate any communications.

Replies from the controller to the host computer are buffered in the controller to allow for delays in host
computer response.

2.4.2 Position reporting

Several commands may be used by the host computer to obtain the machine’s position from the controller,
e.g. ‘Read position and status command (276)’ and ‘Read position and probe deflection command (277)’
or 'Read Position command (900)' followed by a ‘Read of Tip’ or ‘Status’ (commands 901, 902, …) etc.

Preferably the COM Class UCC_axis_position_and_status should be used, calling its Update() method
followed by accessing the classes properties to pick up current machine positions and status. Use of this
COM class will allow the other Renishaw COM classes to be utilised much more easily. The status byte
properties on this class are as found in table 1, Status flag positions, but where some of the bits have
been multiplexed to expand utilisation of the available number of status bytes the COM class will
demultiplex them to decode to their true meaning.

The probe position data returned will be in one of two forms:

‘probed data’ where the controller returns the oldest probed (measured) point taken by the CMM but not
yet read by the host computer. A probed point gives the X, Y and Z co-ordinates of the centre of the stylus
tip, i.e. it is the vector sum of the machine position and the probe deflection. Such probed information is
held in a first-in first-out (FIFO) buffer store in the controller until requested by the host computer, and
hence may have been stored for some time. If no probed data is available the controller returns the current
position of the probe, as follows:

‘current position data’ where the X, Y and Z values give the position of the centre of the stylus tip at the
instant the reply was sent to the host computer.

The user can identify the type of information using the appropriate bit of the status bytes which are
returned with the position data, see the status bytes definitions in section 2.1.4 and refer to the UCC COM
class user’s guide (Renishaw part number H-1000-5230) for more info on the class
UCC_axis_position_and_status and its properties.
Command features and the Renishaw COM classes 17

NOTE: Although the probed data returned may have been taken some time previously (and buffered by
the controller), the status information attached to it is, where relevant, current values. However the current
position data and status are always the latest values.

An exception to the above occurs with an analogue probe which has not yet been calibrated. In this case
the returned position data will be scale readings alone, and the probe deflection values are replaced by
the controller’s probe A-to-D converter outputs where the range 32768 to -32767 is equivalent to +10 volts
to -10 volts signal level from the analogue probe. Any probed data returned in such circumstances has
deflections that are estimated using the default probe sensitivity value as defined in the Machine
Configuration file.

2.4.3 Units of measurement

The dimensional data exchanged with the host computer by the controller can be in Metric or Imperial
(Inch) units. If the host computer requires to know what system units are currently in use the ‘Read system
status command’ will return the active units.

The measuring units (metric or imperial) used, in communication between the controller and the host
computer, can be set/changed using two commands. The system units should be set each time the CMM
is started by using the ‘Machine configuration command (256)’. The configuration COM class and machine
configuration file deal with this. If the measuring units have to be changed at a later time then the ‘Set
measuring units command (319)’ allows this without the need to re-send the entire machine configuration.

2.4.4 Status reporting in ‘Read Position’ commands

The host computer can obtain information on the status of the controller and the CMM system by
examining the sixteen status bytes that are part of the reply to position requests on the controller. There
are now 16 status bytes which should be picked up from the UCC_axis_position_and_status COM class.
Historically though there were only 8, but bytes 1 to 8 of the extended status bytes are an exact copy of
the historic 8 status bytes. The old use commands 'Read Position and Status (276)' and 'Read Position
and Deflection (277)' only returned status bytes 1 to 8. The later commands 'Read Position (900)' and
'Read Extended Status (910)' allowed returning of all 16 bytes, but beware that the summary status bytes
returned with 'Read Position (900)' meant that those status bits were not repeated (i.e they were cleared)
on the corresponding 'Read Extended Status (910)'. This can be confusing to Front End developers and is
another very good reason for using the UCC_axis_position_and_status COM Class, this class will sort out
the confusion and ensure that its properties are both synchronised and up to date.The various flags and
numbers contained in these sixteen bytes can have real-time or historic information, as appropriate. Table
1 overleaf lists the flags.

Full definitions of the status flags are held in the UCC command set document (Renishaw part number
H-1000-5222) but the following notes apply to table 1.
18 Command features and the Renishaw COM classes

NOTES:

This table is a copy from the command set definition document, check this for the latest version since its
definitions prevail should they differ.

The scale reading failure may be on any axis and may be due to a reported error from a reading head, or
the controller scale counters having been driven too quickly or an error from the analogue probe A/D.
Further information on the exact cause of this scale failure can be got by sending command “Read Scale
Failure Cause, Cmd 666'. If, as recommended, the COM class UCC_axis_position_and_status is being
used for position and status reporting then CMD 666 will be called by the COM class automatically and
properties on the COM Class will be set accordingly (Refer to COM classes user’s guide, Renishaw part
number H-1000-5230, for more info).

A ‘probed point‘ is a measurement made at the instant of some event which may be the probe being
deflected through its trigger point (mechanical or electronic), a scale marker being detected, a limit switch
opening, or in a scan, the machine having travelled more than a 'pitch' distance from the previous point.
The status bytes and current context allow the user to determine which event occurred.

‘Excessive probe deflection ‘ implies that the probed point was taken while the contact probe was
deflected beyond the normal measuring range.

A host command has an illegal parameter (e.g. inappropriate data for a 2D scan); cleared after reading.
Command features and the Renishaw COM classes 19

Table 1 - Status flag positions


(Extended) Status byte 1 (Extended) Status byte 2
Bit 0 1 = Emergency Stop active Bit 0 1 = action completed
Bit 1 1 = Crash switch active Bit 1 1 = probe hit during move
Bit 2 1 = Air pressure too low Bit 2 1 = limit switch open during move
Bit 3 1 = scale reading failure Bit 3 1 = marker hit during move
Bit 4 1 = servo motors DISENGAGED Bit 4 1 = action successful
Bit 5 1 = overspeed detected by software Bit 5 1 = cannot start move OR failed to
Bit 6 1 = touch trigger probe closed, find surface during scan
or analogue probe not deflected Bit 6 1 = action aborted due to PICS STOP
Bit7 1 = probed point data
0 = current CMM position Bit 7 1 = servo power amplifier failed

(Extended) Status byte 3 (Extended) Status byte 4


Bit 0 Bits 0 to 4 Bit 0 1 = measuring datum lost
Bit 1 constitute the Bit 1 1 = absolute datum set
Bit 2 Controller Bit 2 1 = data buffer overflow
Bit 3 state number Bit 3 1 = analogue probe calibrated
Bit 4 (0 to 31) Bit 4 1 = illegal parameter
Bit 5 1 = X motor overdriven Bit 5 1 = analogue probe nulled
Bit 6 1 = Y motor overdriven Bit 6 1 = excessive probe deflection
Bit 7 1 = Z motor overdriven Bit 7 1= time-out during a move or scan

(Extended) Status byte 5 (Extended) Status byte 6


Bit 0 1 = PHC response ready for host to read Bit 0 1 = OTM probe fitted
Bit 1 1 = ACC response ready for host to read Bit 1 1 = OTM invalid data
Bit 2 1 = TSI response ready for host to read Bit 2 1 = OTM not responding
Bit 3 1 = PHC1050 and PHC10 fitted Bit 3 1 = OTM collision switch actuated
Bit 4 1 = PHC1050 fitted Bit 4 1 = OTM card present
Bit 5 1 = Probe changed Bit 5 1 = OTM initialised
1 = RS232-CH1 response ready for host
Bit 6 Bit 6 1 = OTM calibrated
to read
Bit 7 Temp Comp Alarm Activated Bit 7 Not defined

(Extended) Status byte 7 (Extended) Status byte 8


1 = speed reduced by speed o/ride,
Bit 0 Bit 0 1 = Head Enabled
or inner soft limit exceeded*
1 = store last ‘probed point’ as a
Bit 1 Bit 1 1 = Head Failure (Note 6)
recorded point
Bit 2 1 = delete last recorded point Bit 2 1 = Head Axis Zeroed (Note 6)
1 = X axis Marker, inner limit, outer limit
Bit 3 Bit 3 1 = Head Moving
or soft limit hit*
1 = Y axis Marker, inner limit, outer limit
Bit 4 Bit 4 1 = Head Engaged
or soft limit hit*
1 = Z axis Marker, inner limit, outer limit
Bit 5 Bit 5 Reserved
or soft limit hit*
1 = Outer soft limit hit, or demand would
Bit 6 Bit 6 1 = MCU button Event Occured
have exceeded soft limit range*
0 = +ve soft limit hit*
Bit 7 Bit 7 Not defined
1 = -ve soft limit hit*
20 Command features and the Renishaw COM classes

Extended Status byte 9 Extended Status byte 10


Bit 0 Bit 0 SPA2 Present
Bit 1 Bit 1 SPA2 Link Failed
Bit 2 Bit 2 SPA2 Service Channel Error
Bit 3 Extended controller Bit 3 SPA2 Response Ready
Bit 4 State number Bit 4 SPA2 Comms Checksum Fail
Bit 5 Bit 5 SPA2 Extended Mode
Bit 6 Bit 6 Not defined
Bit7 Bit7 Not defined

Extended Status byte 11 Extended Status byte 12


Bit 0 Bulk Data Available Bit 0 Not defined
Bit 1 Not defined Bit 1 Not defined
Bit 2 Not defined Bit 2 Not defined
Bit 3 Not defined Bit 3 Not defined
Bit 4 Not defined Bit 4 Not defined
Bit 5 Not defined Bit 5 Not defined
Bit 6 Controller Temperature Sensor Failure Bit 6 Not defined
Bit 7 Controller Overheated Bit 7 Not defined

Extended Status byte 13 Extended Status byte 14


Bit 0 Not defined Bit 0 Not defined
Bit 1 Not defined Bit 1 Not defined
Bit 2 Not defined Bit 2 Not defined
Bit 3 Not defined Bit 3 Not defined
Bit 4 Not defined Bit 4 Not defined
Bit 5 Not defined Bit 5 Not defined
Bit 6 Not defined Bit 6 Not defined
Bit 7 Not defined Bit 7 Not defined

Extended Status byte 15 Extended Status byte 16


Bit 0 Not defined Bit 0 Not defined
Bit 1 Not defined Bit 1 Not defined
Bit 2 Not defined Bit 2 Not defined
Bit 3 Not defined Bit 3 Not defined
Bit 4 Not defined Bit 4 Not defined
Bit 5 Not defined Bit 5 Not defined
Bit 6 Not defined Bit 6 Not defined
Bit 7 Not defined Bit 7 Not defined

* For more details of these status flags refer to the UCC command set document (Renishaw part number
H-1000-5222).

2.4.5 Timing and data rates

Replies to commands will normally begin less than 3 milliseconds for UCC1 and 0.5 milliseconds on
UCC2 after the receipt of the full command. Transfer rate is determined by the PC bus speed and the host
computer availability.
Initialising the CMM and controller 21

3 Initialising the CMM and controller


The purpose of this chapter is to describe the processes involved in starting up a CMM system.

3.1 Controller start up, summary

NOTE: Any external probe head controller, e.g. a PHC10, should be powered up before the UCC has its
program downloaded to ensure correct initialisation.

Initialisation of the UCC for use on a specific CMM can now be achieved through just a few method calls
on the configuration COM class. This first method, ConnectUCC() takes in an uninitialised link class
interface pointer, a machine configuration path, a download action enum and optional downloadable file
path.

This method will initialise the link class and if required download the controller software to the controller. In
doing so it will resynchronise the link to the controller if necessary.

A call to this classes ConfigureForMotion() will then send down all necessary configuration data to the
controller, parameters here would historically have been sent using commands “Enter Machine
Configuration”, “Move Configuration”, “Servo Parameters” etc. Now, all the data allied with these
commands is stored in the machine configuration file (sometimes called the machine Ini file as it is
currently formatted as an Ini file) and sent by ConfigureForMotion().

After finding the home position (which can be performed using the homing COM class) the
ConfigureForMetrology()method should be called, this method will send down all metrology parameters,
e.g error maps, squareness coefs and temperature compensation parameters.

Please refer to the help file, config.chm found on the installation CD, for more details on the parameters
within the machine configuration file.

3.2 Machine parameter initialising


Before attempting to use the CMM the user must initialise the parameters used by the controller. This is
done as defined above, using the configuration COM classes methods and the machine configuration file.
Listed below are notes on some of the essential data found within the machine configuration file for a full
description of the contents of the machine configuration file then please refer to the help file (config.chm)
that can be found on the installation CD.

Machine speed factors

Maximum speeds and accelerations are defined within the move configuration section of the machine
configuration file. Consult the UCC command set document (Renishaw part number H-1000-5222) for
details of this data.

These speed values are the maximum which the controller will accept in a command from the host PC for
the type of move being defined (point-to-point, touch or joystick controlled). Each has an associated
maximum acceleration which the controller will observe in the same circumstances.
22 Initialising the CMM and controller

Particular care is needed in specifying the Maximum Move Speed since this defines the velocity gain of
the remainder of the CMM’s servo system (the motors, the tacho-generators (if fitted) and the drive
gearing.

If this value is altered after the CMM has been commissioned (with no change in the CMM hardware) all
machine speeds will be altered, e.g. if the max speed value is halved this implies that the full 10 V motor
command will now produce only half the speed that it did previously. The controller will therefore
compensate by sending speed commands to the motors which are twice the original values to get the
same target machine speeds, resulting in much faster moves than intended, and probably ‘overspeed‘ and
‘overdriven ‘ faults being produced.

NOTE: The machine speed in a command (move or scan) will be limited to only 80% of the maximum
move speed to ensure servo control at all times.

A further parameter in this command is the ‘overspeed factor‘. This is used as a multiplier for the
maximum move speed to give a limit which the software will use to stop the machine if it is moving too
quickly for a significant time. This is normally set at approximately 1.2, i.e. a 20% margin above maximum
speed.

Back-off after contact, etc

The back-off parameters are also set in the machine configuration file. They control the machine’s
behaviour after a ‘touch’, a marker pulse ‘hit’ or the operation of an inner limit switch. Both the back-off
speed and distance should be set for all three. The backoff speed used after a touch will effect the
metrology when using analogue probes, care has to be taken when changes these values, especially if the
in/out triggering mode has been selected.

After one of the above events the controller will stop the machine with full deceleration and will calculate
the back-off direction as the reverse to the approach to the event. The machine will then be moved in this
direction at the back-off speed and stopped when the back-off distance has been travelled.

The CMM accelerations are also specified in this command. The two 'max' accelerations (move and
joystick) are independent of each other. When the UCC is executing a ‘fast stop’, e.g. after hitting a limit
switch, it will use the higher of these two values.

! CAUTION: During a back-off move the probe is disarmed (i.e. it will not detect contact with a
surface).

If the contact or switch operation which caused the stoppage was made at a small angle of incidence the
specified back-off distance may not be enough to clear the surface or switch. In this case either the
‘Control probe open override command (310)’ or the ‘Control limit switch override commands (311)’ should
be used to move the machine until it is clear.

NOTE: After using either of these commands (310 or 311) a cancelling command may be required to
remove the override and hence restore the normal protection. It is imperative that the probe override is
turned OFF once this move is complete. IT IS THE FRONT END WHICH HAS THE RESPONSIBILITY
TO DO THIS. To help police this responsibility the override commands can be programmed with values of
2, this makes the override non modal (i.e. it is automatically cancelled after the move is completed).
Initialising the CMM and controller 23

3.2.1 Positional tolerance

As one of the parameters used in point-to-point moves this should be set using this command. As
described in the command definition, this parameter controls the positioning accuracy at the end of a
move. Move timeouts may be incurred if this value is made so small that the Machine can not reach the
final move target position to within this value.

3.2.2 Servo filter parameters

The following servo system parameters can be found in the machine configuration file. Refer to the
appropriate installation manual for a description of these.

The position loop proportional gains for each axis


These control the ‘stiffness’ of the position servo for normal moves. It should be as high as possible
consistent with stability of servo control.

The analogue probe control loop proportional gain


This parameter adjusts the sensitivity of the surface-following process to analogue probe deflections. This
only affects the CMM performance when scanning.

The frequency response shaping filters for each axis


These may be used to obtain a desired servo performance.

The frequency response shaping filters for the analogue probe


These may be used to optimise the scanning servo performance.

3.2.3 Error map

The error correction data for the CMM should also be downloaded to the controller at the initialisation
stage. As stated earlier, the configuration COM classes method ConfigureForMetrology() handles the
sending of this data.

The error map is a table of correction values which are linearly interpolated and then added (vectorially) by
the controller to the raw readings of machine position to take into account imperfections due to machine
geometry errors and scale errors.

The error map of a CMM is produced by taking a set of very accurate readings over the whole working
volume from an absolute datum using, for example, a laser interferometer. The working volume of the
CMM is divided into a series of cuboids whose corner points produce a 3D grid of points. Refer to
chapter 8 for background information on CMM error correction.
24 Initialising the CMM and controller

3.2.4 Squareness errors

Squareness error is the amount each axis is not orthogonal to the other two axes and this data can be
used to compensate for misalignment of the X, Y and Z axes. These three values are input using the
‘Enter squareness errors command’.

NOTE: Both of the above functions (error map and squareness), along with correction for temperature
effects, can be switched on/off separately using the ‘Control error correction entry in the machine
Configuration file’. All error correction is disabled until specifically enabled with this entry. Each process is
switched on when its bit is set to 1, and disabled when set to 0. Neither process will operate until the
machine absolute datum has been set and the necessary data downloaded.

3.2.5 Z column compensation

This data is intended for cyclone type machines only. Such machines have a relatively flexible Z column
and the reaction to stylus probe deflection forces will cause tangible column deflections. These are
compensated by this command.

NOTE: The command is only relevant to a 3D analogue probe which contacts the surface.
Datum setting and probe calibration 25

4 Datum setting and probe calibration


The purpose of this chapter is to describe the processes involved in setting up the measurement co-
ordinate system(s) and the calibration and qualification of the CMM probes.

4.1 Machine datum setting, summary


The datuming sequence is discussed in the following sections. Before going into the detail of the process
a summary of the terminology and objectives is given here.

The controller uses a three axis right-handed co-ordinate system with a point of origin, as defined in
ISO 841.

Figure 1 – Right-handed co-ordinate system (ISO841)

The controller will allow the use of three types of measurement system origin:

• Absolute datum which is defined as the measuring system origin used when performing the error
mapping process. Extreme accuracy may not be essential in defining this point since it may not be a
primary measuring feature.

• Master datum which is defined as the main reference point for all measuring. This point must be set
with high accuracy and repeatability if day-to-day measurement consistency is required.

• Part datum is a subsidiary reference point to simplify a measuring task. Part data may be set and
removed as often as necessary. The position of the part datum is maintained even though the axis
directions are rotated.

NOTE: Position information returned to the host computer is always referenced to the current part datum.

4.1.1 Datum setting from first switch-on

When first switched on, the controller automatically sets all three datum points coincident with the CMM’s
reported position at that time, which may be anywhere inside the working volume. The co-ordinate system
directions are defined by the machine’s axes.
26 Datum setting and probe calibration

To be able to make repeatable accurate measurements the following process is needed:

1. Setting absolute datum

This is only necessary if using a ‘map’ to correct machine errors. The first step is to Home the
machine, the Homing sequence uses limit switches and or reference markers to locate the
machines Home position.. A COM class exists, CoUCC_Homing found in Motion.dll, to perform this
task, typically this COM class is called just after ConfigureForMotion() and before
ConfigureForMetrology() . If this point can be determined with sufficient accuracy (e.g. using scale
reference marks) it can also be used as the master datum, hence avoiding stage 3 below (This is
typical of most CMM systems).

The absolute datum setting process uses only the position of the CMM components relative to its
measuring scales and does not involve the probe.

Once this has been done the error correction function can be enabled, this is done by the call to
ConfigureForMetrology(). The controller will correct the machine measurements using the error
map.

2. Probe calibration

An analogue CMM probe may require calibration before it can measure accurately. This should be
done before moving to the next stage; a suggested process is described later in this chapter.
Touch-trigger probes do not normally require calibration.

3. Setting master datum

The calibrated probe is now used to find the position of some reference features on the machine.
Further translations are calculated to move the master datum to its precise location, taking the initial
part datum with it. Use the ‘Set master datum command (267)’. The master datum can be used to
perform the probe offset translation i.e. if using a PH10 or some such head or cranked styli it is
possible to use the master datum at the end of probe qualification to set the 0,0,0 point for the tip.
At this time it is also important to send the 'Enter Probe Offsets command (290)', this command
allows the error map to apply correct compensation based on the position of the probe stylus in
relation to the quill.

NOTE: The command 'Enter Probe Offset (290)' does not automatically update the master datum.

At this stage the axis directions are still parallel to the machine axes and this completes the
definition of the master co-ordinate system. The user may now begin measuring.

4. Setting part datum

The user may set a part datum at any time, as required. This involves the calculation or
measurement of the translations needed to move the part datum from its current position, co-
incident with the master datum, to its new position to suit the measuring task and sending these
using the ‘Set part datum command (271)’.

Further part data may be set up at any time, but should the user wish to return to the master datum
he may use the ‘Return to master datum command (268)’.
Datum setting and probe calibration 27

5. Creating a part co-ordinate system

The directions of the axis system can also be altered using the ‘Enter orientation vectors command
(269)’ and the ‘Rotate about axis command(270)’.

NOTE: The ‘Return to master datum command (268)’ will also remove any rotation or re-orientation
of the co-ordinate system so returning it to the master co-ordinate system.

While completing the master datuming process the user has ‘qualified’ the probe configuration in
use. If the probe configuration is later altered it must be re-qualified, but this does not affect the
master datum.

4.1.2 Adjusting the absolute datum position

If the user wishes to reposition the absolute datum point, possibly because of an error or malfunction while
it was set originally, the ‘Remove absolute datum command (272)’ will return the system to the newly
booted state with all three datum points set to the position of the machine scales when it was last switched
on.

4.1.3 Adjusting the master datum position

Should it be necessary to alter the position of the master datum point, perhaps due to probe offsets
changing (a probe change or re-orientation of a head) or a structural change in the machine, the ‘Set
master datum command (267)’ can be used.

The translations required must be calculated from the current master datum position and the new desired
position, both measured in absolute co-ordinates i.e. measured relative to the absolute datum, as were
the translation values used when the master datum was first set. To obtain the required positions of the
old and new master datum points (which will be known in part co-ordinates) for this calculation the user
must convert them using the ‘Convert part to absolute command (348)’. The data returned by the
controller will be in absolute co-ordinates.

4.1.4 Setting the absolute and master datum points

NOTE: The error-mapped correction and squareness correction functions should only be activated when
the absolute datum has been set.

It is highly recommended that Front Ends develop using the Renishaw UCC COM Class suite. As
such they should use the Homing , ConfigureForMetrology and Probe Qualification/Calibration COM
Classes which vastly simplify the sequence below.

See figure 2 on page 28.

When the host computer, controller and CMM are first switched on, the controller has no knowledge of the
position of the CMM's moving parts and it assumes that the centre of the probe stylus tip is at the X, Y, Z
position (0,0,0). At this time the absolute datum, master datum and part datum are coincident with their
origin at the whatever the stylus position was at CMM switch-on, and the co-ordinate system directions are
defined by the machine axes.
28 Datum setting and probe calibration

Before the CMM can be used for measuring the absolute datum must first be set, followed by probe
calibration, if necessary, and then the master datum can be set.

1. The user should now obtain a measurement from a known position on each axis in turn and set the
machine absolute data to each of these, using the ‘Set absolute datum command (266)’.

2. This is the point of reference used when the error map was created and if the correction process is to
be accurate it is essential to use the same absolute datum. If the known position is very accurately
defined (e.g. using scale reference marks) this position of the absolute datum is also valid for the
master datum: see ‘Datum setting using reference marks’, below. If a less accurate method was used,
say the limit switches or end stops, these may be adequate for setting up the error map but better
defined points must be used to set the master datum if day-to-day repeatability is needed.

3. One way to do this is to fix some easily measured object (an ‘artefact’) within the working volume of
the machine and from its position defining the master datum using suitable offset values stored on the
host PC. The CMM’s absolute datum must be accurate enough to allow the user to locate this artefact
to measure its position.

4. Before measuring, the user may have to calibrate the probe depending on type (e.g. the SP600
series). If no probe calibration is needed the user can go to stage 6. The default performance of the
probe will have been adequate to locate the artefact and the user can now use it to calibrate the
probe.

5. See ‘Analogue probe calibration’ section 4.3 later in this chapter.

NOTE: Probe calibration and master datum can be a combined operation in that the Master Datum is
used to refer the current tip back to the tip 0 co-ordinate system by programming a datum shift
equivalent to the probe offset of the current tip to tip 0.

6. The master datum can be found by measuring the position of the fixed artefact and comparing these
readings with the target values held in the host PC storage (sometimes referred to as tip 0). Calculate
the offsets required to indicate the required position.

7. Send these offset values to the controller using the ‘Set master datum command (267)’. The CMM is
now ready to perform measurements.

It should be noted that the absolute datum setting is only concerned with the axis scale readings, i.e. the
machine position, and is not concerned with the location of the probe tip.
Datum setting and probe calibration 29

Figure 2 – Setting the absolute and master datum points


30 Datum setting and probe calibration

4.2 Creating and using part co-ordinate systems


There are two requirements for creating a part co-ordinate system:

1. Establish the part co-ordinate system datum, in all axes, as described below.

2. Establish the directions of the part co-ordinate system axes relative to the machine.

Generally this latter is done by defining the direction of one of the axes, e.g. a normal to a plane, or the
axis of a bore, etc. A second axis is the defined perpendicular to the first, e.g. by defining a line. the third
axis is then automatically defined.

At any time any axis component of the part datum may be set:

e.g. if a plane is used to define the orientation of the Z axis, then a point in the plane can be used to set
the Z datum,

or, if an axis of a bore is used then a point on that axis can be used to define the XY datum.

The system will automatically maintain the part datum point when any orientation is changed.

4.2.1 Moving the part datum point

The user must define the position of the new part datum point in the existing co-ordinate system (initially
with the master/part datum as origin). He must then calculate the translations needed to move the part
datum to the new position and send these to the controller using the ‘Set part datum command (271)’,
once for each axis.

Subsequently, it may be expedient to move the part datum to another location. The same procedure is
followed; there is no need to return to the master datum co-ordinate system before moving to the new
position. The process can be repeated indefinitely.

In addition, moving the part datum does not alter the directions of the current co-ordinate system, it merely
moves the origin of that system to the new location.

4.2.2 Re-orienting the part co-ordinate system.

When the master datum is first set, the axes of the part co-ordinate system are parallel to the machine’s
axes. The axis directions can be altered by either rotation about one of the axes using the ‘Rotate about
axis command (270)’, or by the more general ‘Enter orientation vectors command (269)’. The axis
directions of the co-ordinate system so created will persist even if the origin of the part system (the part
datum) is moved to new locations.

4.2.3 Returning to the master datum and co-ordinate system

If the ‘Return to master datum command (268)’ is used, the part co-ordinate system will revert to the
master co-ordinate system i.e. its directions will return to parallelism with the machine’s axes, as they were
when the master datum was initially set, and its origin will be coincident with the master datum point.
Datum setting and probe calibration 31

4.3 Analogue probe calibration


Before accurate metrology can be obtained from an analogue probe (SP25, SP600 or SP80) it is
necessary to calibrate it. Calibration performs many tasks, from nulling of the probe readings through
probe gain calculation to alignment of the probe's axis to the machine co-ordinate system and potentially
qualification of the probe. The calibration data is that data that is unique to the probe/stylus/orientation
combination and is used by the UCC to convert the raw deflection readings into accurate deflections in the
machine co-ordinate system.

Renishaw has implemented COM classes that perform this process for the UCC, these COM classes
reside in the file CoUCC_Scanning_Probe_calibration.dll. These COM classes are described in greater
depth in the UCC COM class user’s guide (Renishaw part number H-1000-5230). Below is a summary of
the usage of these classes:-

• Every probe/stylus/orientation combination will require the probe calibration data to be downloaded to
the UCC system prior to using the system to get accurate metrology.

• For a new probe/stylus/orientation combination it is necessary to perform a calibration. The Renishaw


COM class will perform this calibration, using the class UCC_scanning_probe_calibration and its
PerformCalibration method(). Once finished the UCC will have the calibration data loaded and the
probe will be ready to use in either discrete point taking mode or scanning.

• Performing probe calibration also allows for the calibration data to be stored on the host PC. To do this
there are methods on the UCC_scanning_probe_calibration_information COM class, these are
WriteToFile( BSTR *) and readFromFile( BSTR *). It is the front ends responsibility to implement the
naming scheme for the files that are written to. A further method (Send()) is responsible for sending the
calibration data that has been read from file to the UCC.

• This calibration data file (recommended extension '.prb') contains not only the calibration polynomial
data but also the probes null offsets, stylus radius and measured calibration sphere centers (which can
be used to calculate probe offsets and hence Master Datums). The calibration and qualification COM
classes DO NOT update the master datum, this is the responsibility of the front end.

• A qualification COM class, UCC_probe_qualification, can be used to re-qualify a probe i.e. find its
stylus radius and measured calibration sphere centre. This COM class can be used after re-nulling of
the probe.

4.3.1 Probe and stylus qualification

When first calibrated the combination of probe, stylus and probe-head used is assumed to have a net
offset of 0,0,0.

If any probing components are changed, or their orientation altered, the probe must be ‘qualified’ before
being used for measuring, i.e. the differences in the position of the centre of the active stylus tip from the
original must be found and used as an offset values in all subsequent measurements.

NOTE: A change of probe type, say from analogue-contact type to touch-trigger type requires more
extensive changes, also re-orientation of analogue probe types will also require re-calibration, see section
4.4.
32 Datum setting and probe calibration

To qualify the probe and stylus use a known object, e.g. a reference ball, to find the centre of the stylus.
The Renishaw COM class UCC_probe_qualification can be used to qualify a probe, this COM class
performs all necessary moves and returns effective stylus radius and calibration sphere's/reference ball's
centre position. Qualification is a default action of the Renishaw calibration COM class when its calibrating
a probe, or it can be performed on its own by setting the 'QualifyWithoutCalibrating' property of the
IUCC_probe_qualification2 interface. The calibration data file stores the measured calibration sphere
centre and this data can be used to calculate the probe offsets, this data can be retrieved by calling the
'calibratedSphereCentre()' method of the UCC_scanning_probe_information class. The differences from
the originally fitted probe and stylus combination can be calculated and should be stored in the host
computer as offsets, and sent to the controller by the ‘Enter probe offsets command (290)’.When a probe
is further modified, e.g. if the stylus is changed, or a different stylus tip selected from a multi-tip stylus, or a
probe-head position is altered, etc., the qualification process must be carried out again. For an analogue
probe a re-calibration or re-loading of a previously calibrated probe's data is also usually required.

The information for each probe and stylus and probe-head setting which has been qualified can be stored
by the host computer, so that probing components can be interchanged without the need to re-qualify
each time. This assumes that the changes can be made with sufficient repeatability of measurement.

If returning the probe + stylus combination to a previously calibrated and qualified configuration and
position, the original probe matrix and offset data can be used again. At this time the probe deflection null
offsets may have changed from the values in use when the probe was originally being calibrated. The user
must decide whether to accept the original values or to re-measure them. This latter course will require
complete re-calibration and qualification of the probe + stylus.

The deciding factor is probably whether significant thermal drift in the offsets will have taken place since
the original probe nulling. If the CMM is in a thermally stable environment and the type of probe in use
does not suffer from drift due to temperature changes, the original figures should still be valid. These
should have been stored by the user after the original calibration using the ‘Read and Write probe null
offsets command (353)’, and can now be used to restore these values using the same command. The
Nulls are stored in the probe calibration data file under the 'Null Offsets' section. These can be updated as
follows:-

• Clear out any current probe calibration from the controller by using 'Reset Probe Calibration command
(285)'.

• Perform a NULL of the probe using 'Null Analogue Probe command (288)'.

• Read these new nulls from the controller using ‘Read and Write Probe Null Offsets command (353)’.

• Create a UCC_scanning_probe_information COM class, populating by performing a ReadFromFile()


method call.

• Update the NULL Offsets via the method 'NullOffsets()' on this class.

• Calling the class's WriteToFile() method to ensure that these updates are written to file.

• Use the Send() method on the class to send the calibration data to the UCC.

• If the nulls are changed in this way then it is necessary to re-qualify the probe as described above, this
will allow updating of the probe offsets so that the datum is not lost.
Datum setting and probe calibration 33

To allow a user to interrupt a measurement task to qualify a new probe configuration, the ‘Save/restore
part co-ordinate system command (273)’, will instruct the controller to store the current part co-ordinate
system (axes directions and origin) and change to measuring in the machine co-ordinate system
referenced to the absolute datum. Probe qualification can then be carried out, if necessary creating a new
probe co-ordinate system. The same command 273 can then be used to return the controller to the
original part co-ordinate system and the measuring task may be resumed.

4.4 Changing probe type


The probe types which can be used with the UCC1 controller are:

• touch-trigger probes

• analogue contact probes

• optical probes

If the user changes the probe then the UCC1 will automatically detect this and recognise the new probe
type being fitted. This type can be read with 'read system status command (280)'

Calibration will probably be necessary if the new probe is an analogue type and has not been previously
calibrated, see ‘Analogue probe calibration’ (section 4.3).

For analogue probes with no previous valid calibration data or for calibrated probes whose Nulls have
drifted it may be necessary to Null the probe (see section 4.2.1) to allow motion (without the danger of
turning probe override ON). If this nulling is performed then, as a minimum, it will be necessary to re-
qualify the probe. If no previous calibration is valid for this probe then it will be necessary to calibrate the
probe (the calibration process performing the nulling and qualification).

Re-qualification will be needed if the user has no previous applicable qualification data or the nulls have
been updated (if analogue probe).

For an optical probe please refer to the appropriate user’s handbooks for the probe and interface board
being used.

4.4.1 How to use probe recognition

If Renishaw cyclone hardware is fitted (and ‘MACHINE TYPE’ is set to Cyclone), then the value
returned for ‘PROBE TYPE’ remains as the value that was set using in the machine configuration file. If
CMM hardware is fitted (and ‘MACHINE TYPE’ is set to powered or non-powered), then the actual probe
type that is connected to the system will be sensed and reported in the ‘PROBE TYPE’ parameter.

When the probe is changed (either manually or by use of the autochange system), then the
probeChanged property of class UCC_axis_position_and_status (status byte 5, bit 5) is set to indicate the
change. When change of probe type is detected, then the ‘Read system status command (281)’ can be
used to determine which type of probe is now fitted.

Once the change of probe has been detected then the FE should call the ConfigureNewProbe() method of
the configuration COM class. This method will configure the system for that probe type (setting parameters
such as backoff distances and speeds and tuning parameters).
34 Datum setting and probe calibration

If the move COM class sees the probe change flag being set whilst in its PerformMove() Method it will fire
a probeChanged event. This event can be handled by the front end and if it is then it should be noted that
comms to the UCC is not possible (and shouldn’t be tried) until the move COM class (that fired the event)
has completed. A solution here is to record the fact that a probe changed has occurred during the move
and to react to this once the move COM class has finished. Conversely the move COM class has a
property named probeChangedDuringMove that can be used for exactly this reason.

4.4.2 Probe changed status bit

The probe changed status bit is used to indicate the removal or attachment of a probe.

It also provides indication that the user defined probe type differs from the actual probe attached to the
CMM.

On two wire systems it is not possible to differentiate between a touch trigger probe and when no probe is
fitted. The probe changed status bit will not be set in this circumstance.

NOTE: A probe change is only detected when the system is in ‘Disengaged’ or ‘Hold’ state.

4.4.3 Probe type

Probe type provides identification of the specific probe attached, the table below shows the probe types
available with corresponding probe ID number:

Probe type Probe ID


Touch trigger probe (seated 2-wire system) 0
3D analogue probe 1
TP200 touch trigger probe 2
Reserved for future use 3
OTM optical probe 4
No probe fitted (TTP open 2-wire system) 5
SP80 6
SP25 with analogue probe module 7
SP25 with seated TTP module 10
SP25 with no module or open TTP module 15
Unknown / undetermined probe type 254

4.4.4 Use of PICS probe power off

Ideally PICS probe power off should be used when changing probes. If connected correctly, an auto-
change rack generates PICS probe power off when a probe is in close proximity to the rack.

When PICS probe power off is set, triggers are suppressed to prevent automatic back-off during the
change cycle.

When an OTM probe is to be removed the laser should be switched off prior to disconnecting. When PICS
probe power off is applied the laser is switched off automatically. The OTM probe is reinitialised when
PICS probe power off is released.
Datum setting and probe calibration 35

If PICS probe power off can not be used then it is necessary for the Front End to control probe override
during the probe change sequence. This can be achieved using 'Control Probe Override command (310)'.
The move into the change rack should have override turned ON. It is imperative that the Front End re-
enables the probe after the probe change sequence. This command instructs the UCC to assert a
PICS_PPOFF in all states other than Joystick fully enabled, when in this state the Joystick/MCU Probe
Override button causes the PICS_PPOFF to be asserted. The MCU Probe Override LED reflects the
current status of PICS_PPOFF. Note that overriding the probe in this way also clears (for the duration of
PICS_PPOFF being set) any analogue probe error (such as scale failure).

4.4.5 Probe Damping

Probe damping using the PICS_PDAMP line is achieved by initially sending command 325, Write To PICS
Port, with the PDamp bit set accordingly. Once PICS Probe damping is switched ON the UCC will
endeavour to control it automatically. It will turn it OFF during Blended Move Touch Moves, MoveScan
Touch Moves and Joystick Slow Moves (FAST/SLOW button not depressed, but not on MCU) and/or
Joystick Moves travelling less then the Joystick Touch Speed (as defined in the INI file). Once this move
(or segment) is complete the UCC will ensure that probe damping is turned back ON again.

Note that PICS Probe Damping has no effect for Analogue probes. These probes have a separate, simple
damping algorithm that involves setting a damping period. This damping period is found in the Machine
Configuration INI file under each analogue probe section. Once set up, this damping period is ON all the
time. It protects against false triggering that can sometimes be seen when using long styli on CMM's
suffering from high vibration. Typically it will not have to be used and hence a value of 0.0 will suffice. It
should be noted that this damping period will introduce a lag in the system that will mean that higher
deflections than required will be seen during touch moves, therefore it is advised to only specify a damping
period where absolutely necessary.

4.4.6 Use of ‘undetermined’ probe type

An ‘undetermined’ probe type is reported when the system is resolving, or can’t resolve the current probe
type. The UCC is will behave as if a touch trigger probe is attached while the probe type is ‘undetermined
probe type’.

The operation of ‘undetermined probe type’ is system configuration dependent. The differences in
operation are described below:

In a 2 wire system ‘undetermined probe type’ is set:

• When PICS probe power off is set and a touch trigger probe is attached

• When PICS probe power off is set and no probe is attached

• For a short period (< 1second) after attaching a TP200 probe

In a multi-wired system (separate probe cable), ‘undetermined probe type’ is set:

• When PICS probe power off is set and no probe attached (providing no OTM card and interface box
fitted)

• For a short period (< 1 second) after attaching a probe while hardware determines the correct type

• When a probe with an unknown probe identity resistor is attached (providing no OTM card and
interface box fitted)
36 Datum setting and probe calibration

4.4.7 Use of enter probe type with probe recognition

The UCC system does not use the user defined probe type as specified in either command 256 ‘machine
configuration’ or command 286 ‘enter probe type’. If the user enters a probe type that differs from the
actual probe attached then the probe changed status bit is set but the detected probe type is still used and
reported.

NOTE: The pre-production UCC hardware does not have the capability to read probe identity resistors
and therefore uses ‘enter probe type’ command in the conventional way. The default probe type shall be
‘3D Analogue Probe’, unless told otherwise.

The probe changed status bit will only be set when the probe type is updated by the user software.
Normal CMM operations 37

5 Normal CMM operations


The purpose of this chapter is to the provide a description of the commands used in normal operation and
explains their function and interaction with the CMM system.

5.1 Measuring a point on a surface


To measure the position of a point on a surface the user must bring the stylus tip into contact with the
surface. The controller will stop the CMM and then back it away from the surface and stop again. During
this process the controller will store the co-ordinates of the point of contact, retaining this information until
it is requested by the host program.

If further measurement points are taken before the original data has been passed to the host, the newer
points are also stored in the controller and the data will be later transmitted to the host, on request, in the
same order as the points were taken.

Status flags which are returned with positional data allow the user to identify these 'probed' points.

Back-off speeds and distances are controlled by the machine configuration file.

5.1.1 Touch-trigger probe

When using a touch-trigger probe, the point’s co-ordinates are captured at the instant that the probe’s
contacts first open, using a hardware triggered latch attached to the short-term position counter to give
accurate measurements. The probe is then disabled until the back-off move is completed and the contacts
have stayed closed for a de-bounce period.

5.1.2 Analogue probe

When using an analogue contact probe, for example the SP600, the machine is stopped when the probe
has been deflected by a specific distance - the ‘probe trigger level’, see the machine configuration file. The
point’s co-ordinates are captured as the probe leaves the surface while backing away from it after the
initial contact. The trigger level is used to control the triggering technique when analogue probes are
being used. The two techniques are:-

• In/out triggering - This method collects data as the surface is hit and also during backoff. Using this
data a data point is generated that is equivalent to the point at zero deflection. This method is useful for
uncalibrated probes where good metrology can still be achieved. The recommended touch speed is
5 mm/s and backoff is 3 mm/s (these speeds will change depending on the dynamics of the CMM). The
backoff distance should be 0.5 mm or greater.
38 Normal CMM operations

• Static average - This method dwells either once (Single Dwelling) or twice (Double Dwelling) during the
backoff. If Single Dwelling then a single point is reported that is the average of the machine positions
and probe deflections of the recorded data taken during the dwell data capture period. If Double
Dwelling then two sets of machine position and probe deflection readings are taken during the data
capture dwells periods, these sets of data are averaged to produce two data points that are then
extrapolated to give a single data point at zero deflection. Double Dwell is beneficial in that it gives a
data point that equates to a zero force point, improving Metrology, the adverse effect is that point
taking will take longer due to the fact that 2 dwells are having to be performed. These methods rely on
an accurate calibration being in force. They allow greater touch and backoff speeds (recommended
touch speed 15 mm/s and backoff 15 mm/s) and backoff distance again 0.5 mm or greater. These
methods also give better accuracy with longer styli when compared to in/out triggering. In/out method is
enabled by setting the trigger level to < 0.05 mm, otherwise static averaging is enabled. Single and
Double dwelling are enabled by firstly setting the trigger level to be >= 0.05mm. Then it is necessary to
set the dwell periods (comprising a Machine Settling period and Data Capturing period for each dwell)
and the dwell deflection levels (what deflection should be maintained during the dwell periods). It is
imperative that the dwell levels are less than the trigger level, if they are not a simple single point take
during backoff will be resorted to (this is known as Basic Threshold triggering and is the method used
prior to the introduction of the Static Average techniques). By setting the data capture period it is
possible to select either Basic Threshold, Single Dwell or Double Dwell triggering. Setting the data
capture period to 0.0 has the effect of disabling that dwell, so for example Basic Threshold can be
selected by setting both dwell capture periods to zero, Single Dwell by having a non zero, positive 1st
dwell data capture period and a 2nd dwell capture period of 0.0 etc. Note that if the dwell levels for
either dwell are not traversed during the approach move then a Simple Threshold trigger will be
performed (this is the case, for example, if one or either of the dwell levels are set greater than the
trigger level).

The trigger level is a setting in The Machine Configuration File whose value is downloaded by the
configuration COM classes ConfigureNewProbe() method (this method should be called by the front end
at probe change time).

In both cases these methods are improved if used in conjunction with the Renishaw UCC scanning probe
calibration COM class. This COM class performs extra corrections that compensate for differences
between probe performance when used for discrete point taking or scanning.

5.1.3 Taking points under joystick control

In a normal joystick controlled move contact with a surface will generate a 'probed' point in the same way
as a DCC move. However, if the joystick ‘remeasure mode ‘ is set to 1 within the machine configuration
files joystick section (under key "RemeasureMode") the CMM will make contact under joystick control and
stop as before, but then the controller will make the CMM back off to clear the surface and return slowly at
half the max touch speed until deflected. This is intended to give more consistent and accurate
measurements. If Single or Double Dwell triggering (used with Analogue Probes) is enabled then both the
first measurement and the subsequent re-measure will be performed with the relevant dwells.

5.1.4 Data collection during back-off

This is a specialised mode of taking measured points which is invoked by the ‘Back-off data collecting
command (326). It is intended for use only while calibrating an analogue probe, and collects a large
number of points while reversing out of contact with a surface. This data can then be used when
calculating the probe calibration matrix. It is not recommended that the Front End ever use this mode.
Normal CMM operations 39

5.2 Servo engagement


The CMM drive motor engagement is controlled by the COM class UCC_ServoMotorControl found within
CoUCC_Motion.dll.. When the controller receives this command it will check that the system is in a
DISENGAGED state (state 0) and that the following items are all in a safe condition:

1. The CMM emergency stop switch signal.

2. The air supply pressure switch signal.

3. The ‘Crash’ switch signal.

4. There have been no reading head counting errors (datum and calibration are then lost).

5. No outer limit switch is operated.

6. There are no scale reading head errors being reported.

7. There are no outstanding overspeed flags.

8. The PICS STOP line is not active.

9. The amplifier OK signal indicates no faults.

The controller will set all motor speed demands to zero and then activate the AMP CONTROL output to
the hardware, to enable all amplifiers.

If the AMPLIFIER_OK signal is FALSE after a period of 0.1 second the controller will remove the AMP
CONTROL signal and abandon the engagement process.

If no fault is being signalled the controller will wait for 1 second to allow the amplifier outputs to settle and
then activate the CONTACTOR output to the CMM to connect the amplifiers to the motors.

The controller expects a CONTACTOR FEEDBACK signal in the TRUE state from the CMM to confirm
that the contactor is energised within 0.1 second. If this is not received in time both the CONTACTOR and
the AMP CONTROL signals are turned off and the engagement process is abandoned.

The controller will use the CMM’s present position as the target for the servo system, i.e. the system has
entered the HOLD state.

The ‘servo active’ indicator on the front panel is turned on.

A failure during this process is not reported in detail but can be analysed by examining the status
information returned by the UCC_axis_position_and_status COM class.
40 Normal CMM operations

5.3 Servo disengagement

CAUTION: The ‘disengage servo motors’ command does not stop the machine, it simply sends
! low level signals to the CMM to remove power from the motors. if the machine is in motion when
the command is issued or any of the above fault conditions occur the machine may continue to
move due to hardware faults and/or its moment unless braked by the CMM’s safety system.

The ‘disengage servo motors command’ will attempt to remove all power from the motors by turning off
both the AMP CONTROL and CONTACTOR signals to the CMM’s hardware.

The controller will automatically disengage the servo motors if any of the conditions listed above for
engagement changes to a fault state.

5.4 Moving the CMM

5.4.1 The blended move command

This command can be used for:

• a single point-to-point move,

• a single ‘touch’ move,

• complex point-to-point moves with multiple way-points, and

• complex moves which finish with a ‘touch’ move.

Examples of using this command are provided in the UCC command set document (Renishaw part
number H-1000-5222).

It is highly recommended that this command is accessed via the Move COM class found within
CoUCC_Motion.dll as this class performs all the necessary polling and status byte decoding that would
otherwise have to be done by the FE. For more information refer to the UCC COM classes user’s guide
(Renishaw part number H-1000-5230).

At the end of a normally terminated move, given that the machine has adequate servo performance, the
CMM will stop with an error in the stylus positioning which is less than the positional tolerance. This
parameter is set at initialisation or at any subsequent time by the ‘Enter positional tolerance command
(308)’.

The machine will not move if the probe is deflected before the move starts. Use the ‘Control probe open
override command (310)’ to free the machine if necessary, remembering to remove the override by using
the same command when the probe is no longer deflected.
Normal CMM operations 41

5.4.2 The enter velocity command

If the user wishes to control the CMM movements as if under joystick or mouse control, repeated use of
this command (320) will cause the machine to accelerate up to the given velocity and maintain the
commanded speed until either ordered to change speed by this command or, if no further velocity
commands are sent, allowed to decelerate to a stop. The moves are based on the ‘joystick max fast speed
and acceleration command (257)’.

5.5 Limits of travel


The controller will not normally prevent the CMM from being commanded to drive into the machine end-
stops. The host computer should avoid issuing a motion command which will cause this. A ‘soft limits’
function can be used to prevent this, see below.

5.5.1 Limit switches

If limit switches or sensors are fitted to the machine their signals should be used as CMM status inputs to
the controller hardware to stop the machine.

NOTE: Provision is made in the committed I/O on the controller for two types of limit switch, called ‘inner’
and ‘outer’. The inner switch is intended to operate first, followed by the outer one if the machine
movement continues.

The controller treats the operation of an ‘inner’ limit switch in a manner similar to an unexpected contact
with a surface, i.e. it stops the machine quickly and then backs off for the specified distance/speed. The
‘control limit switch override command (311)’ may be used to move the machine away from an inner limit
switch if the back-off did not do so. This command must be repeated after clearing the switch to cancel the
override condition and hence restore the normal protection.

Operation of an ‘outer’ limit switch is regarded as a more serious event and the controller will disengage
the servo drives. Recovery from this condition requires that the machine is moved (without servo
assistance) back into the normal working volume, and that the motors are re-engaged by the ‘engage
servo motors command (307)’. Motors cannot be engaged while an outer limit switch is still operated.

5.5.2 Read head limits

The UCC1 also has provision for connecting a read head limit switch for each axis. These must be
enabled in software, and may be configured to serve as inner or outer limit switches as required. The main
limit switch inputs remain active, in order that inner or outer limit switches would not be disabled on a
CMM without read head limit switches, if the software command to enable the latter were used carelessly.
Where the normal inner and outer limit switches are not required, the inputs should be permanently wired
to the 24 V return line to disable them. The read head limit switches are actuated by the scale read head
passing over magnets placed adjacent to the scales. Renishaw recommend that magnets used to actuate
read head limit switches should be of such length that they may be detected for at least 10 ms at the
maximum velocity of the CMM.
42 Normal CMM operations

The signal from read head limit switches differs from that expected from the main limit switch inputs in 2
respects. Firstly, there is only 1 signal per axis, rather than separate signals for + and – limits per axis.
Secondly, the signal is not present both between limits and beyond limits – it is only present for the length
of the magnets. The missing information is regenerated by software within the UCC1, so that it can report
both a breach of limits and whether this is + or – limit, as for the main limit switches. This imposes a
requirement that software read head limit switch configuration should only be carried out while the CMM is
within its intended working volume. Otherwise, the CMM will become stranded in an unintended working
volume on the wrong side of the breached limit magnet.

5.5.3 Soft limits

Outer and inner soft limits can be specified and enabled (or disabled) from within the machine
configuration file (or conversely by command 261 if the machine configuration file system is not being
used). Moving past an outer soft limit will stop the CMM and perform a back-off move. Commands which
would cause such a move will be rejected and a status flag will be set to show this. Inner soft limits are
applied to joystick (and pencil) moves only, and will slow the CMM down to 'joystick max touch speed'
rather than stopping it.

5.6 Motor overdrive (stall) detection


The controller checks that the digital versions of the analogue speed demands sent to the servo motors
are not excessive. Normally, these demands will allow the controller to adjust the machine’s speed to its
intended value, but if the CMM is not able to move correctly the position error will become large and a
large speed command result.

The analogue motor command signals are limited by the D/A converter to the specified maximum output
voltages, but the digital values within the controller may get beyond these limits. If the digital values
exceed their expected maximum levels in either polarity by a large factor for a significant time it is
considered that the motor involved has been ‘overdriven’. A ‘motor overdriven’ flag is set for the relevant
axis in the status bytes to the host computer, and the move is terminated.

Having stopped the machine the controller will then attempt to back away in a direction opposite to the
position error vector that caused the overdrive.

NOTE: If an axis is stalled with a very low demanded speed or close to its target position, the motor
signals may not reach the ‘overdriven’ levels and the ‘motor overdriven’ error flag may not be set,
dependant on the control law being used. The CMM will remain stationary with a small speed demand to
the motor(s) until the move times out.

5.7 Overspeed detection


The controller continually calculates the CMM speed from the changes in scale readings. The preset alarm
speed (see the machine configuration file) is given by the maximum move speed times the ‘overspeed
factor’. If the calculated CMM speed exceeds this for a significant time, the controller sets an ‘overspeed’
fault flag in the status bytes to the host computer and stops the machine. This protection can be turned on
and off by the ‘overspeed control command’.
Normal CMM operations 43

NOTE: If a machine in the disengaged condition is moved by hand it may reach speeds which will cause
an overspeed condition. The user program may well produce a warning after this event, but no action is
called for.

Severely excessive speeds may also cause a ‘scale reading failure’ report in the status bytes and this
indicates that the machine no longer knows its position. The only recovery action is to reset the absolute
datum and repeat all datum processes.

5.8 Stopping the CMM


There are two commands which will stop a CMM at any time:

To terminate any current operation and to stop the machine using the maximum permitted deceleration,
the ‘abort command (321)’ may be used. It may also be used to ensure that the CMM is in a known ‘ready’
condition before starting a new command sequence. This command does not disengage the servo motors.

The other command which will stop the machine is the ‘disengage servo motors command (306)’, although
the results may be unpredictable if the machine is moving at the time. Refer to section 5.3 on ‘servo
disengagement’.

The Renishaw COM classes for home, move and probe calibration all have their own abort methods that
should be called instead of directly sending an abort command to the UCC.

5.9 Servo controls


The values of the parameters which define the main CMM position-control servo system are sent to the
controller when initialised by the ‘Servo configuration command’ as part of ConfigureForMotion() method
call on the configuration class.

The ‘move configuration command’ also is involved as it contains the maximum move speed parameter
and, as explained in the command definition, its value is critical in setting up the transfer function from the
controller to the servo power amplifiers and the following parts of the system.

5.10 Joystick operation


A joystick unit, or a similar device, may be used for manual control of the CMM powered movement and
possibly to control some aspects of its operation e.g. speed override, axis locks, etc., or to indicate some
status items e.g. motor engagement, probe arming, etc.

For information on the use of a joystick unit refer to the installation guide for the MCU1 (Renishaw part
number H-1000-5067) or the daughter card installation guide (Renishaw part number H-1000-5220).

As part of the controller initialisation the user must specify the joystick unit type within the machine
configuration file, and should also set up the required parameters within the joystick section of this file.
44 Scanning

6 Scanning
The purpose of this chapter is to describe the commands which have particular relevance when using the
CMM to digitise a surface (i.e. scanning).

6.1 Digitising overview


The program supplied with the UCC1 controller will drive the CMM to follow a defined path in contact with
an irregular surface, producing measurement data as it does so, a process known as ‘digitising’.

A ‘scan’ is defined as a single pass over the surface from a defined start point to a defined finish point. To
digitise an area, multiple scans across it are required, possibly alternating with small ‘step-over’ scans at
some angle to the main scans.

For a 2D scan the path followed is nominally in the part XY plane, maintaining contact with the surface
and thus generating a plan outline of the object being scanned. This type of scan has features which allow
control of the way in which the scan is finished, either by stopping when having crossed an imaginary
‘gate’ line (called an ‘open’ scan), or by having closed the scan by returning to the starting point (a ‘closed’
scan).

If the nominal path lies in some other plane, a ‘3D’ scan is required, which allows greater flexibility in the
path definition.

Both of these commands are described in detail in the UCC command set document (Renishaw part
number H-1000-5222).

6.2 Scanning overview


For scanning there are 4 modes:

• Cylinder scan - This mode will measure points on a bore or boss with the capability to move in a helix
by moving in Z. This scan can adapt to surface curvature and position changes.

• Gasket Scan - The second mode is a scan along a known XY profile, defined in arcs and points,
adapting to Z height variations.

• Grid Scan - This is a special mode of the gasket scan. In this mode the boundary of a scan is defined
as a series of points in the XY plane. The grid scan will then calculate a path which is a series of
straight lines with a defined stepover. The lines which fill the area, each line being connected at the
end with a 180 degree arc. The probe will then move along this path while adapting and measuring the
Z height.

• Centre find - The probe should be positioned ‘above’ the artifact (cone, bore etc) that it is desired to
find the centre of. That is, at the centre’s estimated x-y location. The probe will then move (in
search_vector direction) until it finds the surface. If at this stage the angle between the negative of the
search direction vector and the probe vector (in part co-ordinates) is small, then a probed point will be
sent back to the host.
Scanning 45

This ensures that a point is sent back if a level surface is encountered. Otherwise, it then scans in the
direction of steepest descent until it detects that the angle between probe vector and –ve search_vector
direction is small. After servoing to reduce this angle and after some averaging a point (and only one
point) is then sent back to the probed point store, to be available to the host. The probe then moves back,
in –ve search_vector direction, until the starting plane (normal to search_vector direction) is achieved. At
this point, action complete and scan successful are indicated.

6.3 Measurement data buffering


Since the controller data is being collected from a real-time scan and the host computer may not be able
to service the transfer of this data quickly enough, a small ‘FIFO’ (First In First Out) buffer is provided in
the controller. If this is becoming full, the CMM scanning speed is reduced automatically, to allow the host
computer to catch up. If the host computer is very slow in reading data from this buffer the scan can stop
completely and will then resume automatically when normal data transfer resumes and the buffer has
been partly emptied.

6.4 Filtering of data


Surface scanning can return data at points which are separated by some user defined pitch. This may
produce large amounts of data, much of which is not needed for an accurate digitised model. For example,
scanning a nominally straight line could produce large numbers of points with a fine pitch whereas only a
small number may be needed to define it with sufficient accuracy.

To reduce the load on the data transfer to the host computer, and on subsequent data processing, the
controller can be instructed to eliminate redundant data (as determined by a Renishaw patented ‘chordal
tolerance’ algorithm with a user specified threshold).

Figure 3 – Chordal tolerance algorithm


46 Scanning

If required it can be disabled, or re-enable with the ‘Control data filtering command (313)’.

The chordal tolerance value is a parameter in the 2D and 3D scan commands and controls the surface
detail reported by the controller. It is used as follows:

In figure 3 a series of measured points, ‘a’ to ‘e’, were taken during a scan. A chord was drawn from ‘a’ to
‘c’ to test the surface curvature at point ‘b’.

If distance ‘d1’ is less than the user defined ‘chordal tolerance‘ then point ‘b’ is discarded and a new chord
taken from ‘a’ to ‘d’.

If ‘d2’ is then greater than the chordal tolerance, point ‘c’ is recorded as significant and the next chord is
taken from ‘c’ to ‘e’.

If the distance ‘d3’ from ‘d’ to new the chord is less than the chordal tolerance, point ‘d’ is discarded and
the process continues with point ‘c’ still being the start of the current chord.

NOTE: Points will also be returned to the host PC at ‘pitch’ intervals, so that to gain an overall reduction
of data a large value of ‘pitch’ should be specified in the scan command.

The result of this filtering process is to return detailed information from regions where the surface has
small radii of curvature(e.g. sharp corners) but a lower data density where the surface has large radii of
curvature.

6.5 Loss of contact with the scanned surface


During 2D or 3D ‘contact’ scanning the stylus may lose contact with the surface which it is following
because the CMM is unable to respond correctly. Some measured data will have been stored in the buffer
before the controller is aware that contact has been lost. The controller program drives the CMM back in
such a way as to recover contact with the surface and will discard any stored data which is suspect before
it has been sent to the host computer. Data storage is resumed after scanning has been restarted.

After loss of surface, the distance that the stylus moves back to recover the surface is set by the ‘enter
back-track time command (317)’. This back-track time will be used to calculate the distance over which
data will be discarded and re-scanned, based on the delay in the analogue probe’s reporting that contact
with a surface has been lost.

If there is a loss of surface during a scan and the controller performs a back-track, it will resume scanning
at a velocity which is the scanning speed currently being used, multiplied by a ‘Rescan velocity factor’,
which is set using the ‘Enter rescan velocity factor command’. This is designed to slow the scan down to a
speed which will allow the machine to follow the surface. If this new speed is still too fast this process will
be repeated until the maximum possible scanning speed for this particular surface has been found.

The ‘Read number of surface recoveries command (346)’ will return the number of recoveries since last
read, as explained in its command definition. It may be used to assess the ‘quality’ of the scan as an aid to
optimising the scan parameter settings.
Scanning 47

NOTE: Due to the data buffering required for delays in the host computer reading scan data or recovery
from loss of surface, point data transfer to the host computer may continue for time after the CMM has
actually stopped. The user program must wait for the Action complete flag before assuming that the scan
is finished.

6.6 Scanning an empty region


If the surface being scanned falls below the Z MIN value set in the scan command, the CMM will continue
to search for a surface by moving along the nominal path just below the Z MIN height. Only the probe
positions at the start and end of the empty region are normally returned until the surface is re-encountered
or the scan finishes.

The ‘enable pitch points in free space command (314)’ allows the user to select whether additional points
will be returned, at the specified pitch intervals, as though a surface has been present at Z MIN. This may
be of value in the post-processing of the scan data.

6.7 2D scanning procedure


This is best started by collecting all the required parameter values for the ‘2D scan command (298)’ but do
not send the command yet. The relationships between the ‘start’, ‘search’ and ‘gate’ values for an ‘open’
scan is shown in figure 7 below.

Move the CMM to the desired starting point at the nominal X start, Y start and Z profile. Read the
machine’s actual position (thus eliminating the uncertainty due to any positioning error) and use these
values in the command 298 data, rather than the nominal values.

Figure 4
48 Scanning

By default 2D Scan will not record/report scanned data until at least a distance of 0.5 mm has been
traversed with the stylus in contact with the surface (i.e. scanned). This is so as to allow the machine and
probe to settle after the initial contact with the surface and change of direction, thus ensuring best quality
metrology. This default of 0.5 mm can be overridden though, for example in cases where scanned data is
required very close to a lip or edge at start of scan. Command Configure Scan Start Distance (ID 358) can
be used to program a new distance, accepting values down to 0.0.

6.8 2D scanning with parabolic filtering


Parabolic filtering reduces the surface noise generated during scanning with the aim of improving the
accuracy of the data returned to the user.

An algorithm is used to estimate the parabolic fit through the data. The parabolic fit calculates a filtered
point that lies on a fitted curve through raw data. Optimum performance is achieved when filtering scan
data on curved surfaces where purely the radial error is filtered out, leaving the scan radius unchanged.

As the filter is specifically designed to enhance curved surfaces, surface definition of rough or patterned
surfaces will be removed when large filter values are selected. Therefore when scanning surface detail
lower filter values should be used.

When setting up an 'open' scan it is necessary to adjust the start position to allow the filter to fill-up internal
buffers before the first filtered point can be generated. Filling up this buffer creates a 'lead-in' distance
before the first filtered point is produced. This lead-in distance can be considered negligible for slow scan
speeds and low filter values, but may be noticeable for faster scan speeds and higher filter values. To
calculated the lead-in distance the following equation should be used:

Distance = (scan speed * filter value) / 100

If a filtered scan loses contact with the surface, a recovery will occur. The recovery distance will be large if
a high scan speed or large filter level is used. If the recovery distance is calculated to be larger than the
user defined 'back-track' distance, then the recovery distance shall be used.

The recovery distance is large because the rescan requires a 'lead-in' distance to allow the filter to fill-up
internal buffers, preventing loss of data during recoveries.

Reference: Command set (Renishaw part number H-1000-5222), command 449, ‘enter real time filter
delay’

6.9 3D scanning procedure


Divide the area to be scanned into a grid of individual scan lines, as illustrated below. Each scan line
requires a ‘3D scan command (299)’, i.e. the scan pattern shown below would require a series of
commands.
Scanning 49

Figure 5

The controller will not allow a scan to start if the machine’s X, Y position (excluding any probe deflection)
is not within the positioning tolerance of the X start, Y start value given in the ‘3D scan command’. The
user can ensure that this is true by reading the actual CMM position with the ‘Read position and probe
deflection command (277)’, and subtracting the deflections from the stylus position. If these values are
suitable for the start of scanning, put them into the 3D scan command. If they are not acceptable, move
the machine as required and repeat the exercise.

A series of further scans are then made in the same way to complete the digitisation of the surface.

6.10 3D scan speed ‘learning’ function


When 3D scanning a surface using sequential scanning commands the controller can estimate an
optimum scanning speed from its previous scan data, using the ‘learning’ function. This function is globally
enabled or disabled by the ‘control 3D profile learning command (324)’, and is adjusted by the ‘learn
mode’ and ‘learn factor’ parameters in each scan command.

When the learn function is active, the controller continually estimates and stores the radius of curvature of
the scanned surface. On the scan of the next adjacent path, these values are used to dynamically change
the speed of scan to suit the expected surface curvature, assuming it to be the same as the previous scan.

The first scan of the group of scans should therefore be done fairly slowly to allow the initial collection of
the data samples. The controller will do this automatically if the learning function is active and the ‘learn
mode’ is set to 1 by using a scanning speed which is a calculated fraction of the specified target speed.
See scan 1 in figure 5.

If the ‘learn mode’ is set to 2 in subsequent scans of a region which is relatively flat the scan will be
executed at high speed since no large machine accelerations should be required. If a part of the surface
has small radii of curvature the scan speed will be reduced to allow the CMM to maintain the probe’s
contact with the surface. See scans 3, 4 and 6 in figure 5.

When executing a ‘step-over’ between scans, the learning function can be suspended to preserve the
stored data for the following scan by setting the ‘learn mode’ to 3, e.g. for scans 2 and 5 above.
50 Scanning

The surface will obviously change from one scan to the next and the program will update the stored
information during each scan, but too large a change in surface between scans may cause a loss of
surface contact. All suspect data is discarded and the problem area is automatically re-scanned at a
reduced speed (set by the ‘enter rescan velocity factor command, 316’). The next 25% of the current scan
is carried out at the reduced speed before resuming normal speeds.

The learning function algorithm will automatically allow for direction of scan to permit unidirectional or
bi-directional scanning.

The effect which the stored curvature profile has on the scanning speed can be adjusted by setting the
‘learning factor’ in each scan command. The scan speed can be made almost constant (small learning
factor) or widely varying (large learning factor). The value of 1 gives limited compensation and is a good
starting point before optimising for the specific type of surface being scanned.

6.11 Checking the quantity of digitised data


The ‘read number of points in scan command (282)’ is provided so that the user may confirm that the
quantity of data processed after a scan equals that generated by the controller, i.e. no data has been lost
between data filtering in the controller and the final data storage in the user’s computer.

NOTE: The point counter is only reset after use of this command so that, if required, it should be cleared
by a dummy read before a series of scans is started. The points gathered during the whole series will be
accumulated in the counter until the next read. The command works on 2D and 3D scans.
Controller states 51

7 Controller states
The purpose of this chapter is to simply provide a listing and description of the system states currently in
use on the UCC controller.

7.1 Controller states


The controller keeps track of its operating condition from moment to moment by using a system state
number. Each state also has a name such as ‘DISENGAGED‘, ‘HOLD ‘, etc., see table below.

The user can check the current state number by using ‘read position and status command’. The state
number is part of the status information in the reply. See chapter 2 for details of the status reporting.

Table 2 – Controller states


State
State name Description
number
0 DISENGAGED Initial condition after booting or disengagement
A transient condition during the engagement process to allow
1 ENGAGING
for P.A. and motor contactor delays and settling time.
2 HOLD The normal quiescent condition when engaged
The servo drives are energised but mechanically
disconnected to allow manual movement of the probe. The
4 DECLUTCHED position-servo action is suspended until leaving this state,
when the new position is made the target for HOLD
operation.
5 BLENDED MOVE A move is in progress
6 SCAN OTM 3D Surface scanning using an optical probe
7 SCAN 2D Profile scanning
8 SCAN 3D Surface scanning using a 3D contact probe
9 VELOCITY Moving under command 320 (Velocity)
10 WAVE Test mode for use by the RENICIS program
11 25D SCAN 2.5D scanning in progress
12 CIRCULAR MOVE Circular move in progress
14 FREEING PROBE Moving in Z+ to remove probe deflection
15 K P S CYLINDER Known part scanning of a cylindrical surface.
16 K P S GASKET Known part scanning, gasket pattern
17 K P S GRID Known part scanning, grid pattern
18 Centre Find Unknown Part scan, find centre of dimple
19 Complex Scan Scan between waypoints within scan plane.
20 MoveScan Move scan scanning or move states
21 Five Axis Move State PHS 5 axis move state
25 PENCIL MODE Manually controlled moving/scanning
28 JOYSTICK MODE Moving under joystick control
29 FAST STOP Decelerating to standstill after a touch, etc.
30 BACK-OFF Moving in reverse direction after touch, etc.
31 JOYSTICK WAIT Time while joysticks must not be deflected.
52 Controller states

0 31
DISENGAGED
JOYSTICK
WAIT
deflected
"Engage" (fault)

e
not

tim
deflected

t
ai
rw
1 28

fo
5 (ENGAGING) JOYSTICK

ns
io
d

ct
MOVE c te

fle
fle touch

de
"M Amp and de
ove d 29

o
" "Disengage" an

N
Su contactor OK
Touch/hit cce le d FAST STOP
ssf n ab
ul
29 fini
sh c ke stopped
FAST y sti
Jo 30
STOP BACK-OFF
2
Stopped No dec stopped
30 HOLD lutch in
pe d put
Stop Pe D eclu
tch in 4
" nci
BACK-OFF ca
n l en put
3 Ds ab
led DECLUTCHED
TM an
"O ed Pr
dp
ish ob rob
ed
SCAN OTM fin fin e n efle
ish ot cte
3D ed d e d
"V fle
6 el o ct e
" ed c it d 25
an nish ym
sc fi fin ov PENCIL
D " e"
ed

"2
"W
an
ish
i sh

sc
av
ed

e
fin

D
fin

m
SCAN 2D "3
ed

finished
hed

is

ov
he

VELOCITY
ish

e"
finis
n"

7
d
finis
ca
fin

"C
an"

9
d
"

hed
Ds

"KPS

i
can

rcu
finishe

t sc

"Fr
5

lar
r id s
"2.

SCAN 3D
ee
"KPS Gaske

Cylin

mo

8 WAVE
SG

ve
pro

"
der s

be"

10
"KP

2.5D
SCAN
can"

11
CIRCULAR
KPS MOVE
GRID FREEING 12
17 KPS KPS PROBE
GASKET CYLINDER
16 15 14
Notes
1. Changes of state due to faults are omitted for clarity.
2. Commands are shown in "quotes". GENERAL STATE DIAGRAM
3. State numbers are shown in circles.

Figure 6 – General state diagram

7.1.1 Controller state transition diagram

Figure 6 shows the various states which the controller can occupy, numbered 0 to 31. Also shown are the
paths between these states, simplified for clarity.

Movement along these paths is controlled by commands from the host computer or by events which occur
on the CMM or in the controller, as indicated by the labelling attached.
CMM error correction 53

8 CMM error correction


The purpose of this chapter is to explain the concepts behind the CMM error correction techniques.

8.1 Error mapping


The UCC1 can apply error correction processes to position data before returning it to the host computer.

100% error compensation is an unrealistic objective, because of inevitable uncertainties and instabilities in
the CMM and its environment. In practice, error mapping can save time and the cost of iterative
measurement and adjustment, of the CMM itself and of the equipment used to manufacture its
components.

Corrected position readings are used for all measurement and positioning.

The CMM error map is used by the controller to correct scale position readings for known (measured)
translational and rotational errors of the CMM. The error map compensates for a major proportion of the
following types of known errors, so long as they are either stable and/or consistent:

1. Deviations from effective guideway straightness.

2. Known quasi-static structural flexibility.

3. Known relatively long wavelength scale position errors.

‘Abbe’ error compensations are normally included.

Compensation for the effects of the rotational errors and the current probe tip offsets are also made by the
controller.

Correction for axis non-orthogonality is not included in the mapped errors and is treated separately as
described at the end of this chapter.

8.1.1 Co-ordinate system definition

Nomenclature and Signs

(ISO 841 right hand


axis system and sign
conventions are used)

Figure 7 – Sign conventions


54 CMM error correction

8.1.2 Types of error map

The UCC1 supports volumetric error mapping, for which the CMM working volume is divided into cuboid
cells. Six correction values, representing 3 translations and 3 rotations, are stored for each cell vertex
across the working volume of the CMM.

2 forms of volumetric error mapping are available, namely:

• Fixed 3D grid

• Configured 3D grid

8.1.3 The CMM’s working volume

For the fixed 3D grid form of error map, the CMM’s working volume is divided into 20 intervals,
corresponding to cells, on each axis. For the configured 3D grid form of error map, the user must specify
the number of intervals on each axis.

The configured 3D grid form of error map uses a dedicated section of UCC memory, which gives an
absolute maximum error map size of 87,378 points. The number of cells on each axis must be greater
than 0 and less than 256. A range of possible maximal cuboids into which the CMM’s working volume can
be divided is given in the table below. This range of possibilities is based on having the number of
intervals equal on at least 2 axes. Other combinations are possible.

Table 3
ERROR MAP
CMM WORKING VOLUME
Intervals Measured points
17 x 17 x 255 18 x 18 x 256
19 x 19 x 200 20 x 20 x 201
22 x 22 x 160 23 x 23 x 161
24 x 24 x 138 25 x 25 x 139
25 x 25 x 128 26 x 26 x 129
Long and Thin 28 x 28 x 100 29 x 29 x 101
30 x 30 x 89 31 x 31 x 90
32 x 32 x 79 33 x 33 x 80
35 x 35 x 64 36 x 36 x 65
36 x 36 x 62 37 x 37 x 63
40 x 40 x 49 41 x 41 x 50
Cubic 43 x 43 x 44 44 x 44 x 45
47 x 47 x 36 48 x 48 x 37
48 x 48 x 35 49 x 49 x 36
50 x 50 x 32 51 x 51 x 33
52 x 52 x 30 53 x 53 x 31
56 x 56 x 25 57 x 57 x 26
58 x 58 x 24 59 x 59 x 25
Short and Fat
60 x 60 x 22 61 x 61 x 23
63 x 63 x 20 64 x 64 x 21
80 x 80 x 12 81 x 81 x 13
88 x 88 x 10 89 x 89 x 11
100 x 100 x 7 101 x 101 x 8
208 x 208 x 1 209 x 209 x 2
CMM error correction 55

The following discussion relates to the fixed 3D grid form of error map, but is valid for the configured 3D
grid form of error map of the same size, or of any size, if the desired values of cells, intervals and points
are substituted.

To generate an error map of the working volume of a CMM, each axis of the CMM is notionally divided into
20 equal intervals e.g. 21 points, located at 0, 5% ,10%, 15% ...100% of travel.

This volume therefore can be considered to consist of 8000 rectangular cells (cuboids). Each cell has 8
corner points. There is a total of 9,261 corner points throughout the volume (most corner points are shared
by two or more cells).

The translational X, Y and Z correction values and the rotational A, B and C correction values are
generated by accurately measuring the apparent position of a probe tip with respect to its true position
from a datum. These measurements produce the translational and rotational error values at the vertices of
each of the notional cuboids in the working volume.

12.2W X 9.4H

12.2W X 9.4H

Figure 8 – The CMM’s working volume

To increase the accuracy of the error correction, the storage of the error map data is optimised using
(separate) weighting factors for translational and rotational data.

The data should be signed to suit the operation defined in ‘operation’ later in this chapter.
56 CMM error correction

The data required to be generated for the error map are:-

1. The translation X, Y and Z correction values for each of the 9,261 points (cuboid vertices), scaled to fit
the range -128 through +127, plus the translational scaling weight. The correction value multiplied by
the weight is in millimetres. The values are relative, and may be offset to take full advantage of the
available range, i.e. the correction values at the point (0, 0, 0) need not be 0, 0, 0.

2. The rotational A, B and C error values for each of the 9,261 points, (cuboid vertices) scaled to fit the
range -128 through +127, plus the rotational scaling weight. The value multiplied by the weight is in
microradians (ppm). The values are relative, and may be DC shifted to take full advantage of the
available range, i.e. the error values at point (0, 0, 0) need not be 0, 0, 0.

The error map therefore consists of a list of 27,783 translation correction values plus a translational
weighting factor, and 27,783 rotation error values plus a rotational weighting factor and is downloaded to
the controller by the host computer each time the system is started.

8.1.4 Mapped correction operation

Simplified illustration

For simplicity, operation is illustrated by reference to a CMM with two error sources only; non-straightness
of the Y axis in the XY plane, and roll of the Z axis. The error map would contain only X corrections (xc)
and C errors (ce). Also, the current probe tip has only a Y offset (yp) from the reference tip position. See
figure 12 overleaf.

Corrected Corrected X values for


position movement in Y axis only
Apparent (XT, YT, ZT)
Z+ position
(X ,Y , Z )
s s s
Ideal X values for
movements in Y axis only
YS
CE* YP
XS

YP
XC
ZS

Y+

XS, YS, ZS = apparent position


XC = error map X correction
CE = error map C correction
YP = Offset of probe tip in Y direction
XT, YT, ZT = corrected position

X+

Figure 9 - Calculation of corrected position

The corrected X tip position (XT), for example, is the apparent position (XS), plus the interpolated error map
X correction (XC) multiplied by the translational weight factor (TW), minus the interpolated error map C
error (CE) multiplied by the offset of the current probe tip in the Y direction from the reference probe tip
(YP) multiplied by the rotational weighting factor (RW).
CMM error correction 57

The ‘interpolated’ X correction above is found by the controller by linear interpolation in 3D, from the X
correction values at the 8 data points which circumscribe the apparent position, to a correction value for
the apparent position. Similarly for the C error value.

XT = XS + XC * TW - CE * YP * RW
Practical operation

In practice, XT will also contain a correction for the B error (BE) acting on the Z probe offset (ZP), i.e.,

XT = XT + BE * ZP

NOTE: The sign of this term compared with the CE * YP term (but ZP itself is often negative).

A similar process is needed for the Y and Z positions.

8.1.5 Range

The weighting factors are provided because the values are limited to the range -128 through +127, to
constrain the file and memory requirements to reasonable sizes. It is assumed that correcting to one part
in 256 is better than can be achieved in practice, except perhaps for squareness errors which are
excluded from the map, see section 8.1.7.

The weighting factor is found by choosing the largest correction factor (of either sign) and dividing it by
256. All correction values are divided by this number before being entered into the error map. The
controller will multiply the correction data by this number before applying it.

8.1.6 Error map source

The controller itself has no way of generating this error map, or indeed of storing this map once the
controller has been switched off. Therefore the generation and storage of the X, Y, Z correction values and
the A, B, C correction values, together with their weighting and formatting for downloading to the controller
are the OEM’s responsibility.

The data must be presented to the controller in the format specified for the appropriate error map
command. These commands are:

• ‘Advanced enter error map’ command 263, sub command 1 for fixed 3D grid error map.

• Advanced enter error map’ command 263, sub command 2 for configured 3D grid error map.

• ‘Enter error map’ command 259 is maintained for backwards compatibility in entering fixed 3D grid
error map.

Confirmation of the successful transfer and storage of this data can be made by using the ‘read system
status command (281)’ and checking the type of the current applicable error map [reply byte offset 13].
Confirmation of the correct transfer and storage of a fixed 3D grid error map can be made by using the
‘read error map command (278)’ and comparing the data it returns with original.

A sample fixed 3D grid error map (with no errors) is provided with the RENICIS utility. The original can be
examined and downloaded to a controller and then an annotated copy can be read back to the host as
described above. See the print-outs of a small fragments of these maps at the end of the chapter.
58 CMM error correction

8.1.7 Squareness

Non-squareness corrections are handled separately.

The user supplies the three angles between the axes and their nominal positions, see the definition of the
‘enter squareness errors command (260)’ for details of the conventions used in defining them.

These values should have been obtained from measurements taken on the CMM.

As position data is prepared by the controller for return to the user these angles are used to correct the
measured position to the co-ordinates it would have had on a machine with perfectly orthogonal axes.

8.1.8 Enabling the error correction processes

The following conditions have to be met before error correction will operate:

The absolute datum must have been set. This ensures that the error map position is the same, relative to
the working volume, as when the map was created.

The appropriate error correction files have been downloaded to the controller, i.e. the main ‘error map
command (259)’ and the ‘squareness errors command (260). If these commands are not used the system
defaults to a ‘no errors’ set of data.

The correction processes have to be enabled with the ‘control error correction command (312)’.
CMM error correction 59

Examples from fixed 3D grid error maps

;Example Error Map File (no errors) ; Weightings


; 0.000000 ;1
; 0.000000 ;2
; Translation X
;Machine ID: ABCD-0000.00 0 ;1
;Date of creation: 00/00/00 0 ;2
0 ;3
#type=Fixed3DGrid 0 ;4
; #type may be included from 0 ;5
; CoUCC_Commands COM class 0 ;6
; This is 0 ;7
; optional but preferred 0 ;8
0 ;9
;Weightings 0 ;10
0.0 Translation 0 ;11
0.0 Rotation 0 ;12
0 ;13
;Translation X ( 1-100) 0 ;14
0 ;1 0 ;15
0 ;2 0 ;16
0 ;3 0 ;17
0 ;4 0 ;18
0 ;5 0 ;19
0 ;6 0 ;20
0 ;7 0 ;21
0 ;8 0 ;22
0 ;9 0 ;23
0 ;10 0 ;24
0 ;11 0 ;25
0 ;12 0 ;26
0 ;13 0 ;27
0 ;14
0 ;15
0 ;16 Same map fragment after
0 ;17 being downloaded to the
0 ;18 controller and read back.
0 ;19

Example fragment of an (empty) fixed 3D grid


error map, illustrating white-space and the use of
semi-colons to include comments.
60 CMM error correction

Examples from configured 3D grid error maps

;Example Error Map File (no errors)


;
;

;Machine ID: ABCD-0000.00


;Date of creation: 00/00/00

#type=Configured3DGrid

;Size
8 ; X cells
8 ; Y cells
8 ; Z cells
;

;Weightings
0.0 Translation
0.0 Rotation

;Translation X
0 ;1
0 ;2
0 ;3
0 ;4
0 ;5
0 ;6
0 ;7
0 ;8
0 ;9
0 ;10
0 ;11
0 ;12
0 ;13
0 ;14
0 ;15
0 ;16
0 ;17
0 ;18
0 ;19
0 ;20
0 ;21
0 ;22
0 ;23
0 ;24
0 ;25
0 ;26
0 ;27
0 ;28

Example fragment of an (empty) configured 3D


grid error map, illustrating white-space and the use
of semi-colons to include comments.
CMM error correction 61

8.2 Thermal effect compensation


Changes in ambient temperature will cause thermal deformation in measuring machines and work-pieces
that can result in deterioration of measurement accuracy. Thermal compensation of readings taken by a
controller will allow a CMM to retain accuracy in ambient temperatures different to that at which it was
calibrated. This is particularly important for CMMs used in a machine shop or other non-temperature-
controlled environment.

Thermal effect compensation and thermal alarms are implemented in the UCC. When used in conjunction
with a Temperature Sensor Daughter Card the following commands can be used to control the thermal
effect compensation and associated alarms.

8.2.1 Thermal compensation commands

Command Command description


number
471 [Set-up] Machine configuration
This command allows the user to define the temperature compensation
configuration for each of the machine axes. It will need to be called once for
every machine axis (including the dual axis if appropriate). Some of the values
required, such as calibration temperature, should have been recorded when the
machine was commissioned or last calibrated. Machine axis temperature
compensation will not be performed (even when ‘enabled’) until this command
is successfully called for the axes in question.
472 [Set-up] Workpiece configuration
This command allows the user to define the temperature compensation
configuration for the workpiece. Workpiece temperature compensation will not
be performed (even when ‘enabled’) until this command is successfully called.
473 [Set-up] General configuration
This command allows the user to define a number of general temperature
compensation parameters. Compensation is still possible without calling this
command, as default settings will be used instead.
474 [Set-up] Alarm enable
This command allows the user to enable or disable the three different kinds of
temperature compensation alarm (range, gradient and temporal).
Compensation is still possible without calling this command. The temperature
compensation alarms default to all off.
475 Read alarm status
This command should be called whenever a temperature compensation alarm
is activated (i.e. when bit 7 of status byte 5 is set). It allows the user to
determine further details about the alarm raised. This includes its type, axis (or
workpiece) involved and which sensors caused the alarm (when this can be
attributed). Multiple alarms can be indicated simultaneously. Note that this
command will continue to show alarms as active, even after they have been
disabled, if the condition causing the alarm remains present.
476 Read current configuration
This command can be called at any time to determine the current configuration
of the temperature compensation settings.
62 CMM error correction

477 Read current contribution


This command can be called at any time to determine the current contribution
(in mm or inches) that the temperature compensation corrections are making to
each of the machine axis readings. It also reports the current temperature
average that is being used for the axis or workpiece in question in order to
make the calculation.
478 [Set-up] Sensor averaging
This command allows the user to enable and disable averaging of the
temperatures read from the active temperature channels over a user-definable
period in order to reduce the effect of noise on temperature compensation. If
enabled, averaging will also be applied to temperatures read directly from the
TSI card using the latch and read temperature commands (437 and 438).
479 [Set-up] Channel offsets
This command allows a user-definable offset to be added to the temperatures
read from the active temperature channels in order to allow system calibration.
If defined the offsets will also be applied to temperatures read directly from the
TSI card using the latch and read temperature commands (437 and 438). The
default offset for each channel is 0.0 °C (0.0 °F).

For further information on these commands please refer to the UCC command set manual (Renishaw part
number H-1000-5222).

8.2.2 Configuring thermal compensation

The easiest way to configure and enable thermal compensation is via the 'ConfigureForMetrology' method
in the configuration COM class (see H-1000-5230-08-A COM classes users guide for further information).
This avoids having to call the above thermal compensation commands directly. In order to enable thermal
compensation using this method it is necessary to provide configuration files defining the thermal
compensation settings for both the machine and (optionally) the workpiece. Default templates are provided
for both of these files. These files will need to be referenced in the [ErrorCorrections] section of the UCC
configuration file in the way illustrated below. A key is also provided to allow the compensation to be
enabled or disabled at will:

[ErrorCorrections]
MachineThermalEffectCompensationFilePath= C:\Program
Files\Renishaw\UCC\Machine\machineThermalComp.ini
WorkPieceThermalEffectCompensationFilePath= C:\Program
Files\Renishaw\UCC\Machine\workpieceThermalComp.ini
EnableThermalEffectCompensation=(0, 1 or 2: See below)
CMM error correction 63

ThermalEffectCompensationFilePath

This file contains the CMM thermal compensation configuration. It is also where each channel is mapped
to a particular axis. The possible values for channel assignments are:

• NOTHING

• XSCALE

• YSCALE

• ZSCALE

• DUALSCALE

• DEFAULTWORKPIECE

For further information on the settings within this file, please refer to the following commands in the UCC
command set manual (Renishaw part number H-1000-5222):

Command number Command description


471 Temperature compensation machine configuration
473 Temperature compensation general configuration
474 Temperature compensation alarm enable
478 Temperature compensation sensor averaging
479 Temperature compensation channel offsets

WorkPieceThermalEffectCompensationFilePath

This file contains the default workpiece thermal compensation configuration. It is also where workpiece
channels are enabled. If a particular workpiece channel is enabled in this file which hasn't been assigned
to DEFAULTWORKPIECE in the MachineThermalEffectCompensationFile then an error (0x81900007)
will be returned from 'ConfigureForMetrology'. If workpiece compensation is not required then this key
should point to a null path:

; For no workpiece compensation use the following line


WorkPieceThermalEffectCompensationFilePath=

For further information on the settings within this file, please refer to the following commands in the UCC1
command set manual (Renishaw part number H-1000-5222):

Command number Command description


472 Temperature compensation workpiece configuration
64 CMM error correction

EnableThermalEffectCompensation

This key will allow the thermal effect compensation to be enable or disabled as required:

• 0 = Disable

• 1 = Enable

• 2 = Special enable mode

When 'EnableThermalEffectCompensation = 0' (disable) no thermal compensation commands will be sent


during ConfigureForMetrology.

When 'EnableThermalEffectCompensation = 1' (enable) the following commands will be sent during
ConfigureForMetrology:

• Temperature Compensation Machine Configuration (command 471)

• Temperature Compensation General Configuration (command 473)

• Temperature Compensation Alarm Enable (command 474)

• Temperature Compensation Workpiece Configuration (command 472)

• Temperature Compensation Channel Offsets (command 479)

• Temperature Compensation Sensor Averaging (command 478)

When 'EnableThermalEffectCompensation = 2' (special enable mode) the following commands will be
sent during ConfigureForMetrology:

• Temperature Compensation Machine Configuration (command 471) will be sent with the all channels in
the sensor list set to NOTHING

• Temperature Compensation Workpiece Configuration (command 472) will be sent with the all channels
in the sensor list set to 0

The 'special enable mode' of operation causes the CMM scale readings to be thermally compensated to
the required reference temperature (usually 20 °C). No temperature sensors are required for this mode of
operation. This mode is useful to correct machines that have been error mapped at a temperature other
than the required reference temperature. In this mode, no other form of thermal compensation will take
place.

8.3 Error mapping and thermal compensation

8.3.1 Thermal effect model

The model used compensates for the scale and workpiece thermal expansion. Therefore the temperature
sensors are installed close to the machine scales and on the workpiece. The expansion model is a linear
function of the temperature, hence it uses a constant thermal expansion coefficient. The scale
compensation is applied by using the average temperature of the sensors used on each scale. The
average of the workpiece temperature sensors is used as the workpiece temperature.
CMM error correction 65

8.3.2 Data collection methods and recommendations

General measurement conditions

The data collection must be performed when the machine is in a stabilised environmental temperature.
The smaller the temporal temperature variation, the more accurate the machine assessment will be. The
acceptable threshold depends on the machine design and specifications, therefore it is the machine
manufacturer responsibility to define the required environmental conditions. The environmental
temperature isn’t necessarily equal to 20 °C.

The thermal effect compensation of the CMM is disabled during all data acquisition.

Scale data collection methods

Two scale error assessment methods are now described.

Scale error assessment without using the material temperature sensors of the laser interferometer
system

The scale error and the scale average temperature measured by the temperature sensor daughter card
are captured at the same time. This average temperature is recorded as the scale calibration temperature.
The scale data is used as it is in the error map calculator.

Therefore the machine uncertainty is affected by the relative accuracy of the temperature sensor daughter
card.

NOTE: The material compensation mode of the laser interferometer system is disabled.

Scale error assessment using the material temperature sensors of the laser interferometer system

The scale error measurement is performed with a laser interferometer system and the scale temperature
is measured with the material temperature sensors of the laser system. The measurements are performed
with a laser interferometer system working with the thermal compensation mode enabled. Its material
temperature sensors are placed as close as possible to the relevant scale. The data collected is then the
data associated with a compensated machine having its scales at 20 degree Celsius. The calibration
temperatures recorded for the scales should be 20 degree Celsius.

The absolute accuracy of the laser temperature sensor and the absolute accuracy of the temperature
sensor daughter card affect the CMM uncertainty. Moreover it is often difficult to place the material
temperature sensor of the laser system close to the scale.

Recommendations

The first methodology provides data, which will give the smallest CMM uncertainty magnitude. It is the one
recommended by Renishaw.
66 Probe head control

9 Probe head control


The purpose of this chapter is to explain the provisions in the UCC command set for communication and
control of Renishaw probe heads

It is highly recommended that the UCC_PH10Commands COM class found within CoUCC_Motion.dll is
used by the FE to implement PH10 control. For further details please see the COM class user’s guide
(Renishaw part number H-1000-5230).

9.1 Probe head control

9.1.1 Overview

The range of Renishaw motorised probe heads can all be controlled via a UCC in one of two ways.

• Internal probe head controller (PHC1050 UCC daughter card)

• External probe head controller (PHC10)

In either case, the probe head controller is addressed by the metrology front end via the UCC controller.
The UCC plays no active part in this exchange of data but simply buffers the messages and informs the
host if a reply from the probe head is available.

Either the Renishaw extended command set [RECS] or the standard PH9/10 command set may be
selected for communication with both internal and external probe head controllers, subject to the
capabilities of the particular controller.

The differences between internal and external probe head controller options are:

• Correct initialisation requires that the probe head controller is powered up before the UCC1 download
takes place. In the case of the external controller, this requirement is explicit, whereas for the Internal
controller, the requirement will always be fulfilled.

• External probe head controllers have onboard switches which set the initial power up configuration.
The PHC1050 internal probe head controller is configured by the ‘PHC1050 initialise command (340)’,
from the host computer. This command reinitialises the controller and may be issued at any time.

• For external probe head controllers only, the command set may be changed at any time by means of
the ‘Control external PHC RECS command (342)’

More information is available in the daughtercard installation guide (Renishaw part number H-1000- 5220).

Programming of the probe head can be achieved by using the Renishaw COM classes
UCC_PH10Commands that resides in dll CoUCC_Motion.dll. For more information please refer to the
COM classes user’s guide (Renishaw part number H-1000-5230).
Communicating with peripheral devices 67

10 Communicating with peripheral devices


The purpose of this chapter is to explain the provisions in the UCC1 command set for communication and
control of peripheral devices such as Renishaw joysticks and autochangers.

10.1 Autochanger control


The Renishaw autochange controller and its autochange rack can be accessed by the user computer via
the UCC controller. The controller plays no active part in this exchange of data but simply buffers the
messages and informs the host if a reply from the probe head is available. This last function is by means
of flags set in the status bytes attached to the reply to a ‘read position and status command (276)’. The
data is transferred to and from the peripheral device by the use of the ‘write to ACC command (338)’ and
the ‘read from ACC command (339)’.

Refer to daughtercard installation guide (Renishaw part number H-1000-5220) for more information.

10.2 PICS bus device connections and signals


Renishaw products which use the PICS peripheral inter-connection system can be connected to the
controller, which will respond accordingly e.g. by stopping the machine if a PICS HALT signal is
generated, triggering a position reading if a probe is deflected, etc.

The commands ‘read from PICS port’ and ‘write to PICS port’ can be used by the host computer to
communicate with the peripheral devices as defined in the respective user manuals.

Refer to daughtercard installation guide (Renishaw part number H-1000-5220) for more information.

10.3 User ports on the controller


The UCC provides a set of input and output ports for general use. Refer to the installation manual
(Renishaw part number H-1000-5056) for hardware details. There are 7 one-bit outputs and 6 one-bit
inputs. More user I/O can be provided by installing an additional input/output board, refer to daughter card
installation guide (Renishaw part number H-1000-5220).

The user can send data to these ports by using the ‘write to controller port command (318)’.

To read from the user input ports the user can employ the ‘read from controller ports command (279)’
which will report on the inputs from all CMM switch signals, among which are the user ports.

10.4 Joystick unit


The UCC has the ability to support either the Renishaw MCU1 joystick or an OEM design analogue
joystick. For details on the MCU1 joystick refer to it’s installation and user’s guide (Renishaw part number
H-1000-5067). A brief outline of the OEM design analogue joystick capability is listed below:

The board is designed to interface with different types of user’s hand-control unit, and can provide several
pre-programmed user functions.
68 Communicating with peripheral devices

There are several commands associated with the configuration and use of the joystick interface
daughtercard in the group numbered 396 to 406.

The UCC must be informed that a joystick interface is fitted from within the Machine Configuration File
(see the help file config.chm for more details). The joystick interface daughtercard is configured via the
[Joystick] section of the machine configuration File. The joystick must be enabled using the ‘joystick
enable command (397)’.

The joystick interface daughtercard provides means of controlling the CMM speeds when moving under
computer control, ‘joystick enable speed override command 402’, and has several user I/O pins accessible
with ‘joystick read binary I/O command (399)’.

For detailed information refer to the joystick interface daughtercard installation guide (Renishaw part
number H-1000-5220) and to the commands' definitions in the UCC command set (Renishaw part number
H-1000-5222).

Assistance in the commissioning of a joystick unit is provided by the RENICIS program, refer to its user
guide (Renishaw part number H-1000-5058).

NOTE: The method of taking points when using joystick control can be changed from the normal 'single
touch' method to a 'double touch' technique. See chapter 5 for more information.

The machine movements in response to joystick deflections will be parallel to the equivalent machine axes
unless ‘joystick part co-ordinate system command (403)’, is used to change to movements parallel to the
current part co-ordinate system axes.

There are COM classes for accessing the MCU, these classes:-

• Allow access to all buttons and LED's on the MCU through properties gets and puts

• Allow selection of MCU mode through method calls

• Configure LEDs and beeps

Please refer to the COM classes user’s guide (Renishaw part number H-1000-5230) for more details.

10.5 PHS
Configuration of the PHS is carried out by the configuration COM class, the parameters being read from
the [PHS] section within the machine configuration file.

Similarly homing of the PHS (finding D and E zero markers) is automatically performed by the homing
COM class.
Communicating with peripheral devices 69

Once configured and homed the PHS can be used in one of two modes:-

• PH10 mode

This is the default, basically the head will be locked into an orientation and can be used in a similar way
to a PH10. In this mode the Front End will be programming positions in terms of X, Y, Z Scale Position
and all reported values will also be in X, Y, Z Scale Positions (in the current co-ordinate system). Note
that if a Master Datum has been programmed and this Master Datum uses the Probe Offsets (i.e from
quill to tip) as its translation then the effective positions used for demand and reporting will be the tip
position. To run in this mode the PHS need not have been calibrated using the
CoPHsUCC_ph10ModeCalibration.FindHeadGeometry() method but the
CoPHsUCC_ph10ModeCalibration.DoProbeQualification() should be called as this finds the correction
vectors that allow small head movements to be corrected for by the UCC2.

• PHS mode

This allows the head to conduct 5 axis moves and report the approximate tip position via all the
position reporting commands in the command set. Position demands from the front end will assumed to
be the tip position.

The move COM class supports 5 axis PHS moves. They will be used if a request has been made to
move one or more of X, Y and Z axis and one or more of D and E. The move mode selection (either
'Free' mode or 'Line' mode) can be made via a property on the MoveObject interface (see H1000-5230,
The COM class user’s guide, for more details). Line mode ensures the tip follows a straight line (except
during blends), free mode ensures the CMM quill follows the straight line (apart from blends).

NOTE: PHS mode is for approximate motion around a work-piece and not to be used for measuring
purposes.

To use this mode the head geometry must have been found and sent to the UCC for the current tip in
use. This is a one off task for every tip being used (is orientation independent) and is performed by the
CoPHsUCC_ph10ModeCalibration.FindGeometry() Com class method. Also, a single qualification
needs to be done, this being performed by a call to
CoPHsUCC_ph10ModeCalibration.DoProbeQualification(). Now, the head geometry having been
found and one qualification in place, it is possible to send the command 'PHS Enable Probe
Qualification command (573)' which is a prerequisite to PHS mode being set using 'PHS Mode Set
command (574)'. As a result of this the UCC2 calculates a tip qualification vector which it uses (in real
time) to automatically apply a datum shift to the quill position as the PHS is moved. This allows the
approximate tip position to be reported back via the reporting commands (commands 276, 277, 900 &
569) or the UCC_axis_position_and_status COM Class. This tip position is also assumed when
programming 5 axis moves. Note that to increase metrology performance it is possible to specify the
PHS and Datum temperatures using the InitialiseTemperatureSupport() method of the
CoPHSUCC_ph10ModeCalibration COM Class. Calling this method is optional but recommended, it
should be called immediately after the InitialiseObject() method.
70 Communicating with peripheral devices

The offsets (X, Y, Z and D and E Qualification position offsets) are only valid whilst the
UCC/PHS is powered and booted. After Power OFF/ON or performing a Reboot of the UCC it is
necessary to re-qualify at each orientation. To save having to do this it is possible to just re-qualify at
one position and then apply the difference found at this orientation to all other stored orientations. It is
the front end's responsibility to perform this task and implement the mechanism for offset
storage.

When PH10 mode is requested the datum shift is applied in reverse and the head vector is set to zero.

10.6 Rotary table


Configuration of the rotary table is carried out by the configuration COM class, getting all necessary data
from the machine configuration file. Part of this configuration defines the rotary table's axis of rotation. It is
the Customers responsibility to measure and calculate this vector and ensure that it is entered correctly
into the machine configuration file.

The centre position of the rotary table has to be sent by the front end (this is NOT performed by the
Configuration COM class), this can be done using command enter 'Rotary Table Centre (703)', this has to
be in machine co-ordinates.

Homing of the rotary table is carried out by the home COM class.

Once configured and homed it is possible to use the move COM class to perform rotary table moves.
Using this COM class it is possible to define two types of Move, an absolute move or a relative move. The
types apply to the W position value set, should it be an absolute angle or an angle relative to the current W
position? In relative mode it is possible to program a negative (ACLW) or positive (CLW) move. In
absolute mode the shortest route to the absolute target position will be taken.

It is also possible to program the mode of part co-ordinate system rotation, this being one of two values
and is programmed using 'Set Rotary Table Mode command (704)', this command is NOT sent as part of
the move COM class:-

• Rot Tot

In this mode any part co-ordinate system is rotated with the rotary table. This can give what is known
as geo-stationary moves if just a W axis move is demanded, whereby as the table is rotated the quill
follows it around (although, because the co-ordinate system is being updated continuously with the
table rotation the reported X, Y and Z positions will remain unchanged).

If one or more of X, Y or Z and also the W axis is demanded (i.e at least a 2 axis W move) then motion
in X and/or Y and/or Z will follow a linear path in machine co-ordinate terms (the Move type, as defined
under command '4 Axis Move (702)' is set to 0 as Move Type 1 has not yet been implemented),
reaching the final posiiton at the same time as the Rotary Table reaches its final position.

• Rot Null

In this mode the part-co-ordinate system is not rotated with the table. For 2 or more axis moves the X,
Y Z motion will be a straight line to the target position (the Move type, as defined under command '4
Axis Move (702)' is set to 0 as move type 1 has not yet been implemented) reaching the final position
at the same time as the rotary table reaches its final position.
Communicating with peripheral devices 71

The speed of the rotary table is calculated to match the given linear speed but if it will exceed the
maximum degrees/sec (as set in the machine configuration file) then the rotary table moves at the
maximum speed and the linear speed is adjusted accordingly.

It is possible to take touch points during rotary table moves in which case the backoff will be carried out
in all axis that were moving at the time of the touch.

10.7 Dual Y Drive


Implementation of the dual Y drive is completely transparent to the front end developer. The configuration
class and machine configuration file will handle all configuration aspects and the Homing Class is
designed to Home the dual scale accordingly. For set up of the dual Y connection to the UCC2 please see
the UCC2 installation guide (Renishaw part number H-1000-5223).

10.8 SPA2
Implementation of the SPA2 is completely transparent to the front end developer. The configuration class
and machine configuration file will handle all configuration aspects. For set up of the SPA2 please see the
SPA2 installation guide.
72 Link monitor

11 Link monitor
The purpose of this chapter is to explain the use of the UCC link monitor utility, which permits the capture
and de-code of all the communication between the host PC and the UCC controller through the
CoUCC_Link object.

11.1 Link monitor explained

11.1.1 Overview

It is necessary to start the link monitor utility before any other software application initialises the link, once
started the target application can be started and stopped as required.

The way to start the link monitor application is to activate it through the application start normally located
“start menu\programs\UCC software\Link monitor”. It is also possible to launch the link monitor from the
front end application.

When the application is started the screen shown below will appear:

There are three menu items, four icons and two function buttons on this screen, a brief explanation of
these are listed below.

11.1.2 Options menu item

Decode data
This option activates the decode data screen, refer to section 11.3

Always on top
Activating this option configures the Link traffic monitor application window such that it is always in the
forefront of all other applications

Exit link logger


Exits the application

Convert Old File to New Format

This converts log files captured using Link Monitor Version 2.1 or earlier into a log file format that can be
read by Link Monitor version 2.2 or later (the log files now include the threadID, this conversion adds a
dummy threadID to each log line so that the new decoder can work).
Link monitor 73

11.1.3 Logging menu item

Start
Selecting this action activates capture of the communication between the host PC and the UCC.

When this function is activated the captured data will be written to the first data file specified, data will
continue to be logged to this file until the size of the file reaches the “Approx Max File Size” (refer to
configure below) at which point this file will be closed and the second file will be used. This loop will
continue, between the two files, until the user selects the stop function.

Stop
Selecting this action stops the capture of the communication between the host PC and the UCC.

Clear
Selecting this action clears the link traffic screen visible in the link traffic monitor window.

Configure
Within this option it is possible to set the file path for the link monitor log file and the maximum file size.

The default location for the log files will be the location of the link monitor application, with the default file
names being “Link_Log.txt” and “Link_Log2.txt”. These filenames/locations can be changed by either
manually typing the filename and location into the box or by selecting the file icon at the end of the
filename box. Selecting the file icon will display the standard save dialog box from which a filename and
location can be specified.

These filenames and paths are stored and at next use will be the default values.

The size of the two log files can be configured between 0.5MB and 15MB which is set from the dropdown
list. This update is immediate, which means that if you change the file size whilst the logger is logging data
to it the new file size will be used to determine when to change files.

11.1.4 Help

About
The about screen will display the version information for the link monitor installed on the system and
product information.
74 Link monitor

11.1.5 Icons

Four icons are located towards the top of the link monitor screen, the appearance of these icons can
change and they are all detailed below:

Icon Action Description


Configure This icon opens the log file configure screen, refer to 11.1.3 for
further information

Action activated This icon appears on the current state of the capture process, and
therefore is not available.

Start This icon starts the link log capture, refer to 11.1.3 for further
information

Stop This icon stops the link log capture, refer to 11.1.3 for further
information

Open the de-code This icon opens the log file de-code screen, refer to 11.3 for further
data screen information

11.1.6 Buttons

Two function buttons are apparent on the link log screen these are listed below:

Button Description
Clear Activating this button clears the content of the link log screen, this does not clear the link
log files only the data displayed within the link monitor window
Exit Activating this button closes the link log application
Link monitor 75

11.2 Link data capture using the link monitor application


Listed below is the recommended procedure for capturing data using the link monitor application.

The procedure assumes that there is problem with the communication to the UCC system when using the
front end software package.

1. Start the link monitor application (typically : start \ programs \UCC software \ link monitor).

2. Configure the link monitor application.

3. Set the link monitor log file to the location to be used, refer to section 11.1.3.

4. Set the maximum size of the link file to be used, refer to section 11.1.3.

5. Start the Front End software.

6. Run the Front End software until just before the occurrence of the communication problem / error, at
this point pause the software routine.

7. Within the link monitor application start the data capture, it is recommended that the control icons are
used as they are easily accessible, refer to section 11.1.5.

8. Continue with the Front End software routine, until the communication fault causes the software to
stop functioning.

9. Within the link monitor application stop the data capture, refer to section 11.1.5.

10. Ensure the machine operation is safe, it is recommended that the machine emergency stop system is
activated.

11. Decode the data refer to section 11.4.


76 Link monitor

11.3 Decoding link data explained

11.3.1 Overview

To de-code the link data it is necessary to start the de-code data application this is accessed via the
respective file menu (refer to section 11.1.5) or icon (refer to section 11.3).

When the data de-code application is started the window shown below will appear:

There are eight areas on this screen, these areas are explained below.

11.3.2 Main menu bar

There are 10 functions available in the main menu bar as shown below:

These functions, from left to right, are:

Open (and decode)


Clicking on this icon opens the standard windows open file screen, this then enables the user to locate the
link log file that they wish to decode. Link log files captured using version 2.1 of Link logger or earlier will
have to be converted using the "Convert old file to new format" Option item.

Save
Clicking on this icon opens the standard windows save file screen, this then enables the user to save the
link log file in a .csv format to a user selected location.
Link monitor 77

Transfer data to Excel


Clicking on this icon opens the standard windows save file screen, this then enables the user to save the
link log file in a .csv format to a user selected location. This file is then automatically opened in Excel (if
installed).

Print
Clicking on this icon opens the standard windows print screen, this then enables the user to print the log
file active in the link log screen.

Command Find by number


The command find by number function permits the user to select which UCC command number will be
searched for by the back and froward icons on the link log that is active within the link log display screen.

NOTE: Changing the command number will update the command description displayed.

Command Find by description


The command find by description function permits the user to select which UCC command number will be
searched for by the back and froward icons on the link log that is active within the link log display screen.

NOTE: Changing the command description will update the command number displayed.

Back
Using this button the command search by number or description will search backward in the current log
file active in the link log screen

Forward
Using this button the command search by number or description will search forward in the current log file
active in the link log screen

Format (paintbrush)
Using this icon all instances of the selected command within the active link log screen will be highlighted in
a user specified colour, this colour can be selected using the downward pointing arrow located to the right
hand side of this icon.

Cut
Using this button will remove (cut) all instances of the selected command within the active link log screen.
78 Link monitor

11.3.3 Status byte decoder menu bar

The status byte decoder screen permits the de-coding of individual status bytes from a system response.

The status byte drop down box will permit the selection of the status bytes available, then the argument
(value) of this byte is to be entered into the second drop down box

The by clicking on the tick icon this will produce a pop up screen that displays the information with regard
to the specified status byte and argument.

11.3.4 Status hunter menu bar

There are 6 functions available in the main menu bar as shown below:

The status byte hunter screen permits the search of individual status bytes from within the link log screen.

The status byte drop down box will permit the selection of any specified status byte, then the argument
(value) of this byte is to be entered into the second drop down box

Back
Using this button the status hunter will search backward in the current log file active in the link log screen.

Forward
Using this button the status hunter will search forward in the current log file active in the link log screen

Format (paintbrush)
Using this icon all instances of the selected status byte and argument within the active link log screen will
be highlighted in a user specified colour, this colour can be selected using the downward pointing arrow
located to the right hand side of this icon.

Cut
Using this button will remove (cut) all instances of the selected status byte and argument within the active
link log screen.
Link monitor 79

11.3.5 Status searcher menu bar

There are 5 functions available in the main menu bar as shown below:

The status byte searcher screen permits the search of individual status bytes by description from within
the link log screen.

The status searcher drop down box will permit the selection of any specified status byte by description
from the drop down box

Back
Using this button the status searcher will search backward in the current log file active in the link log
screen

Forward
Using this button the status searcher will search forward in the current log file active in the link log screen

Format (paintbrush)
Using this icon all instances of the selected status byte within the active link log screen will be highlighted
in a user specified colour, this colour can be selected using the downward pointing arrow located to the
right hand side of this icon.

Cut
Using this button will remove (cut) all instances of the selected status byte within the active link log screen.

11.3.6 Link log display screen

Initially, when the link log is opened, this screen will display the UCC
command description and then the thread id.

NOTE: The link log information displayed is dependant on the selection


made in the command selector display screen, please refer to sections
11.4 for details on how to use the link log de-coder application.

Any strings written to the link class using the WriteToLog() method will always be displayed in this window.

Within this screen it is possible to decode the active command to the parameters level by double clicking
on the command description and then if applicable expanding the data read / write nodes.
80 Link monitor

This screen is colour coded, as follows:

Colour code Description


Red data Data returned from the controller
Blue data Data sent to the controller
Black data Command description
Black data with red background Command description containing data that can not be decoded

Within this screen there is the ability to access a right click pop up menu, this menu has the following
features, these features effect all the commands in the link log display window.

Command Description
No details Collapses all commands in the link log display screen to command
level
Less detail Expands the No detail option to show the data read and data write
nodes
More detail Expands the commands to detail all parameters for all commands
Save filtered data as CSV Refer to section 11.3.2
Save filtered data and open in Refer to section 11.3.2
Excel
Print decoded data Refer to section 11.3.2

11.3.7 Command selector display screen

In this screen it is possible to select the commands to be de-coded from the link log data file to the link log
display screen.

The initial configuration for this screen is configured by the UCC command options screen, refer to 11.3.9.

The initial configuration can be changed from that set by the UCC command options by manually selecting
or de-selecting the required command(s) by use of the tick box located next to the command description.

The command listing can be structured in two different ways, these are alphabetically or by command
number this is achieved by clicking on the respective column header.
Link monitor 81

NOTE: If this setting is changed it is necessary to re-load the link log data file to reflect the changes.

11.3.8 Link command display screen

In this screen it is possible to select the system link commands to be de-coded from the link log data file to
the link log display screen.

The initial configuration for this option is that no system link commands are displayed in the link log display
screen. To include link commands these must be selected by use of the tick box located next to the
respective link command.

NOTE: If this setting is changed it is necessary to re-load the link log data file to reflect the changes.
82 Link monitor

11.3.9 UCC command options selection

In this screen it is possible to select the initial configuration to be used to de-code the link log data file to
the link log display screen.

The default setting is “All except position and status”.

NOTE: If this setting is changed it is necessary to re-load the link log data file to reflect the changes.

11.4 Link data de-code using the link decode application


Listed below is the recommended procedure for capturing data using the link monitor application.

The procedure assumes that there is problem with the communication to the UCC system when using the
UCCassist utility package.

1. Enter the link monitor de-code application, refer to section 11.1.3 .

2. Configure the link de-code application.

2.1. Set the UCC command option selection, refer to section 11.3.9.

2.2. If required select the required system commands from the link command display screen, refer
to section 11.3.8.

2.3. If required include or remove commands using the command selector display screen, refer to
section 11.3.7.

3. Open and de-code the link log file, refer to section 11.3.2. The file will then load and appear in the
link log display screen.

4. It is now possible to use any of the search tools, refer to sections 11.3.2, 11.3.4, 11.3.5 to
interrogate the de-coded link log.
COM modules 83

12 COM modules
Renishaw has prepared a library of COM modules to assist in creating applications using the UCC
controller. The UCC1 command set (Renishaw part number H-1000-5222) and the UCC COM classes
user's guide (Renishaw part number H-1000-5230) contain details of the optical link drivers and their
application.
84 Link failure

13 Link failure
Causes of link failure

Failure when trying to download a controller program may be due to one or more of the following:

• Incorrect configuration of the host PC drivers for the optical interface board. Check that the drivers are
addressing the correct boards I/O addresses and that no address clash is occurring with other
hardware in the PC.

• Mechanical/optical problems with the actual link components or the optical interface board installed in
the host computer. See the UCC1 and UCC2 installation manuals for suggestions to cure these.

• The generation of spurious characters by the host computer before sending the controller’s program.
The controller waits for an ‘S’ before assuming that a download has started, and will discard all data
received prior to it.

• The transmission of an incomplete or otherwise damaged command by the host PC, or its refusal to
read the controller’s reply to a command. This causes loss of synchronisation in the message handling
of the host PC and the controller. The error LED on the controller front panel is continuously lit. This
problem usually only arises during the development phase of the host PC’s interface software. See The
resync state and resyncing the link.

• When communicating to the UCC2, communication was attempted prior to the UCC2 being in its 'ready
for download' state. This state is signified by the Red Front Panel LED flashing at a rate of 0.5 Hz
(once every two seconds). See Front panel LED patterns.

• When using the UCC2 repeated Comms Timeout messages are seen - this may be due to a high
priority task hogging the processor. The timeout period for the TCP/IP comms is by default 3 seconds,
in normal operation this is plenty but on slow PC's with high priority tasks cutting in the timeout can be
increased by editing the registry and upping the timeout values. These can be found under :_

HKEY_LOCAL_MACHINE/SOFTWARE/RENISHAW

With the following keys :-

TCPIP Send Timeout - To set the Send Timeout value in millisecond


TCPIP Receive Timeout - To set the Receive Timeout value in
millisecond
Front panel LED patterns 85

14 Front panel LED patterns


The following LEDs can be seen at the front of the UCC unit, this diagram also gives their corresponding
colour when illuminated :-

Power System Servo Probe Error

On Ready Engaged Seated

Power On - This LED is illuminated when power is supplied to the unit.

Servo Engaged - This LED is illuminated when the X, Y and Z servo motors are engaged, if additional
axis are present then this LED also signifies their Engaged state if they have been
enabled by Software.

Probe Seated - This LED is illuminated when the probe is seated (ie not triggered). It is controlled by
software and reflects the software's view of the probe seated state i.e if probe override
is active then this LED will be illuminated no matter the actual state of the probe. A
flashing LED signifies a potential error condition, see below "Other Combinations" for
more info in this case.

System Ready - The LED will be illuminated during normal usage once the UCC has been booted and
downloaded to. A flashing LED signifies a potential error condition, see below "Other
Combinations" for more info in this case.

Error LED - Typically this LED is not illuminated after bootup and download. If it appears after
successful bootup and download and stays ON then it will probably mean that the
system is in a Resync State i.e communications has failed previously and the PC and
UCC need to be resynchronised. Resynchronisation is achieved by using the Resync
command or the ConnectToUCC() method of the Configuration COM Class (see
Resyncing the Link" section earlier). If this LED flashes or stays ON with other
combinations of flashing System Ready and/or Probe Seated LEDs then further states
can be seen in the tables of "Other Combinations" below.
86 Front panel LED patterns

Other Combinations - System Ready, Error LED and Probe Seated

These LED's combine to signify many different states for the UCC1 and UCC2 as detailed in the two
tables below:-

UCC1

System ready Error


Meaning of pattern
indicator indicator

Off On Error during bootup of UCC1. Please contact Renishaw.

Off Slow flashing Awaiting download

Slow flashing Off Download in progress

Slow flashing On problem with download file

UCC2

Probe
System ready Error
Seated Meaning of pattern
indicator indicator
indicator
Ready for IP configuration (details of the use of
Off Off Fast flashing the IP Configuration package can be found in the
UCC2 Installation Manual, H1000-5223).
Off Slow flashing Fast flashing Hardware problem whilst in IP configuration state.
Off Off Slow flashing Awaiting download
Off Slow flashing Slow flashing Hardware problem whilst in the download state.
A download error has occurred. Power OFF/ON to
Slow flashing Off On
reset.
This occurs after the Off-Off-Off pattern, it means
that the UCC2 has been successfully configured.
Off Off On Shortly after this pattern the download state
should be displayed, if it is not then please contact
Renishaw
1. Immediately after switching on the OAK. The
system is in the very initial stages of booting
up. This state lasts for about 15 seconds, if all
is OK then the Error LED should become
iluminated.
Off Off Off
2. If the 15 or so seconds of scenario 1 above
have passed and no LED activity has been
displayed then this state indicates a hardware
problem, please contact Renishaw.

If any other LED pattern is seen then please contact Renishaw with details of the pattern seen and the
sequence of events leading up to this pattern.
Appendix 1 87

15 Appendix 1 - Revision history


What’s new in release 01-A

1. At each reference to a specific command, the command number has been added in parentheses to
speed up its location in the command set documentation.

2. The range of COM modules developed for use by programmers when interfacing to the UCC1
controller is mentioned briefly in chapters 1 and 8.

3. The ‘wait’ required after downloading the UCC1 operating program has been shown in the initialising
flow chart in chapter 3.

4. The ‘double-touch’ method of taking measurements when using a joystick is added to chapter 5.

5. The use of ‘soft limits’ is described in chapter 5.

6. The description of some controller states is enhanced in chapter 7 and now includes state 15.

7. Resynchronisation of the optical link has been described in more detail in chapters 1 and 8.

8. Operation with PHC1050 plug-in daughter board is described in chapter 10 and a note added re the
power-up sequence for an external PHC.

9. The section on the joystick interface has been enlarged in chapter 10.

10. An index has been added at the end of the document.

11. The ‘status reporting in 'read position' commands’ table in chapter 2 has been updated to that shown
in the UCC command set version 01-A.

12. Chapter 7, controller states, has been updated to show the new controller state numbers defined in
the UCC command set version 01-A.

What’s new in release 03

1. Minor updates to ‘digitising’ text.

2. Minor changes for latest Renicis release.

3. Document approvals section removed.


88 Appendix 1

What’s new in release 04

1. Minor updates to chapter 1, ‘General overview’.

2. Minor changes to chapter 2, ‘Command features’.

3. Minor changes to chapter 3, ‘Initialising the CMM and controller’.

4. Minor changes to chapter 4, ‘Datum setting and probe calibration’.

5. Chapter 8, ‘Optical link control’ removed.

6. Chapter 9, ‘CMM error correction’ now chapter 8.

7. Chapter 10, ‘Communicating with peripheral devices’ now chapter 9.

8. Minor changes to new chapter 9, ‘Communicating with peripheral devices’.

9. Appendix 1, ‘Optical link control’ added.

What’s new in release 05

1. 2D scanning with parabolic filtering section added to chapter 6, ‘Filtering of data’.

What’s new in release 06

1. Probe head control, chapter 9

2. Link monitor utility guide, chapter 11

3. Table 1, status bytes – Byte 8 bit 4 was “Not defined” now “1 = PHS_SERVO_ON”

4. Chapter 3, section on start-up note 1 added to refer to configuration dll.

What’s new in release 07

1. Minor changes to data filtering, chapter 1.

2. Link monitor, changes to the user interface plus improved searching and decoding facilities, chapter
11.

3. References to new MCU1 joystick added.

What’s new in release 08

1. Inclusion of centre find explanation to scanning overview.


Appendix 1 89

What’s new in release 09

1. Inclusion of UCC2 information.

2. Rewrite of section 11, Link monitor.

3. Inclusion of SPA2, Rotary Table, PHS and Dual Y Drive sections.

4. More emphasis placed on use of the UCC_axis_position_and_status class for polling to get position
and status from UCC.

5. More emphasis on Machine Configuration file and Configuration COM class for configuring the UCC.

6. Sample application UCCDevFE mentioned.

7. Link COM class now has separate section that covers Resync and getLock() releaseLock().

8. CoUCC_error COM Class described.

9. Status Byte pages updated to include all 16 status bytes.

10. Probe Calibration and Qualification sections expanded.

11. Touch triggering with analogue probes now includes In/Out and Static Average triggering types.

12. External LED's described in more detail.

13. Some new Troubleshooting added for TCP/IP UCC2 problems.

14. Low level programming of Optical Link device driver removed.

15. Programming of PH1050 at WriteToPH10 and ReadFromPh10 command level removed - now
references UCC_PH10Commands COM class.

16. Minor updates to Link monitor section.

17. Document title changed from ‘UCC1 universal CMM controller programmer’s guide’ to ‘UCC universal
CMM controller programmer’s guide’.

What’s new in release 10

1. Section 4.4.4 and 4.4.5 Use of Probe Power Off and Probe Damping updated.

2. Section 5.1.2 Description of static averaging updated to include Single Dwell and Double Dwell
methods.

3. Section 6.7 Data lead-in distance options documented.

4. Minor text corrections throughout the document.

5. References to ‘Mouse mode’ and Menu mode’ removed.

6. UCClite information added.


Renishaw plc T +44 (0)1453 524524
New Mills, Wotton-under-Edge, F +44 (0)1453 524901
Gloucestershire, GL12 8JR E uk@renishaw.com
United Kingdom www.renishaw.com

For worldwide contact details,


please visit our main website at
www.renishaw.com/contact

*H-1000-5057-10*

You might also like