Trolex AirXD Modbus Addresses

Modified on Thu, 21 Mar at 5:46 PM

The AIR XD contains the following three MODBUS registers: 


Input Registers - FC04

This is a read-only register containing factory programmed instrument parameters, including serial numbers, firmware versions and live data sets.

RegisterDescriptionData TypeUnits
0
Product TX numberUint16_t
1Firmware Version (major)Uint16_t

2Firmware Version (minor)
Uint16_t

3Firmware Version (patch)
Uint16_t

4Serial number (characters 1 & 2)Char
Ascii format
5Serial number (characters 3 & 4)
Char
Ascii format
6Serial number (characters 5 & 6)
Char
Ascii format
7Serial number (characters 7 & 8)
Char
Ascii format
8Serial number (characters 9 & 10)
Char
Ascii format
9Bin 0 to 0.46 μmUint16_t
Counts
10Bin 1 to 0.66 μm
Uint16_t
Counts
11Bin 2 to 0.89 μm
Uint16_t
Counts
12Bin 3 to 1.17 μm
Uint16_t
Counts
13Bin 4 to 1.47 μm
Uint16_t
Counts
14Bin 5 to 1.80 μm
Uint16_t
Counts
15Bin 6 to 2.5 μm
Uint16_t
Counts
16Bin 7 to 3.5 μm
Uint16_t
Counts
17Bin 8 to 4.51 μm
Uint16_t
Counts
18Bin 9 to 5.76 μm
Uint16_t
Counts
19Bin 10 to 7.25 μm
Uint16_t
Counts
20Bin 11 to 9 μmUint16_t
Counts
21Bin 12 to 11 μmUint16_t
Counts
22Bin 13 to 13 μmUint16_t
Counts
23Bin 14 to 15.01 μmUint16_t
Counts
24Bin 15 to 17.01 μm
Uint16_t
Counts
25Bin 16 to 19.02 μmUint16_t
Counts
26Bin 17 to 21.02 μm
Uint16_t
Counts
27Bin 18 to 25.76 μmUint16_t
Counts
28Bin 19 to 26.51 μmUint16_t
Counts
29Bin 20 to 29.51 μm
Uint16_t
Counts
30Bin 21 to 32.51 μm
Uint16_t
Counts
31Bin 22 to 35.51 μmUint16_t
Counts
32Bin 23 to 38.51 μm (140μg/m extended)Uint16_t
Counts
33Sampling periodUint16_tCounts
34Sample flow rateUint16_t0.01 ml/s/bit
35Sensor temperatureUint16_t0.01°C/bit
36Sensor humidityUint16_t0.01%/bit
37PM A size (lower 16 bits)Float32_t

μg/m^3

38PM A size (upper 16 bits)Float32_t
μg/m^3
39PM B size (lower 16 bits)
Float32_t
μg/m^3
40PM B size (upper 16 bits)
Float32_t
μg/m^3
41PM C size (lower 16 bits)
Float32_t
μg/m^3
42PM C size (upper 16 bits)
Float32_t
μg/m^3
43PM D size (lower 16 bits)
Float32_t
μg/m^3
44PM D size (upper 16 bits)
Float32_tμg/m^3
45TSP (lower 16 bits)Float32_t
μg/m^3
46TSP (upper 16 bits)
Float32_t
μg/m^3
47PM A "Average 1" (lower 16 bits)Float32_t
μg/m^3
48PM A "Average 1" (upper 16 bits)
Float32_t
μg/m^3
49PM B "Average 1" (lower 16 bits)
Float32_t
μg/m^3
50PM B "Average 1" (upper 16 bits)
Float32_t
μg/m^3
51PM C "Average 1" (lower 16 bits)
Float32_t
μg/m^3
52PM C "Average 1" (upper 16 bits)
Float32_t
μg/m^3
53PM D "Average 1" (lower 16 bits)
Float32_t
μg/m^3
54PM D "Average 1" (upper 16 bits)
Float32_t
μg/m^3
55TSP "Average 1" (lower 16 bits)
Float32_t
μg/m^3
56TSP "Average 1" (upper 16 bits)
Float32_t
μg/m^3
57PM A "Average 2" (lower 16 bits)
Float32_t
μg/m^3
58PM A "Average 2" (upper 16 bits)
Float32_t
μg/m^3
59PM B "Average 2" (lower 16 bits)
Float32_t
μg/m^3
60PM B "Average 2" (upper 16 bits)
Float32_t
μg/m^3
61PM C "Average 2" (lower 16 bits)
Float32_t
μg/m^3
62PM C "Average 2" (upper 16 bits)
Float32_t
μg/m^3
63PM D "Average 2" (lower 16 bits)
Float32_t
μg/m^3
64PM D "Average 2" (upper 16 bits)
Float32_t
μg/m^3
65TSP "Average 2" (lower 16 bits)
Float32_t
μg/m^3
66TSP "Average 2" (upper 16 bits)
Float32_t
μg/m^3
67Air XD supply voltageUint16_tmv/bit
68Laser current / mAUint16_t
mv/bit
69Fan current / mAUint16_t
mv/bit
70Status registerUint16_t


