You are on page 1of 19

3/21/2018 scanCONTROL 2900 Interface Specification

Interface Specification for scanCONTROL 2900


Device Family MICRO-EPSILON

Ethernet and Serial Port


$Revision:
8d8d9e47d546 $
Supplement B to the scanCONTROL 2900 Manual $Date: 2015/09/01
11:25:11 $
© MICRO-EPSILON Optronic GmbH, Lessingstr. 14, D-01465 Dresden-Langebrück, Germany
www.micro-epsilon.de
e-mail optronic@micro-epsilon.de

Contents
ScanCONTROL Device Interfaces
Ethernet (100/1000MBit)
Serial Port
Modbus Integration (scanCONTROL 2910/2960 only)
Measurement server (scanCONTROL 2910/2960 only)
Address Space
Description of Feature Registers
Idle Time
Processing of Profile Data
Extraparameter
Threshold
Shutter Time
Laser Power
Temperature
External Trigger Input
Measuring Field
Parameter Queue
cmmTrigger
Maintenance Functions
Save and Load of User Modes
Profile Filter
Multi-Function Port Configuration
Rearrangement of Profile Data
Description of Profile Data Format
Container Mode for Transmission
Firmware versions
General
Details

ScanCONTROL Device Interfaces


Ethernet is the standard connection of scanCONTROL devices to a personal computer. It offers high data rates (up to
1000MBits/s), automatic device recognition and hot plugging.

All scanCONTROL devices have a programmable RS422 port which can be used as a half-duplex serial communication port.
The limited bandwidth restricts its use to set up and maintenance in most cases.

Back to Contents.

Ethernet (100/1000MBit)
ScanCONTROL follows the GigE Vision Standard maintained by the Automated Imaging Association (AIA). It is a passive
device and will not initiate any action of its own. However, it automatically starts the standard measurement mode or the last
saved user mode after power up or reset.
file:///C:/Users/RALEXPRO/AppData/Local/Temp/Rar$EXa6388.35733/C%23%20SDK/documentation/OpManPartB_2900.html 1/19
3/21/2018 scanCONTROL 2900 Interface Specification
In order for the scanCONTROL to communicate over ethernet, it must be connected to a PC that is running an application
programme. The device implements the control registers as described in the standard and the registers as described below.

Back to Contents.

Serial Port
The serial ports of scanCONTROL devices are intended for evaluation and maintenance only. The scanCONTROL device
supports one half-duplex serial port. This port can work in different modes (see Multi-Function Port Configuration). The serial
communication function supports only a fixed configuration of no parity, 8bits per byte, 2 stop bits and a variable baud rate of
115200, 57600, 38400, 19200 or 9600.

Several commands are provided to access the control registers described below and to transmit profile data. The scanCONTROL
device uses a plain text protocol that is derived from the GigE Vision Standard communication protocol.

Answer of scanCONTROL
Command Parameter(s) no error description
error occurred
occurred
setq offset value #0 #7 write quadlet (=32Bit)
#q address #q
getq offset value address0x00000000
read quadlet (=32Bit)

generate a (fake) trigger pulse, only useful if switched to


trig
external trigger
value=0 disables transmission of profile data
value=1 enables transmission of profile data
dump value
value=5 enables transmission of profile data, coordinates and
intensity

offset:
The offset of control registers described below, can be decimal or hexadecimal, must be preceded by 0x in the latter case.

value:
The value to be written to address or parameter for command, can be decimal or hexadecimal, must be preceded by 0x in the
latter case.

profile data:
Profile data are transmitted as two or three columns of decimal integers. The first column contains the position, the second one
the distance and the third one the intensity. The header is # iso.
Example 1:
# iso

42180 42875

42106 42886

42031 42877

41959 42908

41882 42877

41813 42939

...

Example 2:
# iso

44582 48230 0010258

44483 48137 0011335

44380 48006 0011062

44277 47864 0011295

44174 47731 0011096

44074 47619 0011304


file:///C:/Users/RALEXPRO/AppData/Local/Temp/Rar$EXa6388.35733/C%23%20SDK/documentation/OpManPartB_2900.html 2/19
3/21/2018 scanCONTROL 2900 Interface Specification

43972 47493 0010569

43877 47429 0011589

43776 47305 0011960

43675 47183 0012034

...

The equations for convert to millimetres are here.

Back to Contents.

Modbus Integration (scanCONTROL 2910/2960 only)


The scanCONTROL device supports Modbus RTU via serial interface and Modbus TCP via Ethernet Interface.

For using Modbus RTU the serial interface parameters baudrate, start bit (none), stop bit (2), parity bits (none) and flow control
(none) have to be set the same way like for ascii communication.

For Modbus TCP, the port 502 is open. It is possible to use profile data transmission (GigE-Vision) and modbus communication
via Ethernet at the same time.

scanCONTROL supports the following Modbus commands of the Modbus standard:

Read Holding Registers (03)


Read Input Registers (04)
Write Single Holding Registers (06)
Write Multiple Register (16)
Read Device Identification (43/14)

After the computation of the measurement values has been finished on the sensor controller (according to the parametrisation of
scanCONTROL Setup Software) the input registers are actualised with the current measurement values. This happens with the
specified profile frequency. These values can now be obtained by reading the input registers of the sensor.

Alternatively it is possible to copy the current state of the input registers into the holding registers of the sensor (see example
below). The values can now be transmitted by reading the holding registers. The holding registers keep their values until the next
input register block is copied to the holding registers or the holding registers are reset.

Example:

1. Copy the input registers into the holding registers (write 1 to register 32):
→ Modbus command: 01 06 00 20 00 01 49 C0
2. Read 24 holding registers beginning from address 0:
→ Modbus command: 01 03 00 00 00 18 45 C0
3. Reset the holding registers (write 0 to register 32):
→ Modbus command: 01 06 00 20 00 00 18 00

For a closer description of the modbus commands please refer to the Modbus Protocol Specification available at
http://www.modbus.org.

The holding register 32 acts as a command interface and supports the following commands:

Value written to holding register 32 Command description


0 reset holding registers 0..31 to 0
1 copy input registers 0..31 into holding registers 0..31
2 SETQ, see below
3 GETQ, see below

