The IAP feature (Settings widget) is available with SmartServer 3.2 Update 2 and higher. Prior to SmartServer 4.2, IAP was called IAP Settings.
Datapoint names are generated by protocol drivers (e.g., LON, BACnet, Modbus). The protocol drivers get these datapoint names from interface files––that is, XIF files, including BAC and MOD files, or from the edge devices themselves where interface discovery is supported. In the case of XIF-derived names, there are two sets of rules for deriving the datapoint name: legacy and IAP. This section describes these rule sets as well as the process for transitioning from legacy to IAP naming, and the features within the SmartServer that facilitate this naming migration.
This section consists of the following:
Datapoint Naming Overview
Legacy Names
The rules for legacy names vary depending on the driver. For LON, datapoints are derived from the LonMark functional profile, which defines the datapoint, if applicable. Otherwise, the name that is used is the name provided in the LON XIF file. Functional profiles are often generic and have datapoint names such as nvoValue. In such cases, when the device is used for a temperature measurement, the name nvoValue does not provide enough information. Instead, if the XIF name is nvoTemp, then the datapoint name provides a more useful description of what the datapoint actually conveys.
For BACnet and Modbus, the legacy datapoint names come from the XIF file, or from the device if there is no XIF file. In the case of Modbus, the datapoint name is defined explicitly in the XIF file through the Datapoint Name (or Point Name prior to SmartServer 3.2) column. In the case of BACnet, the datapoint name is created in the form <object type>:<object instance> (e.g., AI:1) through the Address column (Object Type and Object Instance prior to SmartServer 3.2) .
IAP Names
The IAP name is the name in the protocol driver XIF file. For LON, the name is always present for each datapoint. For BACnet and Modbus, the IAP name is the name provided in the Datapoint Name column in the BAC / MOD file if present. If the BAC / MOD file is not present, then the legacy name is used.
Name Selection
With SmartServer 3.1 and earlier, legacy datapoint names are always used. Beginning with SmartServer 3.2, the drivers switched to using IAP datapoint names. If you have a SmartServer 3.1 and then update the system to 3.2, what happens with regards to the datapoint naming depends on the protocol and actions you take.
For BACnet and Modbus, the system update alone results in IAP names being used. If you are using SmartServer services such as alarming, connections, sequencing and scheduling, consider that all of these services are driven by datapoint names. Consequently, a change in names will affect these operations. For example: the legacy BACnet name is AI:1 and an alarm is defined for AI:1 at 80. After the update, if the IAP name is not AI:1 (e.g., the BAC file had a Datapoint Name column with the name temp), then when an event is reported for the datapoint, it will now have the name temp. The alarm service will ignore the event because it only has an alarm for AI:1.
For LON, the system update alone does not change anything with regards to datapoint naming. For example: the legacy datapoint name is nvoValue and you defined an alarm for nvoValue. After the update, the driver would continue to report events for nvoValue. However, if you add a new device with the same program ID as ones that had been created prior to the update, then the new device would have the IAP name, nvoTemp for example, but the old devices would continue to have nvoValue. The Changeable Interface feature described below provides the ability to import a changed XIF file even though devices already exist that use that interface as described below.
Changeable Interface Feature
The changeable interface feature is available with SmartServer 3.2 Update 2 and higher.
With the Changeable Interface feature, when you import a changed XIF file, even though devices already exist that use that interface, the SmartServer CMS detects that the interface has changed and automatically modifies all devices with that interface to have the new behaviors. These changes include added or removed blocks as well as added or removed datapoints and will also be reflected in the Datapoint Properties widget.
This feature allows you to correct an error in an XIF file without having to delete and re-add all the affected devices. For example: the intended datapoint name was “temperature” but it was accidentally entered into the XIF as “tempereture”. This error could be corrected with the Changeable Interface feature. However, if you had already created services rules (i.e., alarms, schedules, etc.) based on the incorrect name, then the changed XIF would result in those rules being broken. In this case, you will also have to change the services rules.
SmartServer CMS device types are not known to the protocol drivers. For a given XIF name, the drivers express the interface definition. When an XIF changes, the CMS will change the interfaces of all device types that reference that XIF name (the CMS can have multiple device types that reference the same XIF name).
System Updates and Datapoint Naming Operations
When datapoint names change as a result of a system update, these modification are viewed by the SmartServer CMS as the XIF changing as per the Changeable Interface feature with all the same consequences. In particular, any services rules that have the legacy name will not work for datapoints that switch to the IAP name. With SmartServer 3.2 Update 2, the rules for datapoint names changes were enhanced as described in the table below, which summarizes the datapoint naming operations across SmartServer system updates.
System Update | Datapoint Naming Operation |
2.90 to 3.25 | If you have a SmartServer IoT that is from the factory (out-of-the-box), there are no device types and therefore, no existing datapoint names. You will first need to re-image or update the SmartServer to 3.2 Update 2. At this point, the system will use IAP names. If you prefer to use legacy names (for example, in case you have existing DLA files containing legacy names), then you can use the CMS Settings widget to switch to legacy names (see Switching to Legacy Names) for any future devices that are added. |
3.10 to 3.25 | If you have a SmartServer 3.1 system that has devices using legacy names (any mixture of LON, BACnet and Modbus), and you update to 3.2 Update 2, then the SmartServer will continue to use legacy names for all existing devices and any devices created using SmartServer 3.2 Update 2. This behavior cannot be modified. |
3.20 to 3.25 | If you have a SmartServer 3.2 system that has devices using IAP names (any mixture of LON, BACnet and Modbus), and you update to 3.2 Update 2, then the SmartServer will continue to use IAP names for all existing devices and any devices created using SmartServer 3.2 Update 2. This behavior cannot be modified. |
Reset of 3.2 Update 2 and higher | If you have a SmartServer 3.2 Update 2 system using either legacy or IAP names, and you perform a Reset to Defaults using the System Configuration page (databases or factory reset), then IAP names will be in effect. However, since there are no device types, you can use the CMS Settings widget to switch to legacy names (see Switching to Legacy Names) . |
Naming Considerations for BACnet XIF and Modbus XIF Files
Before creating or editing BAC or MOD files, consider the following:
- Datapoint names in the BAC or MOD file need to be a maximum of 12 characters.
Datapoints with an underscore ( _ ) require a workaround.
Dynamic datapoints with underscores ( _ ) in the name (e.g., DO_0) cannot be added in IzoT CT. In these cases, IzoT CT will strip off the _0 and display DO. Moreover, if you edit the datapoint and and rename it to DO_1, IzoT CT will display the new name, however the SmartServer CMS will maintain the original name. That is, the SmartServer does not have any visibility to dyname datapoint name changes in IzoT CT. In order to add a datapoint name such as DO_0, you will need to add DO_0 with a count of two thats shows DO_0 and DO_1 in the Functional Block (FB), and then delete DO_1.- If you are using shadowConnect.exe (located in the SmartServer GitHub repository), then you need to use device/0 for the {blockName}/{blockIndex} in order to have a connection (CON) file created automatically for you. If you are not using shadowConnect.exe, then you can use any {blockName}/{blockIndex}.
- Once the BACnet and Modbus devices have been provisioned, you can use localDev.exe (from the SmartServer GitHub repository) in order to add an internal device (dyn-1) to access the BACnet or Modbus datapoints.
- Mapping must then be added for LON datapoints to dyn-1 as follows:
- Using IzoT CT, add a single web server FB, or a web server FB for each BACnet or Modbus device, and change the web server FB name to match the device name.
- Using IzoT CT, add dynamic datapoints for all BACnet or Modbus datapoints that you want to access in IzoT CT.
- If you are going to use the same datapoints on multiple SmartServers, then consider creating an IzoT CT stencil for the dyn-1 internal device.
- Manually create a SmartServer connection (CON) file, use shadowConnet.exe, or write an App for dyn-1 to map the LON datapoints to the respective BACnet or Modbus datapoints. In order to manually create the connections file, get the datapoint path from the Datapoints widget details view.
Switching to Legacy Names
With SmartServer 3.2 Update 2 and higher, the SmartServer CMS provides the ability to inform drivers whether to use legacy or IAP names. Following an update from SmartServer 3.10 or earlier, the SmartServer will request legacy names if there is at least one device type with at least one datapoint. Following an update from SmartServer 3.2 or higher, or if the system is coming up from a complete re-image or Reset to Defaults using the System Configuration page, the SmartServer will request IAP names. Refer to the System Updates and Datapoint Naming Operations table for more information regarding datapoint naming operations with system updates.
You can use the IAP feature available from the Settings widget to configure the SmartServer CMS to use legacy datapoint names. The ability to change the IAP settings is disabled if any device types with datapoints already exist.
To configure the SmartServer CMS to use legacy datapoint names, perform the following steps:
- Open the SmartServer CMS Settings widget.
- Click IAP.
The IAP settings view appears. - Enable Use Legacy Datapoint Names.
- Click Save.