0% found this document useful (0 votes)
63 views60 pages

O3D300 Sensor Operating instructions-EN

Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
63 views60 pages

O3D300 Sensor Operating instructions-EN

Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 60

Operating instructions

3D sensor
UK
O3D300
O3D302
O3D310
O3D312
05/2016
706398 / 03
3D sensor

Contents
1. Preliminary note . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
1.1 Symbols used . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
1.2 Warnings used . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
2. Safety instructions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
2.1 General . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
2.2 Target group . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
2.3 Electrical connection . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
2.4 Tampering with the device . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
3. Functions and features . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
4. Items supplied . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
5. Accessories . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .5
6. Installation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
6.1 Select installation location . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
6.2 Additional sensor installation guidance . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
6.2.1 Typical warning limits for O3D300 / O3D302 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
6.2.2 Typical warning limits for O3D310 / O3D312 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
6.2.3 Reduce surface temperature . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
6.3 Install sensor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
6.4 Mounting accessories . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
7. Electrical connection . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
7.1 Wiring . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
7.1.1 Pin 1 / 3 (24 V / GND) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
7.1.2 Pin 2 (trigger input) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
7.1.3 Pin 4 / 5 / 6 (switching outputs) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
7.1.4 Pin 4 (analogue output) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
7.1.5 Pin 7 / 8 (switching inputs) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
7.2 Wiring examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
7.2.1 Trigger image capture with proximity sensor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
7.2.2 Install several sensors next to each other . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
7.3 Static selection of the application . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
7.4 Pulse-controlled selection of the application . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
8. Indicators . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
9. Set-up . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
9.1 Set parameters of the sensor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
9.2 Detect object . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
9.3 Transmit process values . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
9.3.1 Transmit process values of the completeness monitoring via EtherNet/IP . . . . . . . . . . . . . 19
9.3.2 Transmit process values of the completeness monitoring via TCP/IP . . . . . . . . . . . . . . . . 21
9.3.3 Transmit process values of the dimensioning of the object via EtherNet/IP . . . . . . . . . . . . 22
9.3.4 Transmit process values of the dimensioning of the object via TCP/IP . . . . . . . . . . . . . . . . 24
9.3.5 Transmit process values of the level monitoring via EtherNet/IP . . . . . . . . . . . . . . . . . . . . .25
9.3.6 Transmit process values of the level monitoring via TCP/IP . . . . . . . . . . . . . . . . . . . . . . . . 26
10. Maintenance, repair and disposal . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
10.1 Cleaning . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
10.2 Update firmware . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
10.3 Replace sensor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
11. Approvals/standards . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
12. Scale drawings . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28
12.1 O3D302 / O3D312 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28
12.2 O3D300 / O3D310 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28
13. Appendix . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29
13.1 Process Interface . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29
13.1.1 Sending Commands . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29
13.1.2 Receiving Images . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31

2
3D sensor

13.1.3 Image data . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31


13.1.4 Additional Information for CONFIDENCE_IMAGE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34
13.1.5 Configuration of PCIC Output . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35
13.2 Process Interface Command Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41
13.2.1 t Command (Asynchronous Trigger) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41
13.2.2 T? Command (Synchronous Trigger) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41
13.2.3 I? Command . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42
13.2.4 p Command . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42
13.2.5 a Command . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43
13.2.6 A? Command . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43
13.2.7 v Command . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44
13.2.8 V? Command . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44 UK
13.2.9 c Command . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44
13.2.10 C? Command . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .45
13.2.11 S? Command . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45
13.2.12 G? Command . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46
13.2.13 H? Command . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .47
13.2.14 o Command . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47
13.2.15 O? Command . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48
13.3 Error codes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49
13.4 EtherNet/IP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50
13.4.1 Data structures for consuming and producing assemblies . . . . . . . . . . . . . . . . . . . . . . . . 50
13.4.2 Functionality of the Ethernet/IP application . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51
13.5 PROFINET IO . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55
13.5.1 Data structures for output and input frame . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55
13.5.2 Functionality of PROFINET IO application . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56

Licences and trademarks


Microsoft®, Windows®, Windows XP®, Windows Vista®, Windows 7®, Windows 8® and Windows 8.1®
are registered trademarks of Microsoft Corporation.
Adobe® and Acrobat® are registered trademarks of Adobe Systems Inc.
All trademarks and company names are subject to the copyright of the respective companies.
This device contains (maybe modified) open source software which is subject to special licensing terms.
For copyright information and licensing terms please refer to:
www.ifm.com/int/GNU
For software subject to the GNU General Public License or the GNU Lesser General Public License the
source code can be requested against payment of the copying and shipping costs.

3
3D sensor

1. Preliminary note
This document is intended for specialists. These specialists are people who are qualified by their
appropriate training and their experience to see risks and to avoid possible hazards that may be caused
during operation or maintenance of the device. The document contains information about the correct
handling of the device.
Read this document before use to familiarise yourself with operating conditions, installation and operation.
Keep this document during the entire duration of use of the device.

1.1 Symbols used


► Instructions
> Reaction, result
[…] Designation of keys, buttons or indications
→ Cross-reference
Important note
Non-compliance may result in malfunction or interference.
Information
Supplementary note

1.2 Warnings used

NOTICE
Warning of damage to property.

2. Safety instructions
2.1 General
These instructions are an integral part of the device. They contain texts and figures concerning the correct
handling of the device and must be read before installation or use.
Observe the operating instructions. Non-observance of the instructions, operation which is not in
accordance with use as prescribed below, wrong installation or incorrect handling can seriously affect the
safety of operators and machinery.

2.2 Target group


These instructions are intended for authorised persons according to the EMC and low-voltage directives.
The device must be installed, connected and put into operation by a qualified electrician.

2.3 Electrical connection


Disconnect the device externally before handling it.
The connection pins may only be supplied with the signals indicated in the technical data and on the
device label and only the approved accessories of ifm may be connected.

2.4 Tampering with the device


In case of malfunctions or uncertainties please contact the manufacturer. Any tampering with the
device can seriously affect the safety of operators and machinery. This is not permitted and leads to the
exclusion of any liability and warranty claims.

4
3D sensor

3. Functions and features


The O3D3xx 3D sensor is a photoelectric sensor measuring the distance between the sensor and the
nearest surface point by point using the time-of-flight principle. The sensor illuminates the scene with an
infrared light source and calculates the distance by means of the light reflected from the surface.
From the image data, process values are generated via internal image processing and compared to
threshold values. The comparative and process values are linked to the digital outputs. This allows to
solve the following applications:
●● Completeness monitoring
●● Level monitoring
UK
●● Distance monitoring
●● Dimensioning of rectangular objects
●● Sorting of rectangular objects
The measured data and process values can be provided via Ethernet and evaluated by the user.
Parameter setting of the sensor is also done via Ethernet.
The sensor may only be used under the operating conditions specified in the data sheet.
The sensor safety is rated for use under the following operating conditions:
●● Indoor use
●● Altitudes up to 2000 m
●● Relative air humidity up to max. 90 %, non condensing
●● Pollution degree 3

4. Items supplied
The following items are supplied:
●● O3D3xx 3D sensor
●● USB memory stick with software and documentation
●● Brief instructions, ident no. 80236220
The data sheet and other documentation (software manual, etc.) are available on our website:
www.ifm.com → Data sheet search → e.g. O3D302 → Operating instructions

5. Accessories
The following accessories are needed for the operation of the sensor:
Article number Description
E11950 Power supply cable for camera/sensor
E11898 M12 industrial Ethernet connection cable

The ifm Vision Assistant software is available free of charge on our website:
www.ifm.com → Service → Download → Industrial imaging

5
3D sensor

6. Installation
The chapter describes what has to be observed before installation and how to install the sensor.


① Sensor
② Angle of aperture
③ Object
④ Field of view
⑤ Distance between sensor and object


6.1 Select installation location
Observe the following instructions for the selection of the installation location:
►► The object ③ must be completely in the field of view ④ .
>> The size of the field of view depends on the sensor type and is indicated in the data sheet. The size of
the field of view also depends on the distance of the sensor to the object ⑤: With increasing distance
the field of view becomes larger.

►► Take tolerances into account when positioning the object.


►► When determining the distance between sensor and object ⑤ take the measuring range of the sensor into
account.
>> The measuring range is indicated in the data sheet of the sensor.

►► Select a distance as small as possible between sensor and object ⑤ .


>> If the distance is as small as possible, the object is detected with the maximum resolution.

►► Avoid any strong ambient light and sunlight at the installation location.
>> An extraneous light level of over 8 klx (with solar spectrum) causes measurement errors. In fact, only
the infrared component between 800 and 900 nm is of concern.

►► Avoid installation in heavily polluted environments.


>> In heavily polluted environments the sensor lens will get dirty despite downwards orientation ①.

►► Avoid transparent panes between the sensor ① and the object ③


>> Transparent panes reflect part of the light even if a very clean glass pane is used.

If the instructions are not observed, measurement errors may occur.

6
3D sensor

6.2 Additional sensor installation guidance


The surface temperature of the sensor depends on the operating mode, the parameter selection and the
thermal exposure of the sensor to the environment.
Make sure that the sensor complies with the following requirement:
The surface temperature for easily accessible surfaces may be max. 25 °C higher than the ambient
temperature (to IEC 61010-2-201).

The following diagrams contain typical warning limits as a reference for the installer.
The diagrams are valid for the following operating modes:
UK
●● Low [1 exposure]
●● Moderate [2 exposures]
●● High [3 exposures]
In the event of moderate and high exposures the typical warning limits must be determined via the
sum of the exposure times. The exposure times are indicated in the ifm Vision Assistant software.

Follow one of the instructions if the warning limits are exceeded:


►► Reduce the surface temperature (→ 6.2.3).
►► Mount the sensor in a location or housing that provides protection from the heat source but maintains
air circulation around the sensor.
>> An increase in the surface temperature of the sensor should be prevented.

The parameter "Max. background distance" is set in the ifm Vision Assistant. In the diagrams the
warning limits of the parameter are shown with dashed and continuous lines.
If the sensor is in one of the dotted areas, the surface temperature must be reduced (→ 6.2.3). If
the warning limit is exceeded despite a heat-dissipating installation, it is possible to additionally
mount the contact protection.

