Overview

There are four main types of data that the EFM ABB Totalflow driver is capable of getting from an ABB Totalflow device.  These are:

AARs are polled at a specified interval based on a poll rate and then made available via the OPC-UA interface.  Alarms, events, and history are made available to MQTT Transmission to be published as immutable Record objects to an MQTT server.  Typically these would be received by the MQTT Engine and MQTT Recorder modules running on a central Ignition Gateway and inserted into a database for later use or to be made available to other third party systems.

For the purposes of this document there are some definitions that are explained below.

EFM ABB TOTALFLOW → Settings

OPC-UA SERVER → Devices 

There are eleven basic steps to getting all of the data available from a ABB Totalflow into Ignition

  1. Define/upload the global Array-Register definitions available for all Totalflow devices in this Ignition instance.
  2. Define/upload the global Totalflow applications definitions available for all Totalflow devices in this Ignition instance. Note that this step is optional since lots of application definitions are provided by the driver by default.
  3. Define/upload the EFM Mappings for all Totalflow devices in this Ignition Instance.
  4. Create the base device connection to the ABB Totalflow unit.
  5. If device is configured with the 'Enable auto-discovery' option turned on, wait for auto-discovery to complete. When auto-discovery is completed, the device status changes from 'Auto-discovery' to 'Connected'. Go to the 'Totalflow Applications' configuration panel and verify that applications are there. Note that polling on all meter applications (i.e. TUBE applications) will be enabled by default. If device is configured with auto-discovery disabled, import application information from a 'Totalflow Applications' CSV file that contains correct information on applications instantiated on a Totalflow device the driver is connected to.
  6. If device is configured with the 'Add All Totalflow Application Definitions' option turned on, navigate to the 'Totalflow Applications Definitions' configuration panel and verify that all global applications definitions are added to this device definition automatically. If this configuration option turned off, manually add global applications definitions that apply.
  7. If device is configured with the 'Add All Array-Register Definitions' option turned on, navigate to the 'Array-Register Definitions' configuration panel and verify that all global Array-Register definitions are added to this device definition automatically. If this configuration option turned off, manually add global Array-Register definitions that apply.
  8. If device is configured with the 'Auto-Generate Templates and Poll Group' option turned on, default Array-Register templates and default poll group will be generated. Navigate to the 'Array-Register Templates' and 'Poll Groups' configuration panels and verify templates have been created correctly. There are a few important points to note here:
    1. One default Array-Register template will be created per each application type (i.e. application enumeration) given that polling for at least one instance of this application type is enabled in the 'Totalflow Applications' panel.
    2. If there are no enabled applications at the time auto-discovery runs for the first time, no Array-Register templates will be created.
    3. If there are enabled applications but there are no Array-Register definitions applied to this device connection, or definitions that are applied have no applicable entries based of application enumeration; in this case, Array-Register templates will be created but those templates will have no entries. If applicable Array-Register definitions are added later, templates will be populated. 
  9. Go to device configuration and disable all three options under the 'Auto Setup' category. Disabling auto-discovery will allow to get to the polling mode right after device connection is re-established. Disabling default templates auto-generation will allow to delete default templates and poll group without driver trying to regenerate them.
  10. Navigate to the 'Poll Groups' configuration panel and follow the 'Edit Poll Group Contents' link for the 'Default Poll Group'. Check the 'Enabled' box for each default poll group entry and click the 'Save' buttons twice: one time to save poll group entries, and another time to save poll groups. The device status will shortly change from 'Connected' to 'Polling'.
  11. Use Ignition Designer to pull tags into a tag provider.

Global Array-Register Definitions

The ABB Totalflow driver module provides a configuration section to the Ignition Gateway.  These can be seen in the Configure section of the Ignition Gateway web UI on the left panel near the bottom. Once in the configuration screen there will be a link to create new global Array-Register definitions.  Click the link shown below to create a new one.

Note that it is the best practice to add global Array-Register definitions before any Totalflow device connections are defined. If an Array-Register definition is added later, it needs to be added to a device connection manually. Even if device connection has the 'Add All Array-Register Definitions' option turned on, new global Array-Register definition will not be applied unless either added manually or device configuration is re-submitted.

When creating a new global Array-Register definition, only a name and a Totalflow INI file(s) needs to be specified.  The name can be any unique name that describes the Array-Register definitions included in submitted file(s). Totalflow INI files are configuration files for use with
PCCU and G2-G5 and NGC devices. Note that multiple Totalflow INI files need to be supplied in a ZIP archive. 

Note that definition archive file may contain lots of INI files. For example, the ArrayRegisterDefinitions.zip file shown above contains 1477 files.  So it worth explaining how the ABB Totalflow driver selects which files to parse...  When global Array-Register definitions are applied to a device connection, the driver uses application revision information obtained during the 'auto-discovery' process described later in this document and selects INI file names that match application revision and variant numbers.  As an example, below is application information obtained during the auto-discovery:

 

