Object Model

Service Data Object (SDO)

The EtherCAT implementation on DataMan consists of the following Service Data Objects:

  • Control

  • Status

  • Inspection Result Header

  • Inspection Results

  • SoftEvent

  • SoftEvent Ack

  • User Data

Note: By default, all of these objects are mapped to Process Data Objects (PDOs). Writing to SDOs have no effect if the values are directly overwritten by PDO data. If you want to use them as SDOs, please remove the PDO mapping beforehand.

Control Object

Controls the reader. This object consists of data sent from the PLC to the DataMan reader.

Index: 7000

Total size: 1 byte

Bit Name Description
0 TriggerEnable Enables triggering through EtherCAT. Clearing this bit disables triggering.
1 Trigger

Triggers an acquisition when the following conditions are met:

  • Trigger Enable is set

  • No acquisition is currently in progress

  • The reader is ready to trigger

2 ResultsBufferEnable

Enables queuing of Result Data. If enabled, the current result data will remain until acknowledged, even if new results arrive. New results are queued. The next set of results are pulled from the queue, made available in the Result Data module, each time the current results are acknowledged.

The reader will respond to the acknowledge by clearing the Results Available bit. Once the Results Ack bit is cleared the next set of read results will be posted and Results Available will be set True.

If results buffering is not enabled newly received read results will simply overwrite the content of the Result Data module. The reader can buffer up to 50 and the base station can buffer up to 500 sets of read results.

3 ResultsAck Used to acknowledge that the PLC has successfully read the latest result data. When set True the Result Available bit will be cleared. If result buffering is enabled, the next set of result data will be pulled from the queue and Result Available will again be set True.
4-7 Reserved Reserved for future use.

Status Object

Indicates the current reader status. This object consists of data sent from the DataMan reader to the PLC.

Index: 6000

Total size: 2 bytes

Bit Name Description
0 TriggerReady Indicates when the reader is ready to accept a new trigger. True when Trigger Enable is set and the reader is ready to accept a new trigger.
1 TriggerAck

Indicates that the reader has received a new Trigger. Remains True as long as the Trigger bit remains True, that is, it is interlocked with the Trigger bit.

2 Reserved TBD
3 AcquisitionError Indicates that the reader was unable to successfully trigger an acquisition. Cleared when the next successful acquisition occurs.
4-7 Reserved Reserved for future use.
8 Decoding Set while decoding an image.
9 DecodeComplete Toggled on the completion of a decode operation when the new results are made available (0 to 1 or 1 to 0).
10 ResultBufferOverrun Indicates that the reader has discarded a set of read results because the results queue is full. Cleared when the next set of results are successfully queued.
11 ResultsAvailable Indicates that a new set of read results are available, that is, the contents of the Result Data module are valid. Cleared when the results are acknowledged.
12 GeneralFault Indicates that a fault has occurred, for example, a SoftEvent Set Match String or Execute DMCC error has occurred.
13-15 Reserved Reserved for future use.
Note: The AcquisitionError bit in the Status SDO will only be set if an acquisition triggered from the Control SDO could not get executed.

Inspection Result Header Object

Contains further information about the Result. This object consists of data sent from the reader to the PLC.

Index: 6002

Total size: 3 words

Index Name Description
6002:01 TriggerID Trigger identifier. ID of the next trigger to be issued.
6002:02 ResultID

The value of the Trigger ID when the trigger that generated these results was issued. Used to match up triggers with corresponding result data (16-bit integer).

6002:03 Inspection ResultCode

Indicates the success or failure of the read that produced these results (16-bit integer).

Bit Description
0

Read

1

Validated

2

Verified

3 Acquisition trigger overrun
4 Acquisition buffer overflow
5-15 Reserved

Inspection Results Object

Read result data sent from a reader to a PLC.

Index: 6003

Total size: 31 bytes

Byte Name Description
0...1 Result Length Actual number of bytes of Result Data contained in the Result Data field (16-bit integer).
2...30 Result Data

Decoded read result data (array of bytes).

SoftEvent Object

Used to initiate a SoftEvent.

Note: There is another object called SoftEvent Ack for data sent by the reader to acknowledge completion of the events issued with this object.

Index: 7001

Total size: 1 byte

Data written from the PLC to the reader:

Bit Name Description
0 Train Code Transition from 0 to 1 invokes the Train Code operation.
1 Train Match String

Transition from 0 to 1 invokes the train match string operation.

2 Train Focus Transition from 0 to 1 invokes the train focus operation.
3 Train Brightness Transition from 0 to 1 invokes the train brightness operation.
4 Untrain Transition from 0 to 1 invokes the untrain operation.
5 Reserved Reserved for future use.
6 Execute DMCC Transition from 0 to 1 invokes the DMCC operation. You must first place a valid DMCC command string in User Data before invoking this event.
7 Set Match String Transition from 0 to 1 invokes the set match string operation. You must first place match string data in User Data before invoking this event.

SoftEvent Ack Object

Used to acknowledge completion of a SoftEvent.

Note: There is another object called SoftEvent for data sent by the PLC to initiate the events acknowledged with this object.

Index: 6001

Total size: 1 byte

Data written from the reader to PLC:

Bit Name Description
0 Train Code Ack Indicates that the Train Code operation is complete.
1 Train Match String Ack

Indicates that the Train Match String operation is complete.

2 Train Focus Ack Indicates that the Train Focus operation is complete.
3 Train Brightness Ack Indicates that the Train Brightness operation is complete.
4 Untrain Ack Indicates that the Untrain operation is complete.
5 Reserved Reserved for future use.
6 Execute DMCC Ack Indicates that the Execute DMCC operation is complete.
7 Set Match String Ack Indicates that the Set Match String operation is complete.

User Data Object

Data sent from a PLC to a reader to support acquisition, decode and other special operations. Currently this object is only used to support the Execute DMCC and Set Match String SoftEvents.

Index: 7002

Size: 31 bytes

Byte Name Description
0...30 User Data

Data sent from the PLC to the reader to support acquisition, decoding, and other special operations (array of bytes).

Note: Requires a \0 termination character.
Note: For the Set Match String SoftEvent, the pattern is applied to all symbologies.

Process Data Object (PDO)

The following mapping is active by default:

PDO SDO
TxPDO1 Status
TxPDO2 SoftEventsAck
TxPDO3

TriggerID

ResultID

ResultCode

TxPDO4 InspectionResults
RxPDO1 Control
RxPDO2 SoftEvents
RxPDO3 UserData