The SICK LMS1xx protocol handler allows the communication to the SICK laserscanner LMS1xx to receiver the status and the distance measurements of these sensors. The SICK protocol handler can only be used in conjunction with the SICK data handler.
Options
byteorder:
The byte order for the communication (optional)username:
The username for the administration of the laser scanner(optional)password:
The password for the administration of the laser scanner (optional)rawdata:
Should the rawdata sent by the scanner be added to the key-value object? (default: false)ignoretimestamp:
Should the scanner timestamp be replaced with the current stream time? (default: false) Note: this does not change the time stamp in the rawdata-string!
Schema
The output of the protocol handler provides the following attributes that can be used through the schema of the access operatoras a key-value object:
Name | Type | Description | ||
---|---|---|---|---|
TimestampTIMESTAMP | Long | The time of measurement in UTC (Time provided by scanner unless "ignoretimestamp" is set | ||
VERSIONVersion | String | The version of the laser scanenrscanner | ||
DeviceDEVICE | String | The device ID | ||
SerialSERIAL | String | The factory serial number | ||
StatusSTATUS | Integer | The status of the LMSscanner | ||
MessageCountMESSAGECOUNT | Integer | The message counter starting at the first measured value message. When the upper limit is reached, the counter starts again at 0. | ||
ScanCountSCANCOUNT | Integer | The scan counter starting with the first scan after confirmation of the measured value message. When the upper limit is reached, the counter starts again at 0. | ||
PowerUpDurationPOWERUPDURATION | Long | The time since the LMS scanner was switched on. | ||
TransmissionDurationTRANSMISSIONDURATION | Long | The time since the transfer of the meaasured measured values | ||
InputStatusINPUTSTATUS | Boolean | The state of the digital inputs | ||
OutputStatusOUTPUTSTATUS | Boolean | The state of the digital outputs | ||
ScanningFrequencySCANNINGFREQUENCY | Long | The scanning frequency | ||
MeasurementFrequencyMEASUREMENTFREQUENCY | Long | The frequency between two separate measurements | ||
POSITION | Matrix | The position | ||
POSITIONROTATIONTYPE | Integer | The position rotation type | ||
DISTANCE8BIT | Matrix | The measured distance values (8bit) | ||
REMISSION8BIT | Vector | The measured remission (8bit) | ||
DISTANCE8BIT2 | Matrix | The measured distance values (8bit) | ||
REMISSION8BIT2 | Vector | The measured remission (8bit) | ||
DISTANCE16BIT | Matrix | Dist1 | List<SpatialPolarCoordinate> | The measured distance values (16bit) |
Rssi1REMISSION16BIT | List<Double>Vector | The measured remission (16bit) | ||
Dist2DISTANCE16BIT2 | List<SpatialPolarCoordinate>Matrix | The measured distance values (16bit) | ||
Rssi2REMISSION16BIT2 | List<Double>Vector | The measured remission (16bit) | ||
RAWDATA | String | The original raw data sent by the scanner (enabled by the "rawdata" option) |
Example
To access the different attribute values the KeyValueToTuple operator can be used to transform the required attributes into a relational tuple.
PQL
Code Block | theme | Eclipse|||||
---|---|---|---|---|---|---|
| ||||||
input = ACCESS({source='lms1', wrapper='GenericPush', transport='TCPClient', protocol='SICKLMS1xx', dataHandler='SICKKeyValueObject', options=[['host','192.168.1.20'],['port','2111']], }) out schema=[ = KEYVALUETOTUPLE({ schema=[['dist1DISTANCE16BIT', 'SpatialPolarCoordinateMatrix']], ] }) |
CQL
Code Block | ||||||||
---|---|---|---|---|---|---|---|---|
| ||||||||
CREATE STREAM lms1 (dist1 SpatialPolarCoordinate) WRAPPER type='GenericPushScan' PROTOCOL 'SICK' TRANSPORT 'File' DATAHANDLER 'Tuple' OPTIONS ( 'host' '192.168.1.20', 'port' '2111', keepinput='false' }, input ) |