SystemLink

cancel
Showing results for 
Search instead for 
Did you mean: 

SystemLink Server calculated channels

I have some cRIOs sending tags to my SystemLink server.

 

On the server-side, I'd like to create a "derived" tag (or a calculated channel), e.g. summing 3 raw cRIO tags together. Some of these calculated channels might be based on data that comes from different cRIOs.

 

My current strategy is to have a custom LabVIEW application running in the background on the server, periodically reading the source tags and writing the derived tags. Are there any better ways to do this? (I'd prefer not to do the calculations on the cRIOs themselves)

 

I don't need tight synchronization at this point.

Certified LabVIEW Developer

0 Kudos
Message 1 of 5
(414 Views)
Highlighted

I found one solution: Virtual Tags in the Free-Form Dashboards can represent calculated channels.

 

If anyone knows of any other techniques, I'm still listening.

Certified LabVIEW Developer

0 Kudos
Message 2 of 5
(289 Views)
Highlighted

Hi could you go into more depth of your use case? We're considering bringing this functionality to tile dashboards. 

Mark
NI App Software R&D
0 Kudos
Message 3 of 5
(264 Views)
Highlighted

@MarkBlack wrote:

We're considering bringing this functionality to tile dashboards. 


That would be fantastic!

 


@MarkBlack wrote:

Hi could you go into more depth of your use case?


Sure.

 

Our customer is getting multiple cRIOs. Many of the controllers will each act like a copy of the NI Grid Automation System (https://www.ni.com/en-au/innovations/white-papers/15/what-is-the-ni-grid-automation-system-.html ) that is SystemLink-enabled.

 

A specific use-case described by the customer is this: They will have 4 diesel generators, each being monitored by a cRIO. The cRIO performs power measurements and writes tags like Active Power to SystemLink. One the "System Overview" dashboard, they want to see a single tag which shows the total power being generated on-site.

 

Each cRIO would continuously update an "ActivePower" tag:

  • Generator1.ActivePower
  • Generator2.ActivePower
  • Generator3.ActivePower
  • Generator4.ActivePower

 

The System Overview dashboard should show a virtual tag, AllGenerators.ActivePower, which is the sum of the 4 tags above. Once a second, the server would read the latest value of GeneratorN.ActivePower and calculate the value of AllGenerators.ActivePower.

 

It would be great if AllGenerators.ActivePower was written back as a full-fledged SystemLink Tag too (such that it's visible in the Tag Viewer). If this isn't feasible, having AllGenerators.ActivePower visible to a single dashboard only would still meet our use-case.

Certified LabVIEW Developer

0 Kudos
Message 4 of 5
(252 Views)
Highlighted

Hi JKSH, 

 

Thanks for the additional details. Its really helpful as we try and draw connections between similar customer needs across different industries and applications areas. I'm playing around with some ways that JupyterNotebook could be used to compute some of this data, but given your provided use case there may be another work-around you can use in the meantime. 

 


@JKSH wrote:

A specific use-case described by the customer is this: They will have 4 diesel generators, each being monitored by a cRIO. The cRIO performs power measurements and writes tags like Active Power to SystemLink. One the "System Overview" dashboard, they want to see a single tag which shows the total power being generated on-site.

 

Each cRIO would continuously update an "ActivePower" tag:

  • Generator1.ActivePower
  • Generator2.ActivePower
  • Generator3.ActivePower
  • Generator4.ActivePower

 

The System Overview dashboard should show a virtual tag, AllGenerators.ActivePower, which is the sum of the 4 tags above. Once a second, the server would read the latest value of GeneratorN.ActivePower and calculate the value of AllGenerators.ActivePower.


The donut tile automatically sums the values of the tags provided to it. Ideally, I believe you would like a plot that shows the summed values, but this meet your minimum requirements, would be a lot simpler than creating a dedicated JupyterNotebook, and keeps you from having to wait for NI to build it into SystemLink. Here is a screenshot of a simple dashboard that does this with some tags generating dummy data:

 

Screen Shot 2019-12-20 at 10.47.24 AM.png

Mark
NI App Software R&D
Message 5 of 5
(229 Views)