If you stay below the typical warning limits in case of normal installation, no measures need to be taken.

6.2.1 Typical warning limits for O3D300 / O3D302

Parameter "Max. background distance"


y
25 Installation on heat-conductive metal parts
with heat conductor (→ 6.2.3)

20 Warning limit Parameter

<5m
15
< 30 m
10
> 30 m
5 Normal installation

x Warning limit Parameter


0
0 2 4 6 8 10 <5m

< 30 m

> 30 m

x = exposure time [ms]


y = frame rate [fps]

7
3D sensor

6.2.2 Typical warning limits for O3D310 / O3D312

Parameter "Max. background distance"


y
25 Installation on heat-conductive metal parts
with heat conductor (→ 6.2.3)

20 Warning limit Parameter

<5m
15
< 30 m
10
> 30 m
5 Normal installation

x Warning limit Parameter


0
0 2 4 6 8 10 <5m

< 30 m

> 30 m

x = exposure time [ms]


y = frame rate [fps]

6.2.3 Reduce surface temperature


With the following measures the surface temperature can be reduced:
►► Mount the sensor on heat-conductive metal parts.
>> A large-surface contact of the sensor with metal parts increases heat dissipation (e.g. aluminium).

►► Use a heat conductor when mounting the sensor on metal parts.


>> The heat-conductive effect is increased by means of the heat conductor. The heat conductor is
available as accessories (→ 6.4).

►► Reduce obstructions around the sensor. Reduce the density of objects mounted near to the sensor.
>> Obstructions around the sensor and a high installation density may have a negative impact on
convection (air movement).

►► Mount one or two heat sinks on the sensor.


>> The heat sinks increase the surface of the sensor, reducing the surface temperature. The heat sinks
are available as accessories (→ 6.4).

►► Reduce exposure time, frame rate or max. background distance.


>> The operating mode used and the parameters can increase the surface temperature.

8
3D sensor

6.3 Install sensor


Observe the following instructions when installing the sensor:
►► Mount the sensor using 2x M5 screws or mounting set.
>> The bore dimensions for the M5 screws are indicated in the data sheet.

>> The mounting set is available as accessories (→ 6.4).

►► Use strain reliefs for all cables connected to the sensor.


Observe the following instructions when installing an O3D300 and O3D310:
►► Mount the sensor so that the focal setter can be accessed with a screw driver. UK
>> The position of the focal setter is indicated in the scale drawing (→ 12).

If the device is permanently used in wet areas, the nut of the M12 Industrial Ethernet cable
(e.g. E11898) may corrode. Use a cable with a high-grade stainless steel nut for permanent use in
wet areas.

6.4 Mounting accessories


Depending on the location and type of installation, you can use the following mounting accessories:
Article number Description
E3D301 Smart Camera mounting set
E3D302 Smart Camera cooling element
E3D303 Smart Camera heat conductor
E3D304 2x Smart Camera cooling element

You can find more information about the accessories at:


www.ifm.com → Data sheet search → e.g. O3D303 → Accessories

9
3D sensor

7. Electrical connection
Observe the following instructions before electrical installation.

NOTICE
The sensor must be connected by a qualified electrician. Observe the electrical data in the data sheet.
Sensor of protection class III (PC III)
The electric supply must only be made via PELV circuits.
Electric supply must correspond to UL61010-1, chapter 9.4 - Limited Energy:
The overcurrent protection device must switch off a current of 6.6 A in 120 s. For the correct rating of
the overcurrent protection device take the technical data of the sensor and wiring into account.
The separation of external circuits must comply with UL61010-2-201, fig. 102.
For cable lengths > 30 m use an additional protection against surge voltages to IEC 6100-4-5.
Disconnect power before connecting the sensor.

7.1 Wiring

① Ethernet
M12 socket, D-coded, 4 poles

  1 TD +
2 RD +

3 TD -

4 RD -
   S Shield
 


 ② Power supply
M12 connector, A-coded, 8 poles
1 U+
2 1 8 2 trigger input
3 7 3 GND
4 4 switching output 1 (digital or analog)
6
5 5 switching output 3 ready
6 switching output 2 (digital)
7 switching input 1
8 switching input 2
Cover unused Ethernet connection with the protective cap (E73004).
Tightening torque 0.6...0.8 Nm.

The behaviour of the switching inputs and outputs can be set with the software ifm Vision Assistant.
The setting PNP or NPN always applies to all switching inputs and outputs.
When installing actuators and sensors make sure that the setting is correct
(e.g. photoelectric sensors for triggering).
The switching outputs can also be operated as pulse outputs which reset their switching signal
after an adjustable time.
The analogue output provides current / voltage against GND.

10
3D sensor

7.1.1 Pin 1 / 3 (24 V / GND)


The permissible voltage range is indicated in the data sheet of the sensor.

7.1.2 Pin 2 (trigger input)


The image capture of the sensor can be triggered with a switching signal via the trigger input.
The following trigger edges can be used:
●● Falling edge triggers image capture
●● Rising edge triggers image capture
●● Falling and rising edges trigger image capture UK
Further possibilities to trigger the sensor:
●● Process interface command (→ 13.2)
●● Continuous image capture with fixed frame rate

The trigger input is internally debounced. Depending on the electrical installation, debouncing of
the trigger wire is not necessary.
Internal debouncing prevents several short pulses from triggering. The pulse must be at least 2 ms
long to be recognised as a trigger.

Trigger input

image capture

1 2 3 4 5 6 7 8 9 10 11
Time [ms]

7.1.3 Pin 4 / 5 / 6 (switching outputs)


The switching outputs 1 to 3 provide the different sensor statuses. Besides the sensor status the
switching outputs can also provide the reference values necessary to solve the application.
The electrical specifications of the switching outputs 1 to 3 are indicated in the data sheet.
Switching output 3 provides the sensor status "Ready for trigger" as default setting.

"Switching output switched" means that the respective sensor status has occurred.

Depending on the setting the sensor status can have one of the following values:
●● "Ready for trigger"
The sensor signals that a new image can be captured. Only with this sensor status trigger operations
are processed. For the continuous image capture the status "Ready for trigger" is not output.
●● "Image capture finished"
The sensor signals that the image capture is finished. The sensor status can be used for cascading
sensors.
●● "Evaluation finished"
The sensor signals that image processing is finished. At that moment the switching outputs are already
updated. The image data is transmitted via Ethernet.
●● "Error"
The sensor signals an internal error. Detailed information about errors can be requested via Ethernet.

11
3D sensor

7.1.4 Pin 4 (analogue output)


The switching output 1 / analogue output can be used as switching output or analogue current output
(4-20 mA) / analogue voltage output (0-10 V).
The analogue current output offers more transmission reliability than the analogue voltage output. The
analogue current output is independent of the cable length and ensures better signal quality towards the
industrial controller.
In the industrial controller the analogue current is converted into analogue voltage via a load resistor
against GND. The load resistor is selected according to the indications in the data sheet. High-resistance
load resistors are to be preferred over low-resistance load resistors due to the lower heat development in
the device.

① Notebook (parameter setting)


② Industrial controller (evaluate /
1 2 trigger)
③ Load resistor
4 3

3
2 1 8 ①
7
4 6
5
3 1 4 5 6 7 8

+ DC 24 V -

IN IN IN OUT OUT
Analog

PLC
③ ②
Using the ifm Vision Assistant software it is possible to assign one process value each to the start value
(4 mA / 0 V) and the end value (20 mA / 10 V) of the analogue output.

7.1.5 Pin 7 / 8 (switching inputs)


The switching inputs provide the following functions:
●● select active application

The different parameter settings of the functions are indicated in the programming manual.

The electrical data of the switching inputs 1 and 2 is indicated in the data sheet.

12
3D sensor

7.2 Wiring examples


Wiring examples of the sensor are given below.

7.2.1 Trigger image capture with proximity sensor


The sensor can be triggered externally:
●● via Ethernet
●● via a proximity sensor connected to the trigger input

The following illustration shows the wiring with a proximity sensor. UK


① Notebook (parameter setting)
② Proximity sensor
1 2
③ Industrial controller (evaluate /
trigger)
4 3

2 1 8 ①
3 7
4 6
5
3 1 2 4 5 6 7 8

+ DC 24 V -

IN IN IN OUT OUT

PLC
② ③

13
3D sensor

7.2.2 Install several sensors next to each other


Sensors installed next to each other can cause measurement errors due to simultaneous exposure.

① ② ① 1st sensor
② 2nd sensor
③ Object


The measurement errors can be avoided in two ways:
●● Cascade sensors via HW trigger
During cascading a controller triggers the image capture of sensor ① (see figure below). After
completion of the image capture, sensor ① automatically triggers sensor ②. At the same time, pin
4 of sensor ① provides the sensor status "Image capture finished". Sensor ② signals the end of the
sequence to the industrial controller ③.

① Industrial controller
① ② (evaluate /
trigger)
2 1 8
3 7
4 6
5

3 1 2 4 5 6 7 3 1 2 5

+ DC 24 V -

IN IN IN OUT OUT

PLC

●● Use different frequency channels
With the software ifm Vision Assistant each sensor can be assigned its own frequency channel. The
different frequency channels reduce the occurrence of measurement errors.
The ifm Vision Assistant software is available free of charge on our website:
www.ifm.com → Service → Download → Industrial imaging

14
3D sensor

7.3 Static selection of the application


Up to 32 different inspection tasks can be stored in the sensor. With the corresponding unit configuration
the first four applications can be selected via the two switching inputs.

Input 2 Input 1 Application no.


0 0 1
0 1 2
1 0 3
1 1 4
UK
1
0
R R

1
0

1
0

1 - 2 - 3

Example: Selection application 1 → application 2 → application 3

① switching input 1 = 0 → 1 → 0
② switching input 2 = 0 → 0 → 1
③ output READY
④ trigger input
A: trigger enabled
B: trigger disabled
⑤ ID number of the active application

For the selection of the applications the monitoring time tR and the trigger disable time tP have to be taken
into consideration.
Monitoring time tR: After a change in edges the external selection of the application does not start before
the state of both switching inputs remains stable for 20 ms.
Trigger disable time tP: The trigger input is disabled during the selection of the application. The disable
time depends on:
●● the number of applications on the sensor
●● the number of models in the application to be activated

