What LonWorks SNVTs Are
Standard Network Variable Types (SNVTs, pronounced “sniv-its”) are the standardized data types used by LonWorks devices to exchange information. Each Standard Network Variable Type defines a fixed encoding, a numeric range, a resolution, and the engineering unit family the value carries. They are maintained by LonMark International and listed in XIF files so that every network variable on a device carries an explicit, machine-readable type rather than a raw integer.
A Standard Network Variable Type is closer to a typed schema entry than to a Modbus register. It not only says how many bytes are on the wire, it says what the value means and which engineering unit the integrator must accept.
Why SNVTs Matter For Integration
Unlike Modbus registers, where the integrator picks the meaning, LonWorks variables advertise their meaning through the Standard Network Variable Type. That helps in two ways and hurts in one.
- Helps: No guesswork about whether a value is a temperature, a pressure, or a setpoint. The type declares it.
- Helps: Scaling and resolution are defined by the type. The gateway can convert correctly the moment the type is assigned.
- Hurts: The engineering unit is part of the contract. A
SNVT_pressvalue is kilopascals. The protocol does not offer a PSI variant. Unit changes belong in the gateway point map or downstream, not in the source variable.
[!CAUTION] Many “wrong value” complaints on LonWorks projects are not communication faults. They are Standard-Network-Variable-Type unit assumptions that did not match the destination expectation. Confirm the type before assuming a transport problem.
SNVT Naming Conventions
Names follow a short pattern that makes the kind of data easy to read at a glance.
| Token | Meaning | Example |
|---|---|---|
SNVT_ | All standard types start with this prefix | SNVT_temp |
_p | Positive-only (unsigned) variant of a signed type | SNVT_temp_p |
_f | IEEE 754 floating-point variant | SNVT_temp_f |
_lev_ | Level or percent quantity | SNVT_lev_percent |
_elapsed_ | Elapsed time | SNVT_elapsed_tm |
_count | Unitless integer counter | SNVT_count |
_str_ | String type | SNVT_str_asc |
Many physical quantities exist in three forms: signed integer, unsigned positive integer (_p), and float (_f). The choice is the device’s, not the integrator’s.
Common SNVTs
The LonMark master list defines hundreds of types. A short working set covers most building-automation deployments.
| Type | Description | Encoding | Range | Resolution | Unit |
|---|---|---|---|---|---|
SNVT_temp | Temperature, signed | 16-bit signed | −274.0 to 6279.5 | 0.1 | °C |
SNVT_temp_p | Temperature, positive | 16-bit unsigned | 0 to 6553.5 | 0.1 | °C |
SNVT_temp_f | Temperature, float | IEEE float | full float range | float | °C |
SNVT_press | Pressure | 16-bit signed | −3276.8 to 3276.7 | 0.1 | kPa only |
SNVT_lev_percent | Percent or level | 16-bit signed | −163.840 to 163.835 | 0.005 | % |
SNVT_flow | Flow rate | 16-bit unsigned | 0 to 6553.5 | 0.1 | L/s |
SNVT_count | Unitless integer counter | 16-bit unsigned | 0 to 65,535 | 1 | — |
SNVT_switch | On/off plus level | Struct (value + state) | 0–100% + on/off | 0.5% | — |
SNVT_hvac_mode | HVAC operating mode | 8-bit enum | 0–255 | — | — |
SNVT_occupancy | Occupancy status | 8-bit enum | 0–255 | — | — |
SNVT_time_stamp | Date and time | 7-byte struct | — | 1 s | — |
SNVT_elapsed_tm | Elapsed time | 6-byte struct | — | 1 ms | — |
SNVT_str_asc | ASCII string | 31-byte string | — | — | — |
SNVT_alarm | Alarm record | Struct | — | — | — |
For a wider tabulated view with BACnet mapping suggestions, see the LonWorks SNVT Reference and XIF Mapping Guide.
Fixed-Point Encoding And Scaling
Most non-float Standard Network Variable Types use fixed-point integer encoding with an implicit scale factor. The raw integer on the wire is converted to engineering units by multiplying by the type-defined resolution.
| Type | Raw Wire Value | Scale | Engineering Value |
|---|---|---|---|
SNVT_temp_p | 2350 | × 0.1 | 235.0 °C |
SNVT_lev_percent | 20000 | × 0.005 | 100.000 % |
SNVT_press | 1013 | × 0.1 | 101.3 kPa |
SNVT_flow | 500 | × 0.1 | 50.0 L/s |
A gateway such as the QuickServer applies the scale automatically when the type is correctly declared in the configuration. Values that show up off by exactly a factor of ten almost always mean the type assignment is wrong or missing.
[!TIP] If a temperature reads
3000instead of30.0, the most likely cause is a missing scale factor in the configuration. Verify the type assignment against the device’s XIF file before adjusting the BMS side.
Enumeration SNVTs
Several Standard Network Variable Types carry enumerated state values rather than scalar readings. The numbers map to named states defined by LonMark.
| Type | Common Values |
|---|---|
SNVT_hvac_mode | Auto (0), Heat (1), Morning Warm-Up (2), Cool (3), Night Purge (4), Off (6), Test (7) |
SNVT_occupancy | Occupied (0), Unoccupied (1), Bypass (2), Standby (3) |
SNVT_switch | Struct of value (0–100%) and state (-1, 0, or 1) |
Enumeration types map naturally to BACnet Multi-State Input or Multi-State Value objects. Preserve the LonMark state names in the downstream object descriptor so technicians do not need to memorize numeric codes.
Engineering-Unit Constraints
Standard Network Variable Types are metric. North American supervisory systems usually expect imperial units. The unit conversion happens in the gateway map or in the BMS, never in the source variable.
| Source Unit | Common BMS Unit | Conversion |
|---|---|---|
| °C | °F | °F = (°C × 9 / 5) + 32 |
| kPa | PSI | PSI = kPa × 0.145038 |
| L/s | CFM | CFM = L/s × 2.11888 |
| L/h | GPM | GPM = L/h × 0.004403 |
The metric-only constraint is one of the most common surprises on retrofit jobs. Decide the unit policy before commissioning rather than during it.
SCPT And UCPT Configuration Properties
Some LonWorks values live outside the network-variable list. They sit in configuration properties.
| Family | Defined By | Examples |
|---|---|---|
| SCPT | LonMark | SCPTminRnge, SCPTmaxRnge, SCPTlocation, SCPTalarmLimits |
| UCPT | The device manufacturer | Vendor-defined calibration, schedule, or behavior settings |
[!NOTE] SCPT and UCPT entries can carry runtime data on some devices, not only static configuration. If an expected value never appears as a network variable, search the configuration-property section of the XIF file before assuming the device does not expose it.
Common Failure Modes
| Failure | Likely Cause | Action |
|---|---|---|
| Value is off by a factor of ten | Wrong or missing scale | Re-declare the Standard Network Variable Type in the gateway configuration |
| Pressure reads kPa, BMS wants PSI | SNVT_press is kPa only | Convert in the gateway point map or in the BMS |
| Enum value displays as a raw number | No state-name mapping in the destination | Map LonMark state names to the BACnet MSI/MSV |
| Expected value is not in the XIF | Data is exposed through SCPT or UCPT | Check the configuration-property section |
| Two devices report the same name but different units | Different Standard Network Variable Type variants (_p vs _f) | Treat them as different interfaces; do not share the map |