Skip to main content
Question

Integrating KEPServer Alarms & Events

  • November 11, 2024
  • 4 replies
  • 64 views

Forum|alt.badge.img+1

We are looking to add Events into our CDF solution via an existing OPC UA Extractor. The OPC UA Extractor is currently pulling data from KEPServer and pushing into time-series end-points.

We want to add some of the binary & string references in the PLC (which are now exposed in KEPServer) as Events so that we can utilize the Charts over-lay function.

  • Is there a worked method for updating the OPC UA Extractor file for this purpose?
  • Does it require KEPServer Alarms & Events plugin to be used? 

We have used this link already: Configuration settings | Cognite Documentation

4 replies

  • Practitioner
  • November 12, 2024

The extractor does support ingesting OPC-UA events into CDF events. That said, it sounds like what you are asking for is ingesting string timeseries as events. There is some basic support for this, using “extraction.transformations”. Configure a transformation of type “AsEvents” with a filter that matches the specific timeseries you want to ingest as events.


Forum|alt.badge.img+1

For updating the OPC UA extraction file is there a specific component that needs to be configured for connecting from KEPServer Alarms & Events. A worked example?

Or are you referring to carrying out a transformation on an already ingested Timeseries and converting to Events?

 

Do you have an example of the expected SQL to select a specific time-series?


  • Practitioner
  • November 13, 2024

No, there’s a configuration option in the extractor named `transformations`, it can convert timeseries values to events.


Forum|alt.badge.img+1

Appreciate highlighting the function in the OPC UA Extractor.

Trialling the conversion of an existing time-series, the file is not executing. Config edited to include transformation script (edited parts for test highlighted). Are you able to extract to time-series and transform the same node to an event at the same time? What is the expected formatting of the name? Trialled multiple variations which include node-ids, etc.

    transformations:
      # Type, either "Ignore", "Property", "DropSubscriptions", "TimeSeries", "AsEvents", or "Include"
        - type: "AsEvents"
      #  NodeFilter. All non-null filters must match each node for the transformation to be applied.
        filter:
            # Regex on node DisplayName
            name: "^Feed_Hydrator"
            # Regex on node Description. If this is set, requires description to be non-null.
            # description:
            # Regex on node id. Ids on the form "i=123" or "s=string" are matched.
            # id:
            # Whether the node is an array. If this is set, the filter only matches varables.
            # is-array:
            # Regex on the full namespace of the node id.
            # namespace:
            # Regex on the id of the type definition. On the form "i=123" or "s=string"
            # type-definition:
            # The OPC-UA node class, exact match. Should be one of
            # "Object", "ObjectType", "Variable", "VariableType". The other types will work, but do nothing, since we never read those.
            node-class: “Variable”
            # The "historizing" attribute on variables. If this is set, the filter only matches variables.
            # historizing:
            # Another instance of NodeFilter which is applied to the parent node.
            # parent:
    # Configure extractor to trigger a rebrowse when there are changes to specific namespace metadata nodes.
    # Also supports filtering by namespace uris.