The GETQ and SETQ commands access the sensor's internal registers. They additionally use the holding registers 34 (lower
16bit of address), 35 (upper 16bit of address), 36 (lower 16bit of data) and 37 (upper 16bit of data).

Example 1: switch the laser power

Holding register 32 33 34 35 36 37
Value 2 (SETQ) 0 0x0824 0xf0f0 0x0 to switch 0
file:///C:/Users/RALEXPRO/AppData/Local/Temp/Rar$EXa6388.35733/C%23%20SDK/documentation/OpManPartB_2900.html 3/19
3/21/2018 scanCONTROL 2900 Interface Specification
off
0x1 to switch to
reduced power
0x2 to switch to
standard power

Example 2: switch user mode

Holding
32 33 34 35 36 37
register
0x0000 load factorys settings
0x1000 load user mode 1
Value 2 (SETQ) 0 0x0624 0xf0f0 0 0x2000 load user mode 3
...
0xf000 load user mode 15

The data can be sent as one multiple write command or as several single writes. In the latter case, the write to register 32 has to
be issued last.

Example 3: read current user mode

Holding register 32 33 34 35 36 37
0x0000 factorys settings
0x1000 user mode 1
Value 3 (GETQ) 0 0x0624 0xf0f0 0 0x2000 user mode 3
...
0xf000 user mode 15

First, the GetQ command is initiated by writing the registers 32..35. The data can be sent as one multiple write command or as
several single writes. In the latter case, the write to register 32 has to be issued last. Then, the content of the requested internal
register is available at registers 36 and 37.

Back to Contents.

Measurement Server (scanCONTROL 2910/2960 only)


The scanCONTROL device can send measurement results to a target host using a Telnet UDP connection.

Back to Contents.

Appendix
Pin out of the Multi-Function Port

Pin Function Wire colour at the included cable PC2600/2900-x


1 -Laser on/off (optional) brown
2 GND (24V) blue
3 +Laser on/off (optional) white
4 GND-In1 green
5 In2 pink
6 In1 yellow
7 GND-In3 black
8 GND-In2 grey
9 +Ub (24V) red
10 In3 violet
11 /RS422 grey-pink

file:///C:/Users/RALEXPRO/AppData/Local/Temp/Rar$EXa6388.35733/C%23%20SDK/documentation/OpManPartB_2900.html 4/19
3/21/2018 scanCONTROL 2900 Interface Specification
12 RS422 red-blue

Back to Contents.

Address Space
The following table defines the control registers and their meaning for scanCONTROL.
Numbers starting with 0x are hexadecimal.
The most significant bit is denoted with Bit 31, the least significant bit with Bit 0.
ScanCONTROL supports quadlet transfers and block transfers up to 536 bytes.
The requested addresses must be aligned to 4-byte boundaries. Block transfers have a granularity of 4 bytes.
It is recommended to use the either the provided C/C++ SDK or a GigE-Vision/GenIcam framework.

Back to Contents.

Offset
Initial
R=Readable Register name Register description
value
W=Writable
Camera initialise register
0xf0f00000 R W 0x00000000 INITIALIZE loads standard mode if written to (factory settings)
Inquiry register for data transmission mode
supported data transmission modes:

0. 256 × 256 × 8bit: video image mode


1. 1280 × 1024 × 8bit: video image mode
2. 64 × 1280 × 8bit: profile mode, 1280
points/profile, 1 profile/frame
3. 64 × 640 × 8bit: profile mode, 640
0xf0f0019c R - 0xfd000000 TRANSMISSION_MODE points/profile, 1 profile/frame
4. 64 × 320 × 8bit: profile mode, 320
points/profile, 1 profile/frame
5. 64 × 160 × 8bit: profile mode, 160
points/profile, 1 profile/frame
6. reserved
7. 16384 × 4096 × 8bit: container mode

Inquiry registers for the base addresses of the transmission mode control and status registers
0xf0f002e0 R - 0x00380000 V_CSR_INQ_7_0 CSR quadlet offset for Mode_0, points to 0xf0e00000
0xf0f002e4 R - 0x00380040 V_CSR_INQ_7_1 CSR quadlet offset for Mode_1, points to 0xf0e00100
0xf0f002e8 R - 0x00380080 V_CSR_INQ_7_2 CSR quadlet offset for Mode_2, points to 0xf0e00200
0xf0f002ec R - 0x003800c0 V_CSR_INQ_7_3 CSR quadlet offset for Mode_3, points to 0xf0e00300
0xf0f002f0 R - 0x00380100 V_CSR_INQ_7_4 CSR quadlet offset for Mode_4, points to 0xf0e00400
0xf0f002f4 R - 0x00380140 V_CSR_INQ_7_5 CSR quadlet offset for Mode_5, points to 0xf0e00500
0xf0f002f8 R - 0x00380180 V_CSR_INQ_7_6 not used
0xf0f002fc R - 0x003801c0 V_CSR_INQ_7_7 CSR quadlet offset for Mode_7, points to 0xf0e00700
Inquiry register for basic function
One_Shot and Multi_Shot, Maximum memory
0xf0f00400 R - 0x0000180f BASIC_FUNC_INQ
channel number is 15
Inquiry register for feature presence
idle time, processing of profile data, access extra
0xf0f00404 R - 0xfb480000 FEATURE_HI_INQ parameter, rearrangement of profile data, threshold,
profile filter, shutter, laser, temperature, trigger
zoom, access parameter queue, maintenance
0xf0f00408 R - 0xd0008000 FEATURE_LO_INQ
functions, digital IO Configuration
Inquiry register for feature elements
0xf0f00500 R - 0x89001fff IDLE_INQ ReadOut, Manual, Min=1, Max=4095, idle time

file:///C:/Users/RALEXPRO/AppData/Local/Temp/Rar$EXa6388.35733/C%23%20SDK/documentation/OpManPartB_2900.html 5/19
3/21/2018 scanCONTROL 2900 Interface Specification