15
3D sensor

The figure above shows the PNP output logic (factory setting). The behaviour of the NPN output
logic is the opposite of that of the PNP output logic.
●● PNP output logic: In case of a high signal (1), voltage is applied.
●● NPN output logic: In case of a low signal (0), voltage is applied.

For more detailed information about the configuration of the selection of the application we refer you to
the programming manual of the sensor.
www.ifm.com → data sheet search → O3D300 → Operating instructions

7.4 Pulse-controlled selection of the application


As an alternative to the static selection the selection of the application can also be pulse-controlled.

1 2 3 4 5

① gate signal, switching input 1 = 0 → 1 → 0 (tG = signal active)


② pulse signal, switching input 2 or trigger input = 0 → 5 pulses → 0
③ READY output

While there is an active signal on switching input 1 (gate signal), the sensor counts incoming pulses and
activates the respective application.
Number of pulses = ID number of the application
Either the switching input 2 or the trigger input of the sensor can be used as pulse input.
For more detailed information about the configuration of the selection of the application we refer you to
the programming manual of the sensor.
www.ifm.com → data sheet search → O3D300 → Operating instructions

16
3D sensor

8. Indicators
Via the LED indicators 1 - 4 the sensor signals the current operating state.

LED 1 LED 2
LED 4 LED 3

UK

LED 4 LED 1 LED 2 LED 3 Description


(Ethernet) (Power) (Out 1) (Out 2)
lights Sensor is ready for operation, supply voltage applied
flashes at No parameters set or parameter setting was not
0.5 Hz loaded into the sensor
On
On
Off
Off
flashes 2x Sensor is in the parameter setting mode
at 0.5 Hz On
On
Off
Off
lights Switching output 1 switched
flashes at Switching output 1 shorted
8 Hz
lights Switching output 2 switched
flashes at Switching output 2 shorted
8 Hz
lights Ethernet connected
flashes Ethernet transmitting data
off Ethernet not connected
flashes at flashes at Sensor signals internal error
8 Hz 8 Hz
flashes at flashes at Sensor signals correctable error. The error information
2 Hz 2 Hz can be read via Ethernet

Running light ⇒ Sensor booting

Running light ⇐
Sensor carrying out firmware update

17
3D sensor

9. Set-up
After power on, the sensor is put into operation. After 15 seconds the sensor is in the evaluation mode
where saved applications are executed. The indicators signal the current operating state (→ 7.3).
Up to 32 applications can be saved on the sensor. An application can be activated in different ways:
●● ifm Vision Assistant software
●● Process interface command
●● Switching input 1 and 2
●● Switching input 1 and trigger input

9.1 Set parameters of the sensor


The sensor is set using the ifm Vision Assistant software (→ see programming manual).
The software ifm Vision Assistant and detailed information about the measuring principle of the
sensor are described in the software manual.
The ifm Vision Assistant software is available free of charge on our website:
www.ifm.com → Service → Download → Industrial imaging
The software manual is available on our website: www.ifm.com → Data sheet search → e.g.
O3D303 → Operating instructions

9.2 Detect object


The conditions which lead to a high detection rate of objects are described below.

① Sensor
① ② Zone of influence
③ Field of view
④ Object
② ②

Optimum detection of an object ④ is given if the following conditions are met:


●● Object is positioned in the field of view ③
●● Object is the nearest visible object to the sensor ①
●● Zone of influence ② is clear from objects (obstructions etc.)
●● Lens window of the sensor is free from soiling.

If the conditions are not met, measurement errors may occur.

18
3D sensor

9.3 Transmit process values

9.3.1 Transmit process values of the completeness monitoring via EtherNet/IP


The device can transmit the process values to a PLC via the EtherNet/IP protocol. The process values
are displayed in the ifm Vision Assistant as output string as below:

UK
In the output string the process values are separated by a semicolon. The output string is transferred to a
PLC in the displayed sequence.

Observe the following remarks for the transmission of the output string to a PLC:
●● Bytes 0 to 7 are part of the output string. They are not displayed in the ifm Vision Assistant
(see screenshot above).
●● Semicolons ";" in the output string are not transferred.
●● Float values are converted into binary 16-bit integers before the transmission.
●● All numerical values are converted into binary 16-bit integers before the transmission.

The output string is composed of the following (data type: SINT):


star;0;00;0;+0.000;01;7;-0.068;02;6;+0.013;03;0;+0.001;stop
Process
Byte no. Data Coding Unit Description Comments
value
0 2#0000_0000 Binary Duplicated Bit 1.5 shows a successful trigger
1.5
1 2#0010_0000 Binary command word command

2 2#0000_0000 Decimal Synchronous /


asynchronous
3 2#0000_0000 Decimal message identification
4 30 Decimal ●● The device has received
30 messages.
30 Message counter
5 0 Decimal ●● Increments by 1 with each action
(trigger, message sent etc.).
6 0 Decimal
Reserved
7 0 Decimal
8 s ASCII
9 t ASCII
star Start string
10 a ASCII
11 r ASCII
12 0 Decimal Status of all ROIs Shows states of the
0
13 0 Decimal (0 = bad, 1 = good) completeness monitoring

14 0 Decimal With activated position adjustment


bytes 14 and 15 are used by it.
0 = position is not adjusted
0 ROI ID 1 = position is adjusted
15 0 Decimal
All following data is shifted by 2 bytes;
i.e. the first ROI ID starts with bytes
16 and 17.

19
3D sensor

Process
Byte no. Data Coding Unit Description Comments
value
16 0 Decimal
0 ROI status
17 0 Decimal
18 0 Decimal
0 mm ROI value
19 0 Decimal
20 1 Decimal
1 ROI ID
21 0 Decimal
22 7 Decimal
7 ROI status ROI status:
23 0 Decimal
0 = good
24 -67 Decimal
-67 mm ROI value 1 = reference level not taught
25 -1 Decimal
2 = teaching failed
26 2 Decimal 3 = reference level invalid
2 ROI ID
27 0 Decimal 4 = no valid pixels
28 6 Decimal 5 = reference level does not contain
6 ROI status any valid pixels
29 0 Decimal
6 = overfill
30 14 Decimal 7 = underfill
14 mm ROI value
31 0 Decimal
32 3 Decimal
3 ROI ID
33 0 Decimal
34 0 Decimal
0 ROI status
35 0 Decimal
36 0 Decimal
0 mm ROI value
37 0 Decimal
38 s ASCII
39 t ASCII
stop Stop string
40 o ASCII
41 p ASCII

Faulty execution of a command leads to the following status:


●● Error bit = 1
●● Duplicated command word is displayed
●● Asynchronous message bit = 0
●● Asynchronous message identification = 0
●● Message counter increments by 1

20
3D sensor

9.3.2 Transmit process values of the completeness monitoring via TCP/IP


The device can transmit the process values to a PLC via the TCP/IP protocol. The process values are
displayed in the ifm Vision Assistant as output string as below:

In the output string the process values are separated by a semicolon. The output string is transferred to a
PLC in the displayed sequence.
UK
Observe the following remarks for the transmission of the output string to a PLC:
●● Semicolons ";" in the output string are not transferred.
●● All numerical values are converted into binary 16-bit integers before the transmission.

The output string is composed of the following (data type: ASCII):


star;0;00;0;+0.000;01;7;-0.068;02;6;+0.013;03;0;+0.001;stop
Process value Unit Description
star Start string
0 Status of all ROIs (0 = bad, 1 = good)
00 ROI ID
0 ROI status
+0.000 m ROI value ROI status:
0 = good
01 ROI ID
1 = reference level not taught
7 ROI status
2 = teaching failed
-0.068 m ROI value 3 = reference level invalid
02 ROI ID 4 = no valid pixels
6 ROI status 5 = reference level does not contain any valid
pixels
+0.013 m ROI value
6 = overfill
03 ROI ID 7 = underfill
0 ROI status
+0.001 m ROI value
stop Stop string

21
3D sensor

9.3.3 Transmit process values of the dimensioning of the object via EtherNet/IP
The device can transmit the process values to a PLC via the EtherNet/IP protocol. The process values
are displayed in the ifm Vision Assistant as output string as below:

In the output string the process values are separated by a semicolon. The output string is transferred to a
PLC in the displayed sequence.

Observe the following remarks for the transmission of the output string to a PLC:
●● The output string is adjustable. The process values to be transferred can be set in the
ifm Vision Assistant.
●● Bytes 0 to 7 are part of the output string. They are not displayed in the ifm Vision Assistant
(see screenshot above).
●● Semicolons ";" in the output string are not transferred.
●● Float values are converted into binary 16-bit integers before the transmission.
●● All numerical values are converted into binary 16-bit integers before the transmission.

The output string is composed of the following (data type: SINT):


star;1;0.104;0.0088;0.109;+0.021;-0.011;+0.389;158;097;094;097;stop
Process
Byte no. Data Coding Unit Description Comments
value
0 2#0000_0000 Binary Duplicated Bit 1.5 shows a successful trigger
1.5
1 2#0010_0000 Binary command word command

2 2#0000_0000 Binary Synchronous /


asynchronous
3 2#0000_0000 Binary
message identification
4 2#0000_0011 Binary ●● The device has received
3 messages.
3 Message counter
5 2#0000_0000 Binary ●● Increments by 1 with each action
(trigger, message sent etc.).
6 2#0000_0000 Binary
Reserved
7 2#0000_0000 Binary
8 s ASCII
9 t ASCII
star Start string
10 a ASCII
11 r ASCII
12 2#0000_0001 Binary 0 = no box found
1 Result bit
13 2#0000_0000 Binary 1 = box found
14 104 Decimal
104 mm Width
15 0 Decimal
16 88 Decimal
88 mm Height
17 0 Decimal
18 108 Decimal
108 mm Length
19 0 Decimal
20 21 Decimal
21 x coordinate
21 0 Decimal
22 -11 Decimal
-11 y coordinate
23 -1 Decimal
24 -124 Decimal
388 z coordinate
25 1 Decimal

22
3D sensor