Note that since the revision number for the AGA3-1 meter application is 2101306-006, the INI parser will look for the 2101306-006.ini file in submitted ZIP archive. If no direct match is found, it will look for the another possible match based on the revision number (i.e. 2101306) and revision variant (i.e. 005 and lower).  Also note that user has a way to check what INI files were picked by the driver as a source of Array-Register definitions. This information can be obtained form default Array-Register template generated by the driver by following the 'View INI Files' link as shown below:

Below is an example that shows a portion the 2101306-006.ini file for the AGA3 Tube Application:

[Live Analysis Data] ExtHlp 5000 Help 1171 #Columns=2,Description=300,Value=100
dsc:Last Update from THERMS;cmd:4.5.1;typ:S;rwa:1;
dsc:Last Update from Other Source;cmd:4.2.2;typ:D;rwa:1;
dsc:Heating Value Live @ Tb and Pb;cmd:4.3.45;typ:F;
dsc:Real Relative Density Live @ Tb and Pb;cmd:4.3.44;typ:F;
dsc:N2 Live;cmd:4.3.46;typ:F;
dsc:CO2 Live;cmd:4.3.47;typ:F;
dsc:Methane Live;cmd:4.3.51;typ:F;
dsc:H2S Live;cmd:4.3.48;typ:F;
dsc:H2O Live;cmd:4.3.49;typ:F;
dsc:Helium Live;cmd:4.3.50;typ:F;
dsc:Ethane Live;cmd:4.3.52;typ:F;
dsc:Propane Live;cmd:4.3.53;typ:F;
dsc:N-Butane Live;cmd:4.3.54;typ:F;
dsc:I-Butane Live;cmd:4.3.55;typ:F;
dsc:N-Pentane Live;cmd:4.3.56;typ:F;
dsc:I-Pentane Live;cmd:4.3.57;typ:F;
dsc:N-Hexane Live;cmd:4.3.58;typ:F;
dsc:N-Heptane Live;cmd:4.3.59;typ:F;
dsc:N-Octane Live;cmd:4.3.60;typ:F;
dsc:N-Nonane Live;cmd:4.3.61;typ:F;
dsc:N-Decane Live;cmd:4.3.62;typ:F;
dsc:Oxygen Live;cmd:4.3.63;typ:F;
dsc:Carbon Monoxide Live;cmd:4.3.64;typ:F;
dsc:Hydrogen Live;cmd:4.3.65;typ:F;
dsc:Argon Live;cmd:4.3.66;typ:F;

So the driver parses selected INI file and uses the info (i.e. Array-Register definitions) to generate Array-Register templates as shown below.  Note how highlighted (bold) lines shown above correlate to Array-Register Templates shown below.  Let's look at the 'dsc:N2 Live;cmd:4.3.46;typ:F;' line in more details... The point description (i.e. N2 Live) is being used as a tag name. The 'typ:F' is the data type (i.e. floating point). Finally, the '4.3.46' defines the AAR (i.e. application, array, and register). Note that 4 is not an application slot number, but application enumeration. As a result, a default Array-Register Template is generated by the driver for a specific application enumeration, and it contains all Array-Register points found in appropriate INI files.

Global Totalflow Applications Definitions

An example of the periodic mapping file can be found here: TotalflowApplicationsDefinitions.csv

The Totalflow Applications Definitions tab shows all uploaded application definitions files.  This is found via the 'EFM ABB TOTALFLOW' settings on the left 'Config' navigation panel of the Gateway Web UI. It is not part of a specific device connection.

A new Totalflow Applications Definition can be added by clicking on the "Create New Totalflow Applications Definition..." link.

Main Properties

EFM Mappings

Periodic Mappings

The periodic mapping files are used for building up EFM Periodic and Daily History Records. Each row of such file maps specific field of LOG_PERIOD or DAILY records to a database column name. It also allows user to turn a database column off. In other words if column is disabled, respective filed will not be'recordized'.   These mappings are CSV files with the following values:

Below is a mapping example for the LOG_PERIOD_RECORD:

# arrayNum, appEnum, offset, data type, description, column name, enabled
250,4|20,6,FLOAT,Average Differential Pressure,dp_avg,enabled
250,5|21,6,FLOAT,Pulse Counts,pulses,enabled
250,,10,FLOAT,Average Static Pressure,sp_avg,enabled
250,,14,FLOAT,Average Temperature,temp_avg,enabled
250,5|21,18,FLOAT,Uncorrected Volume,raw_vol,enabled
250,,22,FLOAT,Volume,volume,enabled
250,,26,FLOAT,Heating Value,heating_value,enabled
250,,30,UINT16,Flow Time,flo,enabled
250,,32,UINT16,Period Time,flo_rate,enabled

An example of the periodic mapping file can be found here: MeterPeriodicMapping.csv

The Periodic Mappings tab shows all uploaded Periodic Mapping files.  This is found via the 'EFM ABB TOTALFLOW' settings on the left 'Config' navigation panel of the Gateway Web UI. It is not part of a specific device connection.

A new Periodic History Mapping can be added by clicking on the "Create New Periodic Mapping..." link.


