There is a video about building KPI reports in Datalink. You could use their AF structure as an example.
Regarding building multiple tags, every data stream that you want to be historized in the PI Data Archive will be one tag.
Thank you for your answer.
I am familiar with this video, but the problem at hand here is not about reports or visualization, it is about a cost-effective way to create and store them in the database as such.
I understand from your answer that there is no such method, and that I should go with the old-fashioned one value-one tag method, which is kind of a deal-breaker for me.
I would recommend using AF to build your data model to derive KPI's. Event without using Pi Analytics (consuming tags when data is written to output tags), you can build quite complex calculations using the PI Point and Formula DataReferences. Using AF Element templates helps massively to build and manage your KPI calculations.
In fact, the calculations are made on the DCS side.
I have at my disposal the KPI values tags, already stored in the PI database.
My wish is to store this KPI's limits, target, parents and children without consuming 5+ tags per KPI. Something like Aspentech's KPI tool, allowing me to have all those informations at the cost of one tag (an with a user-friendly GUI, but that is a bonus).
Is there any way to do this?
Don't see a good way to do that without consuming PI Tags, unless you can retrieve and store the values outside of PI e.g. in a Database and include into the AFmodel using AF Table Lookup.
The concept of a 'tag' in AspenTech IP21 is fundametally different from PI. In AspenTech you can build more complex datasets on a 'tag', whereas in PI, a tag only holds a single value. Can't really comment on the cost of a PI tag, as that is highly dependant on your specific situation (free space,m licens restrictions, customer-specific pricing). There are benefits and drawbacks to both license structures of PI and Aspen.
Are your KPI's limits changing a lot?
Assuming they don't ( it is rarely the case) you may use a simple AF Attribute to store limits information, this is why they were invented for .
However, usually interfaces cannot update an attribute, they always update a PI Tag, so you will need to find a way to update the attributes but only when your limit changes. Please do not update the AF simple attributes continuously because you may end up with performances issues, use a PI Tag instead.
You say at some point: "things need to be recorded", as well as a having a "nice UI" ?
The PI System (AF) can serve you well with that as you may also create templates and analysis which can help you a lot in your KPI definitions and calculations.
It can also record changes upon "check in" where you can provide comment when creating a new version of an element (KPI).
When using your attributes as configuration items the Element is checked out automatically, thus can force you to enter a comment after you made the change.
Furthermore, you may want to consider using Analyses to create event frames, this is a very powerful way of doing KPI's with the PI System.
And finally, using the AF Structure you have built, as well as event frames you are generating, the users may use PI Coresight to visualize the data - demo of coresight here: OSIsoft: What is PI Coresight? - YouTube.
You may also use PI Notifications to generate emails to alert the right people when KPI's go out of their normal values.
Here is an example of a KPI structure I am thinking of:
You create an AF Element KPI1 for which you would be using only one tag.
+ KPI value : PI Tag
+ KPI Hi : attribute, double
+ KPI Target : attribute, double
+ KPI Low : attribute, double
+ KPI OK? : attribute formula, ( KPI Value > Low and KPI value<Hi )
If you produce a trend, you should be able to see your "Simple attribute" values changes on the trend, however, keep in mind that this method is not suited for a big rate of data, you should use a PI Tag in this case.
I hope this helps and let us know how your KPI's project goes, we are really looking forward to see you succeed in this task!
Thank you Patrice, this is one really good answer.
At this point of our thinking, the limits will be updated directly in the DB from an Excel file. and that would be maybe once or twice a year, so we are good here. Those attributes seem to be doing exactly what we what to do with them.
I will take a good look in those event frames, see how we can adapt this to our hiearchy, and let you know.
I am happy that you like this answer .
Regarding the Event Frames they can serve to an infinite use cases but with a same common denominator: you need to split the Time into "events", thus you are not manipulating time anymore when reporting but instead you are using events of the same type.
Here is an example of an event frame you may use to get the idea:
Event Frame Example
Imagine you are the manager of a wind farm and you are interested to produce the Monthly Power Curve report of each of your turbines ( for warranty reasons.. ).
A power curve is
X: wind speed and
Y: Power Produced.
Since the wind changes all the time, this is a very hard problem, and it would be very difficult to get good performances.
To solve this, you could create event frames based on wind changes for each wind category:
Wind Change -Turbine 1
+ Start Time
+ End Time
+ Wind category: 1-2 m/s
+ Power average Kw
Wind Change -Turbine 1
+ Start Time
+ End Time
+ Wind category: 2-3 m/s
+ Power average Kw
To build your report you then only need to:
For each wind category:
- Get all event frames for this category
- Make the average of all Power average Kw attributes.
This was a little example to illustrate, but there can be a lot of use cases!
To build on your example, what I would like to do is the following:
KPI 1: Power delivered. If this KPI is not within its limits, then, by a simple manipulation (eg. clicking on the KPI), I can look at
KPI 1.1: Wind speed
KPI 1.2: Age of the captain
And if I see that wind speed is not in its limits, than I can break it down to
KPI 1.1.1: Mill orientation
KPI 1.1.2: Length of the captains mustache.
So that when I see that KPI 1 is off limits, I drive down to root causes quite easily.
Is this something I can do with those events? I looked at it, and I am not really sure. Is there any other way?
Generally speaking, you would probably need another piece of technology to create the KPI Reporting or Dashboard you need. One of the simplest I can think of is to use Excel and PI Datalink, and to create a Pivot Table to analyse your data.
I could see recently some very nice examples made with Powerview. It was combined with PI OLEDB Enterprise to query data from PI. But you could probably use PI Datalink too, store the data on a sheet and build your Powerview display on top of that.
We have a list of Youtube videos to get you started with event frames and see how our native tools ( PI Datalink, PI Coresight ) can restitute them.
We also have Developer Technologies that can help you if you want to build your own displays that can better suit your needs in case our standard tool set is not enough.
I am pretty certain that other people may have ideas on this , let's see if we can get more ideas.
Thank you for those answers.
I have looked a little bit into Coresight, and it seems quite limited.
Is there a way to add a waterfall chart easily for example (I mean, with the same level of integration as the trend for example. I do not want to build each view in a Process Book and put them online after). I would like to add a new item, like a waterfall chart, and connect it to whatever tag I see fit.
Thank you for your answer
PI Coresight is built to be very easy to use to visualize time series data. Thus there was a trade off made for simplicity vs complexity.
If you are willing to go and build your own site
Highcharts is considered a good product by many of our PI Square members and there is a waterfall chart available in it: http://www.highcharts.com/demo/waterfall
There should be already some content to get started with PI Web API on the PI Square, other than that feel free to ask more questions on the community forums at anytime if you feel you are stuck,
Hope this helps.