Process
Byte no. Data Coding Unit Description Comments
value
26 -98 Decimal
158 Degree of rotation
27 0 Decimal
28 97 Decimal
97 Quality width
29 0 Decimal
30 93 Decimal
93 Quality height
31 0 Decimal
32 97 Decimal
97 Quality length
33 0 Decimal UK
34 s ASCII
35 t ASCII
stop Stop string
36 o ASCII
37 p ASCII

Faulty execution of a command leads to the following status:


●● Error bit = 1
●● Duplicated command word is displayed
●● Asynchronous message bit = 0
●● Asynchronous message identification = 0
●● Message counter increments by 1

23
3D sensor

9.3.4 Transmit process values of the dimensioning of the object via TCP/IP
The device can transmit the process values to a PLC via the TCP/IP protocol. The process values
to be sent can be selected in the ifm Vision Assistant. The process values are displayed in the
ifm Vision Assistant as output string as below:

In the output string the process values are separated by a semicolon. The output string is transferred to a
PLC in the displayed sequence.
The output string is composed of the following (data type: ASCII):
star;1;0.104;0.0088;0.109;+0.021;-0.011;+0.389;158;097;094;097;stop
Process value Unit Description
star Start string
1 Object found
0.104 m Width
0.0088 m Height
0.109 m Length
+0.021 x coordinate
-0.011 y coordinate
+0.389 z coordinate
158 Degree of rotation
097 Quality width
094 Quality height
097 Quality length
stop Stop string

24
3D sensor

9.3.5 Transmit process values of the level monitoring via EtherNet/IP


The device can transmit the process values to a PLC via the EtherNet/IP protocol. The process values
are displayed in the ifm Vision Assistant as output string as below:

The output string is transferred to a PLC in the displayed sequence.


UK
Observe the following remarks for the transmission of the output string to a PLC:
●● Bytes 0 to 7 are part of the output string. They are not displayed in the ifm Vision Assistant
(see screenshot above).
●● Semicolons ";" in the output string are not transferred.
●● Float values are converted into binary 16-bit integers before the transmission.
●● All numerical values are converted into binary 16-bit integers before the transmission.

The output string is composed of the following (data type: ASCII):


0070
Byte no. Data Coding Process value Unit Description Comments
0 2#0000_0000 Binary Duplicated Bit 1.5 shows a successful
1.5
1 2#0010_0000 Binary command word trigger command

2 2#0000_0000 Decimal Synchronous /


asynchronous
message
3 2#0000_0000 Decimal
identification

4 30 Decimal ●● The device has received


30 messages.
30 Message counter ●● Increments by 1 with each
5 0 Decimal action (trigger, message
sent etc.).
6 0 Decimal
Reserved
7 0 Decimal
8 0 ASCII Status of all ROIs Shows states of the
0
9 0 ASCII (0 = bad, 1 = good) level monitoring

10 0 ASCII
0 ROI ID
11 0 ASCII ROI Status:
12 0 ASCII 0 = good
7 ROI Status
13 0 ASCII 6 = overfill
14 0 ASCII 7 = underfill
0 mm ROI Value
15 0 ASCII

Faulty execution of a command leads to the following status:


●● Error bit = 1
●● Duplicated command word is displayed
●● Asynchronous message bit = 0
●● Asynchronous message identification = 0
●● Message counter increments by 1

25
3D sensor

9.3.6 Transmit process values of the level monitoring via TCP/IP


The device can transmit the process values to a PLC via the TCP/IP protocol. The process values are
displayed in the ifm Vision Assistant as output string as below:

In the output string the process values are separated by a semicolon. The output string is transferred to a
PLC in the displayed sequence.

Observe the following remarks for the transmission of the output string to a PLC:
●● Semicolons ";" in the output string are not transferred.
●● All numerical values are converted into binary 16-bit integers before the transmission.

The output string is composed of the following (data type: ASCII):


star;0;00;7;+0.000;stop
Process value Unit Description
star Start string
0 Status of all ROIs (0 = bad, 1 = good)
00 ROI ID ROI Status:
0 = good
7 ROI Status
6 = overfill
+0.000 m ROI Value 7 = underfill
stop Stop string

26
3D sensor

10. Maintenance, repair and disposal


Observe the following remarks:
►► Do not open the housing as the sensor does not contain any components which can be maintained by
the user. The sensor must only be repaired by the manufacturer.
►► Dispose of the sensor in accordance with the national environmental regulations.

10.1 Cleaning
Observe the following instructions before cleaning the sensor:
►► Use clean and lint-free cloth. UK
►► Use glass cleaner as cleaning agent.

If the instructions are not observed, scratches on the lens window may cause measurement errors.

10.2 Update firmware


With the software ifm Vision Assistant the firmware of the sensor can be updated.
Parameters saved in the sensor get lost by the firmware update. Create a backup copy of the
parameters before updating the firmware:
►► Export parameters before updating the firmware.
►► Import parameters after updating the firmware.

Firmware updates are available on our website:


www.ifm.com → Service → Download → Industrial imaging

10.3 Replace sensor


The parameters are lost when a sensor is replaced . Create a backup copy of the parameters before
replacing the sensor.
►► Export the parameters of the old sensor before replacement.
►► Import the parameters into the new sensor after replacement.
With the export and import of parameters several sensors can be quickly provided with the same
parameters.

11. Approvals/standards
The EU declaration of conformity is available at:
www.ifm.com → Data sheet search → e.g. O3D303 → Approvals

27
Original Scale Drawing (MTD)
P_MZ_200_0359
3D sensor
O3D302
O3D303
O3D312
O3D313
12. Scale drawings
12.1 O3D302 / O3D312

2 3
95
65 82,6
32,5 73,3

M12x1
40
72
33

33
14

M12x1
5,7 71,6
1 2

① Lens
P_MZ_200_0362
Original Scale Drawing (MTD)

O3D300 ② Illumination unit


O3D301
O3D310 ③ LED 2 colours (yellow/green)
O3D311

12.2 O3D300 / O3D310


EPS Source
Product Scale Drawing
95 Frame Size: 80 mm x 45 mm
3 2
82,6 67,1
73,3 65
28,7 32,5

17,1
2 3
M12x1

95
65 82,6
32,5 73,3
M12x1

40
40
72

72
33

33
14

M12x1
49

5,7 71,6
1 2
33
33
14

M12x1
71,6
4 5,7 1 2

① Lens
② Illumination unit
③ LED 2 colours (yellow/green)
④ Focal setter

28 EPS Source
Product Scale Drawing
Frame Size: 80 mm x 45 mm
3D sensor

13. Appendix
13.1 Process Interface
The process interface is used during the normal operation mode to get operational data (e.g. 3D images,
process values) from the O3D3xx.

13.1.1 Sending Commands


For sending commands via the process interface the commands have to be sent with a special protocol
and as ASCII character strings. This protocol conforms to the version 3 of the O2V/O2D products.
Structure of the protocol: UK
<Ticket><length>CR LF <Ticket><content>CR LF
Abbreviation Description ASCII code (dec) ASCII code (hex)
CR Carriage Return 13 D
LF Linefeed 10 A
<> Marking of a placeholder
(e.g. <code> is a placeholder for code)
[] Optional argument
(possible but not required)

Command Description
<content> It is the command to the device (e.g. trigger the unit).
<ticket> It is a character string of 4 digits between 0-9. If a message with a specific ticket is sent
to the device, it will reply with the same ticket. A ticket number must be > 0999.
Use a ticket number from the range 1000 - 9999.
<length> It is a character string beginning with the letter 'L' followed by 9 digits. It indicates the
length of the following data (<ticket><content>CR LF) in bytes.

They are different protocol versions available:


Version Input format Output format
V1 <Content>CR LF As input
V2 <Ticket><Content>CR LF As input
V3 <Ticket><Length>CR+LF<Ticket><Content>CR LF As input
V4 <Content>CR LF <length>CR LF<Content>CR LF

The default protocol version is "V3". It is recommended to use protocol version 3 for machine
to machine communication. This is due to the fact that only version 3 supports asynchronous
messages and provides length information.

Ticket numbers for asynchronous messages:


Ticket number Description
0000 Asynchronous results
0001 Asynchronous error messages / codes
0010 Asynchronous notifications / message codes

29
3D sensor

Format of asynchronous notifications


The format of the asynchronous notifications is a combination of the unique message ID and a
JSON formatted string containing the notification details: <unique message ID>:<JSON content>
Example for protocol version 3:
<ticket=0010>L<length>CR+LF<ticket=0010><unique message ID>:<JSON content>CR LF
Result:
0010L000000045\r\n0010000500000:{"ID": 1034160761,"Index":1,"Name": "Pos 1"}\r\n
Explanation of the result:
Command Result
<ticket=0010> 0010
L<length> L000000045
CR+LF \r\n
<ticket=0010> 0010
<unique message ID> 000500000
<JSON content> {"ID": 1034160761,"Index":1,"Name": "Pos 1"}
CR+LF \r\n

Asynchronous message IDs

Asynchronous Description Example Description


message ID
000500000 Application {"ID": 1034160761,"Index":1,"Name":
changed "Pos 1","valid":true}
000500001 Application {"ID": 1034160761,"Index":1,"Name": If a application exists on
is not valid "Pos 1","valid":false} given index but it is invalid,
the ID and Name are filled
accoring to the application.
If there is no application on
given index, the application
ID will contain 0 and the
name an empty string "".

30
3D sensor

13.1.2 Receiving Images


For receiving the image data a TCP/IP socket communication is established. The default port number is
50010. The port number may differ based on the configuration. After opening the socket communication,
the O3D3XX device will automatically (if the device is in free run mode) send the data through this socket
to the TCP/IP client (PC).
PCIC output per frame. The following data is submitted in this sequence:
Component Content
Ticket and length information (→ 13.2.2)
Ticket "0000" UK
Start sequence String "star" (4 bytes)
Normalised amplitude image 1 image
Output format: 16-bit unsigned integer
Distance image 1 image
Output format: 16-bit unsigned integer.
Unit: mm
X image 1 image
Output format: 16-bit signed integer.
Unit: mm
Y image 1 image
Output format: 16-bit signed integer.
Unit: mm
Z image 1 image
Output format: 16-bit signed integer.
Unit: mm
Confidence image 1 image
Output format: 8-bit unsigned integer
Diagnostic data
Stop sequence String "stop" (4 bytes)
Ticket signature <CR><LF>

