ABB Totalflow Device Connection

Device connection for the ABB Totalflow module can be configured via OPC UA configuration.  Begin by selecting OPC UA → Device Connections on the left as shown below:

This opens the configuration page as shown below:

A new ABB Totalflow device can be created by following the 'Create new Device...' link and choosing 'EFM ABB Totalflow' device as shown below and clicking 'Next' at the bottom of the page.

This opens the 'New Device' configuration page for EFM ABB Totalflow Device. The configuration sections available are General, Device, Connectivity, Auto Setup, Import Policies, DB2 Protocol, RBAC, Date/Time, Records, Records Signature, Common File Exchange (CFX), Sparkplug and Advanced Settings.

General

  • Name
    • Device name
  • Description
    • Device description
  • Enabled
    • Checkbox to enable/disable device. Selected by default.

Device

  • Board Type
    • Board types currently supported are:
      • 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. Default is 10 seconds.
  • Connection Type
    • Connection type selector. to either maintain one connection or establish new connection per each transaction. Default is the ON_DEMAND option and 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
    • Checkbox to enable ABB Totalflow driver to run application auto-discovery at startup and re-configuration. Selected by default.
  • Add All Totalflow Application Definitions
    • Checkbox to automatically adding all Totalflow Applications definitions configured within the ABB Totalflow driver module. Selected by default.
  • Add All Array-Register Definitions
    • Checkbox to automatically add all the Array-Register definitions configured within the ABB Totalflow driver module. Selected by default.
  • Auto-Generate Templates and Poll Groups
    • Checkbox to automatically generate default Array-Register templates and default poll group on startup and reconfiguration. Selected by default.

    • Note that default Array-Register template will be generated for specific application type (enumeration ) if polling is enabled (see 'Totalflow Applications' 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.

Import Policies

Import Policies

  • Array-Register Template Import Policy
    • Select the Array-Register Template Import Policy. Default is UPDATE
      • UPDATE - update existing Array-Register Templates
      • REPLACE - replace existing Array-Register Templates
  • Poll Group Import Policy
    • Select the Poll group import Policy. Default is UPDATE
      • UPDATE - update existing poll groups
      • REPLACE - replace existing poll groups

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. Default is 0
  • Host Timeout
    • Timeout (in milliseconds) to wait for a reply from the host. Default is 3000 milliseconds.
  • Number Retries
    • Number of retries if DB2 request is NAKed. Default is 3
  • Supervisory Frames
    • Number of DB2 supervisory frames. Default is 3
  • Password
    • DB2 Protocol Security Code. If device is set with default security code of 0000, leave blank.

RBAC

  • RBAC Enabled
    • Checkbox to enable Role-Based Access Control (RBAC) on the device and therefore the X_RBAC frame needs to be included in the DB2 request message. Default is de-selected
  • 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.

Date/Time

  • Date Time Offset
    • The offset, in seconds, to add to the Totalflow device clock to convert to UTC. For example, if your Totalflow device is set for CST, you would set this parameter to 7200 to convert any timestamps to UTC. 
    • Default is 0

Records

  • Alarm Source
    • Alarm source selector. Default is PERIODIC_HISTORY_RECORDS

      • 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. Default is -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. Default is 0
  • 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. Default is 0
  • 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. Default is 0
  • 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. Default is -1
  • Max. Records to Read
    • Maximum number of records to read in one poll. Default is 100
  • Periodic Mapping
    • The mapping of Totalflow LOG_PERIOD and DAILY structures to Flowcal Meter Periodic Transactions.

Records Signature

  • Enable Signature
    • Checkbox to enable a digital signature field on all Records. Default is de-selected

  • Algorithm
    • The hashing algorithm to use when generating the digital signature.
    • Options SHA_1,SHA_224, SHA_256, SHA_384 and SHA_512
  • Password
    • The password used to generate the PBE secret key for encrypting the digital signature.

Common Exchange Format (CFX) 

Available in release 4.0.15 and newer

To view all the CFX parameters below, MQTT Transmission must be installed.

MQTT Transmission is not required to create and maintain the CFX files for each meter. It is required to configure the CFX File Transfer and, if not installed, the "CFX Publish Time Expression", "CFX Cutoff Time Expression" and "CFX File Transfer" fields will not be available. 

  • Enable CFX
    • Enables/disables the FLOWCAL Common File Exchange. 
    • When enabled, CFX and associated CFX.MD5 files will be created with a naming convention of meterid.cfx and meter_id.cfx.md5. New Alarm, Event and PeriodicHistory records will be added to the file.
    • Files will be stored on the Ignition instance where the driver is installed under this filepath <ignition folder>/data/modules/com.cirrus-link/efmabbtotalflow/devices/<device id>/meters/<meter id>/
  • Flow Computer Brand
    • Free form text field to identify flow computer brand included in the CFX file. Limit of 20 characters
  • Flow Computer Model
    • Free form text field to identify flow computer model included in the CFX file. Limit of 20 characters
  • Flow Computer Software Version
    • Free form text field to identify the flow computer software version included in the CFX file. Limit of 20 characters
  • CFX Publish Time Expression
    • This parameter is used when publishing the files with MQTT Transmission and defines the Quartz Cron expression used to schedule publishing of CFX files
    • This will trigger the CFX file to be copied to the "Publish File Path" configured for the MQTT Transmission File record selected in the "CFX File Transfer" parameter. This file can then be picked up and published automatically by MQTT Transmission and the CFX file remains in the source folder (under ~/data/modules) to be maintained. 
    • Default is "0 0 0/2 * * ?". Reference the Cron Trigger Tutorial for details on this expression and Cron Expression Generator for configuring this expression  
    • This expression can be empty to use the CFX Cutoff Time Expression only
  • CFX Cutoff Time Expression
    • This parameter is used when publishing the files with MQTT Transmission and defines the Quartz Cron expression used to schedule publishing of CFX files
    • This will trigger the CFX file to be moved to the "Publish File Path" configured for the MQTT Transmission File record select in the "CFX File Transfer" parameter. This file can then be picked up and published automatically by MQTT Transmission and the EFM driver notified that it needs to collect meter configuration and generate a new set of CFX files.
    • Default is "0 0 0 L * ? *". Reference the Cron Trigger Tutorial for details on this expression and Cron Expression Generator for configuring this expression
    • This expression should never be empty to prevent the CFX file from becoming too large to publish
  • CFX File Transfer
    • This parameter is used when publishing CFX files with MQTT Transmission and provides a dropdown containing all the File definitions from MQTT Transmission. 
    • A MQTT Transmission File definition defines a location for all the control tags required to publish files including the "Publish File Path". 
    • Default is none. CFX files will be created and maintained but will not be published. New Alarm, Event and PeriodicHistory records will be added to the file until the device connection is removed.

The CFX Cutoff Time Expression should be greater than the CFX Publish Time Expression


Sparkplug

To publish Records such as Alarms, Events or History, a configured MQTT Transmission Transmitter is used.

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.

  • 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 (Optional in release 4.0.14 and onward)

Advanced

  • Use INI Categories
    • Checkbox to enables appending INI Category names to tag folder paths. Default is selected
  • Poller Watchdog Rate
    • The rate in seconds that the poller watchdog thread is executed to verify polling threads are running. Set to 0 to disable the poller watchdog. Default is 0 seconds.


With the device now established you must configure the Totalflow Applications, Totalflow Application Definitions, Array-Register Definitions, Array-Register Templates and Poll Groups to use.  

Totalflow Applications

The Totalflow Applications view is populated by the auto-discovery process that takes place on device startup or re-configuration. To view, click the 'More' drop-down button and select 'Totalflow Applications'.

An example of the display is shown below and the user can enable or disable polling on any listed application and save the changes.

Polling on all 'Tube' applications is enabled by default.

If the device is configured with auto-discovery disabled, use the Import Configuration button to import application information from a 'Totalflow Applications' CSV file that contains correct information on applications instantiated on the Totalflow device the driver is connected to.

Totalflow Application Definitions

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

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 and select Save.

Array-Register Definitions

If there are any uploaded global Array-Register definitions, they can be applied to this device connection. Do so by clicking the 'More' drop-down button and selecting 'Array-Register Definitions'.

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 and select Save.

Array-Register Templates

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.

Do so by clicking the 'More' drop-down button and selecting 'Array-Register Templates'.

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 configured.

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:

Now you can configure these default Array-Templates as needed for your application. Options are:

  1. Make no changes. This approach will potentially create too many tags that are not really needed.

  2. Edit default template by either deleting or disabling rows.

  3. Export default templates as CSV file, edit this file (i.e. remove unwanted data points), and import it back. This approach can result in either:
    1. New Array-Register template if original template name was modified in CSV file. In this case original default template will remain untouched.
    2. Same Array-Register template will have less data points given that template name has not been modified in edited CSV file.

  4. Delete default Array-Register template and create a new one from scratch.
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:
  1. The 'Totalflow Application' configuration panel contains at least one application of this type (i.e. enumeration) with polling enabled.
  2. There is no other custom Array-Register template defined for this application. 

If the device is configured with Auto Generate Templates and Poll Group disabled, use the Import Configuration button to import template information.

There are two 'export' options for Array-Register Templates:

Export Configuration 

Using this option will export the Array-Register template as an INI backed templates This means that user can only change the following fields: 'Array', 'Register', 'Tag Name', and 'Enabled'. Other fields such as 'Access', 'Data Type', 'Category', and 'Register Name' are read only and obtained from INI files. Reference the ABB Totalflow: Array-Register Templates for an example of an INI-backed_ArrayRegisterTemplate.csv file

Export as 'Free Form'

Using this option will export the Array-Register template that can be used without an INI file. Reference the ABB Totalflow: Array-Register Templates for an example of an free form ArrayRegisterTemplate.csv file

To replace an INI backed Array-Register template by the 'Free-Form' one as shown below:

  • Go to the device configuration page and change the 'Array-Register Template Import Policy' from 'UPDATE' to 'REPLACE'.
  • Import the Free-Form_ArrayRegisterTemplates.csv file and save configuration.
  • The Array-Register template will now show the 'View INI Files' link disabled to reflect that template is not INI backed. Also note that the 'Access', 'Data Type', and 'Category' fields can now be edited.

Poll Groups

With Array-Register templates already defined, you can now create Application-Array-Register (AAR) poll groups. 

Do so by clicking the 'More' drop-down button and selecting 'Poll Groups'.

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

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.

      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.


If the device is configured with Auto Generate Templates and Poll Group disabled, use the Import Configuration button to import poll group information.

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.



  • No labels