You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 26 Next »

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.

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

EFM ABB TOTALFLOW → Settings

  • Array-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 Mappings
    • Periodic Mappings
      • The periodic mapping files are used for building up EFM Periodic History and Daily 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 SERVER → Devices 

  • Totalflow Applications
    • These 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. 
  • Array-Register Definitions (Device)
    • These are a subset of the global Array-Register definition files that apply to a specific device.
  • Array-Register Templates
    • Array-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.
  • Poll Groups
    • Poll 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.

There are nine 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 EFM Mappings for all Totalflow devices in this Ignition Instance
  3. Create the base device connection to the ABB Totalflow unit.
  4. If device is configured with the 'Enable auto-discovery' option turned on, wait for auto-discovery to complete. The device status will change 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 'applications' CSV file that contains correct information on applications that run on a Totalflow device the driver is connected to. En example of such CSV file is shown below.
  5. 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.
  6. 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. 
  7. 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.
  8. 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'.
  9. 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 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 revision number for the AGA3-1 meter application is 2101306-006; so 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 file was 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 application, array, and register respectively. 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.



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 fields of  LOG_PERIOD or DAILY records to a database column names. 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:

  • Array Number
    • Array number (i.e. 250 for the LOG_PERIOD_RECORD and 251 for DAILY_RECORD)
  • Application Enumeration
    • List of application enumerations this mapping entry should be applied. If empty, the mapping entry is applicable to any application.  
  • Record Field Offset
    • Field offset within the record
  • Data Type
    • Field data type
  • Description
    • Field description
  • Column Name
    • Column name to use
  • Enabled
    • A flag that turns this field 'on/off'. In other words it defines if this field should be recordized. 

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.

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


Main Properties

  • Name

    • This is the friendly name of the Periodic Mapping being created

  • CSV File

    • Click the 'Browse' button to select CSV file for this Periodic Mapping

At this point device connections can be created using these global TLP definitions.

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

  • Name
    • Device name
  • Description
    • Device description
  • Enabled
    • Device enabled

Device

  • Board Type
    • G3 - ABB G3 Flow Computer
    • G4 - ABB G4 Flow Computer
    • NGC - ABB Natural Gas Chromatograph

Connectivity

  • Hostname
    • Hostname or IP address of the device
  • TCP Port
    • TCP Port of the device.
  • Socket Timeout
    • TCP socket operation (i.e. connect and read) timeout in seconds. A timeout of zero is interpreted as an infinite timeout. To use system default, set to -1.
  • Connection Type
    • Connection type selector. Either maintain one connection or establish new connection per each transaction. The ON_DEMAND option is recommended.
      • PERSISTENT - The ABB Totalflow driver keeps a TCP connection open and this connection is being shared by all polling threads.
      • ON DEMAND - A TCP connection is opened by each polling thread when it needs to poll and closed upon completion. Note that ABB Totalflow device still allows only one connection at a time.

Auto Setup

  • Enable auto-discovery
    • Enables ABB Totalflow driver to run application auto-discovery at startup and re-configuration.
  • Add All Array-Register Definitions
    • Automatically add all the Array-Register definitions configured within the ABB Totoalflow driver module.
  • Auto-Generate Templates and Poll Groups
    • Automatically generates default Array-Register templates and default poll group on startup and reconfiguration. Note that default Array-Register template will be generated for specific application type (enumeration ) if polling is enabled (see the 'Totalflow Applications Panel' below) for at least one of applications of this type. Another requirement for the default Array-Register template to be generated is that there should not be no any custom template for this application type.    

DB2 Protocol

  • Station ID
    • Station ID of this ABB Totalflow device
  • Keep Alive
    • Time interval (in seconds) between 'keep-alive' polls that may be required to maintain PERSISTENT connection if ABB Totalflow device is configured to disconnect on inactivity. To disable 'keep-alive' polls, set to 0. 
  • Host Timeout
    • Timeout (in milliseconds) to wait for a reply from the host. The default value is 3000 milliseconds.
  • Poll EOT Timeout
    • Time (in milliseconds) to wait to ensure there are no more packets to receive. The default value is 700 milliseconds.
  • Auto-Discovery EOT timeout
    • Time (in milliseconds) to wait to ensure there are no more packets to receive during auto-discovery. The default value is 2000 milliseconds. 
  • Number Retries
    • Number of retries if DB2 request is NAKed.
  • Supervisory Frames
    • Number of DB2 supervisory frames.
  • Password
    • DB2 Protocol Security Code. If device is set with default security code of 0000, leave blank.

RBAC

  • RBAC Enabled
    • Enables Role-Based Access Control (RBAC) is enabled on the device and therefore the X_RBAC frame needs to be included in the DB2 request message.
  • Operator ID
    • Operator ID.  If RBAC is not enabled on the device, leave blank.
  • Password
    • Operator password. If RBAC is enabled on the device, leave blank.