Offset
Initial
R=Readable Register name Register description
value
W=Writable
ReadOut, Manual, Min=0, Max=4095, processing of
0xf0f00504 R - 0x89000fff PROCESSING_INQ
profile data
ReadOut, Manual, Min=0, Max=4095,access extra
0xf0f00508 R - 0x00000000 EXTRAPARAMETER_INQ
parameter
ReadOut, Manual, Min=0, Max=4095, rearrangement
0xf0f0050c R - 0x89000fff REARRANGEMENT_INQ
of profile data
0xf0f00510 R - 0x89000fff THRESHOLD_INQ ReadOut, Manual, Min=0, Max=4095, threshold
0xf0f00514 - - - - not used
0xf0f00518 R - 0x89000fff PROFILEFILTER_INQ ReadOut, Manual, Min=0, Max=4095, profile filter
ReadOut, Manual, Automatic, Min=1, Max=4095,
0xf0f0051c R - 0x8b001fff SHUTTER_INQ
shutter time
0xf0f00520 - - - - not used
0xf0f00524 R - 0x89000002 LASER_INQ ReadOut, Manual, Min=0, Max=2, laser power
0xf0f00528 - - - - not used
OnePush, ReadOut, Manual, Min=0, Max=4095
0xf0f0052c R - 0x00000000 TEMPERATURE_INQ
temperature
supported four modes, two sources and changing
0xf0f00530 R - 0x8300c000 TRIGGER_INQ
polarity of trigger input trigger
0xf0f00580 R - 0x89000fff ZOOM_INQ ReadOut, Manual, Min=0, Max=127 measuring field
ReadOut, Manual, Min=0, Max=4095, access
0xf0f00584 R - 0x89000fff PARAMETERQUEUE_INQ
parameter queue
ReadOut, Manual, Min=0, Max=4095, configure
0xf0f00588 R - 0x00000000 CMMTRIGGER_INQ
cmmTrigger
ReadOut, Manual, Min=0, Max=4095, maintenance
0xf0f0058c R - 0x89000fff MAINTENANCE_FUNCTIONS_INQ
functions
ReadOut, Manual, further information Multi-
0xf0f005c0 R - 0x89000fff DIGITAL_IO_INQ
Function Port Configuration
0xf0f005c4 - - - - not used
Status and control registers, values are the factory settings
0xf0f00604 R W 0x40000000 CUR_TRANSMISSION_MODE current transmission mode (bits 31..29) is number 2
0xf0f00614 R W 0x00000000 TRANSMISSION_EN enable transmission (bit 31)
current status and features are saved to memory
0xf0f00618 R W 0x00000000 MEMORY_SAVE
channel selected with MEM_SAVE_CH
ONE_SHOT transmit one (bit 31) or multiple (bit 30)
0xf0f0061c R W 0x00000000 MULTI_SHOT frame(s)/profile(s), count number (bits 0..15), self
COUNT_NR cleared after transmission, ignored if iso_en = 1
0xf0f00620 R W 0x00000000 MEM_SAVE_CH Memory channel number for save command
Loads stored status and features from the specified
0xf0f00624 R W 0x00000000 CUR_MEM_CH
memory channel
Status and control registers for features
0xf0f00800 R W 0x820003de IDLE TIME idle time 9.9ms
use calibration, high resolution, process only highest
0xf0f00804 R W 0x8200020f PROCESSING_PROFILE_DATA
integral intensity, no flipping, align right edge
0xf0f00808 R W 0x82000000 EXTRAPARAMETER last command to access the extra parameter
0xf0f0080c R W 0x82000000 REARRANGEMENT_PROFILEDATA no rearrangement of profile data
0xf0f00810 R W 0x82000c80 THRESHOLD threshold = 128, video filter, suppress ambient light
0xf0f00814 - - - - not used
0xf0f00818 R W 0x82000000 PROFILE_FILTER no profile filter

file:///C:/Users/RALEXPRO/AppData/Local/Temp/Rar$EXa6388.35733/C%23%20SDK/documentation/OpManPartB_2900.html 6/19
3/21/2018 scanCONTROL 2900 Interface Specification

Offset
Initial
R=Readable Register name Register description
value
W=Writable
automatic enabled, target shutter time 0.1ms, with
0xf0f0081c R W 0x8300000a SHUTTER
idle time 9.9ms the profile frequency is 100Hz
0xf0f00820 - - - - not used
0xf0f00824 R W 0x82000002 LASER_POWER laser power standard
0xf0f00828 - - - - not used
0xf0f0082c R W 0x00000000 TEMPERATURE temperature of the sensor
0xf0f00830 R W 0x80000000 TRIGGER external trigger disabled
0xf0f00880 R W 0x82000000 ZOOM measuring field 0, see Section Measuring Field
0xf0f00884 R W 0x82000000 PARAMETER_QUEUE last command to access the parameter queue
0xf0f00888 R W 0x00000000 CMMTRIGGER last command to configure cmmTrigger
0xf0f0088c R W 0x82000000 MAINTENANCE maintenance functions disabled
serial communication at 115.2kBaud, Trigger input
0xf0f008c0 R W 0x00000000 DIGITAL_IO_CONFIG
In1
0xf0f008c4 - - - - not used
Transmission mode control and status registers for Mode_0, video image mode
0xf0e00000 R - 0x01000100 MAX_IMAGE_SIZE_INQ 256 × 256
0xf0e00004 R - 0x01000100 UNIT_SIZE_INQ 4 × 4,
0xf0e00008 R W 0x00000000 IMAGE_POSITION upper left edge of transmitted area,
0xf0e0000C R W 0x01000100 IMAGE_SIZE size of transmitted area,
0xf0e00010 R W 0x00000000 COLOR_CODING_ID ignored
0xf0e00014 R - 0x80000000 COLOR_CODING_INQ only Mono8
0xf0e00018
... R - 0x00000000 filled to support block transfers
0xf0e00030
0xf0e00034 R - 0x00010000 PIXEL_NUMBER_INQ updated according to the transmitted area
0xf0e00038 R - 0x00000000 TOTAL_BYTES_HI_INQ updated according to the transmitted area
0xf0e0003c R - 0x00010000 TOTAL_BYTES_LO_INQ updated according to the transmitted area
0xf0e00040 R - 0x00041000 PACKET_PARA_INQ minimal ¦ maximal packet size is 4 ¦ 4096 byte
actual 1024 byte/packet, recommended 1024
0xf0e00044 R W 0x04000400 BYTE_PER_PACKET
byte/packet
recalculated automatically after setting of
0xf0e00048 R - 0x00000040 PACKET_PER_FRAME_INQ
BYTE_PER_PACKET
0xf0e0004c R - 0x00000000 UNIT_POSITION_INQ UNIT_POSITION defaults to UNIT_SIZE
0xf0e0007c R W 0x00000000 VALUE_SETTINGS ignored
Transmission mode control and status registers for Mode_1, video image mode
0xf0e00100 R - 0x04000400 MAX_IMAGE_SIZE_INQ 1280 × 1024
0xf0e00104 R - 0x04000400 UNIT_SIZE_INQ 1280 × 1024
0xf0e00108 R W 0x00000000 IMAGE_POSITION ignored
0xf0e0010C R W 0x04000400 IMAGE_SIZE ignored
0xf0e00110 R W 0x00000000 COLOR_CODING_ID ignored
0xf0e00114 R - 0x80000000 COLOR_CODING_INQ only Mono8
0xf0e00118
... R - 0x00000000 filled to support block transfers
0xf0e00130
0xf0e00134 R - 0x00100000 PIXEL_NUMBER_INQ hard wired
0xf0e00138 R - 0x00000000 TOTAL_BYTES_HI_INQ hard wired

