When a serial communication, like e.g. CAN, LIN or SENT is decoded, stream of data is obtained. This data usually contains one or more specific values that need to be monitored. The Value Extractor I/O can be used to extract such values from the data stream and present them in a graph, meter and/or table sink.
The Value Extractor I/O is connected to the output of a decoder I/O. Supported decoder I/Os are:
Below a measurement on a SENT bus, where the data is decoded by a SENT decoder and a specific sensor value is extracted with a Value extractor I/O and shown in the graph.
To control the behavior of the Value extractor I/O, several properties and actions are available.
These can be accessed through a popup menu which is shown when the I/O is right clicked in the Object screen.
The properties can also be accessed through its settings window which is shown when the I/O is double clicked in the Object screen.
To open the Object screen, click the
Show object screen button.
By default, the settings window only shows the most used settings. When Advanced is ticked, the extended window with all settings is shown. See also the program settings.
When no decoder is connected yet to the Value extractor, the setting Type is used to determine for which protocol values have to be extracted. Possible values are:
When setting Type to a value other than None, additional properties specific for the selected protocol decoder become available in the Value extractor I/O.
When a type is selected and the Value extractor is then connected to a different decoder, the type of the connected decoder overrules the manually selected type.
When connected to a specific protocol decoder I/O, properties specific for that protocol decoder become available in the Value extractor I/O. Select the tab for the properties of the required protocol decoder.
I2C messages are always to and from a specific device on the bus, with a specific address. Selecting the required address makes the Value extractor monitor only messages to and from that address.
Based on the selected filter, specific messages can be filtered from the transmitted data on the bus.
| Filter | Description |
|---|---|
| Read | Read instructions are filtered out |
| Write | Write instructions are filtered out |
| Read command | Read instructions with a specific command are filtered out |
| Write command | Write instructions with a specific command are filtered out |
When filter Read command or Write command are selected, the Command bytes can be entered here.
It is possible to extract a generic value, either an integer, an unsigned integer or a floating point number from the data field in the message.
It is possible to define which bits must be used from the data field in the message to use for the required value. It can either be a range of bits together with a starting position, or an expression can be used to define which bits need to be used. The options are:
When selecting a sub range of bits from the total data field on the message, the Start index is used to indicate where this sub range starts.
By using a special Expression, specific bytes or bits can be selected to extract, to form the requested value.
Bytes are counted starting at 1. Bits are counted starting at 0, where the least significant bit is right most. An example for 4 bytes is shown here:
The table below shows some expression examples with explanations.
| Expression | Description | Note |
|---|---|---|
| 1 2 | Extract bytes 1 and 2 and combine them to a 16 bit word | Big endian |
| 1 .. 4 | Extract bytes 1 to 4 and combine them to a 32 bit word | Big endian |
| 4 .. 1 | Extract bytes 4 to 1 in reversed order and combine them to a 32 bit word | Little endian |
| 1[3..0] .. 4[7..4] | Extract bits 3 to 0 from byte 1, byte 2, byte 3 and bits 7 to 4 of byte 4 and combine them to a 24 bit word. | |
| (4 .. 3)[12..4] | Extract bytes 4 to 3 in reversed order. From the resulting 16 bit word, extract the bits 12 to 4 | |
| (4 .. 3)[4..12] | Extract bytes 4 to 3 in reversed order. From the resulting 16 bit word, extract the bits 4 to 12, in reversed order | Reverses bits |
| (4 .. 3)[15] (4 .. 3)[12..4] | Extract bytes 4 to 3 in reversed order. From the resulting 16 bit word, extract bit 15 Also extract bits 12 to 4 and place these behind the original bit 15. The result is a 10 bits word. | |
| ( 1[3..0] .. 4[7..4] )[3..2] | Extract bits 3 to 0 from byte 1, byte 2, byte 3 and bits 7 to 4 of byte 4 and combine them to a 24 bit word. From that 24 bit word, extract bytes 3 and 2 in reversed order and combine them to a 16 bit word. |
Endianess is the order in which multiple bytes that form one value are transmitted over the bus. This is also the order in which the multiple bytes are stored in the data section of the message.
When decoding a multi byte value, the endianess must be set to the correct value, otherwise decoding errors are made and wrong values are decoded. Endinaness is only relevant when a generic value like an integer, unsigned integer or floating point number is extracted.
The value that is extracted may require a conversion, to show it in a specific unit. A Conversion can be selected to convert the extracted value to a value in the required unit. Depending on the selected conversion, additional settings can become available.
No conversion is applied, the value that is extracted, is presented at the output of the Value extractor I/O.
The extracted value is converted using a gain and an offset that can be entered.
Output = ( Gain * extracted value ) + Offset
A Gain value that is multiplied with the extracted value.
An Offset value that is added to the extracted value.
Each CAN message contains an ID. By entering this ID in the corresponding field, only messages with this ID will be monitored.
It is possible to extract a generic value, either an integer, an unsigned integer or a floating point number from the data field in the message.
It is possible to define which bits must be used from the data field in the message to use for the required value. It can either be a range of bits together with a starting position, or an expression can be used to define which bits need to be used. The options are:
When selecting a sub range of bits from the total data field on the message, the Start index is used to indicate where this sub range starts.
By using a special Expression, specific bytes or bits can be selected to extract, to form the requested value.
Bytes are counted starting at 1. Bits are counted starting at 0, where the least significant bit is right most. An example for 4 bytes is shown here:
The table below shows some expression examples with explanations.
| Expression | Description | Note |
|---|---|---|
| 1 2 | Extract bytes 1 and 2 and combine them to a 16 bit word | Big endian |
| 1 .. 4 | Extract bytes 1 to 4 and combine them to a 32 bit word | Big endian |
| 4 .. 1 | Extract bytes 4 to 1 in reversed order and combine them to a 32 bit word | Little endian |
| 1[3..0] .. 4[7..4] | Extract bits 3 to 0 from byte 1, byte 2, byte 3 and bits 7 to 4 of byte 4 and combine them to a 24 bit word. | |
| (4 .. 3)[12..4] | Extract bytes 4 to 3 in reversed order. From the resulting 16 bit word, extract the bits 12 to 4 | |
| (4 .. 3)[4..12] | Extract bytes 4 to 3 in reversed order. From the resulting 16 bit word, extract the bits 4 to 12, in reversed order | Reverses bits |
| (4 .. 3)[15] (4 .. 3)[12..4] | Extract bytes 4 to 3 in reversed order. From the resulting 16 bit word, extract bit 15 Also extract bits 12 to 4 and place these behind the original bit 15. The result is a 10 bits word. | |
| ( 1[3..0] .. 4[7..4] )[3..2] | Extract bits 3 to 0 from byte 1, byte 2, byte 3 and bits 7 to 4 of byte 4 and combine them to a 24 bit word. From that 24 bit word, extract bytes 3 and 2 in reversed order and combine them to a 16 bit word. |
Endianess is the order in which multiple bytes that form one value are transmitted over the bus. This is also the order in which the multiple bytes are stored in the data section of the message.
When decoding a multi byte value, the endianess must be set to the correct value, otherwise decoding errors are made and wrong values are decoded. Endinaness is only relevant when a generic value like an integer, unsigned integer or floating point number is extracted.
The value that is extracted may require a conversion, to show it in a specific unit. A Conversion can be selected to convert the extracted value to a value in the required unit. Depending on the selected conversion, additional settings can become available.
No conversion is applied, the value that is extracted, is presented at the output of the Value extractor I/O.
The extracted value is converted using a gain and an offset that can be entered.
Output = ( Gain * extracted value ) + Offset
A Gain value that is multiplied with the extracted value.
An Offset value that is added to the extracted value.
The Value extractor I/O extracts CANopen values directly from the decoded CAN messages, therefore it must be connected to the output of a CAN decoder I/O.
Based on the selected Filter, a specific message is filtered from the transmitted data on the bus:
| Filter | Description | |||
|---|---|---|---|---|
| SDO download/write | Service Data Object download/write | |||
| SDO upload/read | Service Data Object upload/read | |||
| PDO1 transmitted | Process Data Object 1 transmitted | |||
| PDO1 received | Process Data Object 1 received | |||
| PDO2 transmitted | Process Data Object 2 transmitted | |||
| PDO2 received | Process Data Object 2 received | |||
| PDO3 transmitted | Process Data Object 3 transmitted | |||
| PDO3 received | Process Data Object 3 received | |||
| PDO4 transmitted | Process Data Object 4 transmitted | |||
| PDO4 received | Process Data Object 4 received | |||
| Expression | Description | Note |
|---|---|---|
| 1 2 | Extract bytes 1 and 2 and combine them to a 16 bit word | Big endian |
| 1 .. 4 | Extract bytes 1 to 4 and combine them to a 32 bit word | Big endian |
| 4 .. 1 | Extract bytes 4 to 1 in reversed order and combine them to a 32 bit word | Little endian |
| 1[3..0] .. 4[7..4] | Extract bits 3 to 0 from byte 1, byte 2, byte 3 and bits 7 to 4 of byte 4 and combine them to a 24 bit word. | |
| (4 .. 3)[12..4] | Extract bytes 4 to 3 in reversed order. From the resulting 16 bit word, extract the bits 12 to 4 | |
| (4 .. 3)[4..12] | Extract bytes 4 to 3 in reversed order. From the resulting 16 bit word, extract the bits 4 to 12, in reversed order | Reverses bits |
| (4 .. 3)[15] (4 .. 3)[12..4] | Extract bytes 4 to 3 in reversed order. From the resulting 16 bit word, extract bit 15 Also extract bits 12 to 4 and place these behind the original bit 15. The result is a 10 bits word. | |
| ( 1[3..0] .. 4[7..4] )[3..2] | Extract bits 3 to 0 from byte 1, byte 2, byte 3 and bits 7 to 4 of byte 4 and combine them to a 24 bit word. From that 24 bit word, extract bytes 3 and 2 in reversed order and combine them to a 16 bit word. |
Endianess is the order in which multiple bytes that form one value are transmitted over the bus. This is also the order in which the multiple bytes are stored in the data section of the message.
When decoding a multi byte value, the endianess must be set to the correct value, otherwise decoding errors are made and wrong values are decoded. Endinaness is only relevant when a generic value like an integer, unsigned integer or floating point number is extracted.
The value that is extracted may require a conversion, to show it in a specific unit. A Conversion can be selected to convert the extracted value to a value in the required unit. Depending on the selected conversion, additional settings can become available.
No conversion is applied, the value that is extracted, is presented at the output of the Value extractor I/O.
The extracted value is converted using a gain and an offset that can be entered.
Output = ( Gain * extracted value ) + Offset
A Gain value that is multiplied with the extracted value.
An Offset value that is added to the extracted value.
The Value extractor I/O extracts J1939 values directly from the decoded CAN messages, therefore it must be connected to the output of a CAN decoder I/O. It replaces the J1939 decoder I/O.
The action Select SPN ... opens a dialog in which an SPN can be selected to be extracted.
The dialog lists all J1939 standard Suspect Parameter Numbers (SPNs), ordered by Parameter Group Number (PGN). The text area at the right shows information about the highlighted PGN or SPN. When only show observed IDs is checked, the SPN list is reduced to only the ones contained in PGNs that were detected in the CAN input data.
To enable quick searching of parameters, further reducing the list is possible by using a filter string. Only PGNs and SPNs with a name satisfying the filter text are shown. By default, all filter keywords must be present in the name, but is also possible to exclude keywords by adding a minus symbol (-) in front of the keyword. The following filter for example will cause only PGNs and SPNs containing the word "temperature" but not "gas" to be listed:
temperature - gas
When the required ID is selected, clicking the OK button will extract the selected ID.
The J1939 standard leaves room for custom PGNs and SPNs. Manufacturers can use these to transfer information that is not covered in the J1939 standard. Custom outputs can be added to the J1939 decoder to extract this information, by loading SPN information from an INI file.
Each J1939 message contains an eight byte block of data, called a parameter group. This parameter group contains one or more suspect parameters. The INI file describes how they are encoded in the data and what their function, unit and valid ranges are. You can create an INI file section for each desired SPN as in the following example:
; Field extraction information for [PGN.SPN]: [61444.190] Name=Engine_Speed Position=24 Size=16 Gain=0.125 Offset=0 Min=0 Max=8031.88 Unit=rpm
Explanation:
The example values result in a suspect parameter with PGN 61444 and SPN 190, called Engine_Speed, with a valid range of 0 to 8031.88 rpm and a resolution of 0.125 rpm.
Based on the selected filter, specific messages can be filtered from the transmitted data on the bus. Some protocols using UART use 9 data bits and reserve bit number 9 as address flag, meaning that the other 8 bits contain an address.
| Filter | Description |
|---|---|
| After break | extraction starts after a Break |
| Match after break | extraction starts after a Break and a matching pattern |
| Match | extraction starts after a matching pattern |
| Address | extraction starts after a specific address |
| Address plus match | extraction starts after a specific address and a matching pattern |
When filter Address or Address plus match is selected, an Address can be filled in here.
When filter Match, Match after break or Address plus match is selected, the field Match bytes is used to enter the matching pattern that is looked for.
It is possible to extract a generic value, either an integer, an unsigned integer or a floating point number from the data field in the message.
It is possible to define which bits must be used from the data field in the message to use for the required value. It can either be a range of bits together with a starting position, or an expression can be used to define which bits need to be used. The options are:
When selecting a sub range of bits from the total data field on the message, the Start index is used to indicate where this sub range starts.
By using a special Expression, specific bytes or bits can be selected to extract, to form the requested value.
Bytes are counted starting at 1. Bits are counted starting at 0, where the least significant bit is right most. An example for 4 bytes is shown here:
The table below shows some expression examples with explanations.
| Expression | Description | Note |
|---|---|---|
| 1 2 | Extract bytes 1 and 2 and combine them to a 16 bit word | Big endian |
| 1 .. 4 | Extract bytes 1 to 4 and combine them to a 32 bit word | Big endian |
| 4 .. 1 | Extract bytes 4 to 1 in reversed order and combine them to a 32 bit word | Little endian |
| 1[3..0] .. 4[7..4] | Extract bits 3 to 0 from byte 1, byte 2, byte 3 and bits 7 to 4 of byte 4 and combine them to a 24 bit word. | |
| (4 .. 3)[12..4] | Extract bytes 4 to 3 in reversed order. From the resulting 16 bit word, extract the bits 12 to 4 | |
| (4 .. 3)[4..12] | Extract bytes 4 to 3 in reversed order. From the resulting 16 bit word, extract the bits 4 to 12, in reversed order | Reverses bits |
| (4 .. 3)[15] (4 .. 3)[12..4] | Extract bytes 4 to 3 in reversed order. From the resulting 16 bit word, extract bit 15 Also extract bits 12 to 4 and place these behind the original bit 15. The result is a 10 bits word. | |
| ( 1[3..0] .. 4[7..4] )[3..2] | Extract bits 3 to 0 from byte 1, byte 2, byte 3 and bits 7 to 4 of byte 4 and combine them to a 24 bit word. From that 24 bit word, extract bytes 3 and 2 in reversed order and combine them to a 16 bit word. |
Endianess is the order in which multiple bytes that form one value are transmitted over the bus. This is also the order in which the multiple bytes are stored in the data section of the message.
When decoding a multi byte value, the endianess must be set to the correct value, otherwise decoding errors are made and wrong values are decoded. Endinaness is only relevant when a generic value like an integer, unsigned integer or floating point number is extracted.
The value that is extracted may require a conversion, to show it in a specific unit. A Conversion can be selected to convert the extracted value to a value in the required unit. Depending on the selected conversion, additional settings can become available.
No conversion is applied, the value that is extracted, is presented at the output of the Value extractor I/O.
The extracted value is converted using a gain and an offset that can be entered.
Output = ( Gain * extracted value ) + Offset
A Gain value that is multiplied with the extracted value.
An Offset value that is added to the extracted value.
Based on the selected filter, specific messages can be filtered from the transmitted data on the bus.
When filter Match is selected, the field Match bytes is used to enter the matching pattern that is looked for.
It is possible to extract a generic value, either an integer, an unsigned integer or a floating point number from the data field in the message.
It is possible to define which bits must be used from the data field in the message to use for the required value. It can either be a range of bits together with a starting position, or an expression can be used to define which bits need to be used. The options are:
When selecting a sub range of bits from the total data field on the message, the Start index is used to indicate where this sub range starts.
By using a special Expression, specific bytes or bits can be selected to extract, to form the requested value.
Bytes are counted starting at 1. Bits are counted starting at 0, where the least significant bit is right most. An example for 4 bytes is shown here:
The table below shows some expression examples with explanations.
| Expression | Description | Note |
|---|---|---|
| 1 2 | Extract bytes 1 and 2 and combine them to a 16 bit word | Big endian |
| 1 .. 4 | Extract bytes 1 to 4 and combine them to a 32 bit word | Big endian |
| 4 .. 1 | Extract bytes 4 to 1 in reversed order and combine them to a 32 bit word | Little endian |
| 1[3..0] .. 4[7..4] | Extract bits 3 to 0 from byte 1, byte 2, byte 3 and bits 7 to 4 of byte 4 and combine them to a 24 bit word. | |
| (4 .. 3)[12..4] | Extract bytes 4 to 3 in reversed order. From the resulting 16 bit word, extract the bits 12 to 4 | |
| (4 .. 3)[4..12] | Extract bytes 4 to 3 in reversed order. From the resulting 16 bit word, extract the bits 4 to 12, in reversed order | Reverses bits |
| (4 .. 3)[15] (4 .. 3)[12..4] | Extract bytes 4 to 3 in reversed order. From the resulting 16 bit word, extract bit 15 Also extract bits 12 to 4 and place these behind the original bit 15. The result is a 10 bits word. | |
| ( 1[3..0] .. 4[7..4] )[3..2] | Extract bits 3 to 0 from byte 1, byte 2, byte 3 and bits 7 to 4 of byte 4 and combine them to a 24 bit word. From that 24 bit word, extract bytes 3 and 2 in reversed order and combine them to a 16 bit word. |
Endianess is the order in which multiple bytes that form one value are transmitted over the bus. This is also the order in which the multiple bytes are stored in the data section of the message.
When decoding a multi byte value, the endianess must be set to the correct value, otherwise decoding errors are made and wrong values are decoded. Endinaness is only relevant when a generic value like an integer, unsigned integer or floating point number is extracted.
The value that is extracted may require a conversion, to show it in a specific unit. A Conversion can be selected to convert the extracted value to a value in the required unit. Depending on the selected conversion, additional settings can become available.
No conversion is applied, the value that is extracted, is presented at the output of the Value extractor I/O.
The extracted value is converted using a gain and an offset that can be entered.
Output = ( Gain * extracted value ) + Offset
A Gain value that is multiplied with the extracted value.
An Offset value that is added to the extracted value.
LIN transmits messages with a Frame ID. Enter the required Frame ID in the FID to get the required messages.
It is possible to extract a generic value, either an integer, an unsigned integer or a floating point number from the data field in the message.
It is possible to define which bits must be used from the data field in the message to use for the required value. It can either be a range of bits together with a starting position, or an expression can be used to define which bits need to be used. The options are:
When selecting a sub range of bits from the total data field on the message, the Start index is used to indicate where this sub range starts.
By using a special Expression, specific bytes or bits can be selected to extract, to form the requested value.
Bytes are counted starting at 1. Bits are counted starting at 0, where the least significant bit is right most. An example for 4 bytes is shown here:
The table below shows some expression examples with explanations.
| Expression | Description | Note |
|---|---|---|
| 1 2 | Extract bytes 1 and 2 and combine them to a 16 bit word | Big endian |
| 1 .. 4 | Extract bytes 1 to 4 and combine them to a 32 bit word | Big endian |
| 4 .. 1 | Extract bytes 4 to 1 in reversed order and combine them to a 32 bit word | Little endian |
| 1[3..0] .. 4[7..4] | Extract bits 3 to 0 from byte 1, byte 2, byte 3 and bits 7 to 4 of byte 4 and combine them to a 24 bit word. | |
| (4 .. 3)[12..4] | Extract bytes 4 to 3 in reversed order. From the resulting 16 bit word, extract the bits 12 to 4 | |
| (4 .. 3)[4..12] | Extract bytes 4 to 3 in reversed order. From the resulting 16 bit word, extract the bits 4 to 12, in reversed order | Reverses bits |
| (4 .. 3)[15] (4 .. 3)[12..4] | Extract bytes 4 to 3 in reversed order. From the resulting 16 bit word, extract bit 15 Also extract bits 12 to 4 and place these behind the original bit 15. The result is a 10 bits word. | |
| ( 1[3..0] .. 4[7..4] )[3..2] | Extract bits 3 to 0 from byte 1, byte 2, byte 3 and bits 7 to 4 of byte 4 and combine them to a 24 bit word. From that 24 bit word, extract bytes 3 and 2 in reversed order and combine them to a 16 bit word. |
Endianess is the order in which multiple bytes that form one value are transmitted over the bus. This is also the order in which the multiple bytes are stored in the data section of the message.
When decoding a multi byte value, the endianess must be set to the correct value, otherwise decoding errors are made and wrong values are decoded. Endinaness is only relevant when a generic value like an integer, unsigned integer or floating point number is extracted.
The value that is extracted may require a conversion, to show it in a specific unit. A Conversion can be selected to convert the extracted value to a value in the required unit. Depending on the selected conversion, additional settings can become available.
No conversion is applied, the value that is extracted, is presented at the output of the Value extractor I/O.
The extracted value is converted using a gain and an offset that can be entered.
Output = ( Gain * extracted value ) + Offset
A Gain value that is multiplied with the extracted value.
An Offset value that is added to the extracted value.
DMX512 transmits frames that contain several data bytes, here called "slots". The first slot, slot 0, is reserved for a "Start Code" that specifies the type of data in the packet. Next follow up to 512 slots of channel data, each containing one byte
In the field Start code a specific code can be entered to filter the correct messages from the data stream.
It is possible to extract a generic value, either an integer, an unsigned integer or a floating point number from the data field in the message.
It is possible to define which bits must be used from the data field in the message to use for the required value. It can either be a range of bits together with a starting position, or an expression can be used to define which bits need to be used. The options are:
When selecting a sub range of bits from the total data field on the message, the Start slot is used to indicate where this sub range starts.
By using a special Expression, specific bytes or bits can be selected to extract, to form the requested value.
Bytes are counted starting at 1. Bits are counted starting at 0, where the least significant bit is right most. An example for 4 bytes is shown here:
The table below shows some expression examples with explanations.
| Expression | Description | Note |
|---|---|---|
| 1 2 | Extract bytes 1 and 2 and combine them to a 16 bit word | Big endian |
| 1 .. 4 | Extract bytes 1 to 4 and combine them to a 32 bit word | Big endian |
| 4 .. 1 | Extract bytes 4 to 1 in reversed order and combine them to a 32 bit word | Little endian |
| 1[3..0] .. 4[7..4] | Extract bits 3 to 0 from byte 1, byte 2, byte 3 and bits 7 to 4 of byte 4 and combine them to a 24 bit word. | |
| (4 .. 3)[12..4] | Extract bytes 4 to 3 in reversed order. From the resulting 16 bit word, extract the bits 12 to 4 | |
| (4 .. 3)[4..12] | Extract bytes 4 to 3 in reversed order. From the resulting 16 bit word, extract the bits 4 to 12, in reversed order | Reverses bits |
| (4 .. 3)[15] (4 .. 3)[12..4] | Extract bytes 4 to 3 in reversed order. From the resulting 16 bit word, extract bit 15 Also extract bits 12 to 4 and place these behind the original bit 15. The result is a 10 bits word. | |
| ( 1[3..0] .. 4[7..4] )[3..2] | Extract bits 3 to 0 from byte 1, byte 2, byte 3 and bits 7 to 4 of byte 4 and combine them to a 24 bit word. From that 24 bit word, extract bytes 3 and 2 in reversed order and combine them to a 16 bit word. |
Endianess is the order in which multiple bytes that form one value are transmitted over the bus. This is also the order in which the multiple bytes are stored in the data section of the message.
When decoding a multi byte value, the endianess must be set to the correct value, otherwise decoding errors are made and wrong values are decoded. Endinaness is only relevant when a generic value like an integer, unsigned integer or floating point number is extracted.
The value that is extracted may require a conversion, to show it in a specific unit. A Conversion can be selected to convert the extracted value to a value in the required unit. Depending on the selected conversion, additional settings can become available.
No conversion is applied, the value that is extracted, is presented at the output of the Value extractor I/O.
The extracted value is converted using a gain and an offset that can be entered.
Output = ( Gain * extracted value ) + Offset
A Gain value that is multiplied with the extracted value.
An Offset value that is added to the extracted value.
SENT can transfer several different types of data. The Value extractor can filter on a specific type and return only that type of data. Possible types of data are:
Based on the selected filter, specific values can be extracted from the transmitted data on the bus. Refer to the data sheet of the sensor for the meaning of the specific values. It is also possible to extract a generic value, either an integer, an unsigned integer or a floating point number from the data field in the message.
| Fast | Fast multiplexed | Serial | Serial enhanced | |
|---|---|---|---|---|
| H1 Ch1 (12 bits) | F1_1 Ch (12 bits) | F2_3 Ch (16 bits) | Serial value | Serial value |
| H1 Ch2 (12 bits) | F1_1 App.data (8 bits) | F2_4 Counter (4 bits) | Integer | Integer |
| H2 Ch (12 bits) | F1_2 Ch (12 bits) | F2_4 Ch (16 bits) | Unsigned integer | Unsigned integer |
| H3 Ch (12 bits) | F1_3 Ch (12 bits) | F3_1 Ch1 (12 bits) | Floating point | Floating point |
| H4 Ch (12 bits) | F1_4 Counter (4 bits) | F3_1 Ch2 (8 bits) | ||
| H4 Counter (8 bits) | F1_4 Ch (12 bits) | F3_2 Ch1 (10 bits) | ||
| H5 Ch (12 bits) | F1_4 App.data (4 bits) | F3_2 Ch2 (10 bits) | ||
| H6 Ch1 (14 bits) | F1_5 Counter (4 bits) | F3_3 Ch1 (16 bits) | ||
| H6 Ch2 (10 bits) | F1_5 Ch (12 bits) | F3_3 Ch2 (12 bits) | ||
| H7 Ch1 (16 bits) | F1_6 Counter (4 bits) | F3_4 Ch1 (14 bits) | ||
| H7 Ch2 (8 bits) | F1_6 Ch (12 bits) | F3_4 Ch2 (14 bits) | ||
| Integer | F2_1 Ch (16 bits) | F3_5 Counter (4 bits) | ||
| Unsigned integer | F2_1 App.data (4 bits) | F3_5 Ch1 (12 bits) | ||
| Floating point | F2_2 Ch (16 bits) | F3_5 Ch2 (12 bits) | ||
| Integer | ||||
| Unsigned integer | ||||
| Floating point | ||||
When an Integer, an Unsigned integer or a Floating point number is extracted, it is possible to define which bits must be used from the data field in the message to use for the required value. It can either be a range of bits together with a starting position, or an expression can be used to define which bits need to be used. The options are:
When selecting a sub range of bits from the total data field on the message, the Start index is used to indicate where this sub range starts.
By using a special Expression, specific bytes or bits can be selected to extract, to form the requested value.
Bytes are counted starting at 1. Bits are counted starting at 0, where the least significant bit is right most. An example for 4 bytes is shown here:
The table below shows some expression examples with explanations.
| Expression | Description | Note |
|---|---|---|
| 1 2 | Extract bytes 1 and 2 and combine them to a 16 bit word | Big endian |
| 1 .. 4 | Extract bytes 1 to 4 and combine them to a 32 bit word | Big endian |
| 4 .. 1 | Extract bytes 4 to 1 in reversed order and combine them to a 32 bit word | Little endian |
| 1[3..0] .. 4[7..4] | Extract bits 3 to 0 from byte 1, byte 2, byte 3 and bits 7 to 4 of byte 4 and combine them to a 24 bit word. | |
| (4 .. 3)[12..4] | Extract bytes 4 to 3 in reversed order. From the resulting 16 bit word, extract the bits 12 to 4 | |
| (4 .. 3)[4..12] | Extract bytes 4 to 3 in reversed order. From the resulting 16 bit word, extract the bits 4 to 12, in reversed order | Reverses bits |
| (4 .. 3)[15] (4 .. 3)[12..4] | Extract bytes 4 to 3 in reversed order. From the resulting 16 bit word, extract bit 15 Also extract bits 12 to 4 and place these behind the original bit 15. The result is a 10 bits word. | |
| ( 1[3..0] .. 4[7..4] )[3..2] | Extract bits 3 to 0 from byte 1, byte 2, byte 3 and bits 7 to 4 of byte 4 and combine them to a 24 bit word. From that 24 bit word, extract bytes 3 and 2 in reversed order and combine them to a 16 bit word. |
Endianess is the order in which multiple bytes that form one value are transmitted over the bus. This is also the order in which the multiple bytes are stored in the data section of the message.
When decoding a multi byte value, the endianess must be set to the correct value, otherwise decoding errors are made and wrong values are decoded. Endinaness is only relevant when a generic value like an integer, unsigned integer or floating point number is extracted.
The value that is extracted may require a conversion, to show it in a specific unit. A Conversion can be selected to convert the extracted value to a value in the required unit. Depending on the selected conversion, additional settings can become available. Refer to the documentation of the sensor that is being measured, for the correct Conversion that is required.
| Conversion | Description | Note |
|---|---|---|
| None | No conversion is applied, the value that is extracted, is presented at the output of the Value extractor I/O. | |
| Gain / Offset |
The extracted value is converted using a gain and an offset that can be entered. Output = ( Gain * extracted value ) + Offset |
|
| Linear X1,Y1 X2,Y2 |
The sensor has a linear characteristic that runs between two points, point (X1, Y1) and point (X2, Y2),
which coordinates must be entered. The equation of the characteristic is determined, resulting in a Gain and an Offset value, used to calculate the output value. Output = ( Gain * extracted value ) + Offset |
Sensor specific |
| Temperature (K) | The extracted value is converted to a temperature reading in K. | Sensor specific |
| Temperature (°C) | The extracted value is converted to a temperature reading in °C. | Sensor specific |
| Temperature high (K) | The extracted value is converted to a temperature reading in K. | Sensor specific |
| Temperature high(°C) | The extracted value is converted to a temperature reading in °C. | Sensor specific |
| Ratio (%) | The sensor generates a value, which is converted to a ratio in % | Sensor specific |
When Conversion Gain / Offset is selected, fields are available to enter a Gain value that is multiplied with the extracted value and an Offset value that is added to the extracted value.
When Conversion Linear is selected, fields are available to enter values X1, Y1, X2 and Y2, to determine the characteristic of the sensor and calculate the output value.
Enter the Frame ID here for the messages that need to be monitored.
Based on the selected filter, specific values can be extracted from the transmitted data on the bus. Refer to the data sheet of the sensor for the meaning of the specific values. It is also possible to extract a generic value, either an integer, an unsigned integer or a floating point number from the data field in the message.
When an Integer, an Unsigned integer or a Floating point number is extracted, it is possible to define which bits must be used from the data field in the message to use for the required value. It can either be a range of bits together with a starting position, or an expression can be used to define which bits need to be used. The options are:
When selecting a sub range of bits from the total data field on the message, the Start index is used to indicate where this sub range starts.
By using a special Expression, specific bytes or bits can be selected to extract, to form the requested value.
Bytes are counted starting at 1. Bits are counted starting at 0, where the least significant bit is right most. An example for 4 bytes is shown here:
The table below shows some expression examples with explanations.
| Expression | Description | Note |
|---|---|---|
| 1 2 | Extract bytes 1 and 2 and combine them to a 16 bit word | Big endian |
| 1 .. 4 | Extract bytes 1 to 4 and combine them to a 32 bit word | Big endian |
| 4 .. 1 | Extract bytes 4 to 1 in reversed order and combine them to a 32 bit word | Little endian |
| 1[3..0] .. 4[7..4] | Extract bits 3 to 0 from byte 1, byte 2, byte 3 and bits 7 to 4 of byte 4 and combine them to a 24 bit word. | |
| (4 .. 3)[12..4] | Extract bytes 4 to 3 in reversed order. From the resulting 16 bit word, extract the bits 12 to 4 | |
| (4 .. 3)[4..12] | Extract bytes 4 to 3 in reversed order. From the resulting 16 bit word, extract the bits 4 to 12, in reversed order | Reverses bits |
| (4 .. 3)[15] (4 .. 3)[12..4] | Extract bytes 4 to 3 in reversed order. From the resulting 16 bit word, extract bit 15 Also extract bits 12 to 4 and place these behind the original bit 15. The result is a 10 bits word. | |
| ( 1[3..0] .. 4[7..4] )[3..2] | Extract bits 3 to 0 from byte 1, byte 2, byte 3 and bits 7 to 4 of byte 4 and combine them to a 24 bit word. From that 24 bit word, extract bytes 3 and 2 in reversed order and combine them to a 16 bit word. |
Endianess is the order in which multiple bytes that form one value are transmitted over the bus. This is also the order in which the multiple bytes are stored in the data section of the message.
When decoding a multi byte value, the endianess must be set to the correct value, otherwise decoding errors are made and wrong values are decoded. Endinaness is only relevant when a generic value like an integer, unsigned integer or floating point number is extracted.
The value that is extracted may require a conversion, to show it in a specific unit. A Conversion can be selected to convert the extracted value to a value in the required unit. Depending on the selected conversion, additional settings can become available.
No conversion is applied, the value that is extracted, is presented at the output of the Value extractor I/O.
The extracted value is converted using a gain and an offset that can be entered.
Output = ( Gain * extracted value ) + Offset
A Gain value that is multiplied with the extracted value.
An Offset value that is added to the extracted value.