Skip navigation
All Places > All Things PI - Ask, Discuss, Connect > PI Server > Blog > Author: David Pugal

PI Server

2 Posts authored by: David Pugal Employee

We are glad to announce the general availability of PE to Analytics Migration Utility. It is being released as an open source tool to aid you in converting PI tag based PI Performance Equations (PEs) to Asset Analytics analyses. Why are we releasing it as an open source project? There is really no "correct" way to do such conversion as the needs and requirements vary and the utility might not handle all complex use cases. Thus, we want to provide you ability to enhance the tool for your particular needs. Also, we will accept pull requests!


High-level features of the utility:

  • PE to Asset analysis business logic conversion, naturally;
  • basic asset hierarchy, including analysis and element template creation;
  • matching of the existing elements and attributes to those used by PI tag based PEs.


There are also some restrictions. Not all functions are supported by Asset Analytics, so the equations that contain Alm*, Steam*, Arma, Delay, Impulse, IsDST, and MedianFilt cannot be converted by the tool.


For questions and suggestions, please leave a comment or reach out to me, Stephen Kwan, or Nitin Agarwal directly.

This blog post is the first in the series Sneak Peek at AF 2018 with Asset Analytics where some of the new analytics features planned for 2018 will be shown.


For the past few months, Asset Analytics team has been busy enhancing the underlying language of Expression and Event Frame Generation analyses. Until now, the syntax, data types, and functions were more-or-less based on the design of Performance Equations of PI Data Archive, first introduced quite some time ago. While the original language is concise and allows writing very simple analyses very quickly, the rigid nature of the data access functions has been restrictive on some more advanced value retrieval, filtering, and aggregation scenarios. For example, it has not been easy to retrieve the time-stamp of the first bad value of an attribute within a time range.


Considering all of that plus some additional use cases related to calling to external systems, we are adding array types to the language syntax along with basic functions to filter and manipulate arrays. The following illustrates a use case where values for the past hour are fetched, filtered, cleansed, and then explored and aggregated.



This work is also essential to support integration with MATLAB. To find out more, please register for the upcoming webinar Asset Analytics Native Integration with MATLAB.


For questions and suggestions, please leave a comment or reach out to me, Stephen Kwan, or Nitin Agarwal directly.