file:///C:/Users/RALEXPRO/AppData/Local/Temp/Rar$EXa6388.35733/C%23%20SDK/documentation/OpManPartB_2900.html 7/19
3/21/2018 scanCONTROL 2900 Interface Specification

Offset
Initial
R=Readable Register name Register description
value
W=Writable
0xf0e0013c R - 0x00100000 TOTAL_BYTES_LO_INQ hard wired
0xf0e00140 R - 0x00041000 PACKET_PARA_INQ minimal ¦ maximal packet size is 4 ¦ 4096 byte
actual 1024 byte/packet, recommended 2048
0xf0e00144 R W 0x04001000 BYTE_PER_PACKET
byte/packet
recalculated automatically after setting of
0xf0e00148 R - 0x00000400 PACKET_PER_FRAME_INQ
BYTE_PER_PACKET
0xf0e0014c R - 0x00000000 UNIT_POSITION_INQ UNIT_POSITION defaults to UNIT_SIZE
0xf0e0017c R W 0x00000000 VALUE_SETTINGS ignored
Transmission mode control and status registers for Mode_2 see section Description of Profile Data Format.
0xf0e00200 R - 0x00400100 MAX_IMAGE_SIZE_INQ 64 × 1280
0xf0e00204 R - 0x00040001 UNIT_SIZE_INQ 4 × 4,
0xf0e00208 R W 0x00000000 IMAGE_POSITION upper left edge of transmitted area,
0xf0e0020C R W 0x00400100 IMAGE_SIZE size of transmitted area,
0xf0e00210 R W 0x00000000 COLOR_CODING_ID ignored
0xf0e00214 R - 0x80000000 COLOR_CODING_INQ only Mono8
0xf0e00218
... R - 0x00000000 filled to support block transfers
0xf0e00230
0xf0e00234 R - 0x00004000 PIXEL_NUMBER_INQ updated according to the transmitted area
0xf0e00238 R - 0x00000000 TOTAL_BYTES_HI_INQ updated according to the transmitted area
0xf0e0023c R - 0x00004000 TOTAL_BYTES_LO_INQ updated according to the transmitted area
0xf0e00140 R - 0x00041000 PACKET_PARA_INQ minimal ¦ maximal packet size is 4 ¦ 4096 byte
actual 1024 byte/packet, recommended 2048
0xf0e00144 R W 0x04001000 BYTE_PER_PACKET
byte/packet
recalculated automatically after setting of
0xf0e00148 R - 0x00000010 PACKET_PER_FRAME_INQ
BYTE_PER_PACKET
0xf0e0014c R - 0x00000000 UNIT_POSITION_INQ UNIT_POSITION defaults to UNIT_SIZE
0xf0e0017c R W 0x00000000 VALUE_SETTINGS ignored
Mode_3, Mode_4 and Mode_5 have a description similar to Mode_2 but measure profiles with 640, 320 and 160 points,
respectively. The transmission mode control and status registers start at addresses 0xf0e00300, 0xf0e00400, 0xf0e00500,
respectively.
The remaining Mode_7 is used as a general container mode. See Container Mode for Transmission.
The following addresses provide easy access to the parameter queue for post processing.
0xf0b00000
... R W 0x00000000 PARAM_QUEUE parameter queue for post processing, 1024 quadlets.
0xf0b0018c

Back to Contents.

Description of Feature Registers


Each feature provides an inquiry register and a status and control register. The inquiry registers indicate the presences,
functionality and minimum/maximum values. The status and control registers contain the actual value in the lower 12 bits and
some additional mode bits.

Idle Time

Feature name Inquiry address Status and control address Default setting
Idle Time 0xfffff0f00500 0xfffff0f00800 0x820003de

file:///C:/Users/RALEXPRO/AppData/Local/Temp/Rar$EXa6388.35733/C%23%20SDK/documentation/OpManPartB_2900.html 8/19
3/21/2018 scanCONTROL 2900 Interface Specification
Idle time in steps of 10 µs, the profile frequency yields from:
profile rate = 1 / ( shutter time + idle time )

The image sensor supports interleaved read out. If the shutter time is long enough for read out the idle time can be decreased
down to 10µs. The highest profile rate depends on the actual video mode (e.g. how many points per profile) and on the
measurement field (e.g. how many imager columns are needed to cover that field). See Section Measuring Field for further
details.

Back to Contents.

Processing of Profile Data

Feature name Inquiry address Status and control address Default setting
Processing_ProfilData 0xfffff0f00504 0xfffff0f00804 0x82000a0f

How to process profile data.

