EasyManua.ls Logo

Sutter Instrument MPC-325 Series - System Maintenance; Cleaning and Inspection Procedures; Lubrication Warning

Sutter Instrument MPC-325 Series
71 pages
Print Icon
To Next Page IconTo Next Page
To Next Page IconTo Next Page
To Previous Page IconTo Previous Page
To Previous Page IconTo Previous Page
Loading...
MPC-325 SERIES OPERATION MANUAL REV. 3.20F (20200303)
47
(Wintel), so conversion to 32-bit longs will require bit-order reversal (byte swapping) for
Big-Endian platforms (e.g., LabVIEW). The appropriate microstep-to-microns conversion
factor is needed according to the device type being moved (see
Microns/microsteps
conversion factors (multipliers)
table).
Little-Endian bit/byte order environment:
Signature
X
Y
Z
pos[x]
0
1
2
3
4
5
6
7
8
9
10
11
FF
FF
FF
xx
xx
xx
yy
yy
yy
zz
zz
zz
cpxus
0
1
2
3
00
xx
xx
xx
cpyus
0
1
2
3
00
yy
yy
yy
cpzus
0
1
2
3
00
zz
zz
zz
Big-Endian bit/byte order environment (“pos” is in Little-Endian format):
Signature
X
Y
Z
pos[x]
0
1
2
3
4
5
6
7
8
9
10
11
FF
FF
FF
xx
xx
xx
yy
yy
yy
zz
zz
zz
cpxus
0
1
2
3
xx
xx
xx
00
cpyus
0
1
2
3
yy
yy
yy
00
cpzus
0
1
2
3
zz
zz
zz
00
The following C/C++ code snippets can be used to process the streaming data.
Array for a streamed 12-byte block of data containing current position
unsigned char pos[12];
32-bit variables for current position in microsteps, all initialized to 0 to ensure MSB allows only
positive values
long cpxus, cpyus, cpzus;
cpxus = cpyus = cpzus = 0;
Copy 24-bit (3-byte) position for each axis to 32-bit (4-byte) equivalents. Use the byte position
offsets shown in the diagram above. (“le” means Little Endian; “be” means Big Endian bit/byte
order.)
If in Little-Endian environment (e.g., Windows, Intel-MacOSX), copy all 3 U24 bytes for each axis
to the respective U32 variables.
memcpy(&cpxus[1], &pos[3], 3); // X
memcpy(&cpyus[1], &pos[6], 3); // Y
memcpy(&cpzus[1], &pos[9], 3); // Z
If in Big-Endian environment (e.g., legacy MacOS, LabVIEW), copy U24 to U32 byte at a time (1
st
to 3
rd
, 2
nd
to 2
nd
, & 3
rd
to 1
st
). Note that “pos” is always in Little-Endian bit/byte order.
memcpy(&cpxus[2], &pos[3], 1); // X
memcpy(&cpxus[1], &pos[4], 1);
memcpy(&cpxus[0], &pos[5], 1);
memcpy(&cpyus[2], &pos[6], 1); // Y
memcpy(&cpyus[1], &pos[7], 1);
memcpy(&cpyus[0], &pos[8], 1);
memcpy(&cpzus[2], &pos[9], 1); // Z
memcpy(&cpzus[1], &pos[10], 1);
memcpy(&cpzus[0], &pos[11], 1);

Table of Contents

Related product manuals