13.1.3 Image data


For every image there will be a separate chunk. The chunk is part of the response frame data of the
process interface.
The header of each chunk contains different kinds of information. This information is separated into bytes.
The information contains e.g. the kind of image which will be in the “PIXEL_DATA” and the size of the
chunk.
Chunk type
Offset Name Description Size [byte]
0x0000 CHUNK_TYPE Defines the type of the chunk. For each distinct chunk 4
an own type is defined.
0x0004 CHUNK_SIZE Size of the whole image chunk in bytes. After this count 4
of bytes the next chunk starts.
0x0008 HEADER_SIZE Number of bytes starting from 0x0000 until PIXEL_ 4
DATA.
0x000C HEADER_VERSION Version number of the header 4
0x0010 IMAGE_WIDTH Image width in pixel 4

31
3D sensor

Offset Name Description Size [byte]


0x0014 IMAGE_HEIGTH Image height in pixel 4
0x0018 PIXEL_FORMAT Pixel format 4
0x001C TIME_STAMP Time stamp in microseconds 4
0x0020 FRAME_COUNT Frame counter 4
0x0024 PIXEL_DATA The pixel data in the given type and dimension of the 4
image. Padded to 4-byte boundary.

Available chunk types:


Constant Value Description
USERDATA 0 Undefined user data with arbitrary content
RADIAL_DISTANCE_ 100 Each pixel of the distance matrix denotes the ToF distance
IMAGE measured by the corresponding pixel or group of pixels of the
imager. The distance value is corrected by the device calibration,
excluding effects caused by multipath and multiple objects
contributions (e.g. "flying pixels"). Reference point is the optical
centre of the device inside the device housing.
Invalid PMD pixels (e.g. due to saturation) have a value of zero.
Data type: 16-bit unsigned integer (little endian)
Unit: millimetres
NORM_AMPLITUDE_ 101 Each pixel of the normalized amplitude image denotes the raw
IMAGE amplitude (see amplitude image below for further explanation),
normalized to exposure time. Furthermore, vignetting effects
are compensated, ie the darkening of pixels at the image border
is corrected. The visual impression of this grayscale image is
comparable to that of a common 2D camera.
Invalid PMD pixels (e.g. due to saturation) have an amplitude value
of 0.
Data type: 16-bit unsigned integer
AMPLITUDE_IMAGE 103 Each pixel of the amplitude matrix denotes the amount of
modulated light (i.e. the light from the device active illumination)
which is reflected by the appropriate object. Higher values indicate
higher PMD signal strengths and thus a lower amount of noise on
the corresponding distance measurements. The amplitude value
is directly derived from the PMD phase measurements without
normalisation to exposure time. In multiple exposure mode,
the lack of normalisation may lead (depending on the chosen
exposure times) to inhomogeneous amplitude image impression, if
a certain pixel is taken from the short exposure time and some of
its neighbours are not.
Invalid PMD pixels (e.g. due to saturation) have an amplitude value
of 0.
Data type: 16-bit unsigned integer
CARTESIAN_X_ 200 The X matrix denotes the X component of the Cartesian coordinate
COMPONENT of a PMD 3D measurement. The origin of the device coordinate
system is in the middle of the lens' front glass, if the extrinsic
parameters are all set to 0.
Data type: 16-bit signed integer
Unit: millimetres

32
3D sensor

Constant Value Description


CARTESIAN_Y_ 201 The Y matrix denotes the Y component of the Cartesian coordinate
COMPONENT of a PMD 3D measurement. The origin of the device coordinate
system is in the middle of the lens' front glass, if the extrinsic
parameters are all set to 0.
Data type: 16-bit signed integer
Unit: millimetres
CARTESIAN_Z_ 202 The Z matrix denotes the Z component of the Cartesian coordinate
COMPONENT of a PMD 3D measurement. The origin of the device coordinate
system is in the middle of the lens' front glass, if the extrinsic UK
parameters are all set to 0.
Data type: 16-bit signed integer
Unit: millimetres
CARTESIAN_ALL 203 CARTESIAN_X_COMPONENT,
CARTESIAN_Y_COMPONENT,
CARTESIAN_Z_COMPONENT
UNIT_VECTOR_ALL 223 The unit vector matrix contains 3 values [ex, ey, ez] for each PMD
pixel, i.e. the data layout is [ex_1,ey_1,ez_1, ... ex_N, ey_N,
ez_N], where N is the number of PMD pixels.
Data type: 32-bit floating point number (3x per pixel)
CONFIDENCE_IMAGE 300 See Additional Information for Image Data (→ 13.1.4)
DIAGNOSTIC 302 See Receiving Images (→ 13.1.2)

Pixel format:
Constant Value Description
FORMAT_8U 0 8-bit unsigned integer
FORMAT_8S 1 8-bit signed integer
FORMAT_16U 2 16-bit unsigned integer
FORMAT_16S 3 16-bit signed integer
FORMAT_32U 4 32-bit unsigned integer
FORMAT_32S 5 32-bit signed integer
FORMAT_32F 6 32-bit floating point number
FORMAT_64U 7 64-bit unsigned integer
FORMAT_64F 8 64-bit floating point number
Reserved 9 N/A
FORMAT_32F_3 10 Vector with 3x32-bit floating point number

33
3D sensor

13.1.4 Additional Information for CONFIDENCE_IMAGE


Further information for the confidence image:
Bit Value Description
0 1 = pixel invalid Pixel invalid
The pixel is invalid. To determine whether a pixel is valid or not
only this bit needs to be checked. The reason why the bit is
invalid is recorded in the other confidence bits.
1 1 = pixel saturated Pixel is saturated
Contributes to pixel validity: yes
2 1 = bad A-B symmetry A-B pixel symmetry
The A-B symmetry value of the four phase measurements is
above threshold.
Remark: This symmetry value is used to detect motion
artefacts. Noise (e.g. due to strong ambient light or very short
integration times) or PMD interference may also contribute.
Contributes to pixel validity: yes
3 1 = amplitude below Amplitude limits
minimum amplitude
The amplitude value is below minimum amplitude threshold.
threshold
Contributes to pixel validity: yes
4+5 Bit 5, bit 4 Exposure time indicator
0 0 = unused The two bits indicate which exposure time was used in a
multiple exposure measurement.
0 1 = shortest exposure
time (only used in 3 Contributes to pixel validity: no
exposure mode)
1 0 = middle exposure
time in 3 exposure mode,
short exposure in double
exposure mode
1 1 = longest exposure
time (always 1 in single
exposure mode)
6 1 = pixel is clipped Clipping box on 3D data
If clipping is active this bit indicates that the pixel coordinates
are outside the defined volume.
Contributes to pixel validity: yes
7 1 = suspect/defective pixel Suspect pixel
This pixel has been marked as "suspect" or "defective" and
values have been replaced by interpolated values from the
surroundings.
Contributes to pixel validity: no

34
3D sensor

13.1.5 Configuration of PCIC Output


The user has the possibility to define his own PCIC output. This configuration is only valid for the current
PCIC connection. It does not affect any other connection and will get lost after disconnecting.
For configuring the PCIC output a “flexible” layouter concept is used, represented by a JSON string. The
format of the default configuration is as follows:
{
"layouter": "flexible",
"format": { "dataencoding": "ascii" },
"elements": [ UK
    { "type": "string", "value": "star", "id": "start_string" },
    { "type": "blob", "id": "normalized_amplitude_image" },
    { "type": "blob", "id": "X_image" },
    { "type": "blob", "id": "Y_image" },
    { "type": "blob", "id": "Z_image" },
    { "type": "blob", "id": "confidence_image" },
    { "type": "blob", "id": "diagnostic_data" },
    { "type": "string", "value": "stop", "id": "end_string" }
]
}

This string can be retrieved by the C? command, altered and sent back using the c command.
The layout software has the following main object properties:
Name Description Details
layouter Defines the basic data output format. Type: string
So far only “flexible” is supported
format Defines format details, the definitions in the main object are Type: object
the defaults for any of the following data elements (e.g. if it
says dataencoding=binary, all data elements should be binary
encoded instead of ASCII).
elements List of data elements which must be written. Type: array of objects

The actual data is defined within the “elements” properties and may consist of these settings:
Name Description Details
type Defines the type of data which must be written. Type: string
The data might be stored in a different type (e.g. stored as integer but
should be output as Float32)
The type "records" will need some special handling.
id Defines an identifier for this data element. Type: string
If there is no fixed value (property "value"), the data should be
retrieved via id.
value Optional property for defining a fixed output value. Type: any JSON value
format Type-depending option for fine-tuning the output format. Type: object
E.g. cut an integer to less than 4 bytes.

35
3D sensor

Available values for the type property:


Type Description
records Defines that this element represents a list of records.
If type is set to "records", there must be an "elements" property.
The "elements" property defines which data should be written per record.
string Data is written as string.
Most of the time this will be used with "value" property to write fixed start, end or delimiter
text.
Text encoding should be UTF8 if there is nothing else specified in format properties.
float32 Data is written as floating point number.
This has a lot of formatting options (at least with "flexible" layout software)
See following section about format properties.
uint32 Data is written as integer.
This has a lot of formatting options (at least with "flexible" layout software)
See following section about format properties.
int32 Data is written as integer.
This has a lot of formatting options (at least with "flexible" layout software)
See following section about format properties.
uint16 Limits the output to two bytes in binary encoding, besides the binary limitation it acts like
uint32.
int16 Limits the output to two bytes in binary encoding, besides the binary limitation it acts like
int32.
uint8 Limits the output to one byte in binary encoding, besides the binary limitation it acts like
uint32.
int8 Limits the output to one byte in binary encoding, besides the binary limitation it acts like
int32.
blob Data is written as a BLOB (byte by byte as if it came from the data provider).
(Binary Large Object)

Depending on the desired data format the user may tune his output data with further “format” properties.

Common format properties:


Format Allowed values Default
properties
dataencoding "ascii" or "binary" can be defined in top-level-object and "ascii"
overwritten by element objects.
scale "float value with decimal separator" to scale the results for 1.0
output byte width
offset "float value with decimal separator" 0.0