Bit Function
modes 2..7 (profile modes): resolution of distance coordinate: must be 1 for high resolution, low resolution mod not
supported
0
modes 0..1 (camera modes: 1 transmit upper 8 bits (bits 9..2), 0 transmit lower 8 bits (bits 7..0) of the internal 10bit
analogue to digital converter
calibration (convert imager row/column numbers to millimetres): 1 On / 0 Off (faster, only useful for special
1
applications)
processing of multiple reflections:

0. process all reflections


1. process only the first reflection
2..4 2. process only the last reflection and copy it to the first position
3. process only the reflection with the highest integral intensity and copy it to the first position
4. process only the reflection with the highest maximum intensity and copy it to the first position
5. process reflections only if there is only one valid reflection

5 enable post processing of profiles (scanCONTROL 2910/2960 only)


6 flip distance coordinate
7 flip position coordinate
delay shutter automatic until all processing has been finished:
8 if unset the new shutter time is calculated after processing of multiple reflections,
if set the new shutter time is calculated after all processing of profile data including post processing
alignment of consecutive shutter intervals (only useful in combination with automatic shutter):

0. align centre of subsequent shutter intervals


9..10 1. align right edge (end) of subsequent shutter intervals
2. align left edge (beginning) of subsequent shutter intervals
3. no alignment, fastest response

11 automatic shutter algorithm, 1=advanced (default, recommended), 0=compatibility

Order of Data Processing

1. detection of up to 4 reflections per position, calculation of coarse positions and reflection characteristics
2. reflection selection (according to processing of multiple reflections)
3. early shutter automatic (if selected)
4. sub pixel algorithm
5. calibration (if selected)
6. digital flipping of coordinates (if selected)
7. profile filter (if selected)
8. post processing (if selected)
9. late shutter automatic (if selected)
10. parameter loop back (if selected)
11. rearrangement of data (if selected)

file:///C:/Users/RALEXPRO/AppData/Local/Temp/Rar$EXa6388.35733/C%23%20SDK/documentation/OpManPartB_2900.html 9/19
3/21/2018 scanCONTROL 2900 Interface Specification
Back to Contents.

Extra Parameter

Feature name Inquiry address Status and control address Default setting
Extra parameter 0xfffff0f00508 0xfffff0f00808 0x82000000

The access on the Extra parameter is done with the Extra parameter Register, in the same way as specified for the Parameter
queue-Register

Byte
Value Function
address
maximum width of reflection
0
in pixels (default 1023)
minimum width of reflection
2
in pixels (default 2)
maximum intensity of this filter restricts the properties of the located peaks
4 reflection above the threshold
(default 1023)
minimum intensity of
6 reflection above the threshold
(default 0)
8 free measuring field start_z fractional values, 65536 means complete imager. Example:
size_x = size_z = 6553
10 free measuring field size_z
start_x = start_z = 29591
12 free measuring field start_x means a measuring field of size 10% × 10% starting at 45% for both directions.
See section Measuring Field for further details. These settings are enabled by the bit
14 free measuring field size_x 11 in the Measuring Field Feature .

dynamic measurement field parameters for the dynamic measurement field tracking using the encoder. If enabled,
16 the chosen measurement field will move according to the encoder signal and the
tracking divisor x
following formula:
dynamic measurement field start_dyn_x = start_x + encoder / divisor_x * multiplier_x * 256 / 1280
18
tracking divisor z start_dyn_z = start_z + encoder / divisor_z * multiplier_z * 256 / 1024

dynamic measurement field The formula assumes values for start_x and start_z as described above (free
20 measurement field). The terms encoder/divisor means integer division, only the
tracking multiplier x
integer part is used.
Dynamic tracking is enabled by non-zero parameters. All parameters are unsigned
dynamic measurement field values. The direction of tracking can be reversed by swapping encoder tracks A and
22
tracking multiplier z
B.
24..31 reserved
custom calibration parameter
32..63 special post processing queue, is saved only once for all user modes
queue

Back to Contents.

Threshold

Feature name Inquiry address Status and control address Default setting
Threshold 0xfffff0f00510 0xfffff0f00810 0x82000c80

Minimum intensity for recognition of reflections and video filter. The automatic bit (Bit 24) controls the dynamic threshold. If set
the threshold is automatically controlled depending on the measured object.

Bits 11 10 9..0
video mode 0 not used
video mode 1 not used
file:///C:/Users/RALEXPRO/AppData/Local/Temp/Rar$EXa6388.35733/C%23%20SDK/documentation/OpManPartB_2900.html 10/19
3/21/2018 scanCONTROL 2900 Interface Specification

video mode 2..7 video filter ambient light suppression minimum intensity

Back to Contents.

Shutter Time

Feature name Inquiry address Status and control address Default setting
Shutter 0xfffff0f0051c 0xfffff0f0081c 0x8300000a

Shutter time in steps of 10 µs, the profile frequency yields from:


profile rate = 1 / ( shutter time + idle time )

The image sensor supports interleaved read out. If the shutter time is long enough for read out the idle time can be decreased
down to 10µs. The highest profile rate depends on the actual video mode (e.g. how many points per profile) and on the
measurement field (e.g. how many imager columns are needed to cover that field). See Section Measuring Field for further
details.

The automatic bit (Bit 24) controls the automatic shutter. If set the shutter time is automatically controlled depending on the
measured object. The value in the lower 12 bits is used as a target value in case there is no object inside the measuring range. The
automatic shutter also changes the internal idle time to keep the profile rate constant. Therefore, the equation above remains
valid.

Back to Contents.

Laser Power

Feature name Inquiry address Status and control address Default setting
Laser Power 0xfffff0f00524 0xfffff0f00824 0x82000002

Laser power.

Bit Function
Bits 1..0 Laser Power
0 OFF
1..0
1 reduced power
2 full power

enable laser pulse mode: the laser is switched on only in the first half of the measurement interval. Additionally
the Trigger-Out is delayed by half of the measurement interval (or 180 degrees). A synchronised slave sensor would
11
measure during the master's idle time.
It is recommended to set up shutter time < idle time.

The basic version of scanCONTROL is classified as Class 2M laser product with 8mW (standard) and 2mW (reduced) laser
power.

Back to Contents.

Temperature

Feature name Inquiry address Status and control address Default setting
temperature 0xfffff0f0052c 0xfffff0f0082c 0x82000000

To get the temperature first write 0x86000000 to the control address, the read back the value.

Bit Function
11..0 temperature, unit 0.1K

Back to Contents.

file:///C:/Users/RALEXPRO/AppData/Local/Temp/Rar$EXa6388.35733/C%23%20SDK/documentation/OpManPartB_2900.html 11/19
3/21/2018 scanCONTROL 2900 Interface Specification

External Trigger Input

Feature name Inquiry address Status and control address Default setting
Trigger 0xfffff0f00530 0xfffff0f00830 0x81200000

Configure the external trigger input. See Section Pinout of the Multi-Function Socket.

Bit Function
11..0 encoder divisor
trigger mode, supported modes are
recommended
Mode description Multi-Function
Port setting
edge mode, scanCONTROL starts integrating incoming light from external trigger input external trigger
0
leading edge. Shutter time is given by the shutter register or automatically calculated. input
pulse mode, scanCONTROL starts integrating incoming light from external trigger input external trigger
19..16 1
leading edge. Shutter time is equal to the active state time of the external trigger input. input
gated mode, scanCONTROL starts integrating incoming light from gate input leading edge.
external trigger
2 Shutter time is given by the shutter register or automatically calculated. As long as the gate
input
is open, the scanCONTROL is working.
encoder Mode, scanCONTROLstarts integrating incoming light at every encoder position
3 that is a multiple of encoder divisor. Shutter time is given by the shutter register or encoder
automatically calculated.

trigger source
Bits 23..21 selected trigger source
23..21
0 RS422
1 Input In1 (Mode 0, 1 and 2) or encoder (Mode 3)

trigger polarity/ unidirectional encoder behaviour


Bits 24 Meaning
24
0 trigger low active or encoder count down
1 trigger high active or encoder count up
25 enable external trigger if set to 1

Back to Contents.

Measuring Field

Feature name Inquiry address Status and control address Default setting
Zoom 0xfffff0f00580 0xfffff0f00880 0x82000000

It can only used the predefined field or the free field

Bit Function
10..0 predefined imager region, see Section Measuring Field
11 enabled the free measurement field see Extraparameter , 1 = On, 0 = Off

Back to Contents.

Parameter Queue

Feature name Inquiry address Status and control address Default setting
Parameter Queue 0xfffff0f00584 0xfffff0f00884 0x82000000

Accesses the parameter queue for post processing.


file:///C:/Users/RALEXPRO/AppData/Local/Temp/Rar$EXa6388.35733/C%23%20SDK/documentation/OpManPartB_2900.html 12/19
3/21/2018 scanCONTROL 2900 Interface Specification
Back to Contents.

cmmTrigger

Feature name Inquiry address Status and control address Default setting
CMM-Trigger 0xfffff0f00588 0xfffff0f00888 0x82000000

Configure the optional trigger output for tracking systems.

Bits Bit
Bit 9 Bits 7..0
11..10 8
not
0 polarity divisor (unsigned integer), 0 disables trigger output
used
not
1 approximate mark space ratio (signed integer), -1, 0 or 1 mean 1:1, -2 means 1:2, 2 means 2:1 and so on
used
2 skew correction (signed integer), in 0.5µs units, must be smaller than half of the shutter/idle time
output port number, 0 = RS422 , see also Section Pin out of the Multi-Function Port. The set and clear
3 set clear bits can be used to activate or deactivate the output. If both bits are zero, the idle level of the output will
be set according to the polarity bit.

The cmmTrigger should not be reconfigured when enabled. The cmmTrigger settings are not part of the user modes. Only the
latest value of the register is saved and recalled.

Back to Contents.

Maintenance Functions

Feature name Inquiry address Status and control address Default setting
Maintenance Functions 0xfffff0f0058c 0xfffff0f0088c 0x82000000

Maintenance functions, should be disabled (=0) in normal operation.

Bit Function
0 reserved
1 parameter loop back, 1 = On, 0 = Off
2 reserved
Encoder, 1 = On, 0 = Off,
3
makes the encoder become active and resets its value
4 reserved
suppress automatic cleanup of register, memory, temporal filter content inside the formula module (scanCONTROL
5
2910/2960 only)
the user mode loading by the digital inputs can be suppressed for maintenance

0. load user modes according to the inputs


7..6 1. suppress until next reboot
2. suppress until next close of the GVCP-Channel
3. suppress until next reboot or close of GVCP-Channel

Back to Contents.

Multi-Function Port Configuration

Feature name Inquiry address Status and control address Default setting
IO-Configuration 0xfffff0f005c0 0xfffff0f008c0 0x82000020

Change the behaviour of the Multi-Function port. This feature adjusts the port only. Additional setting may be necessary to use
file:///C:/Users/RALEXPRO/AppData/Local/Temp/Rar$EXa6388.35733/C%23%20SDK/documentation/OpManPartB_2900.html 13/19
3/21/2018 scanCONTROL 2900 Interface Specification
the chosen function (for example External Trigger Input).
The interface powers up as serial interface (115200baud half-duplex) on the RS422 port and to external trigger+encoder (Low
Level Logic) on the digital Inputs.

Bit Function

Voltage level of digital inputs


Bit Meaning
11
0 Low Level Logic (TTL, 5V)
1 High Level Logic (HTL, 24V)

RS422 Line Termination resistor


Bit Meaning
10
0 default RS422 termination
1 no RS422 termination

encoder behaviour (also External Trigger Input)


Bit Meaning
9
0 bidirectional encoder
1 unidirectional encoder

Digital Inputs Functions


Bits 7..4 Meaning In1 In2 In3
0 encoder, positive edge of index track (*) N A B
1 encoder with external trigger input (*) trigger A B
2 external trigger input trigger
7..4 3 ext. trigger + two bits for user mode loading trigger bit 0 bit 1
4 three bits for user mode loading bit 0 bit 1 bit 2
5 insert into timestamp bit 0 bit 1 bit 2
6 frametrigger and encoder (+) start container A B
7 frametrigger and encoderline A (+) start container A
(*) the input counts every edge, usually an encoder outputs 4 edges per encoder count
(+) only for OEM sensors available

RS422 Functions
Bits 3..0 Meaning Direction Default RS422 termination
0 half-duplex serial communication 115200baud
1 half-duplex serial communication 57600baud
2 half-duplex serial communication 38400baud Input/Output termination active (120Ω)
3..0
3 half-duplex serial communication 19200baud
4 half-duplex serial communication 9600baud
5 external trigger input Input termination active (120Ω)
6 external trigger output Output termination not active
7 CMM trigger Output termination not active
Back to Contents

Profile Filter

Feature name Inquiry address Status and control address Default setting
Profile Filter 0xfffff0f00518 0xfffff0f00818 0x82000000

Activates filtering of profile data. The filters are applied in the following order (if enabled): resample, median, average.

Bit Function
file:///C:/Users/RALEXPRO/AppData/Local/Temp/Rar$EXa6388.35733/C%23%20SDK/documentation/OpManPartB_2900.html 14/19
3/21/2018 scanCONTROL 2900 Interface Specification

11 Extrapolate/interpolate invalid points. Creates new valid points in the profile from adjacent valid points during the first
filter operation. Should be used only in conjunction with resampling.
Resample all information: if enabled, all reflection data (threshold, reflection width, etc.) is resampled during the
10
resampling operation. Otherwise only the z coordinate is resampled.
9..7 Reserved
Resampling of the profile to equally spaced x coordinates. The range is always centred around x=0. Note that the resample
range should be selected according to the used measuring field to avoid over sampling or under sampling. Depending on
the measurement range of the scanCONTROL device the ranges have the following sizes:
Bits 6..4 25mm 50mm 100mm
0 disabled disabled disabled
1 +/- 0.8mm +/- 1.6mm +/- 4.0mm
6..4 2 +/- 1.0mm +/- 2.0mm +/- 5.0mm
3 +/- 2.0mm +/- 4.0mm +/- 10mm
4 +/- 4.0mm +/- 8.0mm +/- 20mm
5 +/- 8.0mm +/- 16mm +/- 40mm
6 +/- 10mm +/- 20mm +/- 50mm
7 +/- 20mm +/- 40mm +/- 100mm
Median filter. Should be used only in conjunction with resampling of the profile to equally spaced x coordinates. The
width of the filter can be chosen from:
Bits 3..2 Width

3..2 0 disabled
1 3
2 5
3 7
Average filter. Should be used only in conjunction with resampling of the profile to equally spaced x coordinates. The
width of the filter can be chosen from:
Bits 1..0 Width

1..0 0 disabled
1 3
2 5
3 7

Back to Contents.

Rearrangement of Profile Data

Feature name Inquiry address Status and control address Default setting
Rearrangement Profile Data 0xfffff0f0050c 0xfffff0f0080c 0x82000000

Changes the data layout and size of profiles for transmission. Should be used only in conjunction with the Container Mode for
Transmission.

Bit Function
23 extract fields from stripe 4 (fourth reflection)
22 extract fields from stripe 3 (third reflection)
21 extract fields from stripe 2 (second reflection)
20 extract fields from stripe 1 (first reflection)
19 join consecutive profiles (allow for big packets), not supported for resolution 1280 points
18 data format of fields: 1 = signed, 0 = unsigned
17 byte order: 0 = MSB first (default), 1 = LSB first (for GigE-Vision compliant applications only)
16 reserved, should be 0
15..12 points per profile: 7 = 160 points, 8 = 320 points, ... , 10 = 1280 points, other values not supported
file:///C:/Users/RALEXPRO/AppData/Local/Temp/Rar$EXa6388.35733/C%23%20SDK/documentation/OpManPartB_2900.html 15/19
3/21/2018 scanCONTROL 2900 Interface Specification

11 include time stamp


10 insert empty field, can be used to prevent the time stamp from overwriting valuable information
9 parameterloopback data (internal use only)
8 extract momentum 1 (upper 16bits)
7 extract momentum 1 (lower 16bits)
6 extract momentum 0 (upper 16bits)
5 extract momentum 0 (lower 16bits)
4 extract reflection width
3 extract maximum intensity
2 extract threshold
1 extract x
0 extract z

Back to Contents.

Load and Save of User Modes

Inquiry Status and control Default


Feature name Description
address address setting
Basic_Func_Inq 0xfffff0f00400 0x0000180f maximum memory channel number is 15
setting bit 31 to 1 will save the current settings to the
Memory_Save 0xfffff0f00618
current channel
Mem_Save_Ch 0xfffff0f00620 current channel for Memory_Save
returns the current channel when read from,
Cur_Mem_Ch 0xfffff0f00624 loads settings from the specified channel when written
to

All feature and status registers are saved as user modes. Only the isochronous transmission state is not saved. Therefore, if the
user mode is loaded with disabled transmission, the transmission will remain disabled and vice versa. The user modes can be
loaded while transmission is enabled. Be careful not to change important transmission parameters like packet size or image size.
This may lock or crash the PC.

Back to Contents.

Description of Profile Data Format


A profile consists of 160, 320, 640, or 1280 points. Each point consists of 4 reflections, each reflection is described by 4 × 32
bits:

1. <2bit = 00><width_in_pixels_10><maximum_intensity_10><actual_threshold_10>
2. <imager_row_16><imager_column_16>
3. <0. momentum_32> (= integral intensity)
4. <1. momentum_32>

All fields are unsigned integers represented in big-endian byte order (most scale byte first)!

In high resolution mode (Processing of Profile Data, Bit0=1) the <imager_column_16> is overwritten by
<centre_of_gravity_16>
Calibration (Processing of Profile Data, Bit1=1) converts <imager_row_16> and <centre_of_gravity_16> fields into millimetres,
after that conversion the following equations hold true:

scanCONTROL 2900-10:
distance_in_mm = ( calibrated_centre_of_gravity_16 - 32768 ) * 0.0005 mm + 55 mm
position_in_mm = ( calibrated_imager_row_16 - 32768 ) * 0.0005 mm

scanCONTROL 2900-25:
distance_in_mm = ( calibrated_centre_of_gravity_16 - 32768 ) * 0.001 mm + 65 mm
position_in_mm = ( calibrated_imager_row_16 - 32768 ) * 0.001 mm

dentalCONTROL 2953-30:
distance_in_mm = ( calibrated_centre_of_gravity_16 - 32768 ) * 0.002 mm + 110 mm
file:///C:/Users/RALEXPRO/AppData/Local/Temp/Rar$EXa6388.35733/C%23%20SDK/documentation/OpManPartB_2900.html 16/19
3/21/2018 scanCONTROL 2900 Interface Specification
position_in_mm = ( calibrated_imager_row_16 - 32768 ) * 0.002 mm

scanCONTROL 2900-50:
distance_in_mm = ( calibrated_centre_of_gravity_16 - 32768 ) * 0.002 mm + 95 mm
position_in_mm = ( calibrated_imager_row_16 - 32768 ) * 0.002 mm

scanCONTROL 2900-100:
distance_in_mm = ( calibrated_centre_of_gravity_16 - 32768 ) * 0.005 mm + 250 mm
position_in_mm = ( calibrated__imager_row_16 - 32768 ) * 0.005 mm

Flipping of coordinates (Processing of Profile Data, Bit6=1, Bit7=1) toggles all bits of the 16bit values:
flipped_and_calibrated_centre_of_gravity_16 = 65535 - calibrated_centre_of_gravity_16
flipped_and_calibrated_imager_row_16 = 65535 - calibrated_imager_row_16

If the imager does not see any reflection in a particular row then the corresponding <imager_column_16> or
<centre_of_gravity_16> or <calibrated_centre_of_gravity_16> field will be zero resulting in a distance_in_mm of 29.464mm
(example for scanCONTROL 2900-50) . The position_in_mm will be invalid in this case. The error value of zero remains
unchanged also if flipping is activated.

The last 4 words (32bits) of each profile contain the time stamp. If the whole frame is transmitted, the time stamp will overwrite
the fourth reflection of the last row which does not contain any valuable information in most cases. If partial transmission is used,
valuable information can be overwritten. The time stamp has the following format:

flags reserved profile_counter


time_stamp_shutter_has_opened
edge_count_times_2 or state of In1, In2, In3 r r reserved
time_stamp_shutter_has_closed

The fields are described below:

Bits Field Description


31-
flags reserved for debugging purpose
30
29-
reserved reserved
25
23-
profile_counter profile number
0
absolute time when the shutter has opened (clock has a period of 128 seconds)
31-25 24-12 11-0
cycle_offset (rollover at
31- seconds_count cycle_count (rollover at 8000)
time_stamp_shutter_has_opened 3072)
0 The actual time stamp follows from the bit fields by:
time_stamp = seconds_count + cycle_count / 8000 + cycle_offset / ( 8000 × 3072 )

twice the number of counted edges if encoder input is enabled, usually an encoder
31- outputs 4 edges per encoder count
edge_count_times_2
16 OR
state of the digital Inputs

15-
r reserved
15
14-
r reserved
14
13-
reserved reserved
0
31-
time_stamp_shutter_has_closed absolute time when the shutter has closed, see above for description
0

Back to Contents.

file:///C:/Users/RALEXPRO/AppData/Local/Temp/Rar$EXa6388.35733/C%23%20SDK/documentation/OpManPartB_2900.html 17/19
3/21/2018 scanCONTROL 2900 Interface Specification

Container Mode for Transmission


The container mode provides a flexible way to transmit profile data. It releases the fixed connection between profile resolution
(points per profile) and the video mode used for transmission. It provides also a data layout which is easier to handle for the
application software running on the PC.

The Mode_7 serves as a data container. The IMAGE_SIZE register determines its size which can be up to 128MByte. One
container is equivalent to one frame in case of a video camera. Data of consecutive profiles are collected until they fill one
container of the specified size. The application software receives only complete containers. The rate at which filled containers are
available depends on the measurement frequency and on the number of profiles per container. If the scanCONTROL device runs
at 100 profiles/second and one container contains 128 profiles, then the application software will get approximately one container
per second. This reduces the required response time by a factor of 100.

A flexible rearrangement of the profile data before transmission simplifies the following processing and reduces the amount of
data being transmitted. With a carefully chosen data layout and container size the scanCONTROL device connects seamlessly to
an image processing software that can operate on height data as a greyscale map.

The rearrangement of profile data register determines the number of points per profile and which information, in other words
which fields of which stripes are actually transmitted. Fields are information like z-coordinate, x-coordinate, maximum intensity,
reflection width, threshold or moments of reflections, or the time stamp of the profile. Each field consists of an 16bit integer
value (2 bytes) per point of the profile, except the time stamp, which is always 16 bytes and resides in the last 16 bytes of the data
set. An empty field may be added to prevent the time stamp from overwriting valuable information. Field are extracted first for
one stripe in the previously mentioned order, then for the other stripes.

Example: Selecting z coordinates and maximum intensity data of stripe 1 and 3 with 320 points per profile.
Set the rearrangement of profile data register to 0x82508009 which means in detail: 0x--5----- sets the bits for the first and the
third stripe, 0x----8---- selects 320 points per profile, 0x-----009 selects the fields z coordinate and maximum. The resulting
data will have 2 fields × 2 stripes × 320 points × 2 bytes = 2560 bytes. An appropriate container could have a size of 1.6Mbyte
with the format 1280 × 1280 pixels and 2 bytes per pixel (colour coding Mono16), packet size 1280 bytes. The application
software would acquire a 16 bit grey scale image of 1280 × 1280 pixels which divides into 4 columns, each 320 pixels wide. The
first column contains z coordinates from the first stripe and the second one contains the maximum values. The third and fourth
columns contain those values from the third stripe. On row of the image contains the information of one profile.

Several restrictions apply for the selection of container sizes and data layout:

containers must contain complete profiles, a profile cannot reside partially in one container and partially in the following
container
one container must be divisible into packets without reminder (no padding allowed)
one container must be divisible into blocks without reminder, block size is 64bytes × points per profile
if the joined transmission is not used (rearrangement of profile data register Bit 19), then the transmitted data of one profile
must be divisible into packets without reminder
joined transmission is not supported for profile resolution of 1280 points

Back to Contents

Firmware Versions
New firmware versions enhance the features of scanCONTROL devices. Special software allows customers to update the
firmware.

Back to Contents.

General

The currently running firmware version shows up in the model name string. The standalone demo programme shows it by
default. The model name string looks like:
scanCONTROL 2900-100 v31-07
-- --
| |
| +------- logic firmware
|
+--------- controller firmware

The current production version is v33-09

Back to Contents.

Details
file:///C:/Users/RALEXPRO/AppData/Local/Temp/Rar$EXa6388.35733/C%23%20SDK/documentation/OpManPartB_2900.html 18/19
3/21/2018 scanCONTROL 2900 Interface Specification
Enhancement of features also means enhancement of interface. The above table of control and status registers reflects always the
current interface specification. Older firmware versions may implement a slightly different interface or only parts of it.

See also scanCONTROL Release Notes for a complete firmware history.

file:///C:/Users/RALEXPRO/AppData/Local/Temp/Rar$EXa6388.35733/C%23%20SDK/documentation/OpManPartB_2900.html 19/19

You might also like