Skip to main content

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

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.


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?


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


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.


Reply