Binary format properties:


Format properties Allowed values Default
order Little, big and network Little

36
3D sensor

ASCII format properties:


Format properties Allowed values Default
width Output width. If the resulting value exceeds the width field the 0
result will not be truncated.
fill Fill character ""
precision Precision is the number of digits behind the decimalseparator. 6
displayformat Fixed, scientific Fixed
alignment Left, right Right
decimalseparator 7-bit characters for e.g. "." "." UK
base Defines if the output should be: 10
●● binary (2)
●● octal (8)
●● decimal (10)
●● hexadecimal (16)

Example of a format configuration of the temperature (id: temp_illu) element.


1. Illumination temperature like this "33,5___":
c000000226{ "layouter": "flexible", "format": { "dataencoding": "ascii" },
"elements": [ { "type": "float32", "id": "temp_illu", "format": { "width": 7,
"precision": 1, "fill": "_", "alignment": "left", "decimalseparator": "," }
} ] }

2. Illumination temperature as binary (16-bit integer, 1/10 °C):


c000000194{ "layouter": "flexible", "format": { "dataencoding": "ascii"
}, "elements": [ { "type": "int16", "id": "temp_illu", "format": {
"dataencoding": "binary", "order": "network", "scale": 10 } } ] }

3. Illumination temperature in °F (e.g. "92.3 Fahrenheit" ):


c000000227{ "layouter": "flexible", "format": { "dataencoding": "ascii" },
"elements": [ { "type": "float32", "id": "temp_illu", "format": { "precision":
1, "scale": 1.8, "offset": 32 } }, { "type": "string", "value": " Fahrenheit"
} ] }

37
3D sensor

The following element IDs are available:


ID Description Native data type
activeapp_id Active application, shows which of the 32 application- 32-bit unsigned
configurations is currently active integer
all_cartesian_vector_ All Cartesian images (X+Y+Z) concatenated to one 16-bit signed
matrices package integer
all_unit_vector_matrices Matrix of unit vectors. Each element consists of a Float32
3 component vector [e_x, e_y, e_z]
amplitude_image PMD raw amplitude image 16-bit unsigned
integer
confidence_image Confidence image 8-bit unsigned
integer
distance_image Radial distance image 16-bit unsigned
integer
unit: millimetres
evaltime Evaluation time for current frame in milliseconds 32-bit unsigned
integer
extrinsic_calibration Extrinsic calibration, constisting of 3 translation Float32
parameters (unit: millimeters) and 3 angles
(unit: degree): [t_x, t_y, t_z, alpha_x, alpha_y, alpha_z]
framerate Current frame rate in Hz Float32
normalized_amplitude_ Normalized amplitude image 16-bit unsigned
image integer
temp_front1 Invalid temperature, the output is 3276.7 Float32, unit: °C
temp_illu Temperature measured in the device while capturing this Float32, unit: °C
result
Measured on the illumination board
x_image Cartesian coordinates for each pixel 16-bit signed
y_image Each dimension is a separate image integer
z_image

38
3D sensor

For completeness, level, distance and dimensioning application the following IDs are available:
ID Description Native data type
id ID of the model int32
rois.count Number of records in "roi" int32
rois List of all ROIs (ROIgroup) of this model records
SP1 SwitchingPoint1 and 2 if the model is a Level- or float32
Distance-type. If it is not a Level-/Distance-type, it shall
SP2
output a null-value.
boxFound These results are available for a dimensioning int8 UK
application. If the model is not oft the type dimensioning,
length float
the IDs shall output a null-value.
width float
height float
qualityLength float
qualityWidth float
qualityHeight float
xMidTop float
yMidTop float
zMidTop float
yawAngle float
backgroundPlaneDistance float
numGood These results are available for a completeness, level and int
distance applications. If the model is not oft one of these
numUnderSP1 int
types, the IDs shall output a null-value.
numOverSP2 int
numInvalid int
allROIsGood bool
anchorFound bool
hasAnchorTracking bool

For ROIs of completeness, level or distance application the following IDs are available:
ID Description Native data type
id unique ID of the ROI within the Model int32
procval per ROI process value float 32Bit
state per ROI state ( if ROI procval is valid or not) uint32
• ROI_PROCESS_VALUE_VALID = 0
• ROI_PROCESS_VALUE_REFIMAGE_SET_NOT_TEACHED = 1
• ROI_PROCESS_VALUE_TEACHING_FAILED = 2
• ROI_PROCESS_VALUE_REFIMAGE_INVALID = 3
• ROI_PROCESS_VALUE_NO_VALID_PIXEL = 4
• ROI_PROCESS_VALUE_REFIMAGE_NO_VALID_PIXEL = 5
• ROI_PROCESS_VALUE_OVERFILL = 6
• ROI_PROCESS_VALUE_UNDERFILL = 7
quality 0..1 float32

39
3D sensor

For the main object on devices with statistics feature the following IDs are available:
ID Description Native data type
statistics_overall_count Allows the user to output the statistics value with uint32
the result of the frame, maps to ModelResults:
adv_statistics.number_of_frames
statistics_passed_count Allows the user to output the statistics value with uint32
the result of the frame, maps to ModelResults:
adv_statistics.number_of_passed_frames
statistics_failed_count Allows the user to output the statistics value with uint32
the result of the frame, maps to ModelResults:
adv_statistics.number_of_failed_frames
statistics_aborted_count Allows the user to output the statistics value with uint32
the result of the frame, maps to ModelResults:
adv_statistics.number_of_aborted_frames
statistics_acquisition_time_min Allows the user to output the statistics value with float32
the result of the frame,maps to ModelResults:
adv_statistics.frame_acquisition.min
statistics_acquisition_time_mean Allows the user to output the statistics value with float32
the result of the frame,maps to ModelResults:
adv_statistics.frame_acquisition.mean
statistics_acquisition_time_max Allows the user to output the statistics value with float32
the result of the frame,maps to ModelResults:
adv_statistics.frame_acquisition.max
statistics_evaluation_time_min Allows the user to output the statistics value with float32
the result of the frame,maps to ModelResults:
adv_statistics.frame_evaluation.min
statistics_evaluation_time_mean Allows the user to output the statistics value with float32
the result of the frame,maps to ModelResults:
adv_statistics.frame_evaluation.mean
statistics_evaluation_time_max Allows the user to output the statistics value with float32
the result of the frame,maps to ModelResults:
adv_statistics.frame_evaluation.max
statistics_frame_duration_min Allows the user to output the statistics value with float32
the result of the frame,maps to ModelResults:
adv_statistics.frame_duration.min
statistics_frame_duration_mean Allows the user to output the statistics value with float32
the result of the frame,maps to ModelResults:
adv_statistics.frame_duration.mean
statistics_frame_duration_max Allows the user to output the statistics value with float32
the result of the frame,maps to ModelResults:
adv_statistics.frame_duration.max

40
3D sensor

13.2 Process Interface Command Reference


All received messages which are sent because of the following commands will be sent without
“start”/”stop” at the beginning or ending of the string.

13.2.1 t Command (Asynchronous Trigger)


Command t
Description Executes trigger. The result data is send asynchronously
Type Action
Reply * Trigger was executed, the UK
device captures an image
and evaluates the result.
! ●● Device is busy with an
evaluation
●● Device is in an invalid
state for this command,
e.g. configuration mode
●● Device is set to a
different trigger source
●● No active application

13.2.2 T? Command (Synchronous Trigger)

Command T?
Description Executes trigger. The result data is send synchronously
Type Request
Reply Process data within the configured layout Trigger was executed, the
device captures an image,
evaluates the result and
sends the process data.
! ●● Device is busy with an
evaluation
●● Device is in an invalid
state for this command,
e.g. configuration mode
●● Device is set to a
different trigger source
●● No active application
Note Result data can be sent via EtherNet/IP (data type: SINT) or
TCP/IP (data type: ASCII) (→ 9.3).

41
3D sensor

13.2.3 I? Command
Command I<image-ID>?
Description Request last image taken
Type Request
Reply <length><image data>
! ●● No image available
●● Wrong ID
? ●● Invalid command length
Note <image-ID> Valid image ID:
2 digits for the image type 01 - amplitude image
<length> 02 - normalised amplitude image
char string with exactly 9 digits as 03 - distance image
decimal number for the image data size
04 - X image (distance information)
in bytes
05 - Y image (distance information)
<image data>
06 - Z image (distance information)
image data
07 - confidence image (status
information)
08 - extrinsic calibration
09 - unit_vector_matrix_ex, ey,ez
10 - last result output as formatted
for this connection
11 - all distance images: X, Y, and Z

13.2.4 p Command
Command p<state>
Description Turns the PCIC output on or off
Type Action
Reply *
! <state> contains wrong value
? Invalid command length
Note <state> 1 digit On device restart the value
configured within the application
0: deactivates all asynchronous output
is essential for the output of data.
1: activates asynchronous result output
This command can be executed
2: activates asynchronous error output in any device state.
3: activates asynchronous error and By default the error codes will not
data output be provided by the device.
4: activates asynchronous notifications
5: activates asynchronous notifications
and asynchronous result
6: activates asynchronous notifications
and asynchronous error output
7: activates all outputs

42
3D sensor

13.2.5 a Command

Command a<application number>


Description Activates the selected
application
Type Action
Reply *
! ●● Application not available
●● <application number>
contains wrong value
UK
●● External application switching
activated
●● Device is in an invalid state
for this command, e.g.
configuration mode
? Invalid command length
Note <application number>
2 digits for the application
number as decimal value

13.2.6 A? Command
Command A?
Description Requests the occupancy of the
application list
Type Request
Reply <amount><t><number active
application><t>
...
<number><t><number>
? Invalid command length
! Invalid state (e.g. no application
active)
Note <amount> The active application is
repeated within the application
char string with 3 digits for the
list.
amount of applications saved on
the device as decimal number
<t>
tabulator (0x09)
<number active application>
2 digits for the active application
<number>
2 digits for the application
number

43
3D sensor

13.2.7 v Command

Command v<version>
Description Sets the current protocol version.
The device configuration is not
affected
Type Action
Reply *
! Invalid version
? Invalid command length
Note <version> (→ 13.1.1)
2 digits for the protocol version

