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:

  • Application-Array-Register (AAR) data
  • Alarm Data
  • Event Data
  • History Data

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.

Common File Exchange (CFX) can also be used for these record data.


The quickstart will guide you through setting up the EFM ABB Totalflow driver module and configuring the device connection to:

  • connect to the Totalflow device
  • auto-discover applications running on the device,
  • generate default Array-Register Templates for all TUBE application enumerations based on information obtained from respective INI file(s),
  • generate default poll group that contains entries for all instantiated TUBE applications
  • poll default poll group

It will also describe how to use the default Array-Register templates to generate custom templates and poll groups and how to view Alarm, Event, and Periodic and Daily History data

Prerequisites

  • Knowledge of Ignition and Cirrus Link Module Installation process
  • Knowledge of MQTT Engine and MQTT Transmission configurations
  • Installation of MQTT Engine, MQTT Transmission and MQTT Recorder (v4.0.x if using Ignition 8.1.x)
  • Installation of latest compatible ABB Totalflow Driver

Definitions


ModuleParameterDefinition
EFM ABB Totalflow SettingsArray-Register Definitions (Global)

The global Array-Register definitions made available to the EFM ABB Totalflow module.  They are uploaded to the Ignition instance either as individual INI files or as ZIP archives that contain INI files.  Note that INI files are text files that are read by PCCU or WinCCU to determine how to display data within an application. These global Array-Register definitions can be referenced by the configurations of the individual ABB Totalflow devices that they apply to. A single Ignition Gateway may contain multiple global Array-Register definitions files that are used to configure Array-Register Templates (i.e. templates that contain array, register, access type, data type, and register name info) for available application types (enumerations)

EFM ABB Totalflow SettingsTotalflow Applications Definitions (Global)

The global Totalflow Applications Definitions are uploaded to the Ignition instance as individual CSV files and contain the following information about Totalflow applications:

    • Enumeration number
    • Name
    • Type
    • An optional flag (SU) that indicates that this is a 'Selectable Unit' application 
    • Part number(s)
EFM ABB Totalflow Settings

The periodic mapping files are used for building up EFM Periodic and Daily History records.  They map various record fields to database column names so that user can adjust those column names to match requirements.  Periodic mappings also allow to exclude certain record fields to be used. They are uploaded to the Ignition instance in the form of specifically formatted CSV files

OPC UA Device Connection

Totalflow Applications

This is a list of applications (fields include respective name, slot number, enumeration, revision and type) that are currently installed on a Totalflow device. This list is obtained either by 'auto-discovery' process that takes place on  configuration/restart or by importing specifically formatted CSV file

OPC UA Device ConnectionTotalflow Applications Definitions (Device)

These are a subset of the global Totalflow Applications Definition files that apply to a specific device

OPC UA Device Connection

Array-Register Definitions (Device)

These are a subset of the global Array-Register definition files that apply to a specific device
OPC UA Device ConnectionArray-Register TemplatesArray-Register templates are logical groupings of AARs.  Generally, Array-Register templates would be created so that instances of them can be used by specifying a poll group with application slot number
OPC UA Device ConnectionPoll GroupsPoll groups use Array-Register templates in conjunction with application slot number to create a specific groups of register sets (i.e. sets of consecutive array registers) to be polled at a specified poll rate


The Cirrus Link default Array-Register Definitions and EFM Periodic Mapping files can be used as a starting point for configuring the EFM ABB Totalflow module.

The Totalflow Application Definitions file can be used as an example if you need to add application definitions that are not known to the driver. 


