Connections Map

The Modbus protocol supports various blocks types. Each block type can be either an input block or an output block. Input blocks contain write-only registers and are used by the Modbus client to send commands such as starting or stopping a scan. Output blocks contain read-only registers and are used to store various types information, such as control, system, and sensor group state data as well as scan output data.

The starting address location of each block within the Modbus register map may be assigned using the GoPxL web interface.

The register address of a specific field within a block is equal to the block's address plus the field's address offset. For example, the command identifier in the Control Input block has an address offset equal to 1. If the Control Input block is located at register address 100, the command identifier value is located at register address 101.

Supported Block Types

The block types supported by the Modbus protocol are listed in the table below. The size field indicates the number of registers that each block type requires.

Supported Block Types

Block Description

Supported Block Type

Read or Write only?

Size (number of Modbus registers)

Description

Control Input "ControlInput" WO 66

Command message set by the Modbus client.

Control Output "ControlOutput" RO 2 Result data corresponding to a command that was written to the Control Input block.
System State "System" RO 72

Information about the LMI device.

Sensor Group State "Scanner" RO 10 Information about a specific sensor group.
Stamp "Stamp" RO 17

Stamp message information.

Measurement "Measurement" RO 3 Measurement data of a scan output measurement data message.

Control Input

The input of the Control Input block contains the fields described below:

Control Input Fields

Field

Type

Address offset

Description

Command Sequence Number 16u 0

The command sequence number is set by the external client to uniquely identify a command request. This number is sent back in the Control Output.

This is an optional field but is recommended that Modbus clients use this to help the clients correlate the Command Status in the Control Output with a specific command request in Control Input.

Command Identifier 16u 1

Identifies the requested action from the external client. 

Supported actions:

0 = No Command

1 = Start Scanning

2 = Stop Scanning

3 = Align Sensor Group

4 = Clear Alignment

5 = Load Job File

6 = Software Trigger

7 = Buffer Advance

Command Arguments 16u 2

Arguments for commands that require arguments.

For the Load Job File command, the command arguments will contain the NULL terminated job file name. The job file name must not include the job file extension. The job extension is automatically appended by the Modbus server.

This field takes up a maximum of 64 registers.

Reserved 16u 66 Not used. This field takes up 57 registers.

Control Output

The output of the Control Output block contains the fields described below:

Control Output Fields

Field

Type

Address offset

Description

Command Sequence Number 16u 0 The command sequence number received from the client in the Control Input.
Command Status 16u 1

Status of the command, referenced by the Command Sequence Number.

0 = No Command Received

1 = In Progress

2 = Success

3 = Fail

This field takes up 1 register.

System State

The output of the System State block contains the fields described below:

System State Fields

Field

Type

Address offset

Description

System Uptime 64u 0

Amount of time the application has been running, in seconds.

System State 16u 4

Whether system is running or not.

0 = System is stopped

1 = System is running

Current Job File Name Length 16u 5 Number of characters in the current job file name.
Current Job File Name 16u 6

Name of the job file currently loaded into the system, including extension.

Maximum length of job file name is 64 characters. Each register contains a single character.

Job file name is not null terminated.

Buffer Count 16u 70

The current amount of buffered scan output data when buffering is enabled.

Buffer Overflow 16u 71

A value of 0 indicates that no overflow has occurred.

A value of 1 indicates that overflow occurred and data is being lost.

This field takes up 1 register.

Sensor Group State

The output of the Sensor Group State block contains the fields described below:

Sensor Group State Fields

Field

Type

Address offset

Description

Current Encoder Position 64s 0 The current encoder position.
Current Sync Time 64u 4

Current time of the clock used to stamp all scan output messages, in microseconds.

Alignment State 16u 8

Indicates whether all devices under the sensor group are aligned (that is, devices in the sensor group all have a non-identity transform matrix).

0 = Not Aligned

1 = Aligned

2 = Aligning

Laser Enabled 16u 9

Whether one or more devices under a scanner has its laser enabled to be able to turn on. 

0 = All devices' lasers are disabled and cannot turn on

1 = One or more devices' lasers can be turned on

This field takes up 1 register.

Stamp

The output of the Stamp block contains the fields described below:

Stamp Fields

Field

Type

Address offset

Description

Z Position 64s 0 Encoder position at time of last index pulse of last frame. 
Encoder Position 64s 4 Encoder position of last frame when the image data was scanned/taken. 
Time 64u 8 Time stamp, in microseconds, of last frame.
Frame Index 64u 12

The frame number of the last frame.

This field takes up 4 registers.

Digital Input States 16u 16

Digital input states of last frame.

Bit 0: State of digital input 1 on master or sensor

Bit 1: State of digital input 2 on master or sensor

Measurement

The output of the Measurement Block contains the fields described below:

Measurement Fields

Field

Type

Address offset

Description

Value 32s 0

Measurement value. This value is the actual measurement value multiplied by 1000.

If the measurement value is invalid, the first register of the measurement value is set to 0x80000000.

This means the first register of the measurement value is set to 0x8000 and the second register value is 0x0000.

Decision 16u 2

Measurement decision.

Bit 0: 

0 = Fail

1 = Pass

Bit 1:

0 = Decision value is valid

1 = Decision value is invalid

This field takes up 1 register.