Interfacing Gocator 4.x firmware to LabVIEW
1.1
Title:
Revision:
Table of Contents
1 Overview ................................................................................................................................................................. 2
2 Installing the LabVIEW VIs ..................................................................................................................................... 3
2.1 GoSdk.dll and kApi.dll ...................................................................................................................................... 3
3 Setting up the Gocator to Communicate with LabVIEW ......................................................................................... 3
4 Go2Labview Example ............................................................................................................................................. 4
4.1 Structure of the Go2Labview Example ............................................................................................................. 7
4.2 Gocator Result Cluster ..................................................................................................................................... 9
5 Gocator Public VIs ................................................................................................................................................ 10
6 64-Bit LabVIEW .................................................................................................................................................... 11
7 Dual-Sensor System ............................................................................................................................................. 11
8 Wrapping Go SDK Functions ................................................................................................................................ 11
9 Application Builder ................................................................................................................................................ 14
10 Conclusion .......................................................................................................................................................... 16
Page | 1
1 Overview
LabVIEW is a comprehensive software package for controlling measurement and control systems. LMI
provides a set of Virtual Instruments (VIs) that can be used to interface LabVIEW with Gocator 2x00
sensors. These VIs can be used to control and stream measurement results, intensity and 3D data (as
individual profiles or whole part scans) into LabVIEW in real-time for processing and control.
This document assumes that LabVIEW is already installed. Users are assumed to be already familiar with
LabVIEW and the Gocator must already be setup to generate profile or whole part data.
Gocator Firmware Release 4.0.0 or later and LabVIEW Version 2010 (32-bit) or later are required.
Page | 2
2 Installing the LabVIEW VIs
The LabView VIs are included in the Gocator Integration Tool package (e.g. 14405-
4.x.x.x_SOFTWARE_Go2_Integration_Tools.zip), under the directory Labview. The VIs are structured
into four directories
Directory
\Labview
\Labview\Examples
\Labview\Private
\Labview\Public
Contents
Labview library project files
Example code that illustrate how to use the public VIs to control the Gocators.
Private files, wrapper VIs of Gocator SDK functions.
Gocator Public VIs. Users use these VIs to control and acquire data from the
Gocator
To open the project, click Go2Labview.lvlb. LabVIEW may prompt you for missing GoSdk.dll the first time
you open the project. When prompted, choose the GoSdk.dll in the \Labview\Private folder and continue.
You should see the following screen. To get the file paths to show up, click Project->Show Item Path.
The 32-bit version of the GoSdk.dll is included in the\Labview\Private area.
2.1 GoSdk.dll and kApi.dll
The VIs in the private folders are building blocks of the Gocator LabVIEW interface. These VIs call
functions exposed in the Gocator SDK DLL (GoSdk.dll). By default, the GoSdk.dll is located in the
\Labview\Private folder.
Each tools package contains the GoSdk.dll that matches with the tool package version. Put the matching
GoSdk.dll and kApi.dll in the Private folder to use the same LabVIEW project for a different Gocator
firmware version.
3 Setting up the Gocator to Communicate with LabVIEW
To communicate with LabVIEW, the Gocator needs to send Profile or Whole Part output over Ethernet
using the Gocator Protocol. The Gocator LabVIEW VIs can receive profile, profile intensity, part, part
intensity and measurement data.
Page | 3
Figure 1. Enabling Output over Ethernet in the Output Page (Surface scan mode shown)
4 Go2Labview Example
Go2Labview is an example of how the Gocator Public VIs can be used. It is also a tool that can be used
to verify the Gocator and the environment is setup correctly. To run the Go2Labview example, expand the
Examples node in the project file, and then double click on Go2Labview_Main.vi.
With the LabVIEW example running, the panel controls the Gocator and displays data generated by the
Gocator in real-time.
Figure 2. Gocator LabVIEW Main Panel
To confirm the GoSdk.dll is installed properly:
1. Run the Go2Labview_Main
2. Check the reported GoSdk.dll version is correct
Page | 4
To connect to the Gocator and acquire data:
1. Press Connect.
Note: IP address is no longer needed as the GoSystem_Connect call will connect to all available sensors on the network.
2. Press Start. The laser line of the sensor should turn on (if the Gocator is in time triggered mode)
and data should start appearing in the displays. If the Gocator is configured to be encoder
triggered, move the encoder in order to trigger data capture.
Figure 3. Go2Labview Running in Profile Mode
Page | 5
Figure 4. Go2Labview Running in Whole Part Mode
Figure 5. Go2LabView displaying Measurement Results
Page | 6
Refer to section 4.2 for explanations of the various fields.
3. Press the Stop button to stop the sensor.
4. Press the Disconnect button to disconnect and close the session. If Run Continuously is selected,
the panel will go back to its initial state, waiting for the Connect button to be pressed.
Note: The Disconnect must be clicked to disconnect the ports before stopping the program.
4.1 Structure of the Go2Labview Example
The Go2Labview controls the Gocator by calling the Gocator Public VIs. The detail of each VI is
described in section 4.2. The Go2Labview example has two main sections; Panel Control and the
Gocator Result Processing.
The Panel Control section is a state machine that handles the interaction of the Panel interface, updates
the control states and triggers actions when users click on the buttons.
Figure 6: The Panel Control state machine
This section of the code is also responsible for setting up the Go2 SDK environment and sending the
Connect, Disconnect, Start and Stop commands to the Gocator.
The other main section of the code handles the results received by the Gocator. A cluster, called the
Gocator Result and defined in Go2_Global.vi, is used to carry the results around. The cluster is defined
such that it can carry profile, par, intensity and measurement results. Section 4.2 explains the structure of
the Gocator Result cluster.
A queue is created to buffer the Gocator Results as they are received. This is done by the Receive
Gocator Result block.
Page | 7
Figure 7. Gocator Result Queue and Block for Receiving the Results
The case structure that encloses the Receive VI queues up a copy of Gocator Result for every frame of
data it receives. A Gocator Result could contain one or more output from the Gocator.
The Process Gocator Result takes the Gocator Result data out of the queue periodically and processes
these results.
Figure 8. Block for Processing Gocator Results
Finally, the last part of the code frees the queue when the program exits. To avoid race conditions, the
code that frees the queue only runs when the Receive and Process loops are terminated.
Page | 8