The default protocol version is „V3“.

13.2.8 V? Command
Command V?
Description Requests current protocol
version
Type Request
Reply <current version><empty><min
version><empty><max version>
Note <current version>
2 digits for the currently set
version
<empty>
space sign: 0x20
<min/max version>
2 digits for the available min and
max version that can be set

13.2.9 c Command

Command c<length><configuration>
Description Uploads a PCIC output
configuration lasting this session
Type Action
Reply *
! ●● Error in configuration
●● Wrong data length
? Invalid command length
Note <length>
9 digits as decimal value for the
data length
<configuration>
configuration data

44
3D sensor

13.2.10 C? Command
Command C?
Description Retrieves the current PCIC
configuration
Type Request
Reply <length><configuration>
? Invalid command length
Note <length>
9 digits as decimal value for the
UK
data length
<configuration>
configuration data

13.2.11 S? Command

Command S?
Description Requests current decoding
statistics
Type Request
Reply <number of
results><t><number of positive
decodings><t><number of false
decodings>
! No application active
Note <t>
tabulator (0x09)
<number of results>
Images taken since application
start. 10 digits decimal value with
leading 0s
<number of positive decodings>
Number of decodings leading
to a positive result. 10 digits
decimal value with leading 0s
<number of false decodings>
Number of decodings leading
to a negative result. 10 digits
decimal value with leading 0s

45
3D sensor

13.2.12 G? Command
Command G?
Description Requests device information
Type Request
Reply <vendor><t><article number><t>
<name><t><location><t><descri
ption><t><ip>
<subnet mask><t><gateway><
t><MAC><t><DHCP><t><port
number>
Note ●● <vendor>
IFM ELECTRONIC
●● <t>
Tabulator (0x09)
●● <article number>
e.g. O3D300
●● <name>
UTF8 Unicode string
●● <location>
UTF8 Unicode string
●● <description>
UTF8 Unicode string
●● <ip>
IP address of the device as
ASCII character sting
e.g. 192.168.0.96
●● <port number>
port number of the XML-RPC
●● <subnet mask>
subnet mask of the device as
ASCII
e.g. 192.168.0.96
●● <gateway>
gateway of the device as
ASCII
e.g 192.168.0.96
●● <MAC>
MAC adress of the device as
ASCII
e.g. AA:AA:AA:AA:AA:AA
●● <DHCP>
ASCII string "0" for off and
"1" for on

46
3D sensor

13.2.13 H? Command

Command H?
Description Returns a list with available
commands
Type Request
Reply H? - show this list
t - execute Trigger
T? - execute Trigger and wait for UK
data
o<io-id><io-state> - sets IO state
O<io-id>? - get IO state
I<image-id>? - get last image of
defined type
A? - get application list
p<state> - activate / deactivate
data output
a<application number> - set
active application
V? - get current protocol version
v<version> - sets protocol
version
c<length of configuration
file><configuration file> -
configures process date
formatting
C? - show current configuration
G? - show device information
S? - show statistics
L? - retrieves the connection ID

13.2.14 o Command
Command o<IO-ID><IO-state>
Description Sets the logic state of a specific ID
Type Action
Reply *
! Invalid state (e.g. configuration mode)
? Invalid command length
Note ●● <IO-ID>
2 digits for digital output:
"01" for IO1
"02" for IO2
"03" for IO3
●● <IO-state>
1 digit for the state:
"0" for logic state low
"1" for logic state high

47
3D sensor

13.2.15 O? Command
Command O<IO-ID>?
Description Requests the state of a specific ID
Type Request
Reply <IO-ID><IO-state>
! ●● Invalid state (e.g. configuration
mode)
●● Wrong ID
? Invalid command length
Note ●● <IO-ID> The camera supports ID 1 and ID 2.
2 digits for digital output:
The sensor supports ID 1, ID 2 and
"01" for IO1
ID 3.
"02" for IO2
"03" for IO3
●● <IO-state>
1 digit for the state:
"0" for logic state low
"1" for logic state high

48
3D sensor

13.3 Error codes


By default the error codes will not be provided by the device. The p command can activate their provision
(→ 13.2.4).
Error code ID Description
100000001 Maximum number of connections exceeded
110001001 Boot timeout
110001002 Fatal software error
110001003 Unknown hardware
110001006 Trigger overrun
UK
110002000 Short circuit on Ready for Trigger
110002001 Short circuit on OUT1
110002002 Short circuit on OUT2
110002003 Reverse feeding
110003000 Vled overvoltage
110003001 Vled undervoltage
110003002 Vmod overvoltage
110003003 Vmod undervoltage
110003004 Mainboard overvoltage
110003005 Mainboard undervoltage
110003006 Supply overvoltage
110003007 Supply undervoltage
110003008 VFEMon alarm
110003009 PMIC supply alarm
110004000 Illumination overtemperature

49
3D sensor

13.4 EtherNet/IP

13.4.1 Data structures for consuming and producing assemblies


Assemblies
Instance Bytes Type
100 8 Consuming (from device point of view: databuffer for receiving from PLC)
101 450 Producing (from device point of view: databuffer for sending to PLC)

Consuming assembly data layout


Byte 0-1 2-7
Description Command word Command data

Layout of producing assembly


Byte 0-1 2-3 4-5 6-7 8-15 16-449
Description Command Synchronous / Message Reserved Mandatory Non mandatory
word for asynchronous counter message data data fields
mirroring message (e.g. error code)
identifier

Layout of command word


Bit 0 1-15
Description Error bit Command bits
This bit has no meaning in the consuming Each bit represents a specific command
assembly. It is used for signaling an
occured error to the PLC

Command word
Bit 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
Get statistics

Get IO state

Set IO state
Description

Error bit

N.a.

N.a.

N.a.

N.a.

N.a.

Get last error

Get connection ID

Activate application

Get application list

Execute synchronous
trigger
Activate asynchronous
PCIC output
N.a.

Synchronous / asynchronous message identifier


Bit 0 1-15
Description Asynchronous message bit Bits for asynchrounous message identifier

Data to send exceeds processing assembly data section size


If the size of the data exceeds the size of the configured processing assembly data section size, the data
is truncated. No error is risen.

50
3D sensor

13.4.2 Functionality of the Ethernet/IP application


The chapter describes the initialization of assembly buffers.
On initialization all buffers are set to 0.

State change 0 -> 1 of a command bit in consuming assembly


If the state of one command bit switches from 0 to 1, the according command is executed passing the
information within the command data section.
UK
Multiple state changes
If multiple bits have a transition from 0 -> 1 the event is handled as an error.

Reset of command bit state by PLC


The PLC has to reset the command bit from 1 -> 0 before it can execute a new command again. The
device has to reset the command word and increase the message counter within the producing assembly.

Blocking of asynchronous messages


As long as the command handshake procedure has not been finished, no asynchronous message is
allowed to be sent via the Ethernet/IP interface.

Client disconnect
If the client is disconnecting before finishing the handshake procedure, the handshake procedure is
canceled and all buffers are reset.

General reply to an implemented command


If the command is implemented, the data in the data section is applicable and the execution of the
command does not lead to an error. The producing assembly is filled as follows:
●● Error bit = 0
●● Command bits = mirror of the command within the consuming assembly
●● Asynchronous message bit = 0
●● Asynchronous message identifier = 0
●● Message counter increased by 1
●● Message data set to 0

51
3D sensor

Reply to an implemented command - reply contains specific data


If the command is implemented, the data in the data section is applicable and the execution of the
command does not lead to an error. The producing assembly is filled as follows:
●● Error bit = 0
●● Command bits = mirror of the command within the consuming assembly
●● Asynchronous message bit = 0
●● Asynchronous message identifier = 0
●● Message counter increased by 1
●● Message data set according to the command definition

Reply to an implemented command with error in data section


If the content of the data section is not suitable to the command, the message is handled as an error. The
producing assembly contains the following data:
●● Error bit = 1
●● Command bits = mirror of the command within the consuming assembly
●● Asynchronous message bit = 0
●● Asynchronous message identifier = 0
●● Message counter increased by 1
No error code is sent in the data section. The error code is polled with the "get last error" command.

Reply to an implemented command that leads to an error


If the execution of the command leads to an error, the producing assembly contains the following data:
●● Error bit = 1
●● Command bits = mirror of the command within the consuming assembly
●● Asynchronous message bit = 0
●● Asynchronous message identifier = 0
●● Message counter increased by 1
No error code is sent in the data section. The error code is polled with the "get last error" command.

Reply to a not implemented command


If a command bit with no functionality is received, it undergoes a transition from 0 -> 1 and the message is
handled as an error. The producing assembly contains the following data:
●● Error bit = 1
●● Command bits = mirror of the command within the consuming assembly
●● Asynchronous message bit = 0
●● Asynchronous message identifier = 0
●● Message counter increased by 1
No error code is sent in the data section. The error code is polled with the "get last error" command.

52
3D sensor

Reset of error bit


The error bit will be resetted to 0, if
●● the error code caused by an command is retrieved from the client
●● a system error is not present anymore.

Functionality of asynchronous message bit


If the message contain asynchronous data (frame results, system errors, etc.), the asynchronous
message bit must be set to 1.
UK
Bits for asynchronous message identifier
If the message contains asynchronous data, the identifier represents the asynchronous message type.
The ticket number for asynchronous results is 0.
The ticket number for asynchronous error codes is 1.

Message counter
For each message sent via the producing assembly, the message counter is increased. The counter
starts with the value 1. If the maximum counter is reached, it starts with 1 again.

Get last error


This command is used to reset the error bit.

Get connection ID
This command retrieves the connection ID of the current Ethernet/IP connection. The content of the
producing assembly mandatory data section is:
●● Bytes 0-3: connection ID, 32 bit unsigned integer

Get statistics
This command retrieves the current statistics. The content of the producing assembly mandatory data
section is:
●● Bytes 0-3: total readings since application start
●● Bytes 4-7: passed readings
●● Bytes 8-11: failed readings
All values are 32 bit unsigned integers.

Activate application
This command activates the application defined by the bytes 6 and 7 of the consuming assembly data
section. The bytes 2-5 have to be set to 0. An error is risen if bytes 2-5 are not set to 0.
The data content of the processing assembly is set to 0.