Coil Registers - FC1, FC5

This is a read/write register containing the instrument binary settings, including alarm status,

PM units and 4 - 20 mA output “Enable”/“Disable” status.


Writing to this register will result in the setting being changed permanently. However, if an alarm is activated, writing to the alarm status coil will dismiss the active alarm until the alarm threshold parameters have been re-exceeded.

Register
Description
Data Type
Units
0"Channel 1" alarm statusBool
1"Channel 2" alarm status
Bool

2"Channel 1" alarm latch
Bool
0: Auto-reset 1: Latch
3"Channel 2" alarm latch
Bool
0: Auto-reset 1: Latch 
4"Channel 1" alarm mute
Bool

5"Channel 2" alarm mute
Bool

6PM unitsBool
0: μg/m^3 1: mg/m^3
7Reserved for future useBool

8Memory module fittedBool
0: Not fitted 1: Fitted
94-20 mA "Channel 1" Enable/DisableBool
0: Disabled 1: Enabled
104-20 mA "Channel 2" Enable/Disable
Bool
0: Disabled 1: Enabled
11Top cap status (read only)Bool
0: Disabled 1: Enabled
12Alarm "Channel 1" Enable/DisableBool
0: Disabled 1: Enabled
13Alarm "Channel 2" Enable/Disable
Bool
0: Disabled 1: Enabled
14Relay 1 overrideBool
0: Relay under alarm control 1: Relay override active
15Relay 2 overrideBool
0: Relay under alarm control 1: Relay override active
16Floating point data endiannessBool0: Big Endian 1: Little Endian
17Floating point data byte swapBool
0: No byte swap 1: Byte swap enabled


Holding Registers - FC3, FC6

This is a read/write register containing the instrument settings and parameters, including instrument date, time, PM assignment and MODBUS settings. Writing to this register will result in the setting being changed permanently.


Note: Writing to the MODBUS settings will result in communication errors until the user has changed their local instrument MODBUS parameters to match the new setting selected on the AIR XD.

Register
Description
Data Type
Units
0
Time (seconds)Uint16_t
1Time (minutes)Uint16_t
2Time (hours)Uint16_t

3Date (day)Uint16_t

4Date (month)Uint16_t

5Date (year)Uint16_t

6UTC offset (minutes)Uint16_t

7UTC offset (hours)Uint16_t

8PM A assignmentUint16_t
x100
9PM B assignmentUint16_t
x100
10PM C assignmentUint16_t
x100
11PM D assignmentUint16_t
x100
12Alarm 1 assignmentUint16_t0: PM A live
1: PM B live
2: PM C live
3: PM D live
4: TSP live
5: PM A Avg 1
6: PM B Avg 1
7: PM C Avg 1
8: PM D Avg 1
9: TSP Avg 1
10: PM A Avg 2
11: PM B Avg 2
12: PM C Avg 2
13: PM D Avg 2
14: TSP Avg 2
13Alarm 2 assignment
Uint16_t0: PM A live
1: PM B live
2: PM C live
3: PM D live
4: TSP live
5: PM A Avg 1
6: PM B Avg 1
7: PM C Avg 1
8: PM D Avg 1
9: TSP Avg 1
10: PM A Avg 2
11: PM B Avg 2
12: PM C Avg 2
13: PM D Avg 2
14: TSP Avg 2
14Alarm 1 thresholdUint16_t
As μg/m^3
15Alarm 2 thresholdUint16_t
As μg/m^3
164-20mA "Channel 1" assignmentUint16_t
0: PM A
1: PM B
2: PM C
3: PM D
174-20mA "Channel 2" assignment
Uint16_t
0: PM A
1: PM B
2: PM C
3: PM D
184-20mA "Channel 1" scaling
Uint16_t

194-20mA "Channel 2" scaling
Uint16_t

20Average "Channel 1" timeUint16_t
As minutes
21Average "Channel 2" time
Uint16_t
As minutes
22Baud rate
Uint16_t
0: 4800
1: 9600
2: 14400
3: 19200
4: 38400
5: 57600
6: 115200
23Modbus AddressUint8_t


Reading floating point registers

MODBUS itself does not define a floating point data type but it is industry standard to use the IEEE-754 standard for defining floating point numbers. There is, however, there is no clear-cut definition of the byte order of the data payload.


By default, the Trolex AIR XD uses a little-endian format for the floating point numbers split across two 16-bit MODBUS registers. If this is not compatible with your system and a big endian format or byte swapping is required, the byte ordering can be switched using the on-device menus.




Was this article helpful?

That’s Great!

Thank you for your feedback

Sorry! We couldn't be helpful

Thank you for your feedback

Let us know how can we improve this article!

Select at least one of the reasons
CAPTCHA verification is required.

Feedback sent

We appreciate your effort and will try to fix the article