Configuration Steps

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

  1. From the EFM ABB Totalflow Settings, define/upload the global Array-Register definitions available for all Totalflow devices in this Ignition instance

  2. From the EFM ABB Totalflow Settings, define/upload the global Totalflow applications definitions available for all Totalflow devices in this Ignition instance.

    This step is optional since many application definitions are provided by the driver by default.
  3. From the EFM ABB Totalflow Settings, define/upload the EFM Mappings for all Totalflow devices in this Ignition Instance

  4. From the OPC UA Device Connections, create the base device connection to the ABB Totalflow unit.

  5. 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. 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'.

  6. Navigate to the 'Totalflow Applications' configuration panel. If 'Auto-discovery' is enabled, that applications are there. If this configuration option is disabled, manually import the application information.

  7. Navigate to the 'Totalflow Applications Definitions' configuration panel. If 'Add All Totalflow Applications Definitions' is enabled, verify that all global applications definitions are added to this device definition. If this configuration option is disabled, manually add global applications definitions that apply.

  8. Navigate to the 'Array-Register Definitions' configuration panel. If 'Add All Array-Register Definitions' is enabled, verify that all global Array-Register definitions are added to this device definition. If this configuration option id disabled, manually add global Array-Register definitions that apply.

  9. Navigate to the 'Array-Register Templates' configuration panel. If 'Auto-Generate Templates and Poll Group' is enabled, verify the default templates are added to this device definition. If this configuration option is disabled, manually import the templates that apply.

    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.

    If there are no enabled applications at the time auto-discovery runs for the first time, no Array-Register templates will be created.

    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. 

  10. Navigate to the 'Poll Groups' configuration panel. If 'Auto-Generate Templates and Poll Group' is enabled, verify the default poll groups are added to this device definition. If this configuration option is disabled, manually import the poll groups that apply.

  11. Go to device configuration and disable all three options under the 'Auto Setup' category. Disabling 'auto-discovery' allows faster transition from connection establishment to polling. Disabling 'Auto-generate Templates and Poll Group' will allow you to delete default templates and poll groups without the driver trying to regenerate them.

  12. 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'.

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

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:

  • Navigate to to the Auto Setup section of the device configuration and disable 'Auto-discovery' and 'Auto-generate Templates and Poll Group' as shown below.

  • Go to the 'Poll Group' configuration panel and delete the 'Default Poll Group'

  • Go 'Array-Register Templates' configuration panel and delete the following default templates:
    • Dflt. AGA7 Tube App
    • Dflt. SU Gas Orifice Tube App
    • Dflt. SU Turbine Tube App

  • Click the 'Edit Array-Register Template Contents' link of the 'Dflt. AGA3 Tube App' template

  • Edit Array-Register template entries by removing all unwanted entries. In other words, keep an entry only if its category is set to 'Current Values' and 'Fixed Analysis Data'

  • Save updated template entries

  • Rename the 'Dflt. AGA3 Tube App' to 'Custom AGA3 Tube App' and save the template. The 'Array-Register Templates' configuration panel now should look as shown below:

  • Go to the 'Poll Group' configuration panel and add a poll group to point to the custom template as shown below:

  • Save poll group configuration and the device status should change from 'Connected' to "Polling"

  • At this point, custom Array-Register template and poll group can be exported as CSV files so that they can be reused
  • Open Ignition Designer and view the tags created:

Viewing Record Data

Record data can be viewed in a couple of ways:

  • Using Common File Exchange (CFX)
  • Publishing as an immutable record object

Using Common File Exchange (CFX)

If using Common File Exchange (CFX), the record data will be stored/maintained in CFX.MD5 files on the local Ignition instance. See the ABB Totalflow Device Connection configuration for more details. 

These files can be transferred from the Edge device using any method you choose such as FTP but can also be published using the MQTT Transmission File Publishing option.

To do this, you will need to configure an MQTT Transmission File Record and set the CFX File Transfer parameter to point to that File Record and the CFX files can then be automatically published. See the Creating and Publishing Common Exchange File CFX tutorial for details.

Publish as an immutable record object

To publish and 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:

At the Central Gateway:

At the Edge Gateway:

  • Configure MQTT Transmission
    • If you do not have a Transmitter configured, create an MQTT Transmitter and set the Sparkplug Settings to the unique Group and Edge Node ID values generated by the Device Connection configuration.

    • If a Transmitter already exists, for example to publish the polled/live data, you can edit the Group and Edge Node IDs to match the existing Sparkplug Edge Node created by the Transmitter.
    • Add/update the Server configuration to point to the MQTT server
    • From Ignition Designer, use the MQTT Transmission 'Refresh' Mechanism to make sure it is connected and reporting.
  • Configure EFM ABB Totalflow module
    • The Alarm, Event, and/or History poll rates in the ABB Totalflow driver device configuration must be greater than zero depending on which data you wish to collect

OR

    • For Events and/or History data set the respective poll rates to zero and set the 'Record Info Scan Rate' option to a positive number 

      Alarms can come from two sources:

      PERIODIC_HISTORY_RECORDS - Alarms are obtained from the Log Period records (Array 250) and in this case the 'Alarm Scan Rate' should be set to -1.

      ALARM_LOG_RECORDS - Alarms are obtained from only meters with the enhanced option turned on

      Must have a Sparkplug Group ID and Edge Node ID specified in the Device Connection configuration that matches a Sparkplug Edge Node that MQTT Transmission is reporting on

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.


How does the ABB Totalflow driver select which files to parse from the supplied INI file?

The Array-Register definition archive file may contain lots of INI files - for example, the Array-Register Definitions zip file above contains 1477 files.

So it worth explaining how the ABB Totalflow driver selects which files to parse to create Array_Regsiter Templates. When global Array-Register definitions are applied to a device connection, the driver uses application revision information obtained during the 'auto-discovery' process 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).

A user can 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;


The ABB Totalflow driver parses selected INI file and uses the info (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 detail. 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). 

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.


Additional Resources


  • No labels