53
3D sensor

Get application list


This command retrieves the current configuration list. The content of the producing assembly mandatory
data section is:
●● Bytes 0-3: total number of saved applications, 32 bit unsigned integer
●● Bytes 4-7: number of active application, 32 bit unsigned integer
●● Bytes 8-n: always a 32 bit unsigned integer for an application number in use

Get IO state
Retrieves the logic state of the given IO identifier. Bytes 4 and 5 of the consuming assembly data section
defines the IO ID as a 16 bit unsigned integer value:
●● 1 -> IO1
●● 2 -> IO2
●● 3 -> IO3
The bytes 2-3 and 6-7 have to be set to 0. An error is risen if bytes 2-3 or 6-7 are not set to 0.
The data content of the processing assembly is:
●● Bytes 0-3: logic state of the IO, 1 for high, 0 for low, 32 bit unsigned integer

Set IO state
This command sets the given state of the given IO. Bytes 4 and 5 of the consuming assembly data
section defines the IO ID as a 16 bit unsigned integer value:
●● 1 -> IO1
●● 2 -> IO2
●● 3 -> IO3
The bytes 6 and 7 define the logic state of the IO as 16 bit unsigned integer value.
The bytes 2-3 have to be set to 0. An error is risen if bytes 2-3 are not set to 0.
The data content of the processing assembly is set to 0.

Execute synchronous trigger


This command executes a synchronous trigger. The content of the producing assembly data section
depends on the user defined PCIC output for Ethernet/IP.

Activate asynchronous PCIC output


This command activates or deactivates the asynchronous PCIC output for this connection. The bytes 6
and 7 of the consuming assembly data section define the on/off state as a 16 bit unsigned integer value:
●● 0 = off
●● 1 = on
The bytes 2-5 have to be set to 0. An error is risen if bytes 2-5 are not set to 0.
The data content of the processing assembly is set to 0.
For the Ethernet/IP interface the user shall only be able to select the binary representation of result data.

Default endianness
The default endianness is in little-endian format.

54
3D sensor

13.5 PROFINET IO

13.5.1 Data structures for output and input frame


Size of output frame
Every output frame sent by the controller contains 8 bytes of data, which consists of command word and
command data.
Size of input frame
Every Input frame contains 16 - 450 bytes of data, which are generated by the device in response to the
commands received in the output frames. The size of non mandatory data is adjustable by changing the
size of the input data in the GSDML file.
UK
Byte 0-1 2-3 4-5 6-7 8-15 16-449
Description Command Synchronous / Message Reserved Mandatory Non mandatory
word for asynchronous message counter data data
mirroring identifier

Layout of command word


Bit 0 1-15
Description Error bit Command bits
This bit has no meaning in the consuming Each bit represents a specific command
assembly. It is used for signaling an
occured error to the PLC

Command word
Bit 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
Description

Error bit

N.a.

N.a.

N.a.

N.a.

N.a.

Get last error

Get IO state

Set IO state
Get connection ID

Get statistics

N.a.
Activate application

Get application list

Execute synchronous
trigger
Activate asynchronous
PCIC output

Synchronous / asynchronous identifier


Bit 0 1-15
Description Asynchronous message bit Bits for asynchrounous message identifier

55
3D sensor

13.5.2 Functionality of PROFINET IO application


This section describes how to handle the commands sent by the controller. The PLC sends the
commands to the device in the output frames by setting the appropriate bit in the command word. The
current value of the command word and command data is obtained from the output module by the
application.
After detecting that one of the command bits changed the state from 0 to 1, the PROFINET application
executes the corresponding command and sets the response in the input frames.
Number of supported PROFINET connections
The O3D3xx running a PROFINET application supports one connection with a single controller.

Initialisation of input and output buffers


After the connection is established, the input and output buffers are initialised with 0 s.

Command execution triggering


As soon as the command bit in the output frame changes from 0 to 1, the corresponding command will be
executed.

Handling of multiple command bits


If more than one command bit is set to 1, an error will be reported.

Command execution completion


The PLC has to reset the command bit from 1 to 0 before a new command can be executed. The device
has to reset the command word and increase the message counter within the input frame. Mandatory and
non mandatory data in the response frame is set to 0x0.

Blocking of asynchronous messages


As long as the command handshake procedure has not been finished, no asynchronous message will be
sent by the device.

Client disconnect
If the client is disconnecting before finishing the handshake procedure, the handshake procedure is
canceled and all buffers are reset.

General reply to an implemented command


If the command is implemented, the data in the data section is applicable and the execution of the
command does not lead to an error. The input frame contains the following data:
●● Error bit = 0
●● Command bits = mirror of the command within the output frame
●● Asynchronous message bit = 0
●● Asynchronous message identifier = 0
●● Message counter increased by 1
●● Message data set to 0

56
3D sensor

Reply to an implemented command - reply contains specific data


If the command is implemented, the data in the data section is applicable and the execution of the
command does not lead to an error. The input frame contains the following data:
●● Error bit = 0
●● Command bits = mirror of the command within the output frame
●● Asynchronous message bit = 0
●● Asynchronous message identifier = 0
●● Message counter increased by 1
●● Message data set according to the command definition
UK

Reply to an implemented command with error in data section


If the content of the data section is not suitable to the command, the message is handled as an error. The
input frame contains the following data:
●● Error bit = 1
●● Command bits = mirror of the command within the output frame
●● Asynchronous message bit = 0
●● Asynchronous message identifier = 0
●● Message counter increased by 1
No error code is sent in the data section. The error code is polled with the "get last error"
command. Mandatory and non mandatory data in the response frame will be set to 0x0.

Reply to an implemented command that leads to an error


If the execution of the command leads to an error, the input frame contains the following data:
●● Error bit = 1
●● Command bits = mirror of the command within the output frame
●● Asynchronous message bit = 0
●● Asynchronous message identifier = 0
●● Message counter increased by 1
No error code is sent in the data section. The error code is polled with the "get last error"
command. Mandatory and non mandatory data in the response frame will be set to 0x0.

Reply to a not implemented command


If a command bit with no functionality is received, it undergoes a transition from 0 -> 1 and the message is
handled as an error. The input frame contains the following data:
●● Error bit = 1
●● Command bits = mirror of the command within the output frame
●● Asynchronous message bit = 0
●● Asynchronous message identifier = 0
●● Message counter increased by 1
No error code is sent in the data section. The error code is polled with the "get last error"
command. Mandatory and non mandatory data in the response frame will be set to 0x0.

57
3D sensor

Reset of error bit


The error bit will be resetted to 0, if
●● the error code caused by an command is sent to the controller
●● a system error is not present anymore

Queuing of error codes


The Profinet application is able to buffer one system error (the last one) and one command error (also the
last one). The buffered system error and PCIC command error will be cleared, after they are read by the
PLC with the "get last error" command.

Functionality of asynchronous message bit


If the message contain asynchronous data (frame results, system errors, etc.), the asynchronous
message bit must be set to 1.

Bits for asynchronous message identifier


If the message contains asynchronous data, the identifier represents the asynchronous message type:
●● The ticket number for asynchronous results is 0
●● The ticket number for asynchronous error codes is 1
●● The reserved ticket numbers for asynchronous messages are in the range 0-99

Message counter
For each command response sent in the input frame the message counter is increased. The counter
starts with value 1. If the maximum counter is reached, it starts with 1 again.

Get last error


This command retrieves the current command and system error. The content of the mandatory data
section sent in the input frame is:
●● Bytes 0-3 : command error code, 32 bit unsigned integer
●● Bytes 4-7: system error code, 32 bit unsigned integer

Get connection ID
This command retrieves the connection ID of the current Profinet connection. The response sent in the
input frame contains 16 Bytes of the AR UUID.

Get statistics
This command retrieves the current statistics. The content of the mandatory data section sent in the input
frame is:
●● Bytes 0-3: total readings since application start
●● Bytes 4-7: passed readings
●● Bytes 8-11: failed readings
All values are 32 bit unsigned integers.

58
3D sensor

Activate application
This command activates the application defined by the bytes 6 and 7 of the output frame data section.
The bytes 2-5 have to be set to 0. An error is risen if bytes 2-5 are not set to 0.
The data content of the input frame is set to 0, after receiving the "Activate application" command.

Get application list


This command retrieves the current configuration list. The content of the response sent in the input frame
mandatory data section is:
●● Byte 0-3: total number of saved applications, 32 bit unsigned integer UK
●● Bytes 4-7: number of active application, 32 bit unsigned integer
●● Bytes 8-n: always a 32 bit unsigned integer for an application number in use

Get IO state
Retrieves the logic state of the given IO identifier. Bytes 4 and 5 of the output frame data section defines
the IO ID as a 16 bit unsigned integer value:
●● 1 -> IO1
●● 2 -> IO2
●● 3 -> IO3
The bytes 2-3 and 6-7 have to be set to 0. An error is risen if bytes 2-3 or 6-7 are not set to 0.
The data sent in the input frame is:
●● Byte 0-3: logic state of the requested IO, 1 for high, 0 for low, 32 bit unsigned integer

Set IO state
This command sets the given state of the given IO. Bytes 4 and 5 of the output frame data section defines
the IO ID as a 16 bit unsigned integer value:
●● 1 -> IO1
●● 2 -> IO2
●● 3 -> IO3
The bytes 6 and 7 define the logic state of the IO as 16 bit unsigned integer value.
The bytes 2-3 have to be set to 0. An error is risen if bytes 2-3 are not set to 0.
The data content of the input frame is set to 0, after receiving the "Set IO state" command.

Execute synchronous trigger


This command executes a synchronous trigger. The content of the input frame data section depends on
the user defined PCIC output for PROFINET.

Activate asynchronous PCIC output


This command activates or deactivates the asynchronous PCIC output for this connection. The bytes 6
and 7 of the output frame data section define the on/off state as a 16 bit unsigned integer value:
●● 0 = off
●● 1 = on
The bytes 2-5 have to be set to 0. An error is risen if bytes 2-5 are not set to 0.
The data content of the input frame is set to 0, after receiving the "Activate asynchronous PCIC output"
command.

59
3D sensor

Default endianness
The default endianness is in little-endian format.

60

You might also like