Skip to main content
Solved

How to change is-step parameter for a node-id in yml configuration of OPC UA extractors?


Forum|alt.badge.img

Hi,

I am trying to set the is-step parameter of a timeseries a tag that I am reading from a ThingWorx Kepware Server OPC UA server to true.

I am using the config.example.yml that comes with the OPC UA Extractor installation and the following document as references: https://docs.cognite.com/pt/cdf/integration/guides/extraction/configuration/opcua#-custom-numeric-types

The source tag has a Long data type in the OPC Server (no decimal digits). It is increasing from 0 to 100 in a increment of 1 updating every 5 seconds.

I created a very simple yml (attached) containing only the tag that I want to read. It is a working file, meaning that I can see data flowing to the cloud, but the step property does not change to true. What could be missing?

Thanks.

Best answer by Leonardo Silva Costa

@Fredrik Holm, as we talked, I do not know how custom data types or subtypes can be created in Kepware. The built-in types we see in the Kepware documentation are already there and the only option I see throught the Kepware configuration UI is to select one type for each tag. Will investigate more later.

I know that latest versions of kepware have an API, maybe it is possible there, but this option would not reduce complexity if compared to changing this parameter through the Cognite python SDK as we did already. Also, some customers may already have a Kepware server installed running on old versions and serving data for other systems too and this kind of changes on the data servers is not always welcome for them.

In my opinion, best option would be to have a tag level parameter setting on the extractor configuration at the extractor startup (just for one time change), so data could be changed later on cloud through the API as we can do now, if needed. A streamlit app to allow tag property changes from the Cognite UI would be even better, as you suggested.

In my point of view, step mode or ways to interpolate data points are options for data retrieval and should continue open instead of forced by the type of the data at the source.

We successfully updated the timeseries tags needed through the python SDK and this option was sufficient in our case.

Thanks!

 

View original
Did this topic help you find an answer to your question?

10 replies

Mithila Jayalath
Seasoned Practitioner
Forum|alt.badge.img

@Leonardo Silva Costa The custom data type node-id is the id of the datatype, not the node. Can you please try again with the node-id of the datatype? Same applies for the namespace-uri.

You can use the same process you used to define the root nodes to configure data-types . Data types in OPC-UA are just nodes, so you can find the data type in the type hierarchy, and configure based on that.


Forum|alt.badge.img

Hi Mithila,

Thanks for your reply. Will try to find the data type node id.

But how will it identify which tag I want to change the is_step parameter in case I am extracting data from a list of tags? How do I link only the tag(s) that I want to have the step = true in a list?

Thanks,

Leo


@Leonardo Silva Costa I have also found the same issue. Then tried using UAExpert to get the node id but this was not clear. ​@Mithila Jayalath  do you have an example of what does work when in context to the KEPServer extraction?


Forum|alt.badge.img

Just want to tag ​@Graham Jennings and ​@Fredrik Holm to this thread as well.


  • Practitioner
  • 68 replies
  • December 3, 2024

There is no way to override `is-step` for individual timeseries. Only on a data-type level. A solution would be to create a custom data type on the server to model that this is not really a full Long, but some subtype of Long that has this special behavior.

 

To find the data type ID, simply find the DataType node under “Types/DataTypes” in the node hierarchy, or look at the `DataType` attribute on the variable you want to update.


Forum|alt.badge.img

Hi ​@Einar Omang, thanks for your reply.

Is it possible to add this as an enhancement request?

We are managing to do that via python SDK, but it’s quite difficult what can and what can’t be done at time series tag level in the extrator configuration. We see there some sections under extraction like update or transformations and thought they should be the way to achieve our goal, but we don’t have examples on how and why to use them or what the capabilities are, just a few descriptions on the example yml. Is there any repository with working use cases?

Thanks,

Leo


Forum|alt.badge.img

Added a Product Idea about documentation, but uncertain as to whether you’re actually (also) asking for an enhancement request to also set the isStep property in a new TimeSeries based on the DataType attribute (location in the node hierarchy to be identified by …)?


Forum|alt.badge.img

Hi Thomas, thanks for the product idea. Maybe others already have some use cases to add to the documentation which can give more clarity on how to do certain configurations at a tag level, like adjusting pooling rate or setting any metadata parameter as well as good practices for other potential configurations, like when and how to use update, transformations, and others.

As for the is-step based on data types, it's good to know it's possible but this is not really what we are looking for. Also, we can't just create custom data types in our opc server (kepware) to filter the tags we want to change is-step to true.


Forum|alt.badge.img
  • Practitioner
  • 9 replies
  • December 5, 2024

@Leonardo Silva Costa , for what Einar mentioned above:

A solution would be to create a custom data type on the server to model that this is not really a full Long, but some subtype of Long that has this special behavior.

Do you know how to do this in the Kepware server ? 


Forum|alt.badge.img

@Fredrik Holm, as we talked, I do not know how custom data types or subtypes can be created in Kepware. The built-in types we see in the Kepware documentation are already there and the only option I see throught the Kepware configuration UI is to select one type for each tag. Will investigate more later.

I know that latest versions of kepware have an API, maybe it is possible there, but this option would not reduce complexity if compared to changing this parameter through the Cognite python SDK as we did already. Also, some customers may already have a Kepware server installed running on old versions and serving data for other systems too and this kind of changes on the data servers is not always welcome for them.

In my opinion, best option would be to have a tag level parameter setting on the extractor configuration at the extractor startup (just for one time change), so data could be changed later on cloud through the API as we can do now, if needed. A streamlit app to allow tag property changes from the Cognite UI would be even better, as you suggested.

In my point of view, step mode or ways to interpolate data points are options for data retrieval and should continue open instead of forced by the type of the data at the source.

We successfully updated the timeseries tags needed through the python SDK and this option was sufficient in our case.

Thanks!

 


Reply


Cookie Policy

We use cookies to enhance and personalize your experience. If you accept you agree to our full cookie policy. Learn more about our cookies.

 
Cookie Settings