Records

  • Alarm Source
    • Alarm source selector.

      • PERIODIC-HISTORY_RECORDS - alarms are obtained from Periodic History records.
      • ALARM_LOG_RECORDS - alarms are obtained form Alarm Log records.
  • Alarm Scan Rate
    • The rate in seconds that Alarm Log Records are scanned. Set to 0 to poll on notification from the 'Record Info' scanner. To disable Alarm polls, set to -1.
  • Event Scan Rate
    • The rate in seconds that Event Records are scanned. Set to 0 to poll on notification from the 'Record Info' scanner. To disable Event polls, set to -1. 
  • Periodic History Scan Rate
    • The rate in seconds that Periodic History Records are scanned. Set to 0 to poll on notification from the 'Record Info' scanner. To disable Periodic History polls, set to -1.
  • Daily History Scan Rate
    • The rate in seconds that Daily History Records are scanned. Set to 0 to poll on notification from the 'Record Info' scanner. To disable Daily History polls, set to -1.
  • Record Info Scan Rate
    • The rate in seconds for the 'Record Info Registers' (i.e. History, Event and Alarm record capacity, last sequence number, etc.) to be scanned.
      If new Event, History, or Alarm Log records are detected, respective poller(s) will be notified. To disable 'RecordInfo' polls, set to -1. Set to 0 for one-shot 'Record Info' poll.
  • Max. Records to Read
    • Maximum number of records to read in one poll.
  • Periodic Mapping
    • The mapping of Totalflow LOG_PERIOD and DAILY structures to Flowcal Meter Periodic Transactions.

Records Signature

  • Enable Signature
    • Enables a digital signature field on all Records.

  • Algorithm
    • The hashing algorithm to use when generating the digital signature.
  • Password
    • The password used to generate the PBE secret key for encrypting the digital signature.

Sparkplug

  • Group ID
    • An ID representing a logical grouping of Edge Nodes and Devices
  • Edge Node ID
    • An ID representing an Edge or Network (EoN) Node
  • Device ID
    • An ID representing a Device

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:

  • Totalflow Applications
  • Array-Register Definitions
  • Array-Register Templates
  • Poll Groups
  • delete

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 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:

  • Keep things as is.
    • This approach will potentially create too many tags that are not really needed.
  • Edit default template by either deleting or disabling rows.
  • Export default templates as CSV file, edit this file (i.e. remove unwanted data points), and importing it back. This approach can result in
    • New Array-Register template if original template name was modified in CSV file. In this case original default template will remain untouched.
    • Same Array-Register template will have less data points given that template name has not been modified in edited CSV file.
  • Delete default Array-Register template and create a new one from scratch. Note that the best practice is to disable the 'Auto-generate Templates and Poll Group' option in device configuration before deleting any templates. Otherwise the driver will attempt to regenerate default template for application enumeration if the following is true:
    • The 'Totalflow Application' configuration panel contains at least one application of this type (i.e. enumeration) with polling enabled.
    • There is no other custom Array-Register template defined for this application. 

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:

  • Array-Register Template
    • This is a select box that allows to point to one of defined Array-Register templates.
  • Application Name
    • This is a select box that allows to select one of applications enabled on the Totalflow Applications Configuration Panel.
  • Application Slot Number
    • A slot number for selected Totalflow application
  • Enabled
    • Allows to enable or disable a polling thread for this polling entry. Note that all default polling entries created are initially disabled and need to be enabled manually.
  • Scan Rate
    • The scan rate (in seconds) for this polling thread.
  • Tag Folder Path
    • This is a text box where a tag directory needs to be defined.

So when a poll group entry is enabled a polling thread is spawned, and this thread polls for data point 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.

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.

  • Central Gateway
    • Install and configure MQTT Engine
      • Add/update the Server configuration to point to the MQTT server
    • Install MQTT Recorder and configure it to use SQL database connection (previously set up in the Ignition Gateway)
  • Edge Gateway
    • Install and configure MQTT Transmission
      • Add/update the Transmitter configuration and/or the Tag folders so that an Edge Node is reporting with a Group ID, Edge Node ID, and Device ID (for example: G1, E1, D1)
      • Add/update the Server configuration to point to the MQTT server
      • Click the "Transmission Control/Refresh" Tag to make sure it is connected and reporting.
    • Install and configure EFM ABB Totalflow module
      • [IMPORTANT] Must have a Sparkplug Group ID, Edge Node ID, and Device ID specified in the device configuration that matches the Edge Node/Device that MQTT Transmission is reporting on
      • The 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. This is shown on the first picture below.
      • Another option obtain Events, and/or History data is to set respective poll rates to zero and set the 'Record Info Scan Rate' option to a positive number as shown the second picture below:
      • Also note that Alarms can come from two sources:
        • PERIODIC_HISTORY_RECORDS
          • Alarms are obtained form the Log Period records (Array 250). 
          • In this case the 'Alarm Scan Rate' should be set to -1.
        • ALARM_LOG_RECORDS
          • Alarms are obtained form  
          • Only on meters with the enhanced option turned 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.



  • No labels