Main Properties

At this point, device connections can be created using global Array-Register definitions submitted earlier.

Creating a Device Connection

Configuring an ABB Totalflow device connection is done as is with any other driver using the OPC-UA interface.  Begin by clicking the Configure tab at the top of the Ignition Gateway web UI and scrolling down to the OPC-UA Server's Devices section and clicking it as shown below.

Once done you will see the following.  Click the 'Create new Device...' link to create the ABB Totalflow device connection.

After clicking the 'Create new Device...' link you will see the following.  Select the 'EFM ABB Totalflow' and click 'Next' at the bottom of the page.

When creating a new device you will see the following:

The following describes the parameters that can be set here:

General

Device

Connectivity

Auto Setup

Import Policies

DB2 Protocol

RBAC

Date/Time

Records

Records Signature

Sparkplug

Miscellaneous

Once the device is created, you should see it is listed in the devices section with a status of either 'Auto-discovery', or 'Connected' on success or "Not Connected" or "Security Failed" on failure.

The next sections will show the rest of the configuration that will complete the setup. As a first step, go to the 'Devices' configuration page and click the 'More' button. A drop-down menu with the following five options options will be displayed as shown below:

Configuring Totalflow Applications

The 'Totalflow Applications' configuration panel is populated by the 'auto-discovery' process that takes place on device startup or reconfiguration. Below is an example of what can be displayed on this panel:

At this point, user can enable or disable polling on any listed application and save the changes. Note that polling on all 'Tube' applications is enabled by default.

Specifying Totalflow Applications Definitions for a Device (Optional)

If there are any uploaded global Totalflow applications definition files, they can be applied to this device connection. Do so by clicking the 'More' drop-down button and selecting 'Totalflow Applications Definitions' as shown below:

You should now see an empty list of Totalflow applications definitions (unless you used the "Add All Totalflow Applications Definitions" setting).  Click the 'Add Row' link that is shown below. This will show a new Totalflow application definition with a select box to allow you to select which global application definition you want to associate with this device. Add as many as are appropriate for your device as shown below:

When complete, save the list and you will be taken back to the Devices list.

Specifying Array-Register Definitions for a Device

The next step is to add appropriate global Array-Register definitions to this device connection. Do so by clicking the 'More' drop-down button and selecting 'Array-Register Definitions' as shown below:

You should now see an empty list of Array-Register definitions (unless you used the "Add All Array-Register Definitions" setting).  Click the 'Add Row' link that is shown below. This will show a new Array-Register definition with a select box to allow you to select which global Array-Register definition you want to associate with this device. Add as many as are appropriate for your device as shown below:

When complete, save the list and you will be taken back to the Devices list.

Configuring Array-Register Templates for a Device

With the Array-Register definitions now defined for this device we can create some Array-Register templates to allow creation of Application-Array-Register (AAR) poll groups. Note that the ABB Totalflow driver is capable of generating default Array-Register templates - one per each enabled application type (i.e. application enumeration). If ABB Totalflow device connection was created with the 'Auto-generate Templates and Poll Group' setting turned on, the following default Array-Register templates will be generated for the Totalflow applications shown above:

These default templates for each application type will contain all Array-Register points obtained from applied Array-Register definitions that are applicable for this application enumeration. An example of this default template entry page is shown below:

At this point you can do the following:

Configuring Poll Groups for a Device

With Array-Register templates already defined, you can now create Application-Array-Register (AAR) poll groups. Note that if ABB Totalflow device connection was created with the 'Auto-generate Templates and Poll Group' setting turned on, the driver will create a default poll group. This default poll group will have one entry per each application enabled on the Totalflow Applications Configuration Panel as shown below:

As shown on the picture above, each poll group entry has the following fields:

When a poll group entry is enabled a polling thread is spawned, and this thread polls for data points defined in the Array-Register template this entry points to. And as with Array-Register templates, if a default poll group entry or entire poll group needs to be deleted, it is the best practice to turn the 'Auto-generate Templates and Poll Group' device configuration option off first.

Viewing Device Application-Array-Register (AAR) Data

At this point, the ABB Totalflow device should be fully configured.  To view data in Ignition launch Ignition Designer and open the OPC Tag Browser as shown below.  You should see the tags being polled from the ABB Totalflow device as shown below.  You can use these tags as any standard OPC tags in Ignition.

Customizing Array-Register Templates and Poll Groups

The previous sections of this document demonstrated how to:

This section will describe how to use default Array-Register templates to generate custom templates and poll groups. For the purpose of this exercise, lets assume that we only want to poll the AGA3-1 application, and we are interested in 'Current Values' and 'Fixed Analysis' data points only. Here is how to do it:


Viewing Alarm, Event, and Periodic and Daily History data

To view record data which includes ABB Totalflow alarms, events, and history data you must have MQTT Transmission installed on the instance with the EFM ABB Totalflow driver.  In addition, the following must be set up.

When all of these conditions are met, alarm, event, and/or history data will be collected, published, and stored via MQTT Recorder in the configured database.

Additional Resources